简易数字温度计的设计与制作 第2页
图2 AD590温度采集及模数转换电路
2.3 ADC0804模数转换器
AD590测温电路输出的电压信号为模拟信号,要进行数码显示,还需将此信号转换成数字信号。为此我们通过A/D转换器ADC0804将输入的模拟值转换成数字值,经AT89C51单片机处理后输出到P1以控制温度显示电路。
ADC0804是用CMOS集成工艺制成的逐次比较型摸数转换芯片,分辨率8位,转换时间100μs,输入电压范围为0~5V,增加某些外部电路后,输入模拟电压可为5V。该芯片内有输出数据锁存器,当与计算机连接时,转换电路的输出可以直接连接在CPU数据总线上,无须附加逻辑接口电路。具体硬件连接图如图2所示。
2.4 七段码LED温度显示电路
由发光二极管组成的七段码LED显示器是单片机应用产品中最常用的廉价输出设备,用于显示各种数字和字符。该数字温度计的温度显示由4位七段码LED显示器组成,单片机以并行通信方式从P1.0~P1.7口输出段码和控制信号,通过7447 TTL BCD译码器译码,用4个共阳极LED动态显示温度的各个数位。具体硬件连接图如图3所示。
若图片无法显示请联系QQ752018766
图3 温度显示及单片机时钟、复位电路
3.系统软件设计与编程
该数字温度计软件部分用MCS-51汇编语言编程实现,采用模块化程序设计思想,将软件划分成若干单元,主要包括主程序、十进制数据转换及调整子程序、LED数码显示子程序和延时子程序等。本系统具体汇编源程序见后附。
3.1 系统主程序
在主程序中,系统上电自动复位以后首先设置堆栈,然后启动ADC0804,开始转换AD590测温电路输入的电信号,待数据转换结束后读入到累加器A,然后进行十进制数据转换调整,输出给显示电路。主程序流程图如图4所示。
图4 主程序流程图
3.2 十进制数据转换调整子程序
由于ADC0804转换后的数据是二进制数据,而七段码LED显示器所要显示的数据是十进制数据,因此需要进行二、十进制数据转换。ADC0804输出的最大转换值为FFH(255),由于运放A3放大5倍,因此本数字温度计的最大测量温度为5.1V/5=1.02V,即102℃。由255*X=102,得知X=0.4,即先乘4再除10。255*4=1020,其中高位10送高位显示缓冲区R4,低位20送低位显示缓冲区R5,将小数点设在D2位上,并将其分别显示为1(D4) 0(D3) 2(D2) . 0(D1) ℃。所以,十进制转换调整流程为A/D(二进制)→十进制→乘4→显示。程序流程图如图5所示,若图片无法显示请联系QQ752018766
图5 十进制数据转换调整子程序流程图
3.3 LED数码显示子程序
十进制转换调整后的数据送到寄存器R5、R4中,然后通过P1口把数据输出给D4、D3、D2、D1四个数码显示器中,从而最终把测得的温度显示出来。显示子程序流程图如图6所示。
图6 显示子程序流程图
4.结束语
本文采用AT89C51单片机做主控芯片,利用温度传感器AD590测量温度,并配上相应的外部接口电路,介绍了一款简易数字温度计的设计与制作 第2页过程。该温度计系统实现简单、功能稳定、使用方便,适用于人们日常生活和工、农业生产中的各种温度测量。