基于AT89C2051单片机的电子温度计

[09-14 01:18:43]   来源:http://www.88dzw.com  电子制作   阅读:8908

文章摘要:在日常生活中我们经常要对温度进行测量,如室温、冰箱内的温度、水温等的测量。本文介绍一种用AT89C2051单片机制作的电子温度计,和普通的水银和酒精温度计相比,具有测温速度快、读数方便等特点,测温范围为-30~110℃。电路工作原理电路见图1。电路由单片机电路、温度传感器电路、A/D转换电路、数码显示电路等部分组成。AT89C2051、x1、R1、Cl等组成单片机电路,R1、C1组成单片机的复位电路,接通电源的瞬间,由于电源电压通过R1对C1的充电过程,单片机AT89C205 l的复位端1脚获得一个高电平复位脉冲,使得单片机进入初始状态。VDl、IC3A等组成温度传感器电路,这里用硅二极管1N

基于AT89C2051单片机的电子温度计,标签:电子小制作,http://www.88dzw.com

  在日常生活中我们经常要对温度进行测量,如室温、冰箱内的温度、水温等的测量。本文介绍一种用AT89C2051单片机制作的电子温度计,和普通的水银和酒精温度计相比,具有测温速度快、读数方便等特点,测温范围为-30~110℃。

  电路工作原理电路见图1。电路由单片机电路、温度传感器电路、A/D转换电路、数码显示电路等部分组成。AT89C2051、x1、R1、Cl等组成单片机电路,R1、C1组成单片机的复位电路,接通电源的瞬间,由于电源电压通过R1对C1的充电过程,单片机AT89C205 l的复位端1脚获得一个高电平复位脉冲,使得单片机进入初始状态。

  VDl、IC3A等组成温度传感器电路,这里用硅二极管1N4148的PN结做温度传感
器,PN结的结电压随温度的变化而变化,温度每上升1℃,结电压约下降2mV,在-50-150℃的范围内有较好的线性。PN结的结电压由运算放大器IC3A放大12倍后输出到AT89C2051的P1.1口。由于结电压是送到IC3A的反相输入端进行放大,所以温度越高,IC3A的输出电压越高。

  AT89C2051在内部构造了一个模拟信号比较器,AT89C2051的P1.0和P1.1除了作I/O口外,还分别是模拟信号比较器的同相输入端和反相输入端,模拟信号比较器的比较结果存入P3.6对应的寄存器,P3.6在AT89C22051外部无引脚。利用这个模拟信号比较器和锯齿波信号发生器电路就可以组成一个A/D转换电路,把P1.1输入的模拟信号转换成数字信号。

  VTl、C4、R2~R5、RPl、IC23B等组成锯齿波信号发生器电路,为了获得较好线性的锯齿波,C4由VTl、R2-R5、RPl等组成的恒流源充电。锯齿波开始正程扫描的时刻由P1.2控制,当P1.2=0时C4开始充电,同时单片机内部的定时器1开始计数,当IC3B输出的锯齿波的电压线性递增到超过P1.1输入的待测的模拟信号的电压时,P3.6由0翻转为1,据此定时器1停止计数,并且使P1.2=1,此时计数值就是A/D转换的结果,这里把0℃的计数值确定为40,因此把计数值减去40得到的就是温度值。在P1.2=1后C4通过R5放电,为下一次测温作好准备。

  数码管。DSl、DS2、DS3、三极管VT2、VT3、VT4、电阻R12-R21等组成动态扫描数码显示电路,把温度值用数字显示出来。

  软件设计程序使用汇编语言编写。程序由主程序、定时中断服务程序、延时子程序等模块组成。

  主程序由初始化、数码动态扫描显示等部分组成。主程序流程图见图2,定时中断服务程序流程图见图3。

  由于采用了动态扫描显示韵方式,虽然简化了电路,节省了I/O线,但占用CPU的时问多,因此必须采用调用定时中断的方式来测温,以减小CPu负担,定时器0的定时时间为50ms,每过250ms(5次中断)测一次温。延时子程序主要供数码显示程序调用,延时时问为0.

  5ms,延时时间决定了数码显示的刷新周期,因为显示数码为三位,所以刷新周期为1.5ms。

  字形码的输出用了P3口的P3.1~P3.5、P3.7,P3口输出的数据通过查表获得。因为数码管为共阳型,所以相应的输出位为0时笔段亮。存储器20H、21H、22H单元分别作为个位数、十位数、百位数的存储单元,其数值作为查表的指针。


  动态扫描显示由数码显示程序完成,当个位数送到P3口时,P1.3输出低电平,VT4导通,数码管Ds3显示个位数;当十位数送到P3口时,P1.4输出低电平,VT3导通,数码管DS2显示十位数;当百位数送到P3口时,P1.5输出低电平,VT2导通,数码管Dsl显示百位数,如果温度为负值,则百位数显示负号。这样轮流工作即可显示温度值。

  在测温结束时,P3.6由0翻转为1,由于程序判断P3.6为高电平要用两个机器周期,关闭定时器1停止计数要用1个机器周期,总共为3个机器周期,这会使定时器1的计数值增加3,因此在程序中对此误差进行了修正,将计数值减去3。

[1] [2]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作