基于51单片机的数字温度计设计 大学论文.docx
《基于51单片机的数字温度计设计 大学论文.docx》由会员分享,可在线阅读,更多相关《基于51单片机的数字温度计设计 大学论文.docx(33页珍藏版)》请在冰豆网上搜索。
基于51单片机的数字温度计设计大学论文
基于51单片机的数字温度计设计
摘要随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。
这里设计的数字温度计采用DS18B20为传感器,选用AT89C51型单片机作为主控制器件,通过4位一体共阳极的数码管进行温度显示。
与热敏电阻为温度敏感元件的温度计相比,该数字温度计具有读数方便,测温范围广,测温精确等特点。
另外,还在该温度计中加入了秒表计时的功能,能够实现“分,秒”的计时显示,并且,两种功能能够用按键实现切换。
关键词:
AT89C51;DS18B20传感器;温度;秒表
Abstract:
Withthedevelopmentofmoderninformationtechnologyandtheprogressiveofthetraditionalindustrialtransformation.UsingDS18B20asthesensorofthedigitalthermometer,AT89C51microcontrollerasthemaincontroldevice,andthefourdigitaltubeareusedtodisplay.Comparedwiththethermometerthermistorfortemperaturesensitiveelement,thedigitalthermometerhavemanyadvantages,forexample,it’scangettemperaturemoreconvenient,wider,andmoreaccurate.Inadition,
Thedigitalthermometeralsoasastopwatch,accordingtotheminutesandseconds.Andwiththepressingofthekeys,wecanchoosethedifferentfunctionsofthedigitalthermometer.
Keywords:
AT89C51;DS18B20;thetemperature;stopwatch
数字温度计设计
1系统硬件设计方案
作品主要利用AT89C51单片机、DS18B20数字温度传感器而设计的数字温度计,实现对空气温度的测量。
图1系统原理结构框图
如图1所示,该温度计通过ds18b20数字传感器进行采集,将数据传送给单片机,程序通过按键对单片机进行操作,然后再数码管上显示。
1.1单片机选择
AT89C51作为温度测试系统设计的核心器件。
该器件是INTEL公司生产的MCS一5l系列单片机中的基础产品,采用了可靠的CMOS工艺制造技术,具有高性能的8位单片机,属于标准的MCS—51的CMOS产品。
不仅结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,而且继承和扩展了MCS—48单片机的体系结构和指令系统。
单片机小系统的电路图如图2所示。
图2单片机小系统电路
AT89C51单片机的主要特性:
(1)与MCS-51兼容,4K字节可编程闪烁存储器;
(2)灵活的在线系统编程,掉电标识和快速编程特性;
(3)寿命为1000次写/擦周期,数据保留时间可10年以上;
(4)全静态工作模式:
0Hz-33Hz;
(5)三级程序存储器锁定;
(6)128*8位内部RAM,32可编程I/O线;
(7)两个16位定时器/计数器,6个中断源;
(8)全双工串行UART通道,低功耗的闲置和掉电模式;
(9)看门狗(WDT)及双数据指针;
(9)片内振荡器和时钟电路;
1.2温度传感器介绍
DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。
可选更小的封装方式,更宽的电压适用范围。
分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。
温度传感器DS18B20引脚如图3所示。
8引脚封装TO-92封装
图3温度传感器
引脚功能说明:
NC:
空引脚,悬空不使用;
VDD:
可选电源脚,电源电压范围3~5.5V。
当工作于寄生电源时,此引脚必须接地。
DQ:
数据输入/输出脚。
漏极开路,常态下高电平。
GND:
为电源地
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器(如图4)。
图4DS18B20内部结构图
光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。
暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。
图5温度寄存器格式
第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。
第六、七、八个字节用于内部计算。
第九个字节是冗余检验字节。
该字节各位的意义如下:
TMR1R011111
低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。
在DS18B20出厂时该位被设置为0,用户不要去改动。
R1和R0用来设置分辨率,如表1所示:
(DS18B20出厂时被设置为12位)
表1DS18B20温度转换时间表
R1
R0
分辨率/位
温度最大转向时间
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
1.3温度传感器与单片机的连接
温度传感器的单总线(数据线DQ)与单片机的/P3.3口连接(如图5)。
图6DS18B20和单片机的接口连接
程序设计时通过P3.3口对DS18B20进行操作,实现初始化和温度读取等功能。
1.4复位电路
MCS-51单片机的复位是靠外部电路实现的。
MCS-51单片机工作后,只要在它的RESET引线上加载10ms以上的高电平,单片机就能有效地复位。
上电复位:
上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。
为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。
图7复位电路
1.5时钟电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:
一种是内部时钟方式,另一种为外部时钟方式。
设计采用的是内部时钟方式。
图8时钟电路
1.6按键电路
按键的开关状态通过一定的电路转换为高、低电平状态。
当按键按下时,在单片机的相应I/O口产生负脉冲,闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的常长短与开关的机械特性有关,一般在5-10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动;消抖一般是通过在程序中给一定的延时再检测信号。
本设计中采用的是独立式按键,每个按键的工作状态不会产生互相影响,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,这样只需要对单片机单个I/O口进行操作就能实现按键功能(如图9)。
图9按键电路
1.7显示电路
LED数码管使用发光二极管构成显示字型,LED数码管连接方式分类:
共阴极数码管和共阳极数码管(如图10)。
共阴极数码管:
将数码管阴极接地,相应段上的阳极接正电压。
共阳极数码管:
将数码管阳极接地,相应段上的阴极接正电压。
图10共阴和共阳数码管
根据数码管连接方式的不同,在应用中,要实现数字显示,则需要用不同的编码,从低到高位为:
abcdefgh。
如:
数字“5”,需要相应二极管亮的是:
afgcd;共阳极编码为:
10010010(0x92),共阴极则正好相反。
表20~9共阳极数码管编码(不含小数点)
需要显示数字
编码
需要显示数字
编码
0
c0H(11000000)
5
92H(10010010)
1
f9H(11111001)
6
82H(10000010)
2
a4H(10100100)
7
f8H(11111000)
3
b0H(10110000)
8
80H(10000000)
4
99H(10011001)
9
90H(10010000)
同理可得0~9共阳极数码管编码(含小数点):
40H,79H,24H,30H,19H,12H,02H,78H,00H,10H
本设计中采用的是4位一体的数码管(图11),与单个数码管相比,有4个位选线A1,A2,A3,A4,通过接高电平实现对每一位的操作,数据线的原理则与单个数码管一样。
图11四位一体数码管引脚图
如图12,数码管上拉电阻采用共阳极方式,以单片机P2口为位选信号,由于直接使用单片机I/O口不足以驱动数码管,因此在显示电路上加入了三级管驱动,采用的是s9012三极管,s9012是PNP型的三级管,基极通过1k电阻接单片机的P2口,发射极接正电压,集电极接数码管位选信号;由于是PNP型三级管,只有当单片机P2口为低时,数码管的相应的位选才选中。
图12显示电路图
1.8电源电路和系统供电
由于该系统需要稳定的5V电源,因此必须采用能满足电压、电流和稳定性要求的电源。
设计采用外部的5V电源供电,在电源两端并连上了两个电容(如图13)。
图13电源电路图
设计中外部供电采用的是Mini-usb(B型)接口,由于并没有用到数据的传输,只是单纯供电,所以设计中只用到了Pin1(VBus)和Pin5(GND)。
图14mini-usb引脚图
对系统供电的设计,可采用以下方法:
直流稳压电源,单片机开发板,手机电池,迷你USB接口;其中利用迷你USB接口供电可以通过手机充电器、电脑USB接口等,可以让温度计在使用起来更方便,这也是本设计中的特点之一。
2软件设计