




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
环境温度对工业、农业、商业和人们的日常生活都有很大的影响,而温度的测量也就成为人们生产生活中一项必不可少的工作。随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器口518820具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。本设计所介绍的数字温度计使用单片机AT89s52单片机,测温传感器使用DS18B20,用4位共阴极LED数码管以动态方式实现温度显示冷时轮流通电,从而大大简化了硬件线路,同时,采用串口通信方式可大大简化硬件电路和软件程序的设计,节省了1/。口。DS18B20数字温度传感器是单总线器件与51单片机组成的测温系统,具有线路简单、体积小等特点,而且在一根通信线上,可以挂接多个口518820,因此可以构成多点温度测控系统。关键词:单片机;多点检测;串口通信-专业资料-AbstractEnvironmentaltemperaturetoindustry,agriculture,commerce,andpeople'sdailylifehasalotofinfluence,andthemeasurementofthetemperaturewillbecomeanindispensablepeopleproductionandlifeofthework.Alongwiththedevelopmentofthesinglechipmicrocomputertechnology,microcomputerinthedailyelectronicproductsismoreandmoreextensiveapplication,thetemperaturesensorDS18B20havegoodlinear,stableperformance,highsensitivity,anti-interferenceabilitystrong,easytouse,widelyusedintherefrigerator,airconditioner,granaries,etcindailylifetemperaturemeasurementandcontrol.Thedesignofthedigitalthermometerintroducedusesinglechipcomputer89s52microcontroller,temperaturesensorDS18B20use,withatotalof4cathodetubeLEDdigitaldisplaytorealizedynamicwaytemperature,inturntime-sharingelectricity,whichgreatlysimplifiedthehardwarecircuit,andatthesametime,theserialinterfacecommunicationmodecangreatlysimplifiedthehardwarecircuitandsoftwareprogramdesign,savetheI/Oport.DigitaltemperaturesensorDS18B20isthesinglebusdevicesand51SCMcomposition,temperaturemeasurementsystem,withsimpleline,littlevolumefeatures,butatacommunicationsline,canbearticulatedmultipleDS18B20,socanformmulti-pointtemperaturemeasurementandcontrolsystem.KeyWords:SingleChipMicrocomputer;Multi-pointdetection;Serialcommun--ication-专业资料-1绪论1前言1研究背景1研究意义1国内外研究现状2研究内容22系统方案论证3传感器部分方案论证3控制部分方案论证4系统整体方案43硬件电路设计6控制模块设计6AT89S52单片机在系统中的作用6按键电路设计9测温模块电路设计11DS18B20简介11DS18B20在系统中的应用13电平转换模块设计14MAX232电平转换芯片简介14MAX232在本系统中的应用15报警模块电路设计16电源模块电路设计174软件设计19温度转换模块程序设计19串口通信模块程序设计20串口通信方式设置20波特率设置22-专业资料-报警电路模块设计23温度显示及控制模块程序设计23系统软件整体流程245软件仿真27系统仿真环境27器件参数选取27仿真结果分析276结论29致谢29参考文献30附录一系统源程序31附录二系统仿真图44附录三系统原理图45附录四系统PCB图46-专业资料-1结论前言环境温度对工业、农业、商业和人们的日常生活都有很大的影响,而温度的测量也就成为人们生产生活中一项必不可少的工作。随着电子技术和计算机技术的迅速发展,特别是单片机的发展,使传统的测量仪器在原理,功能,精度及自动化水平等方面发生了巨大的变化,使很多的传统电子仪器被相应的全新的仪器类型和测试系统体系所代替。本系统设计的温度测采集系统,主要运用了集成温度传感器口518820作为敏感元件对物体进行温度测量。本文设计了一种基于AT89S52单片机的数据采集,温度传感器口518820完成将模拟信号(温度)转换成数字信号的功能,由单片机控制从而实现对数据的采集。单片机系统将输出相应的逻辑电平,经驱动后控制输出电路通过审口与计算机相连,然后通过数码管显示实时温度。研究背景随着电子信息技术的不断发展,多点温度检测取得了广泛的运用。数据采集系统的开发在很大意义上提高了生产生活的需要,方便了生产中对温度的控制。外围电路比较简单,测量精度较高,分辨力高,使用方便。数据检测是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。本次毕业设计正是为了完成数据采集而设计的,可以说与人们的日常生活是息息相关的,具有很大的现实意义。研究意义本文重点研究了多点温度检测系统的原理和上位机与下位机之间的串口通信问题。多点温度检测可以实时检测控制不同采样点的温度状况,对温室大棚等-专业资料-需要检测温度但监测点比较分散的场合具有重要的现实意义。串口通信由于占用单片机端口少,传输数据高,在节约端口的同时也大大提高了数据传输效率,对节约系统成本,提高系统稳定性方面具有很大的意义。国内外研究现状温度传感器的种类很多,测温范围也很宽,可高达几千度低可接近绝对零度,但在测量精度、稳定性、抗干扰等方面仍存在问题。随着微电子技术和新材科技术的发展,传感器朝着自动化、数字化和集成化发展,测量精度更高,测量范围更宽,同时探索新的敏感原理,寻求新型敏感元件也是温度传感器的发展方向之一。另外,在测量方式上,完全分布式的温度测量成为测量领域研究的一个热点。最新的温度测量技术是分布式光纤测温技术。分布式光纤测温系统只需要一根传感光纤,布线非常简单,且系统成本随着传感距离的增加大幅降低,是目前一种发展前景非常好的测温系统。研究内容本系统采用人丁乂£1公司的AT89S52单片机为主控芯片,硬件系统包括键盘控制模块、下位机温度采集与处理模块、上位机温度显示与报警模块。软件部分主要包括温度采集、串口通信、数据显示和报警控制。三个独立式按键分别控制各种温度的切换,温度上下限的增、减。本文给出了该系统的电路原理图、仿真图及其PCB图。-专业资料-2系统方案论证温度检测系统有则共同的特点:测量点多、环境复杂、布线分散、现场离监控室远等。若采用一般温度传感器采集温度信号,则需要设计信号调理电路、A/D转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因为检测环境复杂、测量点多、信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降。所以多点温度检测系统的设计的关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广泛、使用数量庞大,也高居各类传感器之首。传感器部分方案论证方案一:采用热敏电阻,可满足40摄氏度至90摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的。而且在温度测量系统中,采用单片温度传感器,比如AD590,LM35等.但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使得测温装置的结构较复杂.另如这种测温装置的一根线上只能挂一个传感器,不能进行多点测量.即使能实现,也要用到复杂的算法,一定程度上也增加了软件实现的难度。方案二:在多点测温系统中,传统的测温方法是将模拟信号远距离采样进行AD转换,而为了获得较高的测温精度,就必须采用措施解决由长线传输,多点测量切换及放大电路零点漂移等造成的误差补偿问题。采用数字温度芯片DS18B20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好。在0—100摄氏度时,最大线形偏差小于1摄氏度。口518820的最大特点之一采用了单总线的数据传输,由数字温度计口51820和微控制器AT89C51构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于AT89C51可以带多个口581820,因此可-专业资料-以非常容易实现多点测量.轻松的组建传感器网络。采用温度芯片DS18B20测量温度,可以体现系统芯片化这个趋势。部分功能电路的集成,使总体电路更简洁,搭建电路和焊接电路时更快。而且,集成块的使用,有效地避免外界的干扰,提高测量电路的精确度。所以集成芯片的使用将成为电路发展的一种趋势。本方案应用这一温度芯片,也是顺应这一趋势。控制部分方案论证方案一:此方案采用PC机实现。它可在线编程,可在线仿真的功能,这让调试变得方便。且人机交互友好。但是PC机输出信号不能直接与DS18B20通信。需要通过口5232电平转换兼容,硬件的合成在线调试,较为繁琐,很不简便。而且在一些环境比较恶劣的场合,PC机的体积大,携带安装不方便,性能不稳定,给工程带来很多麻烦!方案二:此方案采用人189552八位单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对多口518820控制工作,还可以与PC机通信.运用主从分布式思想,由一台上位机(PC微型计算机),下位机(单片机)多点温度数据采集,组成两级分布式多点温度测量的巡回检测系统,实现远程控制。另外'AT89C51在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。系统整体方案综上所述,温度传感器以及主控部分都采用第二方案。系统采用针对传统温度测温系统测温点少,系统兼容性及扩展性较差的特点,运用分布式通讯的思想。设计一种可以用于大规模多点温度测量的巡回检测系统。该系统采用的是口5-232串行通讯的标准,通过下位机(单片机)进行现-专业资料-
场的温度采集,温度数据既可以由下位机模块实时显示,也可以送回上位机进行数据处理,具有巡检速度快,扩展性好,成本低的特点。本系统整体方案框图如下:数码管显
示温度报警电路
进行报警-专业资料-数码管显
示温度报警电路
进行报警-专业资料-图2-1系统整体方框图3硬件电路设计本系统硬件电路包括四个部分:控制部分电路设计,测温模块设计,电平转换模设计块、电源模块设计和报警模块设计,现对各模块做简单介绍。控制模块设计在该模块设计中,由于下位机只负责发送数据,不涉及对其他模块的控制,故本系统控制模块设计只针对于上位机设计。上位机控制模块主要是按键控制设计。AT89S52单片机在系统中的作用作为本系统的主控制芯片,AT89S52单片机在系统中有着不可替代的作用。它作为一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。使用人^目公司高密度、非易失性存储技术制造,与80C51指令完全兼容。片上Flash允许程序存储器可在线编程,亦适应于常规编程器。在单芯片上,拥有8位CPU和在线可编程由5心,使人189552为众多嵌入式控制应用系统提供高灵活,超有效的解决方案。AT89S52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,3个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,人189552可降至0Hz静态逻辑操作,支持2种软件选择节电模式。空闲模式下,CPU停止工作,允许RAM,定时器/计数器,串口,中断继续工作。掉电保护方式下,口人乂内容被保护,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52单片机为系统提供中断函数处理、速度计算和判断、输出PWM、驱动LCD显示等各项功能。由于系统用到单片机中1/。口的普通功能和第二功能,现对其对其管脚做简要介绍,AT89S52单片机管3-1所示。-专业资料-i-2i='jE(T2EX)P1.1匚PI.ZEP1.3EPl总匚tMOSI)P1.5ECMISO)P1.KC(SCK)Pl.TERSTE(RXD)P3.0ECTXD)P3.1匚(INTO)内.之匚(INTT)P3.5E(TO)P3.4匚(T1)PS.5E加)P3.6匚(RD)P3.7EX7AL2CXJAL1匚GNDLJ例2 393 38A 3了T 36as上34&S339 5祀10 3111 23Q12 用1314 .2715 361-6 2517 241fl 231fl 2250 5t□VCCFD0(ADO)P0.1(AD1)FQ.2(A口团□PQ.3他03)□PtJ.4(AD4J□P0.5(AD5J□P08(AD6J□PQ.7〔耻两□EJWPP□ALE'FFT^j□PS-EUP2.7(Al5}□P2.6(AU)□P2.5(Al3)□=2,4:A-li□P2.3(Alli□PS.2(Ala)□P2.1(Afi}□PS.O网图3-1AT89S52单片机管脚排列VCC:AT89S52电源正端输入,接+5V。GND:电源地端。XTAL1:单芯片系统时钟的反相放大器输入端。XTAL2:单芯片系统时钟的反相放大器输出端。一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一个30pF的水电容,可以使系统更稳定,避免噪声干扰而死机。口£5£「人189552的重置弓|脚,高电平动作。当要对晶片重置时,只要对此弓I脚电平提升至高电平并保持两个机器周期以上的时间,人189552便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成巳知状态,并且至地址0000H处开始读人程序代码而执行程序。EA/Vpp:"EA"为英文"External4式655"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用8751内部程序空间时,此引脚要接-专业资料-成高电平。此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入2”的烧录高压(Vpp)。ALE/PROG:ALE是英文'削由655Latch£^加"的缩写,表示地址锁存器启用信号。AT89S52可以利用这支弓I脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0〜A7)锁进锁存器中,因为人189552是以多工的方式送出地址及数据。平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。PSEN:此为"ProgramStore£^加"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(£4=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。PORT0(P0.0〜P0.7):端口0是一个8位宽的开路汲极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0〜A7)及数据总线(D0〜D7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0〜A7,再配合端口2所送出的A8〜A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。PORT2(P2.0〜P2.7):端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个15的丁江负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I/O端口使用外,若是在人189552扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8〜A15,这个时候P2便不能当做凶来使用了。PORT1(P1.0〜P1.7):端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4jLSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。-专业资料-PORT3(P3.0〜P3.7):端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4jTTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写人控制等功能。其引脚分配如下表所示:表3-1P3口各位口线与第二功能表P3口的位第二功能注释P3.0RXD串行数据接收口P3.1TXD串行数据发送口P3.2INTO外中断0输入P3.3INT1外中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6R__外部RAM写选通信号P3.7RD外部RAM读选通信号在本系统中,上位机普通I/O口要用到P0口的P0.0〜P0.3四个引脚,P1口全部八个弓I脚,P2口的P2.0、P2.2、P2.4以及P2.7,P3口的P3.0(rxd)。其中,P0口的P0.0〜P0.3用来控制数码管位选,P1口数码管的段选,P2.0、P2.2和P2.4用来作为键盘输入使用,P3.0用来接收数据使用。所用各个引脚在本系统中的具体功能,将在以下章节中具体讲解。按键电路设计作为一种信号输入设备,按键在人机交互中起着重要作用。人们可以通过按键对系统发出一系列特定的指令以使其完成相应功能。本系统从实际出发,设定-专业资料-了三个独立式按键,分别温度值增加、温度值减小和功能切换。其在系统中的原理图如图3-2所示。图3-2按键设计原理图由于按键是利用机械触点来实现按键的闭合与释放的,由于弹性作用的影响,机械触点在闭合及断开的瞬间均具有抖动过程,从而使按键输入电压信号也出现抖动现象,如图3-3所示。图3-3按键输入抖动示意图为了保证系统对按键的一次闭合仅作一次按键输入处理,必须进行消抖处理。一般有硬件或软件的办法进行消抖。硬件消抖可使用双稳态消抖电路,有两个与非门和电阻构成。软件消抖是检测到电平变化后通过延时几微秒后再次判断电平是否变化,是的话就可认为按键确实按下,可以执行按键处理函数,如果电平又恢复成初始电平,则可认为是系统干扰,可忽略此次电平变化,不执行按键处理函数。由于硬件电路连接复杂,软件电路又简单易行,故本系统采用软件处理办法来消除按键抖动的影响。在按键处理中,还要注意的一点是松手检测。因为在按键发生动作的过程中,不可避免的出现抖动现象,电平有可能进行跳变。松手检测就是在程序中延-专业资料-时一段时间后,再次扫描管脚电平,如果还是输入电平,就一直等待,直至变化成初始电平,即按键放下后执行按键处理程序。如不执行松手检测,则系统就会误判断多次进行按键而是系统紊乱,故按键处理中必须执行松手检测。测温模块电路设计本系统所采用的温度传感器为口518820数字式温度传感器,由于其输出能力有限,故在输出端加一上拉电阻以增加其稳定性,现对该模块做简要介绍。DS18B20简介DS18B20为单线数字温度计,其实物如图3-4所示:图3-4DS18B20实物图其中DQ:数字信号输入/输出端。GND:电源地端。VDD:外接供电电源输入端(在寄生电源接线时此脚应接地)。DS18B20作为数字式温度计,具有以下特点:(1)单线结构,只需一根信号线和CPU相连。(2)不需要外部元件,直接输出串行数据。(3)可不需要外部电源,直接通过信号线供电,电源电压范围为3.3V〜5V。(4)测温精度高,测温范围为:-55℃〜+125℃,在-10℃〜+85℃范围内,精度为±0.5℃。(5)测温分辨率高,当选用12位转换位数时,温度分辨率可达0.0625℃。(6)数字量的转换精度及转换时间可通过简单的编程来控制:9位精度的转换时间为93.75ms:10位精度的转换时间187.5ms:12位精度的转换时间750ms。(7)具有非易失性上、下限报警设定的功能,用户可方便地通过编程修改上、-专业资料-下限的数值。(8)可通过报警搜索命令识别哪片口518820采集的温度超越上、下限。现对口518820内部结构简要介绍:口518820的内部结构如图3-3所示:主要有64位光刻ROM、"L传感器、非易失性温度报警触发器TH和立、配置寄存器等组成。图3-3DS18B20方框图(1)64位光刻ROM是生产厂家给每一个出厂的DS18820命名的产品序列号,可以看作为该器件的地址序列号。其作用是使每一个出厂的口518820地址序列号都各不相同,这样,就可以实现一根总线上挂接多个口518820的目的。(2)DS18820中的温度传感器完成对温度的测量,输出格式为:16位符号扩展的二进制补码。当测温精度设置为12位时,分辨率为0.0625℃,即O.06250c/LSB。其二进制补码格式如图3-4所示。其中,5为符号位,S=1,表示温度为负值;S=0,表示温度为正值。表3-2DS18B20输出温度的二进制补码格式字节类型输出值温度值的低字节D7D6D5D4D3D2D1D0温度值的高字节S S S S SD10D9D8(3)口518820中的低温触发器北、高温触发器T乩用于设置低温、高温的报警数值。DS18820完成一个周期的温度测量后,将测得的温度值和我、升相比较,如果小于北,或大于丁乩则表示温度越限,将该器件内的告警标志位置位,并对主机发出的告警搜索命令作出响应。需要修改上、下限温度值时,只需-专业资料-使用一个功能命令即可对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口518820内部高速暂存寄存器各位含义暂存器内容 字节地址TOC\o"1-5"\h\z温度最低数字位 0温度最高数字位 1温度上限TH 2温度下限兀 3配置寄存器 4保留 5计数剩余值 6每度计数值 7CRC校验 8表3-4配置寄存器R0,R1各值代表含义R1R0转换精度温度分辨率转换时间ms0090.593.7501100.25187.510110.12537511120.06257503.2.2DS18B20在系统中的应用在本系统中,口518820数字式温度传感器每转换一次输出为两个字节形式通过下位机的串口发送端向上位机发送,由于其输出电压有限,故加一上拉电阻,-专业资料-使其输出高电平达到5V,其电路原理图如图3-4所示。3.3电平转换模块设计图3-4测温模块电气原理图由于本系统温度采样点距离控制中心比较远,TTL电平不能够进行长距离传输,所以需要进行电平转换。在本系统中,通过MAX232芯片使T北电平转换成232电平,现对其原理做简要介绍。MAX232电平转换芯片简介MAX232芯片是美信公司专门为电脑的RS-232标准事口设计的单电源电平转换芯片,使用+3.3电平转换模块设计图3-4测温模块电气原理图由于本系统温度采样点距离控制中心比较远,TTL电平不能够进行长距离传输,所以需要进行电平转换。在本系统中,通过MAX232芯片使T北电平转换成232电平,现对其原理做简要介绍。MAX232电平转换芯片简介MAX232芯片是美信公司专门为电脑的RS-232标准事口设计的单电源电平转换芯片,使用+5丫单电源供电。其封装图如图3-5所示。Ch|16比C15CNDHriourC2t413RIIHC2-j12R1OUT]]TUN12DUI7101?INR2INS9RcOUI图3-5MAX232封装图第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功-专业资料-能是产生+12丫和-12丫两个电源,提供给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所示:-WT0-1WK'-sTUffiErfjFFTFR£+制mi喟ntm峻auiWTs-WT0-1WK'-sTUffiErfjFFTFR£+制mi喟ntm峻auiWTs图3-6MAX232电气连接图3.3.2MAX232在本系统中的应用在本系统中,MAX232做为上位机和下位机之间连接的纽带,其作用非常重要。如图3-7所示,下位机通过P3.1(TXD)端将数据送至第一片MAX232的T1IN端,经过电平转换后由口0仃端发出,此时发出的电平就为口5232电平,即逻辑正为一12V,逻辑负为+12V,发送的数据由第二片MAX232的R1IN端接受,转换成丁北电平后再由R1OUT端发送至上位机的P3.0(RXD)端,这样就完成了上、下位机之间的数据通信。-专业资料-
(2)(1)(2)(1)图3-7MAX232在系统中的电路原理图报警模块电路设计在该模块中,采用电磁式进行报警。蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO弓|脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。图3-8报警电路模块电路原理图如图3-8所示,蜂鸣器的正极接到三极管£机上面,蜂鸣器的负极接到地(GND)上,三极管的基级B经过限流电阻口6后由单片机的P2.7弓|脚控制,当P2.7输出高电平时,三极管Q1截止,没有电流流过线圈,蜂鸣器不发声;当P2.7输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,可以通过程序控制P2.7脚的电平来使蜂鸣器发出声音和关闭。当实时温度值超过温度上限或低于温度下限时,P2.7弓I脚输出低电平,使蜂鸣器发出声响报警。-专业资料-电源模块电路设计因为单片机工作电源为+5V,且电路功耗很小。采用7805三端稳压片即可满足要求。具体电路图如下:图3-9电源电路模块电路原理图在该模块中,1乂7805前端的两个电容及、C2主要超滤除纹波作用,后端的C3、C4便于长距离传输,短距离的话可以不加。D3为电源指示灯。口4主要是保护电路作用,在断电时及时将C3中的电量弓|导出去。现对LM7805做简要介绍。(1)概述78XX系列是三端正电源稳压电路,其封装为T0-220,它有一系列固定的电压输出,应用非常广泛。每种类型由于内部电流的限制,以及过热保护和内部安全区的保护,使它基本上不会损坏。(2)特点①最大输出电流为1.5A;②过热保护;③短路保护;④输出晶体管安全区保护;其封装图如图3-10所示。-专业资料-
图3-101乂7805封装图其中:1输入;2接地;3输出。LM7805内部框图如图如图3-11所示。(3)参数LM7805极限参数如表3-5所示:表3-5LM7805极限参数输入电压Vi18V结到空气热阻RJA965CW结壳气热阻RJC95CW工作温度T0~125℃opr储存温度T-65~+125℃参数符号数值单位图3-11LM7805内部电路图-专业资料-
4软件设计本系统软件部分主要包含温度转换模块、串口通信模块、报警电路模块和温度显示及控制模块。温度转换模块主要负责将口518820送过来的字节转换成可识别的十进制温度。事口通信模块主要是负责将数据从下位机传送至上位机,报警电路模块负责将实时温度和设定的温度上下限进行对比决定是否启动报警。下面将对各模块进行细致介绍。4.1温度转换模块程序设计通过前文介绍DS18B20的工作原理可知,口518820送至下位机的是温度的16位补码形式,由于正数的原码、反码、补码都一样,所以当温度大于0℃时可以直接将补码转换成十进制温度。图4-1为温度处理程序流程图。上位机部分流程图开始-i上位机部分流程图开始-i v NU转换结束标志位置1?二;」Ytemp2=nLsb&0x0ftemp1=(nLsb>>4)|(nMsb<<4)通过串口将temp1,temp2发送出
去N-「丁一:1一 :■•串,口中断标志位置1??)Y将收到的数据[N *temp赋值给小数一.二接收次数标识=].?1>位tempiY将收到的数据temp赋值给小数位t,emp2将数据通过显
示函数显示在
数码管上图4-1上、下位机温度处理流程图-专业资料-4.2串口通信模块程序设计本系统中,串口通信模块主要负责数据串行方式的发送和接收,在程序中,主要对涉及串行通信方式的各个寄存器进行设置,并且根据波特率计算定时器初值,现对其做详细说明。串口通信方式设置串行口通信方式设置主要涉及到串行口控制寄存器SCON和PCON,中断允许寄存器他,中断优先级寄存器下等。现对各个寄存器的用法作简要说明。(1)SCON寄存器MCS-51单片机对串口的控制是通过SCON实现的,也与电源控制寄存器PCON有关。现对SCON的各位定义进行说明。表4-1SCON寄存器各位定义位地址9F9E9D9C9B9A9998SCONSM0SM1SM2RENTB8RB8TIRI5乂0和5乂1:串行口方式控制位,用于设定串行口的工作方式,见表4-2。5乂2:多级通信控制位,主要在方式2和方式3下使用。在方式0和方式1下,5乂2不用,应设置为0。REN:允许接收控制位。REN为0,禁止串行口接收;REN为1,允许串行口接收。TB8:发送数据的第九位,用于在方式2和方式3时存放发送数据的第九位。TB8由软件置“1”或清“0”。口88:接收数据的第九位。用于在方式2和方式3时存放接收数据的第九位。方式0下不使用口88,方式1下,若5乂2=0,则口88用于存放接收到的停止位。TI:发送中断标志位,用于指示一帧数据是否发送完成。在方式0下,发送电路发送完第8位数据时,TI由硬件置“1”;在其他方式下,TI在发送电路发送停止位时置“1”。TI在发送前必须用软件复位。RI:接收中断标志位,用于指示一帧数据是否接收完。在方式0下,口1在接收-专业资料-
电路接收到第8位数据时由硬件置“1”;在其他方式下,口是在接收电路接收到停止位的中间位置时置位的。RI也由软件清零。表4-2串行口的工作方式和所用波特率对照表SM0SM1工作方式功能波特率00方式08位同步移位寄存器01方式110位UART可变(由定时器控制)10方式211位UARTf .:64,f ..-32OSC OSC11方式311位UART可变(由定时器控制)(2)PCON寄存器表4-3PCON寄存器各位定义位地址8E8D 8C8B 8A89 88 87PCONSMOD- GF1GF0 PD IDL5乂0口:波特率选择位。SMOD=1时,方式1、2和3的波特率加(倍°SMOD=0时,波特率不变。GF1和GF0:通用标志位。PD:掉电标志位。PD="0"为正常方式,PD="1"时为掉电方式。旧1_:空闲标志位。旧1_="01|为正常方式,旧1_="1"为空闲方式。(3)中断允许寄存器正表4-4IE寄存器各位定位D7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0EA为CPU中断允许总控制位。ES为串行口中断允许位。在中断方式下,EA,£5要都置“1”时,串行口才能接收和发送中断。(4)中断优先级寄存器下图4-5IP寄存器各位定位D7D6D5D4D3D2D1D0PT2PSPT1PX1PT0PX0PS(IP.4)为串行□优先级设定位。PS=1时,串行□为高优先级,否则为低优先级。在本系统中,事行□工作于方式1,即5乂0=0,SM1=1;波特率由定时器T1设定。-专业资料-
4.2.2波特率设置事行□每秒发送(或接收)的二进制位数称为波特率。在串行通信中,收发双方对发送或接收的数据速率要有一定的约定。事行□工作于不同的工作方式,其波特率的设置也有所不同。(1)方式0和方式2在方式0时,每个机器周期发送或接收一位数据,其波特率固定为振荡频率的1/12,且不受5乂0口位的控制。方式2的波特率要受SMOD位的控制,当SM0D=1时,波特率等于f.32,OSC-当SMOD=0时,波特率等于f0sJ64,因此,方式2的波特率公式为波特率=f/(64'/2SMOD)⑵方式1和方式3单片机事行口工作于方式1或方式3时,其波特率由定时/计数器口的溢出率与5乂0口位共同控制。其波特率可表示为:波特率=T1的溢出率『(322SMOD定时器溢出率取决于计数速率和定时器的计数值。计数速率与TMOD寄存器中的Ct的设置有关。当c.t=0时为定时方式,计数速率等于f0sd12;当C:T=1时,为计数方式,计数速率取决于外部输入时钟的频率,但不能超过f0sJ24,使用时通常将口设置为定时模式。设」的计数初值为X,CT=0(T1为定时方式)时,那么每过(256«)个机器周期,定时器口就会产生一次流出。则T1的流出周期为:溢出周期=定时时间=-12-义(256-X)OSC溢出率为溢出周期的倒数,将上式带入波特率计算公式得:波特率二2M波特率二2M竺x一二2SMOD义f OSC32 12义(256—X)384义(256—X)则T1的计数初值(装载值)为X=256—2smod:f384x波特率本系统中,TMOD=0x20,定时器T1工作于方式2(8位自动重装方式);装初值为TH1=0xff,TL1=0xff,波特率28800bps。-专业资料-
报警电路模块设计报警电路主要负责将实时温度和设定的温度上下限值进行比较,当温度超出这一范围时启动报警电路。其程序流程图如图4-2所示:YP27=0,启
动报警电
路Temp2>TmaxP27=0,启
动报警电
路N ■--土、•・f丫Temp2<Tmin?1—N 数点显示温度图4-2报警电路程序流程图温度显示及控制模块程序设计该模块主要包括一个4位一体的共阴极数码管,三个独立式按键,数码管用来显示温度和温度上下限,三个独立式按键分别控制温度的切换,温度加,温度减。独立式按键54控制温度的切换,当第一次接下时显示设定的最高温度值,此时,可以通过调节S5或S6调节最高值温度。当第二次按下时显示的最低温度值,可以通过调节S5或S6调节最低值温度。当第三次接下时显示实时温度。其程序流程图如图4-3所示:-专业资料-
4.5图4-3按键程序流程图4.5图4-3按键程序流程图系统软件整体流程系统各分模块上部分巳经介绍完毕,现对各个模块进行综合给出其流程图,-专业资料-其中,上位机流程图如图4-4所示,下位机流程图如图4-5所示。图4-4上位机程序流程图-专业资料--专业资料-NN图4-5下位机程序流程图5软件仿真系统仿真环境本设计采用Proteus仿真软件进行仿真,Proteus软件是英国Labcenter或卅0『扁公司出版的£口人工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。首先在Proteus的元件库中找到所需的元件,按照硬件设计中的说明把各部件连接起来组成一个数字式温度计硬件系统。然后把在Keil环境调试下生成的.HEX文件导入到AT89S52里,,点击运行符号就可以使软硬件的配套设施在Proteus的环境下仿真实现,以检查是否存在错误。器件参数选取由于该仿真环境中没有AT89S52单片机,故采用AT89C52单片机代替,时钟频率为12MHz。时钟产生电路的晶振为12MHz,接地电容为30pF。复位电路的电解电容为10uF,与电容并联的电阻为1K,下拉电阻为10K。报警电路分压电阻选择为4K7,工作电压为5V。仿真结果分析开机初始值显示:开机初始时让数码管显示“0”,等接下复位键时在显示实时温度值,显示效果如图5-1所示:图5-1开机初始值显示示意图-专业资料-最小最大值温度显示:在本系统中,初始最小值为5℃,最大值为95℃,其显示效果如图5-2、5-3所示:图5-2最小值显示示意图图5-3最大值显示示意图正常温度显示如图5-4所示:图5-4正常温度显示示意图-专业资料-6结论本系统采用AT89S52单片机做为主控制芯片,利用串口通信和电平转换,使数据能够胜任较远距离传输而不至于丢失,保证了数据的准确性。采用集成化数字芯片,可以在大大节省硬件电路任务量的同时,使系统更加趋于稳定。软件方面,通过串口通信,不仅节省了大量的单片机1/0口,并且程序更加简洁。通过本系统的设计,锻炼了自己软件编程能力,为以后的自身发展奠定了基础。致谢在这次毕业设计中,得到了老师和同学们的许多帮助和建议,在此,要特别感谢王素玲老师,在设计的过程中,她为我提出了许多好的建议,通过这两个月的对我悉心教导,我顺利的完成了毕业设计,学到了很多以前没接触过的东西。通过这次毕业设计,我加深了对单片机的了解,深入系统的学习了专业画图软件Altium口600%「,学会用单片机串口通信即电平转换解决实际问题。-专业资料-参考文献[1].贾振国.DS1820及高精度温度测量的实现[门.电子技术应用,2000(1):58-59.[2],余永权.单片机原理及应肋:电子工业出版社,1997.邦田,电子电路实用抗干扰技札:人民邮电出版社,1994.曲喜贵,电子元件材料手册[M].:电子工业出版社,1989.422-430.[5],黄贤武,郑筱霞,曲波等,传感器实际应用电路设计[M].:电子科技大学出版社,1997.4-10.[6],刘君华,智能传感器系统[M].:西安电子科技大学出版社,1999.[7],余永权.Flash单片机原理及应用[M].:电子工业出版社,1997.[8].邦田,电子电路实用抗干扰技术[M].:人民邮电出版社,1994.[9],周云波,mDS18B20单线数字温度计构成的单线多点温度测量系统,电子技术应用,1996(2):15-20.[10],吉鹏,马云峰等,微机原理与接口技术[M].:高等教育出社,2001.[11]贾宗璞,许台利,C语言程序设比:中国矿业大学出版社,2007,2[12]余发山,王福忠,单片机原理及应用技札:中国矿业大学出版,2008,6[13]江世明,基于Proteus的单片机应用技札:电子工业出版社,2009,5-专业资料-附录一系统源程序上位机程序:#include<at89x52.h>#defineucharunsignedchar#defineuintunsignedintuchartemp,temp1,temp2;ucharmax=35,min=15;uinti,j;sbitP20=P2P;sbitzj=P27;sbitsd=P2巧;sbitjx=P23ucharcodetable0[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};〃数字0-9共阴极编码ucharcodetable1[10]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};〃数字0-9共阴极编码(带小数点)ucharcodetable2[1]={0x39};//Cucharcodetable3[4]={0xfe,0xfd,0xfb,0xf7};//P0口段选ucharcodetable4[16]={0,0,1,2,2,3,4,4,5,6,6,7,8,8,9,9};// 〃名称:毫秒级延时函数// voidDelay(unsignedintnTimeDelay){〃晶振为11.0592Mhz,1MS延时unsignedinti;while(nTimeDelay--)-专业资料-for(i=0;i<125;i++)(})// 〃名称:数码管显示函数// voiddisplay(ucharx,uchary)(uinti,shi,ge,xiao;shi=x/10;ge=x%10;xiao=y&0x0f;for(i=0;i<4;i++)(P0=table3[i];if(i==0){P1=table0[shi];Delay(2);}elseif(i==1){P1=table1[ge];Delay(2);}elseif(i==2){P1=table0[table4[xiao]];Delay(2);}elseif(i==3){P1=table2[0];Delay(2);}}}// 〃名称:按键处理函数-专业资料-// voidbutton()//按键处理子函数(if(sd==0)(Delay(5);if(sd==0&&j==0)(while(!sd);//松手检测j=1;)elseif(sd==0&&j==1)(while(!sd);〃松手检测j=2;)elseif(sd==0&&j==2)(while(!sd);〃松手检测j=0;))if(zj==0)(Delay(5);if(zj==0)//确实按下(while(!zj);//松手检测if(j==1)-专业资料-min+=5;elseif(j==2)max+=5;))if(jx==0)(Delay(5);if(jx==0)〃确实按下(while(!jx);〃松手检测if(j==1)min-=5;elseif(j==2)max-=5;)))// 〃名称:初始化函数// voidinit()(display(0,0);EA=1;ES=1;SM0=0;-专业资料-SM1=1;REN=1;〃允许接收TMOD=0x20;〃定时器T1工作于方式2(8位自动重装方式);TH1=0xff;TL1=0xff;〃波特率28800bps;TR1=1;P20=1;i=j=0;)// 〃名称:主函数// voidmain()(init();while(1)(button();if(j==0)display(temp1,temp2);if(j==1)display(min,0);if(j==2)display(max,0);if(temp1>=max||temp1<min)P20=0;//报警灯打开elseP20=1;//关闭报警灯))-专业资料-// 〃名称:串口中断处理函数// voidtimer()interrupt4(ES=0;RI=0;temp=SBUF;i++;if(i==1){temp2=temp;ES=1;}elseif(i==2){i=0;temp1=temp;ES=1;}}下位机程序:#include<at89x52.h>#defineucharunsignedchar#defineuintunsignedintsbitds18b20=P22uchartemp1,temp2,i;uinta[2]
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 标准货物运输赊销合同样本
- 国际退货合同协议书模板
- 建筑项目设计与施工一体化合同
- 4古诗三首《赠刘景文》教学设计2024-2025学年统编版语文三年级上册
- 10 爱心的传递者 教学设计-2023-2024学年道德与法治三年级下册统编版
- 3《花牛歌》教学设计-2024-2025学年四年级上册语文统编版
- 6 磁极间的相互作用 教学设计-2023-2024学年科学二年级下册教科版
- 13 我想和你们一起玩2023-2024学年一年级下册道德与法治同步教学设计(统编版)
- 工程合同变更服务合同范本
- 手机合同范本软件
- 《化工工程制图》完整教案
- 洪恩识字识字卡(001-100)可直接打印剪裁
- 《单片机技术及应用》教学大纲
- J-STD-033D处理包装运输和使用湿度回流和过程敏感设备
- 文联述职报告
- SCI期刊的名称缩写与全称对照表
- 人本位医疗培训课件
- 桂西北丹池成矿带主要金属矿床成矿特征及成矿规律
- 2023年征信知识竞赛基础题考试复习题库(带答案)
- 红楼梦读书笔记4000字(3篇)
- 高等职业学校铁道信号自动控制专业实训教学条件建设标准
评论
0/150
提交评论