毕业设计(论文)基于单片机数字温度计设计.doc
专科毕业设计(论文)设计题目: 基于单片机数字温度计设计 系 部: 电气工程系 专 业: 电气自动化技术(工企电气) 班 级: 工企电气091301 姓 名: 学 号: 093905130144 指导教师: 职 称: 助教 2012年6月 南京摘 要 随着时代的进步和发展,单片机技术已经普及到我们的生活、工作、科研、各个领域,已经成为一种比较成熟的技术。本文介绍一种基于AT89C51单片机的一种温度测量,该电路采用DS18B20作为温度监测元件,测量范围-30-150。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C51单片机功能和应用。该系统可以方便的实现温度采集和显示,并可根据需要设定上下限温度,它使用起来具有精确度高、测量广、灵敏度高、体积小、功耗低等优点。该电路设计新颖、功能强大、结构简单,有广泛的应景。关键词 温度测量 DS18B20 AT89C51AbstractAlong with the progress and development of the ages,single slice the machine technigue has already make widely availablc the life is to us,work,research,each reach,have alrealy become the technique of a kind of comparison maturity.The introduction of a cost-based AT89C51 MCU a temperatur measurement circuits, the circuits used DS18B20 high-precision temperatur sensor , measuring scope -30+150。The paper focuses on providing a software and hardware system components circuit, introduced the theory of DS18B20, the founctions and applications of AT89C51 .System can easily to collect and display the temperature,it can also arbitrary set alarm temperature according to the accrual need.It is used convenience ,it has high precision ,wide range,high sensitivity,small size,and low power disspition,This circuit design innovative, powerful, can be expansionary strong,turu into as a complementary expansion.Keywords Temperatur measurement DS18B20 AT89C51 目 录1 引言12 传统测温与数字温度计的比较22.1 传统测温方法22.2 基于温度传感器的温度测量23 器件简介23.1 AT89C51简介23.2 DS18B20 简介43.3 LCD 液晶显示64 系统设计64.1 设计方案64.2 总体设计框图75 系统硬件软件设计75.1 硬件设计75.2 软件设计11结论13致谢14参考文献151 引言温度控制是无论是在工业生产中,还是在日常生活中都有着非常重要的作用,过低的温度或过高的温度都会使水资源失去应有的作用,从而造成水资源的浪费。特别是在当今全球水资源缺乏的情况下,我们更应该掌握好对水温的控制,把身边的水资源好好地利用起来。在现代冶金、石油、化工及电力生产过程中,温度是极为重要而又普遍的热工参数之一。在环境恶劣或温度较高等场合下,为了保证生产过程正常安全地进行,提高产品的质量和数量,以及减轻工人的劳动强度、节约能源,要求对加热炉炉温进行测、显示、控制,使之达到工艺标准,以单片机为核心设计的炉温控制系统,可以同时采集多个数据,并将数据通过通讯口送至上位机进行显示和控制。那么无论是哪种控制,我们都希望水温控制系统能够有很高的精确度,帮助我们实现我们想要的控制,解决身边的问题。在计算机没有发明之前,这些控制都是我们难以想象的。而当今,随着电子行业的迅猛发展,计算机技术和传感器技术的不断改进,而且计算机和传感器的价格也日益降低,可靠性逐步提高,用信息技术来实现水温控制并提高控制的精确度不仅是可以达到的而且容易实现的。用高新技术来解决工业生产问题,排除生活用水问题实施对水温的控制已成为我们电子行业的任务,以此来加强工业化建设,提高人民的生活水平。本文是基于AT89S51单片机,采用数字温度传感器DS18B20,利用DS18B20不需要A/D转换,可直接进行温度采集显示,报警的数字温度计设计。 2 传统测温与数字温度计的比较2.1 传统测温方法传统工业中主要用热敏电阻之类的器件,利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,可以用单片机进行数据处理,在显示电路上显示,这需要用到A/D转换电路,感温电路比较麻烦。热电阻的引线主要有三种方式:二线制、三线制、四线制。2.2 基于温度传感器的温度测量 基于AT89C51单片机,采用温度传感器DS18B20的数字温度计,在实际测量温度时,电路不需要进行A/D转换,可直接进行温度采集显示。以上可以看出采用温度传感器的电路比较简单,软件设计也比较简单,所以在现代工业中一般采用数字温度的测量方式。3 器件简介3.1 AT89C51简介3.1.1 AT89C51简介AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的高性能、低电压CMOS 8位微处理器,称之为单片机。采用ATMEL高密度非易失存储器制造技术来制造,与工业MCS-51指令集和输出管脚相兼容。ATMEL的AT89C51是一种高效微控制器,用单个芯片将多功能8位CPU和闪烁存储器组合在其中。3.1.2 主要特性 与 MCS-51 兼容 4K 字节可编程闪烁存储器 寿命:1000 写/擦循环 数据保留时间:10 年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8 位内部 RAM 32 可编程 I/O 线 两个 16 位定时器/计数器 5 个中断源3.1.3 管脚说明各引脚功能说明如下:VCC: 电源GND: 接地 P0 口:P0口是一个8位漏极开路的双向I/O口。每位可以驱动8个TTL逻辑电平。对P写“1”时,输入高阻抗。P0 可以用于外部程序数据存储,可以定义它为数据/地址的第八位。在这种模式下,P0中存在内部上拉电阻。在flash编程的时候,P0口还可以用来接收指令字节;程序校验的时候,可以输出指令字节。 P1口:P1口是一个内部给予上拉电阻的 8 位双向 I/O 口。P1输出可以驱动4个TTL逻辑电平。P1 口写 1 后,端口拉高内部上拉电阻,作为输入口使用。作输入使用的时候,因为内部电阻被外部拉低,于是输出电流(IIL)。除此之外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX) P2口:P2口是一个具有内部上拉电阻的8位双向I/O 口。P2 输出缓冲器能够驱动4个TTL逻辑电平。P2 写“1”时,内部上拉电阻拉高端口,做输入口使用。作为输入时,输出电流(IIL)。在用16位地址读取外部数据存储器或访问外部程序存储器时,P2口输出高八位地址。于是P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器的时候,P2口输出P2锁存器的内容。在flash编程和校验的时候,P2口也可以接收高8位地址字节和一些控制信号。 P3口:P3口是一个具有内部上拉电阻的8位双向I/O 口。P3 写“1”的时候,拉高内部上拉电阻,做输入口使用。做输入时,因为内部电阻,被外部拉低的引脚将输出电流(IIL)。P3口也可以作为AT89C51特殊功能来使用,如表1所示。表1 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(外部数据存储器读选通)RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在一般情况下,ALE以晶振1/6的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器的时候,会跳过ALE脉冲。如果有必要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,将微弱拉高ALE。在flash编程中,引脚(PROG)也用作编程输入脉冲。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。/PSEN:外部程序存储器的选通信号。在外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。3.2 DS18B20 简介3.2.1 DS18B20 简介DS18B20温度传感器是采用美国DALLAS公司生产的 DS18B20可组网数字温度传感器芯片,经过焊接,外加不锈钢保护管封装而成,具有体积小,耐磨耐碰,使用方便,封装形式多种多样,能用于各类狭小空间设备数字测温和控制领域,并且可以实现912位的数字值读数方式。3.2.2 DS18B20的性能特点1)单线接口;2)多个DS18B20可以并联在惟一的三线上,实现多点组网功能;3)可通过数据线供电,电压范围为3.05.5V;4)温度以9或12位数字;5)可定义报警设置;6)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。3.2.3 DS18B20的内部结构DS18B20的内部结构框图如图1所示。 图1 DS18B20内部机构DS18B20内部结构主要由四部分组成:1) 64位光刻ROM2) 温度传感器3) 非挥发的度报警触发器TH和TL4) 配置寄存器3.2.4 DS18B20 的测温原理:DS18B20是通过温度对振荡器的频率影响来测量温度的,如图2所示。DS18B20 有两个不同温度系数的振荡器,低温系数振荡器和高温系数振荡器。低温系数的振荡器的输出脉冲信号产生一个高温度系数开门周期被计算在内,来测量温度。计数器预置为与- 55对应的一个基数值,如果计数器在高温系数的门前结束的输出为零,表示测量温度高于-55,预置在- 55的温度寄存器就增加一个增量,同时因为要补偿和校正温度的非线性振荡器,斜率累加器所决定的值预置计数器,时钟使计数器计数值到零,假如开门通时间仍没有结束,那么就重复这个过程,一直到高温系数振荡器的门周期结束。此时寄存器中的值就是被测的温度值。这个值以16位二进制补码的形式存储于便笺式存储器。其温度值由主机通过一个内存读取命令,以补充和十进制转换,得到测量的温度值。 停止+1预置计数器 温度寄存器=0计数器=0斜率累加器预置 比较器 高温度系数振荡器 低温度系数振荡器图2 DS18B20测温原理3.3 LCD 液晶显示 本文显示屏采用了LM016L。LM016L液晶模块采用了HD44780 控制器,HD4478拥有简单而功能较强的指令集,能够实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用4位或8位并行传输这两种方式,HD44780 控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR),忙标志(BF),显示数 RAM(DDRAM),字符发生器ROMA(CGOROM)、字符发生器RAM(CGRAM),地址计数器 (AC) 。当IR 用于寄存指令码,便只能写入不能读出,DR 用于寄存数据时,数据由内部操作自动写入 DDRAM 和 CGRAM,或暂存从 DDRAM 和 CGRAM 读出的数据,BF 为1时,模块为内部模式,不会响应外部操作指令和接受数据,DDTAM用来存储显示的字符,可以存储 8个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10 点阵字符 32 种。4 系统设计4.1 设计方案选用AT89C51型单片机作为主控制器件,DS18B20作为测温传感器,通过4个共阳极LCD串口传送数据,实现温度显示。通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,在-30150最大误差小于正负0.5。可以直接传输数字信号,便于单片机处理及控制。同时,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。 4.2 总体设计框图 温度计电路设计总体设计方框图如图3所示,控制器用单片机AT89C51,温度传感采用DS18B20;用LCD实现温度显示。 模拟温度值经过DS18B20处理后转换为数字值,然后送到单片机中进行数据处理,处理后的数据送到LCD中显示。图3 总体设计方框图5 系统硬件软件设计5.1 硬件设计5.1.1 主板电路主板电路如图4所示。图中包括AT89C51单片机、时钟电路和复位电路、发光二极管、按键设置报警电路、液晶显示模块、上拉电阻、蜂鸣器、DS18B20温度传感器。图4有4个独立键按键,可以分别调整温度计的上下限报警设置,当被测温度不在上下限范围时,蜂鸣器就会发出警报声音,LCD显示屏显示测出的温度值;按键复位电路是上电和手动复位,使用比较方便。图4 单片机主板仿真图5.1.2 复位信号及外部复位电路单片机的端口是看门狗电路中喂狗信号的P1.6 MAX813输入端即单片机每运行一次程序就设置一次喂狗信号,清零看门狗器件。如果程序出现异常,单片机引脚会出现两个机器周RST期以上的高电平,使其复位。该复位信号高电平有效,有效时间应持续24个振荡脉冲周期即两个机器周期以上。假如用用12MHz频率的晶体振荡器,则复位信号持续的时间应该超过2us才能完成复位操作。 5.1.3 温度传感器与单片机的连接 温度传感器的单总线与P2.0连接,P2.0为高位地址线A8。P2口是一个带有内部上拉电阻的8位双向I/O,其输出缓冲级可驱动4个TTL逻辑门电路。写“1”时,通过内部上拉电阻的转换到一个高的水平,作为输入使用,当访问外部程序存储器或16位地址的外部数据时,如执行MOVX DPTR指令, 则表示P2端口送出高8位的地址数据.在访问8位地址的外部数据存储器时, 可执行MOVX RI指令, P2端口内容则为特殊功能寄存器区中R2寄存器内容,整个访问期间不改变。在Flash编程和程序校验时, P2端口也接收高位地址和其他控制信号。 图5为DS18B20内部结构。图6为DS18B20与单片机的接口电路。 图5 DS18B20的内部结构图6 DS18B20与单片机的连接5.1.4 温度控制及超温和超温警报单元当采集的温度经处理后超过规定温度上限时,单片机通过 P1.4 输出控制信号驱动三极管 D1 ,使继电器 K1开启降温设备 ( 压缩制冷设备 ) :当采集的温度经处理后低于设定温度下限时,单片机通过 P1.5 输出控制信号驱动三极管D2 ,使继电器K2开启升温设备( 加热1)。当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声。如图7:图7 具体电路连接图5.1.5 液晶显示电路 在液晶显示的电路设计中选择具有单向输出数据功能的PO端口向液晶显示模块提供数据,P2.5、P2.6、P2.7口作为液晶显示模块的端口,在PO口上需要外加上拉电阻,才可以是液晶显示模块正常显示如图8.图8 液晶显示电路仿真图5.2 软件设计5.2.1 主程序 主程序的主要功能是负责温度的实时显示、读出并处理DS18B20测量的当前温度值,温度测量每1s进行一次。其程序流程见图9所示。图9 主程序流程图5.2.2 读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出的时候需进行CRC校验。CR为Cyclical Redundancy Check (循环冗余检验)的缩写,是一种检错能力很强、使用广泛的差错检测方法。对数据进行多项式计算,并将得到的和数作为这个文件的一个实用的特征码。校验有错时,不进温度数据的改写。其程序流程图如图10所示。 图10 读温度流程图 5.2.3 显示数据子程序显示数据子程序主要是对显示缓冲器中的显示数据进行操作。当最高显示位为0 时,将符号显示位移入下一位,程序流程图如图11所示。图11 数据显示流程图结论将设计好的温度传感器放入冰水混合物中,充分搅拌使之达到热平衡,调节系统,使读数显示为0;读出当地此时的大气压,同时根据当地的重力加速度计算压强;并根据沸点与压强的关系查出沸点。温度传感器放入开水中,稳定后调节,使读数等于当地当时沸点温度。温度计量程是一30 150,精度为05,实际一般使用量程为0 100。采用0 50和50 100的精密水银温度计作检验标准,对设计的温度计进行测试,结果证明实验是成功的。致 谢 感谢指导老师熊渊琳在论文的选题、实验设计与论文的撰写过程中,自始至终以严谨的治学作风和强烈的责任心给予了全面的指导。同时也感谢班级同学及其他老师在设备和实验方面给予的帮助。感谢我的朋友们在我三年专科生的学习、工作和生活中对我的支持、理解与鼓励。在大学学习生活即将结束之际,对三年来曾经关心、指导、帮助和鼓励过我的老师、同学们表示衷心的感谢。让我们共同分享完成论文的喜悦。最后,祝愿所有老师和同学在今后的工作、学习和生活中事事顺心,心想事成。参考文献1 王迎旭.单片机原理与应用. 北京机械工业出版社,20042 夏晓玲.基于AT89C2051的数字温度计的设计. 鄂州大学学报,20053 张友德.单片微型机原理、应用与实验. 复旦大学出版社,20034 胡伟.单片机C程序设计及应用.北京: 人民邮电出版社,20045 石宗义.电路原理图与电路板设计教程. 北京希望电子出版,20026 王金亮.数字温度传感器DS18B20在化学工业中的应用. 国外电子测量技术,20057 曹冬.基于AT89S51 的新型打铃器的研制. 现代电子技术,20058 郭怡倩.DS18B20在温控系统中的应用. 农机化研究,2005 10 韩志军.数字温度传感器DS18B20 及其应用. 自然科学版,2003