基于AT89C2051的数字温度计的硬件设计与软件设计
仪器仪表网 · 2012-07-29 00:54 · 52046 次点击
数字温度计是以DS18B20为检测元件,由AT89C2051作为主控制器的温度计,具有功耗低、结构简单、读数方便、测温范围广、测温准确的特点。
硬件设计
由AT89C2051构成的温度计主要由三部分组成:DSl8B20温度传感器、单片机AT89C2051、由LED数码管构成的显示模块。其系统原理框图如图1所示。DSl8B20作为单片机AT89C2051的外部信号源,把所采集到的温度转换为数字信号,通过I/O接口传给2051,2051启动ROM内的控制程序驱动LED数码管,通过I/O接口和数据线(单片机和数码管的接口)把数据传送给数码管,将采集到的温度显示出来。
软件设计
1.采集模块
该模块选用单线温度传感器DSl8B20完成温度采集。单片机AT89C51对DSl8B20访问流程如下:先对DSl8B20初始化,再进行ROM操作命令,最后才能对存储器操作。DSl8B20每一步操作都要遵循严格的工作时序和通信协议。根据DSl8B20的通讯协议,需经三个步骤:每一次读写之前都要对DSl8B20进行复位,复位成功后发送一条ROM指令(指令代码CCH)并置标志位,根据标志位来判断是否初始化成功,最后发送RAM指令(指令代码44H)DSl8B20开始转换,再读出温度转换值(指令代码BEH),读取的温度值高位字节送27H单元,低位字节送26H单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。
2.主处理模块
主处理模块主要是将各个模块进行协调处理以实现数据交互。主处理模块首先完成初始化工作,初始化后进入循环处理,在循环过程中获得采集模块的数据,并将数据进行处理,根据处理后的结果进行显示。
3.显示模块
采用动态扫描的方法,其中P3.O,P3.1,P3.2,P3.3控制位选,P1控制段选。由P3.O,P3.1,P3.2,P3.3向各位轮流输出扫描信号,使每一瞬间只有一个数码管被选通,然后由P1送入该位所要显示的字形码,点亮该位字形段显示的字形。在P1送出的码段和P3.0,P3.1,P3.2,P3.3送出的位段的配合控制下,使各个数码管轮流点亮显示各自的字形。
该设计测温传感器采用改进型智能温度传感器DSl8B20,测温范围为-55~+125℃,最大分辨率可达0.0625℃,可以直接读出被测温度值,而且采用单线制与单片机相连,减少了外部的硬件电路,同时可直接将温度转化成串行数字信号供微机处理。