1、论文 2本科生毕业论文基于单片机的数字温度计设计 院 系 电气信息工程学院 专 业 电子信息工程 班 级 学 号 学 生 姓 名 联 系 方 式 指 导 教 师 职称 助教(硕士) 2012年5月独 创 性 说 明本人郑重声明:所呈交的毕业论文(设计)是本人在指导老师指导下取得的研究成果。除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写的研究成果。与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中作了明确的说明并表示了谢意。签名: 年 月 日授 权 声 明本人完全了解许昌学院有关保留、使用本科生毕业论文(设计)的规定,即:有权保留并向国家有关部门或机构送交
2、毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。本人授权许昌学院可以将毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设计)。本人论文(设计)中有原创性数据需要保密的部分为(如没有,请填写“无”): 签名: 年月 日指导教师签名: 年月 日摘 要本设计介绍以AT89C51单片机作为控制器,以数字温度传感器DS18B20作为温度采集器的数字温度计。用户可自行设置温度的上下限,超出用户设置的上下限时可以进行报警。文中先对各个模块进行分析和设计,并进行流程图的绘制,根据流程图写出C语言程序,最后在KEIL软件上进行编译、链接
3、,在Proteus软件环境中进行仿真,达到了预期效果。关键词:温度测量;单片机;DS18B20;数码管ABSTRACTThis design is introduces a digital temperature thermometer which use the AT89C51 SCM as the controller and the digital temperature sensor DS18B20 as the temperature collector. User can set the upper and lower limits by himself. If the tempe
4、rature is beyond the restraint, it can alarm. Firstly, this paper analyses and designs each sub-module. Then design flow chart and write C language programs according to the flow chart. Finally, links and compiles are made in Keil, meanwhile , simulations are made on the Proteus. The expected effect
5、s are achieved. Key words: Temperature measurement; AT89C51 SCM; DS18B20; Digital tube 目 录1 绪论 11.1 课题背景及研究意义 11.2 课题设计主要工作 21.3 温度传感器的发展背景 22 总体设计方案 22.1 设计方案 32.2 设计原理及组成 43 系统硬件电路的设计 43.1 AT89C51单片机介绍 43.1.1 AT89C51的基本特性 43.1.2 AT89C51引脚说明 53.1.3 芯片擦出 73.2 液晶显示模块简介 73.2.1 液晶模块功能介绍 73.2.2 LM016L引脚
6、介绍 83.3 温度传感器的工作原理 93.3.1 DS18B20概述 93.3.2 温度的读取 113.3.3 DS18B20的读写操作 123.3.4 DS18B20测温原理 133.3.5高速暂存存储器 143.3.6 DS18B20的单总线读/写时序 153.4 系统硬件总电路 164 数字温度计软件设计 164.1 DS18B20模块 174.2 程序总流程图 185 系统的调试与仿真 185.1Proteus软件简介 185.2 KEIL软件简介 195.3 系统的调试与实现 195.4 仿真结果 20 6 总结 22参考文献 23附 录 24致 谢 311 绪论1.1 课题背景及
7、研究意义随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到电力、冶金、化工、建材、机械、食品、石油等各个行业。传统的温度采集方法不仅费时费力,而且精度差,单片机的出现使得温度的采集和数据处理问题能够得到很好的解决。温度是工业对象中的一个重要的被控参数。然而所采用的测温元件和测量方法也不相同;产品的工艺不同,控制温度的精度也不相同。因此对数据采集的精度和采用的控制方法也不相同。温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大
8、的差距。数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观察。数字温度计根据使用的传感器的不同,AD转换电路,及处理单元的不同,它的精度,稳定性,测温范围等都有区别,
9、这就要根据实际情况选择符合规格的数字温度计。 本设计涉及两个方面的内容:一是单片机技术,二是数字化温度传感器技术。本设计选择Dallas半导体公司生产的DS18B20作为传感器进行温度测量,采用单片机对温度进行控制,不仅具有控制方便、简单和灵活等优点,而且可以大幅度的提高温度控制的技术指标。在数字、智能化方面有广泛的用途。 1.2课题设计主要工作本课题的研究重点是设计一种基于单片机的数字温度计控制系统。利用数字温度传感器DS18B20,此传感器课读取被测量温度值,进行转换。主要工作如下:(1) 温度测试基本范围0100。(2) 精度误差小于1。 (3) LED液晶显示。 (4) 可以设定温度的
10、上下限报警功能。(5) 实现报警提示。本文是基于AT89C51单片机,采用数字温度传感器DS18B20,利用DS18B20不需要A/D转换,课直接进行温度采集显示,报警的数字温度计设计。包括传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。1.3温度传感器的发展背景温度是一种最基本的环境参数,人们的生活与温度息息相关,因此研究温度的测量方法在人们的生活中起着不可缺少的作用。测量温度的关键是温度传感器,温度传感器的发展历程经历了三个阶段:(1)传统的分立式温度传感器,(2)模拟集成温度传感器,(3)智能温度传感器。国际上新型温度传感器正从模拟式向数字式,从集成化向智能化
11、、网络化的方向飞速发展。 目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它的特点是能输出温度数据及相关温度控制量,适配各种微控制器,并且它是在硬件的基础上通过软件来实现测试功能的,其智能化程度也取决于软件的开发水平。本文将介绍智能集成温度传感器DS18B20的结够特征及控制方法,与传统的温度计相比,其具有读数方便、测温范围广、测温准确、输出温度采用数字显示,主要用于对测温要求比较准确的场所或科研实验室使用。 2 总体设计方案2.1 设计方案 采用数字温度芯片DS18B20 测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的
12、物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100 摄氏度时,最大线形偏差小于1 摄氏度。DS18B20 的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器AT89C52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大。采用51 单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC 机通信上传数据,另外AT89C52 在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟
13、。该系统利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。该系统扩展性非常强,它可以在设计中加入时钟芯片DS1302以获取时间数据,在数据处理同时显示时间,并可以利用AT24C16芯片作为存储器件,以此来对某些时间点的温度数据进行存储,利用键盘来进行调时和温度查询,获得的数据可以通过MAX232芯片与计算机的RS232接口进行串口通信,方便的采集和整理时间温度数据。2.2 设计原理及系统组成 利用温度传感器DS18B20可以直接读取被测温度值,进行转换的特性,模拟温度值经过DS18B20处理后转换为数字值,然后
14、送到单片机中进行数据处理,并与设置的温度报警限比较,超过限度后通过扬声器报警。同时处理后的数据送到LED中显示。 本课题以是89C52单片机为核心设计的一种数字温度控制系统,系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。系统框图主要由主控制器、单片机复位、报警按键设置、时钟振荡、LED显示、温度传感器组成。系统框图如图2-1所示:图2-1 系统基本方框图1. 主控制器单片机AT89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2. 显示电路显示电路采用L
15、ED液晶显示数码管,从P3口RXD,TXD串口输出段码。显示电路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p3口的RXD,和TXD,串口的发送和接收,四只数码管采用74LS164右移寄存器驱动,显示比较清晰。3. 温度传感器温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。DS18B20输出信号全数字化。便于单片机处理及控制,在0100 摄氏度时,最大线形偏差小于1 摄氏度,采用单总线的数据传输,可直接与计算机连接。用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。 3
16、系统硬件电路的设计3.1 AT89C51单片机介绍3.1.1 AT89C51基本特性AT89C51是一种低功耗,高性能CMOS8位单片机。片内带4K字节闪存可编程可擦除只读存储器,其可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和80C51引脚相兼容。由于将多功能8位中央CPU和闪烁存储器组合在单个芯片中,片上Flash允许程序存储器在系统可编程,也适用于常规编程器,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51具有以下特点:40个引
17、脚(具体引脚见图2-2),4K字节可编程Flash片内程序存储器,128*8位内部RAM,32个可编程双向输入/输出(I/O)口,5个中断源,2个16位的可编程定时/计数器,三级程序存储器锁定,可编程的串行通道,片内振荡器和时钟电路。另外AT89C51还具有低功耗闲置和掉电模式,可通过软件设置省电模式,在空闲模式下,CPU暂停工作,而RAM计算器和串行口以及外中断系统可以继续工作掉电模式会冻结振荡器进而保持RAM数据,停止单片机的其它功能直到外中断激活或者硬件复位动作。 图3-1 AT89C51实物图、管脚图3.1.2 管脚说明:VCC:+5V电源。 GND:接地。 P0口:P0口是一个8位漏
18、级开路双向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口缓冲器可接收,输
19、出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将
20、输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示(括号内为第二功能): P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位信号。当输入的复位信号延续2个周期以上的高电平时有效,用于完成单片机的复位操作。ALE/PROG:当访问外部存储器时,地址锁存
21、允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引
22、脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2不接。图3-2 AT89C5电路仿真图3.1.3 芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。3.2液晶模块简介3.2.1模块的功能介绍 LM
23、016L液晶模块采用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时,液晶模块处于内部模式,不响应外部操作指令和接受数据,
24、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-2LM016L液晶模块的引脚3.2.2 LM016L引脚介绍:Vss(1脚):一般接地。Vdd(2脚):接电源。Ve
25、e(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位。
26、DB4(11脚):高4位三态、 双向数据总线 4位。 DB5(12脚):高4位三态、 双向数据总线 5位。 DB6(13脚):高4位三态、 双向数据总线 6位。 DB7(14脚):高4位三态、 双向数据总线 7位(最高位)(也是busy flang)。 寄存器选择控制如表4-1。表4-1寄存器选择控制RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据如图3-3所示。用89C51的P2口作为数据线,用P3.2、P3.1、P3.0分别作为LCD的E、R/W、RS。其中E是
27、下降沿触发的片选信号,R/W是读写信号,RS是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为8位,显示行数为1行,字型为57点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位。向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。图3-3液晶模块与单片机接口3.3 温度传感器的工作原理3.3.1 DS18B20概述
28、DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理:低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时
29、,停止温度寄存器值的累加,此时温度寄存器中的数值即 为所测温度。DS18B20功能特点:(1) 独特的单线接口方式,仅需一个端口引脚可实现微处理器与DS18B20的双向通信; (2) 使用范围更宽,电源电压范围为35.5V,在寄生电源方式下可由数据线供电;(3) 在使用DS18B20时不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;(4) 用户可定义的非易失性温度报警设置;(5) 测温范围为-55+125。在-1085时温度分辨率为0.5,DS18B20温度传感器可完成对温度的测量,并用16位符号扩展的二进制补码的形式输出温度值,DS18B20输出的数字量与所测温度
30、的对应关系如表3-2所列。表3-2 温度/数据关系温度/数据输出(二进制)数据输出(十六进制)+1250000 0111 1101 000007d0H+850000 0101 0101 00000550H+10.1250000 0000 12010 001000a2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000fff8H-10.1251111 1111 0101 1110ff5eH-551111 1100 1001 0000fc90HDS18B20有4个主要的数据部件:1. 光刻ROM中
31、的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
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1