资源描述:
《数字温度计的设计与测量》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数字温度计的设计与测量摘要:根据8051的特点及APD转换器的原理,实现温度测量的数字化和自动化.并且熟悉数字温度传感器DS18B20的使用,掌握用单片机口线进行1-wire串行通信的方法;根据DS18B20工作时序要求进行程序设计,能够通过软件调试正确得到采集的温度值;将单片机采集温度程序和显示程序结合起来,通过系统软硬件整体调试正确得到采集的温度值并进行显示。关键词:8051单片机;数字温度计;APD转换;温度传感器;数码管正文:温度测量涉及各行各业,而传统的温度测量仪器有酒精温度计、煤油温度计、水银温度计等,都需人工手动测量.在科学技术
2、发展的今天很多场合(有毒、高温、无人等),用传统的温度测量技术就显得比较麻烦.单片机的出现,电子技术的飞速发展,使温度计的自动化、数字化就变得容易实现.本文着重研究用单片机控制的数字温度计,采用LED七段数码管显示温度值,实现一目了然的测量被测物的温度大小.设计一个8051单片机控制的数字式测温仪,测量温度0℃~50℃,并要求将温度在两个数码管上显示,分别显示十位数和个位数,最小温度变化量为1℃,每变化一个温度值在数码管上显示6秒.硬件结构如下所示制做简单的电路板,电路图如下所示关于A/D转换单元,由ADC0809转换器及温度传感器电路组成.
3、温度传感器电路如图2示,RT为热敏电阻,起检测被测物温度的作用,将温度物理量变成电压物理量.而ADC0809是8位APD转换器,将温度传感器得到的模拟信号变成数字信号送入CPU.从图2可知APD转换器的模拟输入端电压:Vi=15R8P(R8+RT),由热敏电阻特性可知,温度越高阻值越小,而获得的模拟电压值越高.因ADC0809具有通道地址锁存功能,所以这里采用P0.0~P0.2直接与模拟输入通道地址译码输入A、B、C相接.模拟电压Vi从IN0输入,因此模拟通道地址为F7F8H.转换典型时钟频率为640KHz,由于ADC0809内部无时钟电路,
4、在此通过8051的ALE端提供时钟信号.P0口也作为ADC0809的数据口用,数据信号就是通过P0口送到8051内部进行处理的.关于显示接口单元,由两个七段数码管显示器及一块七段锁存—译码—驱动器组成,并用P1口作十进制调整后的二—十进制数的输出口及显示控制口.而数据信号只用上了P1.0~P1.3,P1.4和P1.5用作显示控制信号端.4位BCD码再经CD4511转换成七段显示码去驱动两个共阴七段数码管.通过计算机进行编程如下所示数值转换程序XJM: MOV DPTR,#DATA1;取表首地址MOV R5,AMOV R6,#00HLOOP:
5、 CLR AMOVC A,@A+DPTR;查表CLR C;清借位零SUBB A,R5;比较MOV A,R6JNC JM1ADDC A,#1DA A;温度值十进制调整MOV R6,AINC DPTR;取下一个表地址AJMP LOOP;进行下一次比较JM1: RETA/D输出值对照表:DATA1: 58———0℃61———1℃63———2℃ : :255———50℃A/D转换程序START: MOV DPTR,#F7F8H;发APD启动脉冲MOVX@DPTR,AMOV30H,#0AHDELY: DJNZ 30H,DELY;延时,等EOC
6、变为低电平WEND: JBP3.3,WEND;查APD转换结束否MOVX A,@DPTR;若结束,读取APD转换值ACALL XJM;调数值转换子程序 : :显示程序MOV R0,AANL A,#0FH;取低四位值ORL A,#0E0HMOV R3,A;送个位数字到R3中MOV A,R0RR A;右移四位(高低四位交换位置)RR ARR ARR AANL A,#0FHORL A,#0D0HMOV R4,A;送十位数字到R4中 : :如果用C程序则如下所示#include#include#d
7、efineucharunsignedchar#defineuintunsignedintsbitDATA=P3^7;//DS18B20接入口ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};charbai,shi,ge;//定义变量/*延时子函数*/voiddelay(uintnum){while(num--);}/*************DS18b20温度传感器函数**************
8、*******/Init_DS18B20(void)//传感器初始化{ucharx=0;DATA=1;//DQ复位delay(10);//稍做延时DATA=0;//