论文 2.docx
《论文 2.docx》由会员分享,可在线阅读,更多相关《论文 2.docx(36页珍藏版)》请在冰豆网上搜索。
论文2
本科生毕业论文
基于单片机的数字温度计设计
院系电气信息工程学院
专业电子信息工程
班级
学号
学生姓名
联系方式
指导教师职称助教(硕士)
2012年5月
独创性说明
本人郑重声明:
所呈交的毕业论文(设计)是本人在指导老师指导下取得的研究成果。
除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写的研究成果。
与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中作了明确的说明并表示了谢意。
签名:
年 月 日
授权声明
本人完全了解许昌学院有关保留、使用本科生毕业论文(设计)的规定,即:
有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。
本人授权许昌学院可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。
本人论文(设计)中有原创性数据需要保密的部分为(如没有,请填写“无”):
签名:
年 月 日
指导教师签名:
年 月 日
摘要
本设计介绍以AT89C51单片机作为控制器,以数字温度传感器DS18B20作为温度采集器的数字温度计。
用户可自行设置温度的上下限,超出用户设置的上下限时可以进行报警。
文中先对各个模块进行分析和设计,并进行流程图的绘制,根据流程图写出C语言程序,最后在KEIL软件上进行编译、链接,在Proteus软件环境中进行仿真,达到了预期效果。
关键词:
温度测量;单片机;DS18B20;数码管
ABSTRACT
ThisdesignisintroducesadigitaltemperaturethermometerwhichusetheAT89C51SCMasthecontrollerandthedigitaltemperaturesensorDS18B20asthetemperaturecollector.Usercansettheupperandlowerlimitsbyhimself.Ifthetemperatureisbeyondtherestraint,itcanalarm.Firstly,thispaperanalysesanddesignseachsub-module.ThendesignflowchartandwriteClanguageprogramsaccordingtotheflowchart.Finally,linksandcompilesaremadeinKeil,meanwhile,simulationsaremadeontheProteus.Theexpectedeffectsareachieved.
Keywords:
Temperaturemeasurement;AT89C51SCM;DS18B20;Digitaltube
目录
1绪论1
1.1课题背景及研究意义1
1.2课题设计主要工作2
1.3温度传感器的发展背景2
2总体设计方案2
2.1设计方案3
2.2设计原理及组成4
3系统硬件电路的设计4
3.1AT89C51单片机介绍4
3.1.1AT89C51的基本特性4
3.1.2AT89C51引脚说明5
3.1.3芯片擦出7
3.2液晶显示模块简介7
3.2.1液晶模块功能介绍7
3.2.2LM016L引脚介绍8
3.3温度传感器的工作原理9
3.3.1DS18B20概述9
3.3.2温度的读取11
3.3.3DS18B20的读写操作12
3.3.4DS18B20测温原理13
3.3.5高速暂存存储器14
3.3.6DS18B20的单总线读/写时序15
3.4系统硬件总电路16
4数字温度计软件设计16
4.1DS18B20模块17
4.2程序总流程图18
5系统的调试与仿真18
5.1Proteus软件简介18
5.2KEIL软件简介19
5.3系统的调试与实现19
5.4仿真结果20
6总结22
参考文献23
附录24
致谢31
1绪论
1.1课题背景及研究意义
随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。
传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。
温度是工业对象中的一个重要的被控参数。
然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。
因此对数据采集的精度和采用的控制方法也不相同。
温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。
数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观察。
数字温度计根据使用的传感器的不同,AD转换电路,及处理单元的不同,它的精度,稳定性,测温范围等都有区别,这就要根据实际情况选择符合规格的数字温度计。
本设计涉及两个方面的内容:
一是单片机技术,二是数字化温度传感器技术。
本设计选择Dallas半导体公司生产的DS18B20作为传感器进行温度测量,采用单片机对温度进行控制,不仅具有控制方便、简单和灵活等优点,而且可以大幅度的提高温度控制的技术指标。
在数字、智能化方面有广泛的用途。
1.2课题设计主要工作
本课题的研究重点是设计一种基于单片机的数字温度计控制系统。
利用数字温度传感器DS18B20,此传感器课读取被测量温度值,进行转换。
主要工作如下:
(1)温度测试基本范围0℃—100℃。
(2)精度误差小于1℃。
(3)LED液晶显示。
(4)可以设定温度的上下限报警功能。
(5)实现报警提示。
本文是基于AT89C51单片机,采用数字温度传感器DS18B20,利用DS18B20不需要A/D转换,课直接进行温度采集显示,报警的数字温度计设计。
包括传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。
1.3温度传感器的发展背景
温度是一种最基本的环境参数,人们的生活与温度息息相关,因此研究温度的测量方法在人们的生活中起着不可缺少的作用。
测量温度的关键是温度传感器,温度传感器的发展历程经历了三个阶段:
(1)传统的分立式温度传感器,
(2)模拟集成温度传感器,(3)智能温度传感器。
国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。
目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它的特点是能输出温度数据及相关温度控制量,适配各种微控制器,并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。
本文将介绍智能集成温度传感器DS18B20的结够特征及控制方法,与传统的温度计相比,其具有读数方便、测温范围广、测温准确、输出温度采用数字显示,主要用于对测温要求比较准确的场所或科研实验室使用。
2总体设计方案
2.1设计方案
采用数字温度芯片DS18B20测量温度,输出信号全数字化。
便于单片机处理及控制,省去传统的测温方法的很多外围电路。
且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。
在0—100摄氏度时,最大线形偏差小于1摄氏度。
DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。
这样,测温系统的结构就比较简单,体积也不大。
采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。
既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据,另外AT89C52在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。
该系统利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。
该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。
2.2设计原理及系统组成
利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性,模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警。
同时处理后的数据送到LED中显示。
本课题以是89C52单片机为核心设计的一种数字温度控制系统,系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。
系统框图主要由主控制器、单片机复位、报警按键设置、时钟振荡、LED显示、温度传感器组成。
系统框图如图2-1所示:
图2-1系统基本方框图
1.主控制器
单片机AT89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
2.显示电路
显示电路采用LED液晶显示数码管,从P3口RXD,TXD串口输出段码。
显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p3口的RXD,和TXD,串口的发送和接收,四只数码管采用74LS164右移寄存器驱动,显示比较清晰。
3.温度传感器
温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。
DS18B20输出信号全数字化。
便于单片机处理及控制,在0—100摄氏度时,最大线形偏差小于1摄氏度,采用单总线的数据传输,可直接与计算机连接。
用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。
3系统硬件电路的设计
3.1AT89C51单片机介绍
3.1.1AT89C51基本特性
AT89C51是一种低功耗,高性能CMOS8位单片机。
片内带4K字节闪存可编程可擦除只读存储器,其可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和80C51引脚相兼容。
由于将多功能8位中央CPU和闪烁存储器组合在单个芯片中,片上Flash允许程序存储器在系统可编程,也适用于常规编程器,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
AT89C51具有以下特点:
40个引脚(具体引脚见图2-2),4K字节可编程Flash片内程序存储器,128*8位内部RAM,32个可编程双向输入/输出(I/O)口,5个中断源,2个16位的可编程定时/计数器,三级程序存储器锁定,可编程的串行通道,片内振荡器和时钟电路。
另外AT89C51还具有低功耗闲置和掉电模式,可通过软件设置省电模式,在空闲模式下,CPU暂停工作,而RAM计算器和串行口以及外中断系统可以继续工作掉电模式会冻结振荡器进而保持RAM数据,停止单片机的其它功能直到外中断激活或者硬件复位动作。
图3-1AT89C51实物图、管脚图
3.1.2管脚说明:
VCC:
+5V电源。
GND:
接地。
P0口:
P0口是一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,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.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位信号。
当输入的复位信号延续2个周期以上的高电平时有效,用于完成单片机的复位操作。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2不接。
图3-2AT89C5电路仿真图
3.1.3芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
3.2液晶模块简介
3.2.1模块的功能介绍
LM016L液晶模块采用HD44780控制器,hd44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。
IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系,可以查看参考文献(30)中的表4.CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM但愿,LM016L液晶模块的引脚图如图3-2所示
图3-2 LM016L液晶模块的引脚
3.2.2LM016L引脚介绍:
Vss(1脚):
一般接地。
Vdd(2脚):
接电源。
Vee(3脚):
液晶显示器对比度调整端,接电源时对比度最弱,接地时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。
RS(4脚):
RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。
R/W(5脚):
R/W为读写信号线,高电平
(1)时进行读操作,低电平(0)时进行写操作。
E(6脚):
E(或EN)端为使能(enable)端,下降沿使能。
DB0(7脚):
底4位三态、双向数据总线0位(最低位)。
DB1(8脚):
底4位三态、双向数据总线1位。
DB2(9脚):
底4位三态、双向数据总线2位。
DB3(10脚):
底4位三态、双向数据总线3位。
DB4(11脚):
高4位三态、双向数据总线4位。
DB5(12脚):
高4位三态、双向数据总线5位。
DB6(13脚):
高4位三态、双向数据总线6位。
DB7(14脚):
高4位三态、双向数据总线7位(最高位)(也是busyflang)。
寄存器选择控制如表4-1。
表4-1寄存器选择控制
RS
R/W
操作说明
0
0
写入指令寄存器(清除屏等)
0
1
读busyflag(DB7),以及读取位址计数器(DB0~DB6)值
1
0
写入数据寄存器(显示各字型等)
1
1
从数据寄存器读取数据
如图3-3所示。
用89C51的P2口作为数据线,用P3.2、P3.1、P3.0分别作为LCD的E、R/W、RS。
其中E是下降沿触发的片选信号,R/W是读写信号,RS是寄存器选择信号本模块设计要点如下:
显示模块初始化:
首先清屏,再设置接口数据位为8位,显示行数为1行,字型为5×7点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。
向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。
图3-3 液晶模块与单片机接口
3.3温度传感器的工作原理
3.3.1DS18B20概述
DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。
DS18B20测温原理:
低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
DS18B20功能特点:
(1)独特的单线接口方式,仅需一个端口引脚可实现微处理器与DS18B20的双向通信;
(2)使用范围更宽,电源电压范围为3~5.5V,在寄生电源方式下可由数据线供电;
(3)在使用DS18B20时不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;
(4)用户可定义的非易失性温度报警设置;
(5)测温范围为-55~+125℃。
在-10~85℃时温度分辨率为±0.5℃,DS18B20温度传感器可完成对温度的测量,并用16位符号扩展的二进制补码的形式输出温度值,DS18B20输出的数字量与所测温度的对应关系如表3-2所列。
表3-2温度/数据关系
温度/℃
数据输出(二进制)
数据输出(十六进制)
+125
0000011111010000
07d0H
+85
0000010101010000
0550H
+10.125
00000000120100010
00a2H
+0.5
0000000000001000
0008H
0
0000000000000000
0000H
-0.5
1111111111111000
fff8H
-10.125
1111111101011110
ff5eH
-55
1111110010010000
fc90H
DS18B20有4个主要的数据部件:
1.光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。
64位光刻ROM的排列是:
开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。
光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
2.DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
3.DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL