欢迎来到天天文库
浏览记录
ID:29954461
大小:351.50 KB
页数:21页
时间:2018-12-25
《片机课程设计数字温度计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、设计目的综合利用所学单片机知识完成一个单片机应用系统设计并仿真实现所有的功能,从而加深对单片机软硬件知识的理解和对相关传感器的原理和使用方法的掌握,获得进一步的应用实践经验,为走出校门从事单片机应用的相关工作打下基础。该设计同时也是我们对所学理论知识进行的检测和验证,理论与实践相结合,探索知识的真理殿堂,不拘泥课本,培养自己发现问题并独立解决问题的能力。二、设计要求1.基本范围-50℃-110℃2.精度误差小于0.5℃3.LED数码直读显示扩展功能1.实现语音报数2.可以任意设定温度的上下限报警功能三、总体设计
2、3.1总体框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用3位LED数码管以串口传送数据实现温度显示。主控制器控制器LED显示温度传感器单片机复位时钟振荡报警点按键调整图1 总体设计方框图3.2工作原理 3.2.1主控制器单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。3.2.2显示电路显示电路采用3位共阳LED数码管,从P3口RXD,TXD串口输出段码。
3、3.2.3温度传感器DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:●独特的单线接口仅需要一个端口引脚进行通信;●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;●无须外部器件;●可通过数据线供电,电压范围为3.0~5.5V;●零待机功耗;●温度以9或12位数字;●用户可定义报警设置;●报警搜索命令识别并标志超过程序限
4、定温度(温度报警条件)的器件;●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2所示。C64位ROM和单线接口高速缓存存储器与控制温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器Vdd图2DS18B20内部结构64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,
5、可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18
6、B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。温度LSB温度MSBTH用户字节1TL用户字节2配置寄存器保留保留保留CRC图3 DS18B20字节定义由图4可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动
7、转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表2是一部分温度值对应的二进制温度数据。图4DS18B20温度转换时间表DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若T>TH
8、或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这这样的,器件中低温度系数
此文档下载收益归作者所有