基于51单片机的数字温度计设计.docx
《基于51单片机的数字温度计设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的数字温度计设计.docx(20页珍藏版)》请在冰豆网上搜索。
基于51单片机的数字温度计设计
毕业论文设计
题目:
基于51单片机的数字温度计设计
姓名:
所在系部:
班级名称:
学号:
指导老师:
2010年12月
设计(论文)任务书毕业
设计(论文)题目:
基于51单片机的数字温度计设计
指导教师:
职称:
类别:
毕业设计
学生:
学号:
设计(论文)类型:
论文
专业:
班级:
是否隶属科研项目:
否
1、设计(论文)的主要任务及目标
本设计是以AT89S51单片机为核心,利用DS18B20温度传感器作为温度采集点,通过3个SM4105共阳极数码管以及74LS244等元件组成的数字温度计。
此温度计能够根据温度的变化自动调节显示。
最大显示温度为100度,最小显示-10度。
2、论文的主要内容
(1)89S51单片机的原理
(2)DS18B20温度传感器结构
(3)74LS224反相器简介
(4)电路原理图
3、论文的基本要求
(1)严格按照学院机电专业毕业设计格式要求
(2)论文必须包含中英文的摘要,参考文献等
(3)论文必须从硬件和软件方面对设计内容进行阐述
(4)论文中保留有单片机的编程、软件仿真技术及系统调试方法的痕迹
(5)在附录中包有整个电子琴系统设计的电路图
(6)设计时,能正确理解电子琴系统设计的目的和要求,掌握系统设计的一般程序
(7)通过设计具有收集参考资料加以消化、归纳的能力
(8)通过设计具有调研、收集、查阅资料、分析判断确定设计/论文方案的能力
(9)通过设计具有归纳、整理技术资料,撰写技术文件的能力
(10)通过设计具有阐述论证设计/论文成果及其技术答辩的能力
4、主要参考文献
[1]张洪润.单片机应用技术教程[M].北京:
清华大学出版社,1997
[2]李广弟.单片机基础[M].北京:
北京航空航天大学出版社,2001
[3]万光毅.单片机实验与实践教程[M].北京:
北京航空航天大学出版社,2001
[4]何立名.MCS-51系列单片机应用系统设计系统配置与接口技术[M].北京:
北京航空航天大学出版社,1990
[5]蔡美琴.MCS-51单片机系统及应用[M].北京:
高等教育出版社,1992
[6]马彪.单片机应用技术[M].上海:
同济大学出版社,2009
[7]陈忠平.单片机原理及接口[M].北京:
清华大学出版社,2007
[8]李华.MCS-51系列单片机实用接口技术[M].北京:
北京航空航天大学出版社,2000
[9]韩志军,刘新民.数字温度传感器DS18B20及其应用[J].南京工程学院学报:
自然科学版,2003
(1):
9-14
[10]陈惠明,李燕华,王静滨.单片机控制手机的软硬件接口技术及应用[J].微计算机信息,2005
(1):
139-141
5、进度安排
设计(论文)个阶段任务
起至日期
1
设计原始资料的准备及系统方案的确定
2010-9-13至2010-9-17
2
控制系统硬件电路设计
2010-10-8至2010-10-30
3
软件编程及调试
2010-11-1至2010-11-25
4
撰写设计说明书,装订及答辩
2010-1-2至2010-1-8
5
合计
(10周)
摘要
本文主要介绍了一种基于AT89S51单片机和DS18B20数字温度传感器来进行测温的方法。
具体设计时,作者对AT89S51和DS18B20进行了接口电路设计,同时利用74LS244进行段码驱动、实现数码管的显示输出;并在此基础上,通过软件设计实现温度的数据采集和传输。
由于DS18B20数字温度传感器是单总线器件,与AT89S51单片机组成一个测温系统,具有线路简单、体积小等特点,并且由于是在同一根通信线上,因此可以扩展、挂接很多这样的测温系统,十分方便。
关键词:
数字温度计;AT89S51;DS18B20;74LS244
Abstract
Thispaperpresentsatemperature-measuringmethodusingSingle-ChipAT89S51andDigitalTemperatureSensorDS18B20.TheauthorhasdesignedtheinterfacecircuitforAT89S51andDS18B20.74LS244isalsousedtodrivethedevicesbyblockcodeandinthiswaytheresultsandbedisplayedthroughthedigitaldisplay.Alldatawillbecollectedandtransportedbyandesignedsoftware.TheDigitalTemperatureSensorDS18B20isamonobusdevice,butwiththecombinationofSingle-ChipAT89S51,atemperature-measuringsystemismade.Thissystemhasmanyadvantages,suchasitssimplecircuit,smallsize,etc.Thissystemalsobringsconvenience.Anumberofsystemslikethiscanbeattachedtoonlyonecommunicationlineatthesametime.Keywords:
DigitalTemperatureSensor;AT89S51;DS18B20;74LS244
第1章概述
1.1简述
单片机在测控领域中具有十分广泛的应用,它既可以直接处理电信号,也可以间接处理温度、湿度、压力等非电信号。
由于该特点,因而被广泛应用于工业控制领域。
另一方面,由于单片机的接口信号是数字信号,因此使用它来进行温度、湿度、压力等这类非电信号的信息处理,必须使用对应的传感器进行A/D或D/A转换,最后再传输给单片机进行最终的数据处理和显示。
在测温领域,人们通常使用温度传感器,将温度信息转换为电流或电压进行输出,进而完成数据的处理和显示。
本文正是基于温度传感器和单片机而构建的电路,进而完成温度的测量和显示。
温度传感器的发展经历了三个发展阶段:
①传统的分立式温度传感器
②模拟集成温度传感器
③智能集成温度传感器。
目前使用最广的是智能温度传感器(亦称数字温度传感器),是在20世纪90年代中期问世的。
它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配于各种微控制器(MCU)。
社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍了智能集成温度传感器DS18B20的结构特征及控制方法,并以此传感器为测温元件,AT89S51单片机为控制核心,构成的数字温度测量装置,并对其的工作原理及程序设计作了详细的介绍。
1.2任务描述
设计要以AT89S51单片机为核心,利用DS18B20温度传感器作为温度采集点,通过3个SM4105共阳极数码管以及74LS244等元件组成的数字温度计。
此温度计能够根据温度的变化自动调节显示。
最大显示温度为100度,最小显示-10度。
1.3设计思路
单片机的接口信号是数字信号。
要想用单片机获取温度这类非电信号的信息,必须使用温度传感器,将温度信息转换为电流或电压输出。
如果转换后的电流或电压输出是模拟信号,还必须进行A/D转换,以满足单片机接口的需要。
传统的温度检测大多以热敏电阻作为温度传感器。
但是,热敏电阻的可靠性较差、测量温度准确率低,而且还必须经专门的接口电路转换成数字信号后才能由单片机进行处理。
本文介绍一种采用数字温度传感器实现的基于单片机的数字温度计。
设计单片机数字温度计需要考虑以下3个方面:
Ø温度传感器芯片的选择;
Ø单片机和温度传感器的接口电路;
控制温度传感器实现温度信息采集以及数据传输的软件。
第2章系统主要元器件介绍
2.1单片机的选用及功能介绍
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS型8位单片机,片内含4Kbytes的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚。
它集FlashROM程序存储器,并支持可在线编程(ISP)功能;另一方面,由于价格低、因而被广泛应用于许多高性价比的场合,如工业控制、消费电子等各种控制领域,对于简单的测温系统而言,它已经足够。
单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
设计中采用89S51单片机。
其主要特性如下:
Ø与MCS-51产品指令系统完全兼容;
Ø
4K字节可编程闪烁存储器;
Ø1000擦写周期;
Ø4.0~5.5V工作电压范围;
Ø全静态工作:
0Hz-33MHz;
Ø程序存储器具有3级加密保护;
Ø128*8位内部RAM;
Ø32可编程I/O线;
Ø两个16位定时器/计数器;
Ø6个中断源和2个优先级;
Ø可编程全双工串行通道;图2.189S51单片机引脚图
Ø低功耗的闲置和掉电模式;
Ø看门狗(WDT)及双数据指针;
Ø具有JTAG接口,可方便地在线编程或在系统编程。
AT89S51单片机为40引脚双列直插式封装。
其引脚排列和逻辑符号如图2.1所示。
各引脚功能简单介绍如下:
ØVCC:
供电电压。
ØGND:
接地。
ØP0口:
P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。
当P1口的管脚写“1”时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高。
ØP1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
ØP2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。
作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
ØP3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口:
P3.0RXD(串行输口);P3.1TXD(串行输出口);P3.2INT0(外部中断0);P3.3INT1(外部中断1);P3.4T0(定时器0外部输入);P3.5T1(定时器1外部输入);P3.6WR(外部数据存储器写选通);P3.7RD(外部数据存储器读选通)。
同时P3口同时为闪烁编程和编程校验接收一些控制信号。
ØRST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ØALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
ØPSEN:
外部程序存储器的选通信号。
在由外部程序存储器取址期间,每个机器周期PSEN两次有效。
但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。
ØEA/VPP:
当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
ØXTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
ØXTAL2:
来自反向振荡器的输出。
2.2DS18B20温度传感器介绍
DS18B20是美国DALLAS半导体公司推出的一款智能温度传感器。
与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式,可以分别在93.75~750ms内完成9~12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需一根线读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无须额外电源。
因而使用DS18B20可使系统结构更趋简单,可靠性更高。
它在测温精度、转换时间、传输距离、分辨率等方面都给用户的使用带来了方便,效果也令人满意。
其主要特点如下:
Ø独特的单线接口方式:
DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
ØDS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。
Ø可用数据线供电,电压范围:
+3.0~+5.5V。
Ø测温范围:
-55℃~+125℃,固有测温分辨率为0.5℃。
Ø通过编程可实现9~12位的数字读书方式。
Ø用户可自设非易失性的报警上下限值。
Ø支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。
Ø负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作
DS18B20的管脚排列、各种封装形式如图2.2所示
图2.2DS18B20的外形及管教排列
2.2.1引脚功能
DS18B20为三引脚元件,外形同普通三极管,见图2.1,引脚功能详见表2-1
表2-1DS18B20详细引脚功能描述
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
2.2.2DS18B20内部结构
DS18B20主要由64位ROM、温度传感器、非挥发的温度报警触发器TH和TL及配置寄存器等组成,见图2.3。
图2.3DS18B20内部结构图
1)64位光刻ROM。
开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,非挥发的温度报警触发器TH和TL,可通过软件写入用户报警上下限值。
64位闪速ROM的结构如下表2-2所示。
表2-2ROM结构
8b位检验CRC
48位序列号
8位工厂代码(10H)
MSBLSBMSBLSBMSBLSB
2)9字节高速缓存存储器,结构如表2-3所示
表2-3DS18B20内部存储器结构
字节0
温度测量值LSB(50H)
字节1
温度测量值MSB(50H)
E2PROM
字节2
TH高温寄存器
----
TH高温寄存器
字节3
TL低温寄存器
----
TL低温寄存器
字节4
配位寄存器
----
配位寄存器
字节5
预留(FFH)
字节6
预留(0CH)
字节7
预留(IOH)
字节8
循环冗余码校验(CRC)
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的E2PRAM。
高速暂存RAM的结构为8字节的存储器。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
它的内部存储器结构和字节定义如表2-4和表2-5所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式。
表2-4DS18B20字节定义
TM
R1
R0
1
1
1
1
1
DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,详见表2-5。
表2-5DS18B20分辨率设置
R1
R0
分辨率/位
温度最大转向时间/ms
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
由表2-5可见,分辨率越高,所需要的温度数据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
3)温度数据值格式。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。
温度值格式见表2-6所示。
表2-6温度数据值格式
23
22
21
20
2-1
2-2
2-3
2-4
LS字节
S
S
S
S
S
26
25
24
MS字节
其中“S”为标志位,对应的温度计算:
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表2-7是一部分温度值对应的二进制温度数据。
表2-7 一部分温度对应值表
温度/℃
二进制表示
十六进制表示
+125
0000011111010000
07D0H
+85
0000010101010000
0550H
+25.0625
0000000110010000
0191H
+10.125
0000000010100001
00A2H
+0.5
0000000000000010
0008H
0
0000000000001000
0000H
-0.5
1111111111110000
FFF8H
-10.125
1111111101011110
FF5EH
-25.0625
1111111001101111
FE6FH
-55
1111110010010000
FC90H
2.2.3DS18B20的工作原理
工作时,主机控制DS18B20使各种命令对DS18B20进行操作:
初始化DS18B20,发ROM功能指令、发存储器操作指令。
这些ROM和RAM指令集如表2-8和表2-9所示。
表2-8ROM指令表
指令
约定代码
功能
读ROM
33H
读DS18B20ROM中的编码
匹配ROM
55H
发出此命令之后,接着发出64位ROM编码,访问单线总线上与该编码相对应的DS18B20使之作出响应,为下一步对该DS18B20的读写作准备
搜索ROM
0F0H
用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备
跳过ROM
0CCH
忽略64位ROM地址,直接向DS18B20发温度变换命令,适用于单片工作。
报警搜索
命令
0ECH
执行后,只有温度超过设定值上限或者下限的片子才做出响应
表2-9RAM指令表
温度变换
44H
启动DS18B20进行温度转换,转换时间最长为500MS,结果存入内部9字节RAM中
读暂存器
0BEH
读内部RAM中9字节的内容
写暂存器
4EH
发出向内部RAM的第3,4字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据
复制暂存器
48H
将E2PRAM中第3,4字节内容复制到E2PRAM中
重调E2PRAM
0BBH
将E2PRAM中内容恢复到RAM中的第3,4字节
读供电
方式
0B4H
读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”
根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:
1.每一次读写之前都必须要对DS18B20进行复位;
2.复位成功后发送一条ROM指令;
3.最后发送RAM指令,这样才能对DS18B20进行预定的操作。
复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待15~60微秒左右后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。
其工作时序包括初始化时序、写时序和读时序,具体工作方法如图2.4,2.5,2.6所示。
(1)初始化时序
图2.4初始化时
总线上的所有传输过程都是以初始化开始的,主机响应应答脉冲。
应答脉冲使主机知道,总线上有从机设备,且准备就绪。
主机输出低电平,保持低电平时间至少480us,以产生复位脉冲。
接着主机释放总线,4.7KΩ上拉电阻将总线拉高,延时15~60us,并进入接受模式,以产生低电平应答脉冲,若为低电平,再延时480us。
(2)写时序
图2.5写时序
写时序包括写0时序和写1时序。
所有写时序至少需要60us,且在2次独立的写时序之间至少需要1us的恢复时间,都是以总线拉低开始。
写1时序,主机输出低电平,延时2us,然后释放总线,延时60us。
写0时序,主机输出低电平,延时60us,然后释放总线,延时2us。
(3)读时序