多点温度检测系统设计.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date多点温度检测系统设计目 录摘 要 环境温度对工业、农业、商业和人们的日常生活都有很大的影响,而温度的测量也就成为人们生产生活中一项必不可少的工作。随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器DS18B20具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。 本设计所介绍的数字温度计使用单片机AT89s52单片机,测温传感器使用DS18B20,用4位共阴极LED数码管以动态方式实现温度显示,分时轮流通电,从而大大简化了硬件线路,同时,采用串口通信方式可大大简化硬件电路和软件程序的设计,节省了I/O口。DS18B20数字温度传感器是单总线器件与51单片机组成的测温系统,具有线路简单、体积小等特点,而且在一根通信线上,可以挂接多个DS18B20,因此可以构成多点温度测控系统。关键词:单片机;多点检测;串口通信Abstract Environmental temperature to industry, agriculture, commerce, and people's daily life has a lot of influence, and the measurement of the temperature will become an indispensable people production and life of the work. Along with the development of the single chip microcomputer technology, microcomputer in the daily electronic products is more and more extensive application, the temperature sensor DS18B20 have good linear, stable performance, high sensitivity, anti-interference ability strong, easy to use, widely used in the refrigerator, air conditioner, granaries, etc in daily life temperature measurement and control. The design of the digital thermometer introduced use single chip computer 89 s52 microcontroller, temperature sensor DS18B20 use, with a total of 4 cathode tube LED digital display to realize dynamic way temperature, in turn time-sharing electricity, which greatly simplified the hardware circuit, and at the same time, the serial interface communication mode can greatly simplified the hardware circuit and software program design, save the I/O port. Digital temperature sensor DS18B20 is the single bus devices and 51 SCM composition, temperature measurement system, with simple line, little volume features, but at a communications line, can be articulated multiple DS18B20, so can form multi-point temperature measurement and control system.Key Words: Single Chip Microcomputer; Multi-point detection; Serial commun- -ication 目 录1 绪论11.1 前言11.2 研究背景11.3 研究意义11.4 国内外研究现状21.5 研究内容22 系统方案论证32.1 传感器部分方案论证32.2 控制部分方案论证42.3 系统整体方案43 硬件电路设计63.1 控制模块设计63.1.1 AT89S52单片机在系统中的作用63.1.2 按键电路设计93.2 测温模块电路设计113.2.1 DS18B20简介113.2.2 DS18B20在系统中的应用133.3 电平转换模块设计143.3.1 MAX232电平转换芯片简介143.3.2 MAX232在本系统中的应用153.4 报警模块电路设计163.5 电源模块电路设计164 软件设计194.1 温度转换模块程序设计194.2 串口通信模块程序设计204.2.1 串口通信方式设置204.2.2 波特率设置224.3 报警电路模块设计234.4 温度显示及控制模块程序设计234.5 系统软件整体流程245 软件仿真275.1 系统仿真环境275.2 器件参数选取275.3 仿真结果分析276 结论29致谢30参考文献31附录一 系统源程序32附录二 系统仿真图45附录三 系统原理图46附录四 系统PCB图47-1 绪论1.1 前言 环境温度对工业、农业、商业和人们的日常生活都有很大的影响,而温度的测量也就成为人们生产生活中一项必不可少的工作。随着电子技术和计算机技术的迅速发展,特别是单片机的发展,使传统的测量仪器在原理,功能,精度及自动化水平等方面发生了巨大的变化,使很多的传统电子仪器被相应的全新的仪器类型和测试系统体系所代替。本系统设计的温度测采集系统,主要运用了集成温度传感器DS18B20 作为敏感元件对物体进行温度测量。 本文设计了一种基于AT89S52 单片机的数据采集,温度传感器DS18B20 完成将模拟信号(温度)转换成数字信号的功能,由单片机控制从而实现对数据的采集。单片机系统将输出相应的逻辑电平,经驱动后控制输出电路通过串口与计算机相连,然后通过数码管显示实时温度。1.2 研究背景 随着电子信息技术的不断发展,多点温度检测取得了广泛的运用。数据采集系统的开发在很大意义上提高了生产生活的需要,方便了生产中对温度的控制。外围电路比较简单,测量精度较高,分辨力高,使用方便。数据检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。本次毕业设计正是为了完成数据采集而设计的,可以说与人们的日常生活是息息相关的,具有很大的现实意义。1.3 研究意义 本文重点研究了多点温度检测系统的原理和上位机与下位机之间的串口通信问题。多点温度检测可以实时检测控制不同采样点的温度状况,对温室大棚等需要检测温度但监测点比较分散的场合具有重要的现实意义。串口通信由于占用单片机端口少,传输数据高,在节约端口的同时也大大提高了数据传输效率,对节约系统成本,提高系统稳定性方面具有很大的意义。1.4 国内外研究现状温度传感器的种类很多,测温范围也很宽,可高达几千度低可接近绝对零度,但在测量精度、稳定性、抗干扰等方面仍存在问题。随着微电子技术和新材料技术的发展,传感器朝着自动化、数字化和集成化发展,测量精度更高,测量范围更宽,同时探索新的敏感原理,寻求新型敏感元件也是温度传感器的发展方向之一。另外,在测量方式上,完全分布式的温度测量成为测量领域研究的一个热点。最新的温度测量技术是分布式光纤测温技术。分布式光纤测温系统只需要一根传感光纤,布线非常简单,且系统成本随着传感距离的增加大幅降低,是目前一种发展前景非常好的测温系统。1.5 研究内容 本系统采用ATMEL公司的AT89S52单片机为主控芯片,硬件系统包括键盘控制模块、下位机温度采集与处理模块、上位机温度显示与报警模块。软件部分主要包括温度采集、串口通信、数据显示和报警控制。三个独立式按键分别控制各种温度的切换,温度上下限的增、减。本文给出了该系统的电路原理图、仿真图及其PCB图。2 系统方案论证 温度检测系统有则共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D 转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降 。所以多点温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。2.1 传感器部分方案论证方案一: 采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等.但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂.另外,这种测温装置的一根线上只能挂一个传感器,不能进行多点测量.即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。方案二: 在多点测温系统中,传统的测温方法是将模拟信号远距离采样进行AD转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输,多点测量切换及放大电路零点漂移等造成的误差补偿问题。采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS1820和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于AT89C51可以带多个DSB1820,因此可以非常容易实现多点测量.轻松的组建传感器网络。 采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。所以集成芯片的使用将成为电路发展的一种趋势。本方案应用这一温度芯片,也是顺应这一趋势。2.2 控制部分方案论证方案一: 此方案采用PC机实现。它可在线编程,可在线仿真的功能,这让调试变得方便。且人机交互友好。但是PC机输出信号不能直接与DS18B20通信。需要通过RS232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦!方案二: 此方案采用AT89S52八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多DS18B20控制工作,还可以与PC机通信.运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统,实现远程控制。另外AT89C51在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。2.3 系统整体方案 综上所述,温度传感器以及主控部分都采用第二方案。 系统采用针对传统温度测温系统测温点少,系统兼容性及扩展性较差的特点,运用分布式通讯的思想。设计一种可以用于大规模多点温度测量的巡回检测系统。该系统采用的是RS-232串行通讯的标准,通过下位机(单片机)进行现场的温度采集,温度数据既可以由下位机模块实时显示,也可以送回上位机进行数据处理,具有巡检速度快,扩展性好,成本低的特点。本系统整体方案框图如下:图2-1 系统整体方框图3 硬件电路设计本系统硬件电路包括四个部分:控制部分电路设计,测温模块设计,电平转换模设计块、电源模块设计和报警模块设计,现对各模块做简单介绍。3.1 控制模块设计 在该模块设计中,由于下位机只负责发送数据,不涉及对其他模块的控制,故本系统控制模块设计只针对于上位机设计。上位机控制模块主要是按键控制 设计。 3.1.1 AT89S52单片机在系统中的作用 作为本系统的主控制芯片,AT89S52单片机在系统中有着不可替代的作用。它作为一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。使用Atmel公司高密度、非易失性存储技术制造,与80C51指令完全兼容。片上Flash允许程序存储器可在线编程,亦适应于常规编程器。在单芯片上,拥有8位CPU和在线可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活,超有效的解决方案。AT89S52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,3个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件选择节电模式。空闲模式下,CPU停止工作,允许RAM,定时器/计数器,串口,中断继续工作。掉电保护方式下,RAM内容被保护,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52单片机为系统提供中断函数处理、速度计算和判断、输出PWM、驱动LCD显示等各项功能。由于系统用到单片机中I/O口的普通功能和第二功能,现对其对其管脚做简要介绍,AT89S52单片机管3-1所示。图3-1 AT89S52单片机管脚排列VCC:AT89S52电源正端输入,接+5V。GND:电源地端。XTAL1:单芯片系统时钟的反相放大器输入端。XTAL2:单芯片系统时钟的反相放大器输出端。一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一个30pF的小电容,可以使系统更稳定,避免噪声干扰而死机。RESET:AT89S52的重置引脚,高电平动作。当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S52便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。EA/Vpp:"EA"为英文"External Access"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。ALE/PROG:ALE是英文"Address Latch Enable"的缩写,表示地址锁存器启用信号。AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为"Program Store Enable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P0.0P0.7):端口0是一个8位宽的开路汲极(Open Drain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0A7)及数据总线(D0D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0A7,再配合端口2所送出的A8A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。PORT2(P2.0P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8A15,这个时候P2便不能当做I/O来使用了。PORT1(P1.0P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LS TTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。PORT3(P3.0P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下表所示: 表3-1 P3口各位口线与第二功能表P3口的位第二功能注释P3.0RXD串行数据接收口P3.1TXD串行数据发送口P3.2外中断0输入P3.3外中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6外部RAM写选通信号P3.7外部RAM读选通信号 在本系统中,上位机普通I/O口要用到P0口的P0.0P0.3四个引脚,P1口全部八个引脚,P2口的P2.0、P2.2、P2.4以及P2.7,P3口的P3.0()。其中,P0口的P0.0P0.3用来控制数码管位选,P1口数码管的段选,P2.0、P2.2和P2.4用来作为键盘输入使用,P3.0用来接收数据使用。所用各个引脚在本系统中的具体功能,将在以下章节中具体讲解。3.1.2 按键电路设计作为一种信号输入设备,按键在人机交互中起着重要作用。人们可以通过按键对系统发出一系列特定的指令以使其完成相应功能。本系统从实际出发,设定了三个独立式按键,分别温度值增加、温度值减小和功能切换。其在系统中的原理图如图3-2所示。图3-2 按键设计原理图 由于按键是利用机械触点来实现按键的闭合与释放的,由于弹性作用的影响,机械触点在闭合及断开的瞬间均具有抖动过程,从而使按键输入电压信号也出现抖动现象,如图3-3所示。图3-3 按键输入抖动示意图 为了保证系统对按键的一次闭合仅作一次按键输入处理,必须进行消抖处理。一般有硬件或软件的办法进行消抖。硬件消抖可使用双稳态消抖电路,有两个与非门和电阻构成。软件消抖是检测到电平变化后通过延时几微秒后再次判断电平是否变化,是的话就可认为按键确实按下,可以执行按键处理函数,如果电平又恢复成初始电平,则可认为是系统干扰,可忽略此次电平变化,不执行按键处理函数。由于硬件电路连接复杂,软件电路又简单易行,故本系统采用软件处理办法来消除按键抖动的影响。 在按键处理中,还要注意的一点是松手检测。因为在按键发生动作的过程中,不可避免的出现抖动现象,电平有可能进行跳变。松手检测就是在程序中延时一段时间后,再次扫描管脚电平,如果还是输入电平,就一直等待,直至变化成初始电平,即按键放下后执行按键处理程序。如不执行松手检测,则系统就会误判断多次进行按键而是系统紊乱,故按键处理中必须执行松手检测。3.2 测温模块电路设计 本系统所采用的温度传感器为DS18B20数字式温度传感器,由于其输出能力有限,故在输出端加一上拉电阻以增加其稳定性,现对该模块做简要介绍。3.2.1 DS18B20简介DS18B20为单线数字温度计,其实物如图3-4所示:图3-4 DS18B20实物图 其中DQ:数字信号输入输出端。GND:电源地端。VDD:外接供电电源输入端(在寄生电源接线时此脚应接地)。 DS18B20作为数字式温度计,具有以下特点: (1)单线结构,只需一根信号线和CPU相连。 (2)不需要外部元件,直接输出串行数据。 (3)可不需要外部电源,直接通过信号线供电,电源电压范围为3.3V5V。 (4)测温精度高,测温范围为:一55+125,在-10+85范围内,精度为±0.5。 (5)测温分辨率高,当选用12位转换位数时,温度分辨率可达00625。 (6)数字量的转换精度及转换时间可通过简单的编程来控制:9位精度的转换时间为9375 ms:10位精度的转换时间187.5ms:12位精度的转换时间750ms。 (7)具有非易失性上、下限报警设定的功能,用户可方便地通过编程修改上、下限的数值。 (8)可通过报警搜索命令识别哪片DS18820采集的温度超越上、下限。 现对DS18B20内部结构简要介绍: DS18820的内部结构如图3-3所示:主要有64位光刻ROM、温度传感器、非易失性温度报警触发器TH和TL、配置寄存器等组成。图3-3 DS18B20方框图(1)64位光刻ROM是生产厂家给每一个出厂的DS18820命名的产品序列号,可以看作为该器件的地址序列号。其作用是使每一个出厂的DS18820地址序列号都各不相同,这样,就可以实现一根总线上挂接多个DS18820的目的。(2)DS18820中的温度传感器完成对温度的测量,输出格式为:16位符号扩展的二进制补码。当测温精度设置为12位时,分辨率为O0625,即O0625LSB。其二进制补码格式如图3-4所示。其中,S为符号位,S=1,表示温度为负值;S=0,表示温度为正值。表3-2 DS18B20输出温度的二进制补码格式 字节类型输出值温度值的低字节D7D6D5D4D3D2D1D0温度值的高字节SSSSSD10D9D8(3)DS18820中的低温触发器TL、高温触发器TH,用于设置低温、高温的报警数值。DS18820完成一个周期的温度测量后,将测得的温度值和TL、TH相比较,如果小于TL,或大于TH,则表示温度越限,将该器件内的告警标志位置位,并对主机发出的告警搜索命令作出响应。需要修改上、下限温度值时,只需使用一个功能命令即可对TL、TH写入,十分方便。(4)DS18820中的高速暂存器是一个9字节的存储器,其含意如表3-3所示。开始两个字节为被测温度的数字量,其含义如图3-4所示。第3、4、5字节分别为TH、TL、配置寄存器的复制,每一次上电复位时被重写。配置寄存器有R0、R1组成,其值决定温度转换的精度位数、转换时间等,含义如表3-4所示。第7字节为测温计数的剩余值。第8字节为测温时每度的计数值。第9 字节读出的是前8个字节的CRC校验码,通过此码,可判断通讯是否正确。表3-3 DS18B20内部高速暂存寄存器各位含义暂存器内容字节地址温度最低数字位0温度最高数字位1温度上限TH2温度下限TL3配置寄存器4保留5计数剩余值6每度计数值7CRC校验8表3-4 配置寄存器R0,R1各值代表含义R1R0转换精度温度分辨率转换时间ms0090.593.7501100.25187.510110.12537511120.06257503.2.2 DS18B20在系统中的应用 在本系统中,DS18B20数字式温度传感器每转换一次输出为两个字节形式通过下位机的串口发送端向上位机发送,由于其输出电压有限,故加一上拉电阻,使其输出高电平达到5V,其电路原理图如图3-4所示。图3-4 测温模块电气原理图3.3 电平转换模块设计 由于本系统温度采样点距离控制中心比较远,TTL电平不能够进行长距离传输,所以需要进行电平转换。在本系统中,通过MAX232芯片使TTL电平转换成232电平,现对其原理做简要介绍。3.3.1 MAX232电平转换芯片简介 MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。其封装图如图3-5所示。 图3-5 MAX232封装图 第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。 第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。 第三部分是供电。15脚GND、16脚VCC(+5V)。其电气连接图如图3-6所示:图3-6 MAX232电气连接图3.3.2 MAX232在本系统中的应用在本系统中,MAX232做为上位机和下位机之间连接的纽带,其作用非常重要。如图3-7所示,下位机通过P3.1(TXD)端将数据送至第一片MAX232的T1IN端,经过电平转换后由T1OUT端发出,此时发出的电平就为RS232电平,即逻辑正为12V,逻辑负为+12V,发送的数据由第二片MAX232的R1IN端接受,转换成TTL电平后再由R1OUT端发送至上位机的P3.0(RXD)端,这样就完成了上、下位机之间的数据通信。 (2) (1)图3-7 MAX232在系统中的电路原理图3.4 报警模块电路设计在该模块中,采用电磁式进行报警。蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。图3-8 报警电路模块电路原理图 如图3-8所示,蜂鸣器的正极接到三极管E极上面,蜂鸣器的负极接到地(GND)上,三极管的基级B经过限流电阻R6后由单片机的P2.7引脚控制,当P2.7输出高电平时,三极管Q1截止,没有电流流过线圈,蜂鸣器不发声;当P2.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,可以通过程序控制P2.7脚的电平来使蜂鸣器发出声音和关闭。当实时温度值超过温度上限或低于温度下限时,P2.7引脚输出低电平,使蜂鸣器发出声响报警。3.5 电源模块电路设计 因为单片机工作电源为+5V,且电路功耗很小。采用7805三端稳压片即可满足要求。具体电路图如下:图3-9 电源电路模块电路原理图 在该模块中,LM7805前端的两个电容C1、C2主要起滤除纹波作用,后端的C3、C4便于长距离传输,短距离的话可以不加。D3为电源指示灯。D4主要是保护电路作用,在断电时及时将C3中的电量引导出去。现对LM7805做简要介绍。(1)概述78XX系列是三端正电源稳压电路,其封装为T0-220,它有一系列固定的电压输出,应用非常广泛。每种类型由于内部电流的限制,以及过热保护和内部安全区的保护,使它基本上不会损坏。(2)特点 最大输出电流为1.5A; 过热保护; 短路保护; 输出晶体管安全区保护;其封装图如图3-10所示。图3-10 LM7805封装图其中:1 输入;2 接地; 3 输出。LM7805内部框图如图如图3-11所示。 (3)参数LM7805极限参数如表3-5所示:表3-5 LM7805极限参数参数符号数值单位输入电压Vi18V结到空气热阻65结壳气热阻5工作温度0125储存温度-65+125图3-11 LM7805内部电路图 4 软件设计本系统软件部分主要包含温度转换模块、串口通信模块、报警电路模块和温度显示及控制模块。温度转换模块主要负责将DS18B20送过来的字节转换成可识别的十进制温度。串口通信模块主要是负责将数据从下位机传送至上位机,报警电路模块负责将实时温度和设定的温度上下限进行对比决定是否启动报警。下面将对各模块进行细致介绍。4.1 温度转换模块程序设计通过前文介绍DS18B20的工作原理可知,DS18B20送至下位机的是温度的16位补码形式,由于正数的原码、反码、补码都一样,所以当温度大于0时可以直接将补码转换成十进制温度。图4-1为温度处理程序流程图。图4-1 上、下位机温度处理流程图4.2 串口通信模块程序设计 本系统中,串口通信模块主要负责数据串行方式的发送和接收,在程序中,主要对涉及串行通信方式的各个寄存器进行设置,并且根据波特率计算定时器初值,现对其做详细说明。4.2.1 串口通信方式设置 串行口通信方式设置主要涉及到串行口控制寄存器SCON和PCON,中断允许寄存器IE,中断优先级寄存器IP等。现对各个寄存器的用法作简要说明。 (1)SCON寄存器 MCS-51单片机对串口的控制是通过SCON实现的,也与电源控制寄存器PCON有关。现对SCON的各位定义进行说明。表4-1 SCON寄存器各位定义位地址9F9E9D9C9B9A9998SCONSM0SM1SM2RENTB8RB8TIRISM0和SM1:串行口方式控制位,用于设定串行口的工作方式,见表4-2。SM2:多级通信控制位,主要在方式2和方式3下使用。在方式0和方式1下, SM2不用,应设置为0。REN:允许接收控制位。REN为0,禁止串行口接收;REN为1,允许串行口接 收。TB8:发送数据的第九位,用于在方式2和方式3时存放发送数据的第九位。TB8 由软件置“1”或清“0”。RB8:接收数据的第九位。用于在方式2和方式3时存放接收数据的第九位。方 式0下不使用RB8,方式1下,若SM2=0,则RB8用于存放接收到的停 止位。TI :发送中断标志位,用于指示一帧数据是否发送完成。在方式0下,发送电 路发送完第8位数据时,TI由硬件置“1”;在其他方式下,TI在发送电路 发送停止位时置“1”。TI在发送前必须用软件复位。RI :接收中断标志位,用于指示一帧数据是否接收完。在方式0下,RI在接收 电路接收到第8位数据时由硬件置“1”;在其他方式下,RI是在接收电路 接收到停止位的中间位置时置位的。RI也由软件清零。表4-2 串行口的工作方式和所用波特率对照表SM0SM1工作方式功能波特率00方式08位同步移位寄存器01方式110位UART可变(由定时器控制)10方式211位UART11方式311位UART可变(由定时器控制)(2)PCON寄存器表4-3 PCON寄存器各位定义位地址8E8D8C8B8A898887PCONSMODGF1GF0PDIDLSMOD:波特率选择位。SMOD=1时,方式1、2和3的波特率加倍。SMOD=0 时,波特率不变。GF1和GF0:通用标志位。PD:掉电标志位。PD="0"为正常方式,PD="1"时为掉电方式。IDL:空闲标志位。IDL="0"为正常方式,IDL="1"为空闲方式。 (3)中断允许寄存器IE表4-4 IE寄存器各位定位D7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0EA为CPU中断允许总控制位。ES为串行口中断允许位。在中断方式下,EA,ES要都置“1”时,串行口才能接收和发送中断。(4) 中断优先级寄存器IP 图4-5 IP寄存器各位定位D7D6D5D4D3D2D1D0PT2PSPT1PX1PT0PX0PS(IP.4)为串行口优先级设定位。PS=1时,串行口为高优先级,否则为低优先级。 在本系统中,串行口工作于方式1,即SM0=0,SM1=1;波特率由定时器T1设定。4.2.2 波特率设置 串行口每秒发送(或接收)的二进制位数