网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

单片机数字温度计

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
单片机数字温度计
设计要求
■基本范围-50℃-110℃
■精度误差小于0.1℃
■LED数码直读显示
扩展功能
■可以任意设定温度的上下限 
■分别用两个不同颜色的发光二极管显示上下限报警
 
摘要:随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。
关键词:单片机,数字控制,温度计,温度传感器 ,AT89C52
 
1.引言
随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89C52,测温传感器使用热敏电阻温度传感器,用4位共阳极LED数码管实现温度显示,能准确达到以上要求。
 
2 .总体设计方案
 
2.1数字温度计设计方案论证
2.1.1方案一
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
2.1.2 方案二
进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
   本实验采用的是方案一。因为在进行protues仿真时无法使用DS18B20传感器。
2.2方案一的总体设计框图
温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89C52,温度传感器采用热敏电阻传感器,用4位LED数码管实现温度显示。若图片无法显示请联系站长QQ3710167
   图1  总体设计方框图
3.相关芯片介绍
3.1 单片机芯片AT89C52介绍
3.1.1 AT89C52功能介绍
3.1.2  AT89C52芯片图(如图2)及引脚介绍
 (1)引脚功能
 电源引脚——VCC正常运行和编程校验时为5V电源,VSS为接地端。
I/O总线——P0.0-P0.7(P0口),P1.0-P1.7(P1口),P2.0-P2.7(P2口),P3.0-P3.7(P3口)
 若图片无法显示请联系站长QQ3710167
为输入/输出引线。
时钟——XTAL1:片内振荡器反相放大器的输入端。
        XTAL2:片内振荡器反相器的输出端,也是内部时钟发生器的输入端。
控制总线——ALE/PROG:地址锁存允许/编程信号线。当CPU访问外部存储器时,ALE用来锁存P0输出的地址信号的低8位。它的频率为振荡频率的1/6。在对8751编程时,此引脚输入编程脉冲信号。
          PSEN:外接程序存储器读选通信号。
         EA/VPP:访问内部程序存储器的控制信号。当EA=1时,CPU从片内ROM读取指令;EA=0时,CPU从片外ROM读取指令。此外,当对8751内部EPROM编程时,21V编程电源由此端输入。
        RST/VPD:复位输入信号。当该引脚上出现2个机器周期以上的高电平时,可实现复位操作。此引脚为掉电保护后备电源之输入引脚。
      
 
3.2 模/数(A/D)转换芯片ADC0808
 
3.2.1 选ADC0808的原因
因为在PROTEUS ISIS里没有ADC0809的仿真模型,很多人都遇到不能仿真ADC0809的问题,可用ADC0808代替ADC0809,这两个芯片区别不大,完全可以替换。所以在本次设计中选ADC0808作为A/D转换。
3.2.2  ADC0808内部结构图
图3  ADC0808内部结构图
 
 
 
 3.2.3 ADC0808芯片引脚图及功能
ADC0808模数转换器的引脚功能
ADC0808/ADC0809模数转换器的引脚功能     IN0~IN7:8路模拟量输入。
2-1 ~2-8:8位数字量输出端口。     A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。     ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。     D0~D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。     OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。     START:启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下     降沿启动A/D开始转换。     EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。OE端的电平由低变高,打开三态输出锁存器,将转换的结果的数字量输出到数据总线上。     CLK:时钟输入信号,0809的时钟频率范围在10~1200kHz,典型值为640kHz。     IN3-- 1 28 --IN2      IN4-- 2 27 --IN1      IN5-- 3 26 --IN0      IN6-- 4 25 --ADDA      IN7-- 5 24 --ADDB      START-- 6 23 --ADDC      EOC-- 7 22 --ALE      2ˉ5-- 8 21 --2ˉ1 MSB      OE-- 9 20 --2ˉ2      CLOCK-- 10 19 --2ˉ3      Vcc-- 11 18 --2ˉ4      REF(+)-- 12 17 --2ˉ8 LSB      END-- 13 16 --REF(-)      2ˉ7- 14 15 --2ˉ6    REF(+)、REF(-):基准电压。     Vcc:电源电压,+5V。     GND:地线输入端。
 

单片机数字温度计
3.2.4          ADC0808真值表Х
 
 





ALE

 C  B  A

接通信号


    1

0  0  0

IN0


1

0  0  1

IN1


1

0  1  0

IN2


1

0  1  1

IN3


1

1  0  0

IN4


1

1  0  1

IN5


1

1  1  0

IN6


1

1  1  1

IN7


0

Х Х Х

均不通
                                                                    
          
 3.2.5 集成芯片ADC0808及其应用
 
在单片集成A/D转换器中,逐次比较型使用较多,下面以ADC0808/0809为例介绍A/D集成芯片及其应用。
 
