基于单片机的饮水机温度控制系统--毕业设计.doc_第1页
基于单片机的饮水机温度控制系统--毕业设计.doc_第2页
基于单片机的饮水机温度控制系统--毕业设计.doc_第3页
基于单片机的饮水机温度控制系统--毕业设计.doc_第4页
基于单片机的饮水机温度控制系统--毕业设计.doc_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

*本科毕业论文题目:基于单片机的饮水机温度控制系统院(系、部)名 称 : 机电工程学院 专 业 名 称: 电子信息工程 学 生 姓 名: * 学 生 学 号: 0414080215 指 导 教 师: 郭秀梅 2012年 4月 5 日*教务处制 学 术 声 明本人呈交的学位论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本学位论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本学位论文的知识产权归属于河北科技师范学院。本人签名: 日期: 指导教师签名: 日期: 摘要单片机在电子产品中的应用已经越来越广泛,在许多电子产品中也用到了温度检测和控制,目前广泛使用的饮水机具有饮水时尚、结构简单等特点,但随着用户的长时间使用,这些饮水机功能单一能耗较大长时间使用饮水机的水对健康不利等缺点逐渐暴露出来。因此,此课题的主要目的是设计出一个基于单片机的饮水机温度控制系统,此系统要可以实时检测饮水机水箱的水温,并且可以通过数码管显示水箱水温度数,可以通过键盘或开关选择制冷或加热,可以任意设置水温的上下限,如加热,当温度在设定的范围内时正常工作,当低于水温下限时控制加热器加热;如制冷,当温度高于水温上限时控制压缩机制冷。温度检测范围095C,精确度-1+1C,当温度超过设定值时具有示警功能。掌握好对饮水机水温的智能控制,能够在一定程度上把我们身边的水资源充分利用起来,防止了每次加热都使水沸腾,既节能又可以更好的满足人们的更高的需求。关键词: 饮水机;单片机;温度传感器AbstractSCM electronic products has become increasingly widespread, and is also used in many electronic products, temperature measurement and control. Currently widely used in drinking fountains with drinking water fashion, simple structure and so on. But with the prolonged use of these water fountains, function of single large energy consumption in the prolonged use of drinking fountains on the adverse health and other shortcomings were gradually exposed. Therefore, the main purpose of this subject is to design a microcontroller - based drinking fountains temperature control system. This system can real-time detect of water dispenser tank water temperature. This system can real-time detection of water dispenser tank water temperature , and digital display water temperature in degrees cooling or heating , you can select via the keyboard or switch , you can set the water temperature in the upper and lower limits. When the temperature within the limits set by the drinking fountains will work properly. Such as heating, When the water temperature is lower than limit, it controls heater; such as refrigeration compressor cooling, when the temperature is higher than the water temperature limit control. Temperature detection range of 0 95 C, accuracy of -1 to +1 C, has a warning function when the temperature exceeds the set value. To master the intelligent control of water dispenser water temperature, can be in to a certain degree of water around us to make full use of it.,prevent heat to boil water all every time.already energy-saving and can better satisfy peoples higher demand.Keywords: drinking fountain;SCM;sensor. 目录摘要Abstract1. 前言2. 方案论证2.1概论2.1.1题目来源2.1.2 题目任务2.1.3 设计分析2.2 系统方案设计3. 系统硬件电路设计3.1 单片机最小系统设计3.1.1 单片机选择3.1.2时钟电路3.1.3 复位电路3.2 温度采集电路设计3.3 A/D转换电路设计3.3.1 A/D转换器选择3.4 显示电路设计3.5 键盘电路设计3.6 报警电路设计3.7 控制电路设计4. 系统软件设计4.1 主程序流程图及简要说明4.2 A/D转换子程序4.3 键盘子程序4.4 控制子程序4.5 显示子程序5. 结论6. 参考文献7.致 谢附录1:系统硬件原理图附录2:软件程序清单1. 前言 在人类的生活环境中,温度扮演着及其重要的角色。自18世纪工业革命以来,工业发展与是否能掌握温度有着密切的联系。在冶金、钢铁、石化、水泥、玻璃、医药等行业,可以说几乎80%的工业部门都得考虑着温度的因素。温度控制是无论是在工业生产过程中,还是在日常生活中都起着非常重要的作用,如电热水器、自动饮水机等,都要用到水温控制系统。高校的发展同样要求用现代化手段提升现有的实验设备,为学生提供更多更好更现代化的实验条件。因此我们应该应用电子专业知识,实现温度控制的自动化,提高工业企业自动化水平。目前的水温控制系统大多采用由模拟温度传感器、多路模拟开关、A/D转换器及单片机组成的传输系统。这种系统需要布置大量的测温电缆,才能把现场传感器的信号送到采集卡上,安装和拆卸复杂,成本也高。同时线路上传送的是模拟信号,易受干扰和损耗,测量误差也比较大,不利于控制者根据温度变化及时做出决定。在这样的形式下,开发一种实时性高、精度高,能够综合处理多点温度信息的系统就很有必要。近年来,单片机以其功能强、体积小、使用方便、性能价格比较高等优点,在实时控制、自动测试、智能仪表、计算机终端、遥测通讯、家用电器等许多方面得到了广泛的应用。用单片机对温度进行实时检测和控制来解决工业及日常生活中对温度的及时自动控制,是现代温控系统发展的趋势。2. 方案论证2.1概论2.1.1题目来源随着电子技术的发展,特别是大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么单片机技术的出现则给现代工业控制测控领域得到了极为广泛的应用。特别是其中的C51系列单片机的出现,由于它具有极好的稳定性,更快和更准确的运算精度。因此,它的出现不但推动了工业的生产,也影响着人们的工作和学习。温度控制系统在现代工业设计、工程建设及日常生活中的应用越来越广泛,早起的温度控制主要应用于工厂中,例如钢铁的水溶温度控制,不同等级的钢铁要通过不同温度的铁水来实现,这样就可能有效的利用温度控制来掌握所需要的产品了。在日常人们的生活中,温度控制系统的应用和作用也体现到了各个方面,随着人们生活质量的提高,酒店厂房及家庭生活中都会见到温度控制的影子,温度控制将更好的服务于社会。2.1.2 题目任务 设计一个基于单片机的饮水机温度控制系统,该系统可以实时检测饮水机水箱的水温,并且可以通过数码管显示饮水机水箱水温度数,可以通过键盘或开关选择制冷或加热,可以人为设置水的温度的上下限,如加热,当温度在设定的范围内时正常工作,当低于水温下限时控制加热器加热;如制冷,当温度高于水温上限时控制压缩机制冷,温度检测范围095C,精度-1+1C,当温度超过设定值时具有示警功能。2.1.3 设计分析 该系统要完成饮水机水箱的水温度控制系统的设计。要达到题目设计的要求,设计时需要解决以下几个方面的问题:一、如何实现095C的温度检测范围和精度为1C的温度测量;二、如何将水箱的温度控制在设定的范围内;三、如何选择器件及设计电路使整个系统稳定、有效的工作。2.2 系统方案设计方案一:传统的一位式模拟控制方案,方案原理框图如图2.1所示。其选用的是模拟电路,用电位器设定给定值,和反馈的温度值比较后,决定加热或不加热。其特点是电路简单,易于实现,但是系统所测得的结果精度不高,并且调节动作频繁,系统误差大,不稳定。系统受环境的影响大,不能实现繁杂的控制算法,不能用数码管显示,不能用键盘设定。传感器信号放大温度设置比较器信号放大固态继电器负载 图2.1方案一原理框图方案二:传统的二位式模拟控制方案,方案原理框图如图2.2所示。其基本思想与方案一相同,但是由于采用上下限比较电路,所以控制精度有所提高,这种方法还是模拟控制方式,因此也不能实现繁杂的控制算法,而且仍不能用数码管显示和键盘设定。传感器信号放大与设置的温度上限比较与设置的温度下限比较信号处理固态继电器负载 图2.2方案二原理框图方案三:以单片机为核心的控制方案,其原理图如图2.3所示。本方案通过温度传感器将温度信号转换为电流信号,信号放大后,经A/D转换器,A/D转换器将进来的模拟信号转换成数字信号,然后送到单片机处理,并将采集的温度与键盘设定的温度值进行比较,根据比较的结果,单片机输出相应的信号来控制外部设施,达到控制加热器加热或压缩机制冷的目的。还具有显示、报警等功能。 负载传感器A/D转换信号放大单片机显示键盘报警加热或制冷继电器受控对象 2.3方案三原理框图 方案一和方案二是传统的模拟控制方式,而模拟控制系统是难以实现复杂的控制规律,控制方案的修改也较麻烦。而方案三是采用以单片机为核心的控制系统,尤其对温度控制,它可达到模拟控制所打不到的控制效果,并且可实现显示,键盘设定,报警等功能,大大提高了系统的智能化,也使得系统的测量结果精度大大提高。同时,以单片机为核心的控制系统,它的软件编程比较灵活,易于实现。根据本论文的要求,经过对三种方案的比较分析,本论文采用方案三。3. 系统硬件电路设计3.1 单片机最小系统设计本论文设计最小系统如图3.1所示,由主控器AT89C51、时钟电路和复位电路三部分组成。单片机AT89C51作为核心控制器控制着整个系统的工作,而始终电路负责产生单片机工作所必须的时钟信号,复位电路使得单片机能够正常、有序、稳定地工作。 图3.1单片机最小系统3.1.1 单片机选择AT89C51单片机是ATMEL公司的AT89系列中的一种,该系列是当今世界上最新型的电擦写八位单片机之一,和51系列完全兼容,低电压、低电流、低功耗,价格低廉,很受到用户欢迎。其管脚图如图3.2所示。 图3.2 AT89C51管脚图AT89C51的引脚功能说明: Vcc:电源电压 GND:地 P0 口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用。作为输出口用时,每位能吸收电流的方式驱动8 个TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接受指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1 口:P1 是一个带内部上拉电阻的8 位双向I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash 编程和程序校验期间,P1 接受低8 位地址。 P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位四肢的外部数据存储器(例如执行MOVX DPTR指令)时,P2 口送出高8 位地址数据,在访问8 位地址的外部数据存储器(例如执行MOVX RI 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中R2 寄存器的内容),在整个访问期间不改变。Flash 编程和程序校验时,P2 也接收高位地址和其他控制信号。 P3 口:P3 是一个带有内部上拉电阻的8 位双向I/O 口,P3 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。 RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的1/6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是,每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC 指令ALE 才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 无效。 PSEN:程序存储允许输出是外部程序存储器的读选通型号,当89C51 由外部存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN 信号不出现。 EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为 0000HFFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA 端状态。如EA 端为高电平(接Vcc 端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12v 的编程允许电源Vpp,当然这必须是该器件使用12v 编程电压Vpp。 XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。鉴于AT89C51单片机所具有的特性及本论文设计控制的复杂性和兼顾显示、报警、键盘控制等较高要求,本论文设计选用AT89C51单片机作为中心控制器。3.1.2时钟电路时钟电路用于产生AT89C51单片机工作时所必需的时钟信号。其电路与AT89C51的连接如图3.1所示。AT89C51单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,AT89C51单片机应在唯一的时钟信号控制下,严格按时序执行指令进行工作,而时序所研究的是指令执行中各个信号的关系。在执行指令时,CPU首先要到指令存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定的操作。CPU发出的时序信号有两种,一是用于片内对各个功能部件的控制。另一种是对片外存储器或I/O口的控制,这种时序对于分析、设计硬件接口电路至关重要。这也是单片机应用设计者最关心的问题。时钟是单片机的心脏,单片机各个功能部件的运行都是以时钟频率为基准,有条不紊地工作。因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚X1,输出引脚X2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。虽然AT89C51有内部振荡电路,但要形成时钟,必须外接元件。外接晶体以及X1和X2构成并联谐振电路。电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。除使用晶体振荡器外,如对时钟频率要求不高,还可以用陶瓷振荡器来代替。电路中的电容容值通常选择为30PF左右,本电路选择的是20PF,这并不影响系统的工作和控制的结果。晶体的振荡的频率的范围通常是在1.2MH到12MH之间。晶体的频率越高,则系统的时钟频率就越高,单片机的运行速度也就越快。但反过来运行速度越快对存储器的速度要求就越高,对印刷电路板的工艺要求也高。AT89C51单片机常选择振荡频率6MH或12MH的石英晶体,随着集成电路制造工艺技术的发展,单片机的时钟频率也在逐步提高,现在的高速单片机芯片的时钟频率已经达到40MH。考虑到本设计所用的各种器件对时钟频率的要求及整体电路的简洁性,本课题选用的是振荡频率为6MH的石英晶体。3.1.3 复位电路 AT89C51的复位是由外部的复位电路来实现的。单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完单片机系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机的复位电路设计不可靠引起的。因此选用一个适合本系统的复位电路极其重要。常用的复位电路有四种方式:(1)上电复位电路(2)按键复位电路(3)脉冲复位电路(4)兼有上电复位与按键复位的电路。由于考虑到结构和成本等原因,在很多设计里面,复位电路通常采用上电复位和按键复位两种。根据本系统的特性,决定选用最简单的上电复位电路。上电复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过10ms,就可以实现自动上电复位。当时钟频率选用6MH,电容C选用22mF,电阻R选用1KW。该复位电路工作原理为:在通电瞬间,在RC电路充电过程中,RST端出现正脉冲,保证RST引脚出现10 ms以上稳定的高电平,从而使单片机复位。3.2 温度采集电路设计本设计中的温度采集系统由DS18B20传感器负责。其型号如图3.2.1所示: 图3.2.1 DS18B20工作原理为DS18B20的读写时序和测温原理与DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s 减为750ms。 DS18B20测温原理如图3.2.2所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振 随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在55所对应的一个基数值。计数器1对 低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重 新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图3.2.2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。 停止斜率累加器比较预置计数器1计数器2温度寄存器低温度系数晶振高温度系数晶振预置=0=0LSB置位/清除加1图3.2.2 DS18B20测温原理图 DS18B20内部结构图如图3.2.3所示:64位ROM和单线接口高速缓冲存储器存储器和控制器8位CRC生成器电源检测温度灵敏元件低温触发器TL高温触发器TH配置寄存器3.2.3 DS18B20内部结构 3.3 A/D转换电路设计 A/D转换部分电路的功能主要是将采集部分采集来的模拟信号转换成数字信号,然后输送到单片机进行数据处理。主要器件有ADC0809、74LS02、74LS74等。ADC0809与AT89C51连接电路如图3.3所示。 图3.3 A/D转换电路 A/D转换器ADC0809共有八路模拟输入端,由于温度采集只有两路,因此只用到两路模拟输入端,其输入通道为IN0、IN1。这两个通道的数据分别是温度采集电路的输出信号V01、V02,也就是转换为电压值的饮水机两个水箱水的温度值。选择这两个通道需要通过设置ADC0809的ADDA、B、C的值,因为它对应的是八路模拟信号,而本系统只有两路模拟信号输入,因此,只需要将低位ADDA连到AT89C51的P2.2口,并根据P2.2口的电压是低电平或高电平来选择要检测哪个通道,当ADDA值为0时选的是IN0通道,当ADDA为1时选的是IN1通道。而ADDB、ADDC只需接地即可。3.3.1 A/D转换器选择A/D转换器的功能是将连续变化的模拟量转换成一个离散的数字量。每一个数字量都是数字代码的按位组合,每一位数字代码都是一定的“权”,对应一定大小的模拟量。为了将数字量转换成模拟量应该将其每一位都转换成响应的模拟量,然后求和即可得到与数字量成正比的模拟量。 目前,市面上有很多类型的A/D转换器,如:ADC0804、ADC0809、AD574等,根据本控制的特点,选用ADC0809作为A/D转换器。ADC0809八位逐次逼近式A/D转换器是一种单片CMOS器件,包括8位的模/数转化器,8通道多路转换器和与微处理器兼容的控制逻辑。8通道多路转换器能直接连通8个单端模拟信号中的任何一个。片内带有锁存功能的8路模拟多路开关,可以对8路05V的输入模拟电压信号分时进行转换,片内具有多路开关的地址译码和锁存电路、比较器、256RT型网络、树状电子开关、逐次逼近寄存器SAR、控制与时序电路等。输出具有TTL三态锁存缓冲器,可以直接连接到单片机数据总线上。1. ADC0809功能如下:(1)分辨率为8位。(2)最大不可调误差小于1LSB。(3)单一+5V供电,模拟输入范围05V(4)具有锁存控制的8路模拟开关。(5)可锁存三态输出,输出与TTL兼容。(6)功耗为15mW。(7)不必进行零点和满度调整。(8)转换速度取决于芯片的时钟频率。时钟频率范围:101280KHZ,当CLK=500kHZ时,转换速度为128mS。2. ADC0809管脚及功能 A/D转换器ADC0809的引脚图如图3.3.1所示。 图3.3.1 ADC0809引脚图 IN0IN7:8路输入通道的模拟量输入端口。2-12-8:8位数字量输出端口。START,ALE:START为启动控制输入端口,ALE为锁存控制信号端口。这两个信号端可连接在一起,当通过软件输入一个正脉冲,便立即启动模/数转换。EOC,OE:EOC为转换结束信号脉冲输出端口,OE为输出允许控制端口。这两个信号也可连接在一起表示模/数转换结束。OE端的电平由低变高,打开三态输出锁存器,将转换结果的数字量输出到数据总线上。REF(+),REF(-),Vcc,GND:REF(+)和REF(-)为参考电压输入端,Vcc为主电源输入端,GND为接地端。一般REF(+)与Vcc连接在一起,REF(-)与GND连接在一起。CLK:时钟输入端口。ADDA,B,C:8路模拟开关的三位地址选通输入端,以选择对应的输入通道。其地址码与对应通道关系如表3.3所示。表3.3 地址码与输入通道对应关系表强调说明一点:ADC0809虽然有八路模拟通道可以同时输入八路模拟信号,但每一个瞬间只能转换一路模拟信号,各路之间的切换由软件变换通道地址实现。A/D转换器采用的转换方法主要有逐次逼近型A/D转换、双积分型A/D转换、并行A/D转换、串-并行A/D转换等,其中逐次逼近型A/D转换既照顾了转换的速度,又具有一定的精度,本系统中,传输数据的频率不高,对精度的要求也不是很高,因此,我们选用了常用的逐次逼近型A/D转换ADC0809。3.4 显示电路设计 大多数的单片机应用系统,都要配置输入设备和输出设备。本系统的输出设备是显示器,根据本系统的设计特点,采用七段LED数码管作为显示器。而本系统设计要求温度检测范围095,精度1。数码管只需显示两位即可达到要求,因此,显示部分电路采用两个一位的LED数码管来组成显示器,没有要求显示小数点,LED数码管的dp脚悬空。本设计显示电路的应用有两点,一是实时显示引水机水箱的水温值,另一个是显示键盘设定的温度上、下限值。其电路连接如图3.4所示。 图3.4显示部分电路通过一个74LS47连接7个100欧姆的电阻来驱动数码管显示。数码管的VCC脚分别连接到两个三极管的共射极,而三极管的共基极连到一起接到+5V电源上。共集极分别连接两个4.7K的电阻接到单片机AT89C51的P1.4、P1.5管脚。LED显示块是由发光二极管显示字段的显示器件。在单片机应用系统中应用非常普遍,通常使用的是七段LED,这种显示器有共阳极和共阴极两种,本设计选用的是共阳极。共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压5V。当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。使用LED显示器时,为了显示数字或符号,要为LED显示器提供代码,因为这些代码是通过各段亮与灭来为显示不同字型的。7段发光二极管,再加上一个小数点位,共计8段。因此提供给LED显示器的段码正好一个字节。各字节中对应关系如表3.4.1所示。表3.4.1 各段与字节中各位的对应关系表代码位D7D6D5D4D3D2D1D0显示段dp Gfedcba将单片机I/O口的8位线与显示块的发光二极管的引出端(adp)相连,共阳极高电平有效,选通有效后8位并行输出口输出不同的数据就点亮相应的发光二极管,获得不同的数字或字符。共阳极7段显示器显示数字对应的段码关系如表3.4.2所示。表3.4.2 7段LED数字与段码对应关系表显示数字0123456789共阳极段码C0HF9HA4HB0H99H92H82HF8H80H90H3.5 键盘电路设计键盘在单片机应用系统中能实现向单片机输入数据、传送命令功能,是人工干预单片机的主要手段。键盘实质上是一组按键开关集合。通常键盘所用开关为机械弹性开关,均利用了机械触点的合、断作用。键的闭合与否,反映在输出电压是呈现高电平或低电平,如果高电平表示断开的话,那么低电平则表示键闭合,所以通过对电平高低状态的检测,便可确认按键按下与否。为了确保CPU对一次按键动作只确认一次按键,必须消除抖动的影响,这样才能使键盘在单片机系统中的使用得更加稳定。常用的键盘接口分为独立式按键接口和矩阵式键盘接口。根据本系统的设计特点及要求,键盘的功能主要是用来设置温度上下限,因此本设计采用独立式键盘来完成这一功能要求。其电路连接如图3.5.1所示。 图3.5.1 独立式键盘与AT89C51连接图1、键盘电路及其说明独立式按键就是各个按键相互独立,每个按键各接一根输入线,一根输入线上的按键工作状态不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态就可以很容易的判断出是哪一个按键按下了。独立式按键电路配置灵活,软件简单。但每一个按键需占用一根输入口线,在按键数量较多时学要较多的输入口线且电路结构复杂,故此种键盘适用与按键较少或操作速度较高的场合。本设计,采用四按键键盘,所以在四个I/O口上接四个按键组成一个四按键的简易式键盘。各线通过电阻接+5V,当键盘上没有键闭合时,所有的线断开,呈高电平状态。当键盘上某一个键闭合时,该键所对应的线与连接单片机的线短路。例如:当S1号按键闭合时,它所在的线与连接线短路,使P3.2口为低电平,通过软件里对P3口查寻,如果只有P3.2口为低电平,那么就可以确定是S1键按下了,通过在软件里的设定,行使S1键的功能。如果同时有多个P3口为低电平,则报警显示,然后检查是否有多个键按下,直到只有一个P3口为低电平时,停止报警,那个低电平的P3口上连接的按键则为按下的键,在软件里执行他应该达到的功能。2、键盘功能说明S1:模式设置键,按一下进入到加热系统设置状态,再按一下切换到制冷系统设置状态。S2:步进加键,每按一下,要设置的限制值加1。S3:步进减键,每按一下,要设置的限制值减1。S4:确定键,确定前面所设的温度值。当S1键按1下,进入加热或制冷模式后,数码管显示为00,00代表温度设置起点温度。再按下按键S2数码管显示值将逐步从个位数往上加,直到想要设置的温度值,而按键S3是步进减键,按键每下一次,个位数减1。S4键是确定键,通过它来确定前面所设定的数值。3、键盘的机械抖动若Y0为低电平,S1号键闭合一次,图中t1和t3分别为键的闭合和断开过程中的抖动期(呈现一串负脉冲),抖动时间长短和开关的机械特性有关,一般为510ms,t2为稳定的闭合期,其时间由按键动作所确定,一般为十分之几秒到几秒,t0、t4为断开期。为了保证CPU对键盘的闭合仅作一次处理,在软件中必须去除抖动,在第一次检测到有按键下时,执行一段延时10ms的子程序后确认该按键电平是否仍保持闭合状态电平,如果闭合状态电平则确认有按键下,从而消除抖动的影响。键盘的机械抖动示意图如图2.8所示。 图3.5.2 键盘的机械抖动示意图3.6 报警电路设计报警电路主要是由发光二极管和蜂鸣器组成的,具有声、光报警功能的简单电路,其电路如图2.9所示。当温度超过设置的上、下限时,P2.2口输出高电平,三极管导通,蜂鸣器工作,发出声音。P2.3口输出高电平时,发光二极管正向导通,发光报警。图3.6 报警电路3.7 控制电路设计控制部分电路图如图3.7所示。 图3.7 控制电路该电路是由两个固态继电器作为控制开关,一个继电器控制加热装置,另一个继电器控制制冷装置。固态继电器是一种无触点通断型电子开关,是四端有源器件,其中两个端子为控制输入端,另外两个为输出受控端。为了实现输入与输出的隔离,器件采用了高耐压的光耦合器。当输入信号有效时,电路呈导通状态,反之,呈断开状态,可以实现类似电磁继电器的开关功能。固态继电器将MOSFET、GTR、普通晶闸管等组合在一起与触发电路封装在一个模块中,而且驱动电路与输出电路隔离。固态继电器是可控硅过零触发器,无触点,不用调节,对电网不会产生波形畸变。因此,非常适合本设计。控制电路工作原理:当AT89C51的RXD口输出一个高电平时,三极管开始工作,驱动继电器J1工作,继电器J1呈导通状态,加热装置开始工作。同样,当AT89C51的TXD口输出一个高电平时,三极管开始工作,驱动继电器J2工作,继电器J2开关闭合,制冷装置开始工作。4. 系统软件设计系统软件设计也就是程序设计,就是在完成了硬件系统德尔基础上,再编写相应的程序,下载到芯片上,通过执行程序指令控制硬件,从而实现各种功能。一般来讲,软件功能分为两大类。一类是执行软件,它能完成个各种实质性的功能,如测量、计算、显示、打印、输出控制等。另一类是监控软件,它专门协调执行模块和操作者的关系,在系统中充当组织协调的角色。软件设计就是用计算机所能接受的形式把解决问题的步骤描述出来。简单地说,软件设计就是编制计算机程序。一个好的程序应该完成规定的任务,而且应该层次清晰、易于阅读,并尽可能少占内存,缩短执行时间,但也不要一味的追求少占内存,缩短执行时间。这样做可能会使程序的可读性变差。随着大规模和超大规模集成电路的发展,芯片的内存容量也在不断增加,计算机执行命令的时间也大大的缩短。因此,程序的长短和执行时间,不再显得那么重要,而程序的易读性和程序的开发周期,显得越来越重要。另外,在较复杂的程序设计中,必须充分考虑程序的可读性、稳定性、可扩展性、兼容性以及容错性等也是衡量与评价程序的优劣的重要指标。由于用汇编语言编写的程序效率高,占用的内存单元和CPU资源少,执行速度快,还可直接访问存储器、输入/输出接口以及扩展的各种芯片,并可直接处理中断,直接管理和控制硬件设备,适用于实时控制系统,因此,本设计选用汇编语言来编写程序。4.1 主程序流程图及简要说明本设计的软件包括主程序A/D转换子程序键盘子程序控制子程序及显示子程序。结合本系统的功能,程序长度不会超过AT89C51内部的程序存储器,所以硬件上不用外扩程序存储器。主程序流程如图4.1所示。本论文描述主程序工作过程为:首先对系统初始化,由于本系统要实现对饮水机的冷热两个水箱的检测与控制,因此先要选择模式,这主要是经过硬件电路的按键S1来选择的。在确定进入加热或制冷模式后,调用A/D转换子程序对采集到的模拟量进行转换,转换完毕保存数据后,调用键盘子程序,这个子程序主要完成对温度上、下限的设置。完成设置后,调用控制子程序1或子程序2,通过对执行这个程序,实现报警、加热或制冷。最后调用显示子程序来显示温度值。整个系统是一个闭环水的,系统工作是循环进行的,这也就实现了实时检测的设计要求。开始初始化进入加热模式?调用A/D转换子程序调用A/D转换子程序调用键盘子程序调用键盘子程序调用控制子程序1调用控制子程序2调用显示子程序NY 图4.1主程序流程图4.2 A/D转换子程序 在这模块的软件设计中,主要完成的是将采集电路采集到的模拟信号转换为数字信号,然后送到单片机进行处理,从而完成A/D转换部分的最后功能,该部分程序流程如图4.2所示。根据设计的要求,程序先对端口初始化,根据模式选择的结果,选择其中一路的采集来的数据,然后启动A/D转换功能,在转换一段时间后,判断一段时间后,判断转换是否结束,如果结束就自动进入下一路的转换,否则继续转换。 开始启动转换A/D转换结束?取数据ADC0809地址加1地址数小于2?返回YNNY 图4.2 A/D转换子程序流程图4.3 键盘子程序这部分主要完成温度上、下限的设置。其流程图如图4.3所示。本系统使用4个单键,这使得键值得识别问题也比较简单化。在执行程序的时候只需诸位判断P3.2,P3.3,P3.4,P3.5口是高电平还是低电平,若为高电平,则表示没有按键按下,若为低电平,则表示有按键按下。在程序的设计当中,考虑了键的去抖动问题。因为用手按下一个按键时,往往会出现所按键在闭合位置和断开位置之间跳动几下才稳定到闭合状态的情况。在释放一个键德尔时候,也会出现类似的情况,抖动的时间是不一致的,通常小于10毫秒,若抖动的问题不解决,就会引起闭合键的多次读入。对于键的抖动处理,一般采用软件延时10毫秒的方法。在发现有按键闭合时,不是立即读入该键值,而是延时一段时间以后,再进行键闭合与否的判断,确认此时是否真的有按键下,有则进行该按键的处理,没有则不进行处理。Y开始有按键下?延时10ms判别键号按键处理返回N 图4.3 键盘子程序流程图4.4 控制子程序本部分主要是实现声光报警和驱动加热或制冷功能。由于本系统的控制对象有两路,一路是控制饮水机的热水水箱,另一路是控制凉水水箱,因此,有两个子程序,它们分别为控制子程序1和控制子程序2。控制程序1流程图如图4.4所示,控制子程序2流程图如图4.5所示。选择控制模式后,先将采集转换后的数据与设定的值进行比较,如果是加热模式,且采集转换的值低于设定值的下限,置RXD为高电平,加热器开始加热;如果是制冷模式,且采集转换的值高于设定值的上限,则置AT89C51的P2.3、P2.4口为高电平,实现声光报警,同时,置TXD为高电平,制冷装置开始工作。开始保存数据低于下限?开始加热取数据低于下限?返回高于上限?报警、停止加热NNNYYY 图4.4.1 控制子程序1流程图开始保存数据高于上限?开始制冷取数据等于上限?返回低于下限?报警、停止制冷NNNYYY 图4.4.2 控制子程序2流程图4.5 显示子程序 此模块采用的是动态扫描的方法,这样各位LED能够显示出与本位相应的显示字符。显示子程序流程图见图4.5所示。在编写程序时,在某一时刻,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论