《单片机数字温度计显示设计.docx》由会员分享,可在线阅读,更多相关《单片机数字温度计显示设计.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、郑州轻工业学院课程设计说明书题目:单片机数字温度计显示设计 姓 名: 院 (系): 专业班级: 学 号: 指导教师: 成 绩: 时间: 2013 年 12 月 30 日至 2014 年 1 月 5 日郑州轻工业学院课 程 设 计 任 务 书题目 单片机数字温度计显示设计 专业、班级学号姓名 主要内容:1、 采用数字式温度传感器为检测器件,进行单点温度检测。2、 用LCD直接显示温度值,微机系统作为数字温度计的控制系统。基本要求:1、用DS18B20芯片读取温度,检测的温度范围:0120,检测分辨率 0.5。2、用LCD1602芯片来显示温度值。3、拟定测试方案和设计步骤,根据性能指标,选好元件
2、,设计硬件电路和软件代码。4、写出设计报告。主要参考资料:1、单片机原理与应用设计,张毅刚、彭喜元编著,电子工业出版社2、新概念51单片机C语言教程-入门、提高、开发、拓展全攻略,郭天祥编著,电子工业出版社完 成 期 限: 2014/1/2 指导教师签名: 课程负责人签名: 目录n1简介2n2数字温度传感器DS18B202n2.1 DS18B20概述2n2.2 DS18B20 测温过程4n3 1602字符型LCD简介5n4系统硬件电路和软件设计8n4.1系统硬件电路8n4.2系统软件设计9n心得体会:11n参考文献:11n 1简介温度是工业生产和自动控制中最常见的工艺参数之一。过去温度检测系统
3、设计中,大多采用模拟技术进行设计,这样就不可避免地遇到诸如传感器外围电路复杂及抗干扰能力差等问题;而其中任何一环节处理不当,就会造成整个系统性能的下降。随着半导体技术的高速发展,特别是大规模集成电路设计技术的发展, 数字化、微型化、集成化成为了传感器发展的主要方向。设计介绍了检测的温度显示得基本概念,单总线数字温度传感DS18B20及单片机AT89C51的特性、内部结构及工作原理,给出了DS18B20与单片机AT89C51接口的应用实例,以及由两者组成温度检测系统的方法,并给出了对DS18B20进行各种操作的软件流程图及操作程序。它可以实时的显示和设定温度,实现对温度的自动控制。本设计对温度的
4、控制有方便、简单的特点,运用在现实生活及工业生产的前景广泛。n 2数字温度传感器DS18B20n 2.1 DS18B20概述由Dallas半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。(1)采用单总线的接口方式。与微处理器连接时,仅需要一条口线即可实现微处理器与DS18B20的双向通讯。(2)测量温度范围宽。测量精度高 DS18B20 的测量范围为 -55 + 125 ; 在 -10+ 85C 范围内,精度为 0.5C 。(3)在使
5、用中不需要任何外围元件。(4)持多点组网功能。多个DS18B20可以并联在惟一的三线上,实现多点测温。(5)供电方式灵活。DS18B20可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而 使系统结构更趋简单,可靠性更高。(6)测量参数可配置。DS18B20的测量分辨率可通过程序设定 912 位。(7)负压特性。电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。(8)掉电保护功能。DS18B20内部含有EEPROM,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。DS18B20具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更
6、宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。3.2 DS18B20存储器及设置寄存器DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性的可电擦除的 E2RAM, 后者存放高温度和低温度触发器 TH 、 TL 和结构寄存器。数据先写入 RAM ,经校验后再传给 E2RAM 。暂存存储器包含了 8 个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位 TL ,第二个字节是温度的高八位 TH 。第三个和第四个字节是 TH 、 TL 的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。
7、第六、七、八个字节用于内部计算。第九个字节是冗余检验字节,可用来保证通信正确。 主机根据 ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20 中的 CRC 值做比较,以判断主机收到的 ROM 数据是否正确。分布如表2.1所示。表2.1内部寄存分布 寄存器内容地址温度的低八位数据0温度的高八位数据1高温阀值2低温阀值3保留4保留5计数剩余值6每度计数值7CRC 校验8设置寄存器位于高速闪存的低5个字节,这个寄存器中的内容被用来确定温度的转换精度。寄存器各位的内容如表2.2下所示:表2.2 DS18B20 的设置寄存器各位内容 BIT7BIT6BIT5BIT4BIT3BIT2BIT
8、1BIT0TMR1R011111 该寄存器的低五位一直都是1,TM是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。在 DS18B20 出厂时该位被设置为0,用户不要去改动。 R1 和 R0 用来设置分辨率由表2.3.6可知,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间权衡考虑。本次设计中采用的为12位分辨率,即750MS转换时间,如表2.2下所示: 表2.3分辨率设置R1R0分辨率温度最大转换时间009 位93.75 ms0110 位187.5 ms1011 位375 ms0012 位750 msn 2.2 DS18B20 测温过程
9、1-WIRE 网络具有严谨的控制结构,一般通过双绞线与 1-WIRE 元件进行数据通信,它们通常被定义为漏极开路端点,主 / 从式多点结构,而且一般都在主机端接上一个上拉电阻 +5V 电源。通常为了给 1-WIRE 设备提供足够的电源,需要一个 MOSFET 管将 1-WIRE 总线上拉至 +5V 电源。1-WIRE 网络通信协议是分时定义的,有严格的时隙概念。DS18B20 单线通信功能是分时完成的,他有严格的时隙概念,如果出现序列混乱,1-WIRE 器件将不响应主机,因此读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。根据 DS18B20 的协议规定,微控制器控制 DS1
10、8B20 完成温度的转换必须经过以下 4 个步骤 :(1)每次读写前对 DS18B20 进行复位初始化。复位要求主 CPU 将数据线下拉 500us ,然后释放, DS18B20 收到信号后等待 16us60us 左右,然后发出 60us240us 的存在低脉冲,主 CPU 收到此信号后表示复位成功。(2)发送一条 ROM 功能指令,如表2.4所示:表2.4 DS18B20 的 ROM 指令集指令名称指令代码指令功能读 ROM33H读 DS18B20ROM 中的序列号(即读 64 位地址)ROM 匹配(符合 ROM )55H发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与编码相
11、对应 DS18B20 使之作出响应,用于多个DS18B20时定位搜索 ROM0F0H用于确定挂接在同一总线上 DS18B20 的个数和识别 64 位 ROM 地址,为操作各器件作好准备跳过 ROM0CCH忽略 64 位 ROM 地址,直接向 DS18B20 发温度变换命令,该命令将针对所有在线的DS18B20警报搜索 0ECH该指令执行后,只有温度超过设定值上限或下限的片子才做出响应(3)发送存储器指令,如表2.5所示:表2.5 DS18B20 的存储器指令集指令名称指令代码指令功能读 ROM33H读 DS18B20ROM 中的序列号(即读 64 位地址)ROM 匹配(符合 ROM )55H发
12、出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与编码相对应 DS18B20 使之作出响应,用于多个DS18B20时定位搜索 ROM0F0H用于确定挂接在同一总线上 DS18B20 的个数和识别 64 位 ROM 地址,为操作各器件作好准备跳过 ROM0CCH忽略 64 位 ROM 地址,直接向 DS18B20 发温度变换命令,该命令将针对所有在线的DS18B20警报搜索 0ECH该指令执行后,只有温度超过设定值上限或下限的片子才做出响应n 3 1602字符型LCD简介字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2
13、行等的模块。1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极表10-13:引脚接口说明表第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
14、第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。1602液晶模块内部的控制器共有11条控制指令,如表10-14所示:序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回0000
15、00001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容表10-14:控制命令表1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H
16、。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发
17、生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片时序表如下:读状态输入RS=L,R/W=H,E=H输出D0D7=状态字写指令输入RS=L,R/W=L,D0D7=指令码,E=高脉冲输出无读数据输入RS=H,R/W=H,E=H输出D0D7=数据写数据输入RS=H,R/W=L,D0D7=数据,E=高脉冲输出无表10-15:基本操作时序表n 4系统硬件电路和软件设计n 4.1系统硬件电路图4.1硬件电路如图4.1所示,其中P2.
18、0、P2.1、P2.1分别控制LCD的RS寄存器选择、RW读写控制和E使能,P1.7连接DS18B20的DQ数据单总线,P3.0P3.7连接LCD的D0D7。n 4.2系统软件设计系统软件流程图:仿真运行结果: n 心得体会:本次课程设计的是单片机数字温度计显示设计,通过上网查找LCD1602和DS18B210的资料和例程,结合书本中所学的单片机基础知识,完成了课程设计的内容。通过这次试验,我把书中所学的理论知识和具体的实践相结合,加深对课本中所学知识的理解,同时锻炼了自己的自我学习能力和调试程序的能力。同时,通过学习LCD1602和DS18B210的资料和例程,积累了自己调试过LCD模块和D
19、S18B20模块程序,为以后模块化编程打下基础。作为一个学生,在设计程序的过程中,出现错误和不清楚的地方很正常的,在这时候需要靠队友们的强烈的配合,快速的找资料,分析程序,找出问题,结合自身知识提出可行的解决方法,耐心的调试程序。很多课本上的例子程序,当你自己亲自动手做的时候,会发现自己错误百出,这就需要耐心的和同学交流,找到错误。n 参考文献:【1】单片机原理与应用设计,张毅刚、彭喜元编著,电子工业出版社【2】新概念51单片机C语言教程入门、提高、开发、拓展全攻略郭天祥编著,电子工业出版社课程设计成绩评定表评定项目内容满分评分总分学习态度学习认真,态度端正,遵守纪律。10答疑和设计情况认真查阅资料,勤学好问,提出的问题有一定的深度,分析解决问题的能力较强。40说明书质量设计方案正确、表达清楚;设计思路、实验(论证)方法科学合理;达到课程设计任务书规定的要求;图、表、文字表达准确规范,上交及时。40回答问题情况回答问题准确,基本概念清楚,有理有据,有一定深度。10总成绩采用五级分制:优、良、中、及格、不及格指导教师评语:签名:年月日
限制150内