1、ADC0808/0809引脚及使用说明
ADC0808/0809是CMOS集成工艺制成的逐次比较型A/D转换芯片。分辨率10位,转换时间100μS,输入模拟电压范围0至6.5V,片内含8通道多路开关,锁存逻辑控制调制器,具有三态输出锁存缓冲器,能与微机兼容,输出电平与TTL、CMOS兼容。单电源+5V~6.5V工作。引脚排列见图8.20所示,各引脚功能为:
1)IN0 ~ IN7(第1~5 脚,第26 ~ 28脚):8路模拟量输入脚,可以从8个脚输入OV至+5V待转换模拟电。
2)CLOCK(第10脚):时钟CP输入端,ADC0808/0809只有在CP信号同步下, 才能进行A/D转换。时钟频率的上限是640KHZ。
3)ALE(第22脚):地址锁存允许端。
~ALE=1时地址锁存和译码部分把上面所述的CBA的值输入和译码并接通IN0   IN7之一。
当 ALE=0时,把CBA的值锁存起来。
4)START(第6脚):启动脉冲输入端,启动脉冲的上升沿清除逐次逼近寄存器SAR,下跳沿启动ADC开始转换。
~5)VDD(第11脚):电源输入端:+5V   +6.5V。
6)GND(第13脚):地
7)VREF(+)(第12脚)VREF-(第16脚):分别为基准电压的高电平和低电平端。
8)EOC(第7脚):转换结束信号端。EOC=0,表示转换正在进行,输出数据不可信。EOC=1表示转换已完成,输出数据可信。
9)BO~B7(第8、14、15、17~21脚):转换所得八位输出数据,B7是最高位,BO是最低位。
10)OE(第9脚):允许输出端。OE端控制输出锁存器的三态门。当OE=1时,转换所得的数据送到B0~B7端,当OE=0时,B0~B7脚对外呈高阻状态。
11)ADDA、ADDB、ADDC(第25~23脚):通道地址输入端。例如当CBA=001时,模拟量IN1输至ADC0808/0809,CBA=010时,IN2输入ADC0809…依次类推。 
 
 
 
 
 
3.2.6            A/D转换器的主要技术指标
1.     转换精度
分辨率——说明A/D转换器对输入信号的分辨能力。一般以输出二进制(或十进制)
 
 
数的位数表示。因为在最大输入电压一定时,输出位数愈多,量化单位愈小,分辨率愈高。
转换误差——表示A/D转换器实际输出的数字量和理论上的输出数字量之间的差别,常用最低有效位的倍数表示。
转换时间——从转换控制信号到来开始,到输出端得到稳定的数字信号所经过的时间。并行比较A/D转换器转换速度最高;逐次比较型A/D转换器次之;间接A/D转换器的速度最慢。
 
 
3.3 温度传感器AD590介绍
 
3.3.1           AD590基本功能和特点
 
     集成温度传感器是将作为感温器件的晶体管及其外围电路集成在同一芯片上的集成化温度传感器,优于分立温度传感器。 集成温度传感器实质上是一种半导体集成电路,它是利用晶体管的b-e结压降的不饱和值VBE与热力学温度T和通过发射极电流I的下述关系实现对温度的检测:
式中,K—波尔兹常数;    q—电子电荷绝对值。
集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便等优点,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0℃时输出为0,温度25℃时输出2.982V。电流输出型的灵敏度一般为1mA/K。
 
AD590是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下:
1、流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:
mA/K
式中: —流过器件(AD590)的电流,单位为mA;
T—热力学温度,单位为K。
2、AD590的测温范围为-55℃~+150℃。
3、AD590的电源电压范围为4V~30V。电源电压可在4V~6V范围变化,电流 变化1mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
4、输出电阻为710MW。

5、精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。
 
    
 
AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合。由于AD590精度高、价格低、不需辅助电源、线
性好,常用于测温和热电偶的冷端补偿。
特点:(1)由温度变化而引起的输出量的变化呈良好的线性关系 (2)不需要参考点抗
(3)抗干扰能力强 (4)互换性好,使用简单方便。因此,这类传感器已在科研,工业和家用电器方便广泛用于温度的精确测量和控制。
集成温度传感器按输出量不同可分为电压型和电流型两大类电压型传感器的特点是直接输入电压,且输出阻抗低,易与和控制电路接口,可用于温度检测等。而电流型传感器准确度更高,其中典型代表是AD59,其灵敏度为1uA/K。它是一种两端器件。使用非常方便,且抗干扰能力强。
 
 
3.3.2          AD590的管脚图
 

单片机数字温度计
VCC接直流5V电源的正端,电源的负端接地,作为传感器驱动电源,10K热敏电阻一端接温度传感器驱动电路并与输出管脚并联,另一端接地。热敏电阻可以根据外界温度自动改变自身电阻,并把这个电阻量传送给传感器内部驱动电路,即把非电量转换为电量,由输出端把这个模拟电量信号传送给A/D转换电路。
3.3.3  AD590温度特性
 图6  AD590的温度特性
 
