基于AT89C2051的数字温度计设计
扫描二维码
随时随地手机看文章
单片机控制已成为今天电子设计追-求的目标之一,本文将这种控制技术应用于温度测量中。AT89C2051是美国Atmel公司生产的低电压、高性能CMOS8位单片机,片内含有2 KB的反复擦写的只读程序存储器和128 B的随机存取数据存储器(RAM)。美国DALLAS半导体公司生产的DSl-8B20型单线智能温度传感器,属于新一代适配微处理器的智能传感器。数字温度计是以DS18B20为检测元件,由AT89C2051作为主控制器的温度计,具有功耗低、结构简单、读数方便、测温范围广、测温准确的特点。
1 电路构成及工作原理
1.1 硬件设计
由AT89C2051构成的温度计主要由三部分组成:DSl8B20温度传感器、单片机AT89C2051、由LED数码管构成的显示模块。其系统原理框图如图1所示。DSl8B20作为单片机AT89C2051的外部信号源,把所采集到的温度转换为数字信号,通过I/O接口传给2051,2051启动ROM内的控制程序驱动LED数码管,通过I/O接口和数据线(单片机和数码管的接口)把数据传送给数码管,将采集到的温度显示出来。
1.2 总电路图
基于AT89C2051的温度测量系统电路图把温度转化成带符号的数字信号(以十六位补码形式,占两个字节),若采用带屏蔽的双绞电缆线,连线的长度可以达到150 m,输出脚I/0直接与单片机的P3.4相连,R1为上拉电阻,传感器采用外部电源供电。AT89C2051是整个系统的核心部分,内含2 KB的FLASH ROM,用户程序存放在这里。显示器模块由四位一体的共阳数码管和四个9012组成。系统程序分传感器控制程序和显示器程序两部分,传感器控制程序是按照DSl8B20的通信协议编制。系统的工作是在程序控制下,完成对传感器的读写和对温度的显示。
产品的主要技术指标:测量范围:-55~+125℃,测量精度:0.5℃;反应时间小于等于500 ms。
2 软件设计
2.1 采集模块
该模块选用单线温度传感器DSl8B20完成温度采集。单片机AT89C51对DSl8B20访问流程如下:先对DSl8B20初始化,再进行ROM操作命令,最后才能对存储器操作。DSl8B20每一步操作都要遵循严格的工作时序和通信协议。根据DSl8B20的通讯协议,需经三个步骤:每一次读写之前都要对DSl8B20进行复位,复位成功后发送一条ROM指令(指令代码CCH)并置标志位,根据标志位来判断是否初始化成功,最后发送RAM指令(指令代码44H)DSl8B20开始转换,再读出温度转换值(指令代码BEH),读取的温度值高位字节送27H单元,低位字节送26H单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。
2.2 主处理模块
主处理模块主要是将各个模块进行协调处理以实现数据交互。主处理模块首先完成初始化工作,初始化后进入循环处理,在循环过程中获得采集模块的数据,并将数据进行处理,根据处理后的结果进行显示。主处理的流程图如图3所示。
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送出的位段的配合控制下,使各个数码管轮流点亮显示各自的字形。
3 结语
该设计测温传感器采用改进型智能温度传感器DSl8B20,测温范围为-55~+125℃,最大分辨率可达0.062 5℃,可以直接读出被测温度值,而且采用单线制与单片机相连,减少了外部的硬件电路,同时可直接将温度转化成串行数字信号供微机处理。