3.3.4  AD590的非线性关系(图7)
注:由于PROTUES6.9仿真软件里不能仿真温度传感器,所以在仿真时用滑动变阻器
    代替温度传感器AD590进行仿真。但在做实物时用的是AD590。
4.仿真电路图及说明
4.1 总电路图(图8)
4.2 电路工作过程说明
   此电路由AT89C52单片机,四位共阳LED显示,ADC0808模/数转换芯片,红绿发光二极管各一个,滑动变阻器,脉冲电路,两个5V电源,若干导线及接地装置组成。
   由于PROTUES仿真软件里不能用传感器,所以改用滑动变阻器代替AD590热敏电阻温度传感器。
   工作过程:通过改变滑动变阻器的电阻来模拟热敏电阻感温而自动改变阻值,即为整个电路的输入信号,这个电量经过模数转换电路ADC0808后,ADC0808把它转换为数字量信号,作为单片机的输入信号,四位LED输出七段码接单片机P1口,四个位控码接单片机的P2.0——P2.3脚。P3.0接红色发光二极管,作为上限温度报警,P3.1脚接绿色发光二极管,作为下限温度报警。P3.6脚接ADC0808的OE脚,P3.7接ADC0808的START脚。脉冲信号接ADC0808的CLOCK。+5V电源接ADC0808的VREF(+),作为ADC0808的驱动电源。作为产生输入信号的滑动变阻器也要接+5V电源。四位七段LED显示中,第一位如果温度在小于0度时显示“—”号,在大于0度小于100时显示0,大于100时显示1。第二三位根据输出量的多少就显示多少,第四位显示“C”,表示温度。
若图片无法显示请联系站长QQ3710167
 

单片机数字温度计
序流程图
 
5.1  主程序流程图如下
图10  上下限报警程序流程图
 
 若图片无法显示请联系QQ3710167
 
 
6. 附程序
 
#include
int code0[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x3f,0xc6};
sbit p30=P3^0;sbit p31=P3^1;sbit p32=P3^2;
void delay(int k)
{while(k--);
}
void display(unsigned    char n1,n2,n3,n4)
{int i;for(i=5;i>0;i--)
{ P1=code0[0];
  P2=0x01;delay(5);P1=code0[n1];delay(500);
  P2=0x02;delay(5);P1=code0[n2];delay(500);
  P2=0x04;delay(5);P1=code0[n3];delay(500);
  P2=0x08;delay(5);P1=code0[n4];delay(500);
  P2=0;}
}
main()
{unsigned char    n1=0,n2,n3,n4;
int s=0;    
for(;;)
{P2=0;P3=0;P3=0x80;delay(10);P3=0x40;s=P0;s=s-60;
if(s>0) {n4=11;n1=s/100;n2=s%100/10;n3=s%10;display(n1,n2,n3,n4);if(s>110) {p31=0;p30=1;delay(1000);}
}
if(s<0)
{s=-s;
n2=s/10;n3=s%10;n4=11;n1=10;
display(n1,n2,n3,n4);if(s>50){p30=0; p31=1;delay(1000);}}
}
}
 

单片机数字温度计
7. 小结与体会
 
         通过两个星期的单片机课程设计,让我们更系统的掌握了MCS51单片机的编程与应用,在实验中我们三人一组,通过“总—分—总”的合作方式,即题目选定后,先在一起讨论方案,确定一个思路,然后把细节工作分成三个方面,三人各负其责,最后等各人的工作基本完成了,三个人再在一起讨论没解决的问题。
        我们的工作分成四个环节。第一个环节就是完成软件编程,先编好实现基本功能的程序,再逐步完善所有的功能,在KEIL中调试,编译。在编程调试的过程中,另外的人可根据事先确定的方案在PROTUES里画好仿真电路图。第二个环节是把编译好的程序烤到PROTUES里,进行初步仿真。第三个环节就是三个人一起找出出现错误结果的原因,然后改正程序或电路图中的错误。直到仿真成功,才能进入第四个环节的工作,就是到实验室领器件做成实物。
      在写程序,连电路仿真图,进行仿真,做实物这些过程中,我们遇到了许多问题,有的是简单的问题,通过检查可以找出来,比如程序中的语法错误。有的是程序中的逻辑错误及电路连线的错误。我们通过老师的指导和同学的帮助,基本上可以顺利解决问题。在做实物的过程中,遇到的问题是最大的。在这个过程中,我们班的几个硬件高手给了我们三个人很大的帮助。
      总之,我们从确定方案到做硬件的过程中,成功与失败随时伴随着我们。我们已经从学单片机的基本书本知识上升到了灵活运用。这是我们三个齐心努力的结果。两个礼拜的时间,我们交上了一份较满意的答卷。
实物图请联系QQ3249144
附器件清单:
     AT89S52单片机1片,    ADC0809 1片
四位LED显示1个,     滑动变阻器1个
面模板2块,            发光二极管红绿各1个
     排线若干,              导线若干 
  • 上一篇资讯: 智能数字控制系统
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师