




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、题目:基于单片机的饮水机温度控制系统姓 名:学 号:专 业:摘要温度控制是无论是在工业生产过程中,还是在日常生活中都起着非常重要的 作用,过低的温度或过高的温度都会使水资源失去应有的作用,从而造成水资源的巨大浪费。特别是在当前全球水资源极度缺乏的情况下,我们更应该掌握好对 水温的控制,把身边的水资源好好地利用起来。本次设计为一个基于单片机的饮水机的温度控制系统,该系统可以实时检测 饮水机水箱的水温,并且可以通过数码管显示饮水机水箱水温度数, 可以通过键 盘或开关选择制冷或加热,可以人为设置水的温度的上下限, 如加热,当温度在 设定的范围内时正常工作,当低于水温下限时控制加热器加热; 如制冷,当
2、温度 高于水温上限时控制压缩机制冷,温度检测范围 095C,精度土C,当温度超 过设定值时具有示警功能。关键词:饮水机;单片机;温度传感器#目录摘要 II1. 前言 42. 方案设计 53. 系统硬件电路设计 63.1单片机最小系统设计 63.1.1 单片机选择 73.1.2时钟电路 93.1.3 复位电路 103.2温度采集电路设计 113.3 A/D转换电路设计 133.3.1 A/D 转换器选择 133.4显示电路设计 163.5键盘电路设计 173.6报警电路设计 2 03.7控制电路设计 2 04. 系统软件设计 2 24.1主程序流程图及简要说明 2 34.2 A/D转换子程序 2
3、 54.3键盘子程序 2 64.4 控制子程序 2 64.5 显示子程序 2 85. 结论 3 46. 参考文献 3 591. 前言温度控制是无论是在工业生产过程中,还是在日常生活中都起着非常重要的 作用,过低的温度或过高的温度都会使水资源失去应有的作用,从而造成水资源的巨大浪费。特别是在当前全球水资源极度缺乏的情况下,我们更应该掌握好对 水温的控制,把身边的水资源好好地利用起来。所以我们必须能实时获取水温变 化。对于超过适宜范围的温度能够报警。 同时,我们也希望在适宜温度范围内可 以由人们根据实际情况加以改变。传统的温度采集电路相当复杂,需要经过温度采集、信号放大、滤波、AD转换等一系列工作
4、才能得到温度的数字量,并且 这种方式不仅电路复杂,元器件个数多,而且线性度和准确度都不理想,抗干扰 能力弱。现在常用的温度传感器芯片不但功率消耗低、准确率高,而且比传统的温度传感器有更好的线性表现,最重要的一点是使用起来方便。本次设计为一个基于单片机的饮水机的温度控制系统,该系统可以实时检测饮水机水箱的水 温,并且可以通过数码管显示饮水机水箱水温度数,可以通过键盘或开关选择制冷或加热,可以人为设置水的温度的上下限, 如加热,当温度在设定的范围内时 正常工作,当低于水温下限时控制加热器加热; 如制冷,当温度高于水温上限时 控制压缩机制冷,当温度超过设定值时具有示警功能。2. 方案设计加 热八、
5、或 制 冷以单片机为核心的控制方案,其原理图如图2.3所示。本方案通过温度传感 器将温度信号转换为电流信号,信号放大后,经 A/D转换器,A/D转换器将进来 的模拟信号转换成数字信号,然后送到单片机处理,并将采集的温度与键盘设定 的温度值进行比较,根据比较的结果,单片机输出相应的信号来控制外部设施, 达到控制加热器加热或压缩机制冷的目的。还具有显示、报警等功能。A/D键盘转换受控对象2.3方案三原理框图3. 系统硬件电路设计设计并制作一个基于单片机的热水器温度控制系统的电路,其结构框图如图3-1:图3.1系统机构框图硬件系统子模块:(1) 单片机最小系统电路部分;(2) 温度采集电路设计;(3
6、) A/D转换电路设计显示电路设计;(5)键盘电路设计;报警电路设计;(7)控制电路设计。3.1单片机最小系统设计本论文设计最小系统如图3.2所示,由主控器AT89C51时钟电路和复位电 路三部分组成。C1U119R11kXTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2.5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1/TXDP1.2P3.2/INT0P1.3
7、P3.3/INT1P1.4P3.4/T0P1.5P3.5/T1P1.6P3.6/WRP1.7P3.7/RD189AT89C5129303145678123393837363534333221222324252627281011121314151617图3.2单片机最小系统3.1.1单片机选择AT89C5仲片机是ATMEL公司的AT89系列中的一种,该系列是当今世界上 最新型的电擦写八位单片机之一,和 51系列完全兼容,低电压、低电流、低功 耗,价格低廉,很受到用户欢迎。其管脚图如图 3.3所示:T*FOPOPCPCPCPCPC423.4J出.7MMP2KI2KS;图3.3 AT89C51管脚图
8、AT89C51的引脚功能说明: Vcc:电源电压 GND地 P0 口: P0 口是一组8位漏极开路型双向I/O 口,也即地址/数据总线复 用。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口 写“ 1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组 口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0 口接受指令字节,而在程序校验时,输出指令字节,校验 时,要求外接上拉电阻。 P1 口: P1是一个带内部上拉电阻的8位双向I/O 口,P1的输出缓冲级 可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“ 1”,通
9、过内部的 上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部存 在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL ) o Flash编程 和程序校验期间,P1接受低8位地址。 P2 口: P2是一个带有内部上拉电阻的8位双向I/O 口,P2的输出缓冲 级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“ 1”,通过内部 的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部 存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL )。在访问外 部程序存储器或16位四肢的外部数据存储器(例如执行 MOVX DP指令)时, P2 口送出高8位
10、地址数据,在访问8位地址的外部数据存储器(例如执行MOV RI指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR区中R2寄存器的 内容),在整个访问期间不改变。Flash编程和程序校验时,P2也接收高位地 址和其他控制信号。 P3 口: P3是一个带有内部上拉电阻的8位双向I/O 口,P3的输出缓冲 级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“ 1”,通过内部 的上拉电阻把端口拉到高电平,此时可作输入口。作为输入口使用时,因为内部 存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL )。P3 口还接 收一些用于Flash闪速存储器编程和程序校验的控制信号。 RST
11、复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电 平将使单片机复位。 ALE/PROG当访问外部程序存储器或数据存储器时,ALE (地址锁存允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振 荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是,每当访问外部数据存储器时将跳过一个 ALE脉冲。对Flash存储器 编程期间,该引脚还用于输入编程脉冲(PROG。如有必要,可通过对特殊功能 寄存器(SFR区中的8EH单元DO位置位,可禁止ALE操作。该位置位后,只有 一条MOVX和 MOVC旨令ALE才会被激活。此外,该引脚会被
12、微弱拉高,单片机执 行外部程序时,应设置ALE无效。 PSEN程序存储允许输出是外部程序存储器的读选通型号,当89C51由外部存储器取指令(或数据)时,每个机器周期两次 PSEN有效,即输出两个脉冲。 在此期间,当访问外部数据存储器,这两次有效的 PSEN信号不出现。 EA/VPP外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH,EA端必须保持低电平(接地)。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则 执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12v的编程 允许电源Vpp,当然这必
13、须是该器件使用12v编程电压Vppo XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 XTAL2振荡器反相放大器的输出端。鉴于AT89C51单片机所具有的特性及本论文设计控制的复杂性和兼顾显示、 报警、键盘控制等较高要求,本论文设计选用AT89C51单片机作为中心控制器。3.1.2时钟电路时钟电路用于产生 AT89C51单片机工作时所必需的时钟信号。其电路与AT89C51的连接如图3.1所示。AT89C51单片机本身就是一个复杂的同步时序电 路,为了保证同步工作方式的实现,AT89C51单片机应在唯一的时钟信号控制下,严格按时序执行指令进行工作,而时序所研究的是指令执行中各个信号的关
14、系。在执行指令时,CPU首先要到指令存储器中取出需要执行的指令操作码, 然后译码,并由时序电路产生一系列控制信号去完成指令所规定的操作。CPU发出的时序信号有两种,一是用于片内对各个功能部件的控制。 另一种是对片外 存储器或I/O 口的控制,这种时序对于分析、设计硬件接口电路至关重要。这也 是单片机应用设计者最关心的问题。时钟是单片机的心脏,单片机各个功能部件的运行都是以时钟频率为基准, 有条不紊地工作。因此,时钟频率直接影响单片机的速度, 时钟电路的质量也直 接影响单片机系统的稳定性。AT89C51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增 益反相放大器的输入端为芯片引脚 X1
15、,输出引脚X2。这两个引脚跨接石英晶体 振荡器和微调电容,就构成一个稳定的自激振荡器。虽然AT89C51有内部振荡电路,但要形成时钟,必须外接元件。外接晶体 以及X1和X2构成并联谐振电路。电容的大小会影响振荡器频率的高低、振荡 器的稳定性、起振的快速性和温度的稳定性。除使用晶体振荡器外,如对时钟频 率要求不高,还可以用陶瓷振荡器来代替。电路中的电容容值通常选择为30PF左右,本电路选择的是 20PF,这并不影响系统的工作和控制的结果。晶体的振 荡的频率的范围通常是在1.2MH z到12MH z之间。晶体的频率越高,则系统的时 钟频率就越高,单片机的运行速度也就越快。但反过来运行速度越快对存储
16、器的 速度要求就越高,对印刷电路板的工艺要求也高。AT89C51单片机常选择振荡频率6MH z或12MH z的石英晶体,随着集成电路制造工艺技术的发展,单片机 的时钟频率也在逐步提高,现在的高速单片机芯片的时钟频率已经达到 40MH z。 考虑到本设计所用的各种器件对时钟频率的要求及整体电路的简洁性,本课题选用的是振荡频率为6MH z的石英晶体。3.1.3 复位电路AT89C51的复位是由外部的复位电路来实现的。单片机复位电路设计的好坏, 直接影响到整个系统工作的可靠性。 许多用户在设计完单片机系统,并在实验室 1 o调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是单片机 的复
17、位电路设计不可靠引起的。因此选用一个适合本系统的复位电路极其重要。常用的复位电路有四种方式:(1)上电复位电路(2)按键复位电路(3) 脉冲复位电路(4)兼有上电复位与按键复位的电路。由于考虑到结构和成本等 原因,在很多设计里面,复位电路通常采用上电复位和按键复位两种。 根据本系 统的特性,决定选用最简单的上电复位电路。上电复位是通过外部复位电路的电容充电来实现的。只要 Vcc的上升时间不 超过10ms,就可以实现自动上电复位。当时钟频率选用6MHz,电容C选用22T, 电阻R选用1K1。该复位电路工作原理为:在通电瞬间,在 RC电路充电过程中,RST端出现 正脉冲,保证RST引脚出现10 m
18、s以上稳定的高电平,从而使单片机复位。3.2温度采集电路设计本设计中的温度采集系统由 DS18B20传感器负责。其型号如图 3.4所示:GND I/O UDDPR-3J5封装如一18GND一27DS1SB20NC 一36NC 一45_ Vcc_ NC一 NC呂OSI封装图3.4DS18B20工作原理为DS18B20的读写时序和测温原理与 DS1820相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。DS18B20测温原理如图3.2.2所示。图中低温度系数晶振的振荡频 率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振
19、荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55C所对应的一个基数值。计数器 1对 低温度 系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数, 如此循环直到计数器2计数到0时,停止温 度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图 322中的斜率 累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1的预置 值。图3.5 DS18B20测温原理图DS18B20内部结构图如图3.6所示:3.6 DS18B20内部结构3.3
20、 A/D转换电路设计A/D转换部分电路的功能主要是将采集部分采集来的模拟信号转换成数字信号,然后输送到单片机进行数据处理。 主要器件有ADC0809、74LS02、74LS74等。ADC0809与AT89C51连接电路如图 3.7所示。VREF(-) VREF(+)GNDVCC2 -8LSBCLOCK2 -7OUTPUT ENARIE2 -6EOC2 -5START2 -42 -3IN72 -2IN62 -1MSBIN5IN4ALEIN3ADD CIN2ADD BIN1ADD AIN0U313ADC0809D5 18D4 19542826D2 一21D1 22 一 23 古161211 F9
21、- T 6D8 14D7 1532pR323222可32*D833D734*D635P536:D437 .D338*D239TD124P3.77RDP1.7P3 6/WRP1 6P3.5/T1P1.5P3.4/T0P1.4P3.3/INT1P1.3P3.2/INT0P1.2P3.1/TXDP1.1P3.0/RXDP1.0P2.7/A15P2 6/A14P2.5/A13EAP2.4/A12ALEP2.3/A11PSENP2 2/A10P2.1/A9P2.0/A8P0.7/AD7P0.6/AD6P0 5/AD5RSTP0.4/AD4P0.3/AD3P0.2/AD2XTAL2P0.1/AD1P0.0
22、/AD0XTAL1U115109AT89C512827 26-17163130 2918图3.7 A/D转换电路A/D转换器ADC0809共有八路模拟输入端,由于温度采集只有两路,因此只用 到两路模拟输入端,其输入通道为IN0、IN1。这两个通道的数据分别是温度采 集电路的输出信号V01、V02,也就是转换为电压值的饮水机两个水箱水的温度 值。选择这两个通道需要通过设置 ADC0809的ADDA、B、C的值,因为它对应 的是八路模拟信号,而本系统只有两路模拟信号输入,因此,只需要将低位 ADDA连到AT89C51的P2.2口,并根据P2.2口的电压是低电平或高电平来选择要 检测哪个通道,当AD
23、DA值为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
24、位的模/数转化器,8通道多 路转换器和与微处理器兼容的控制逻辑。8通道多路转换器能直接连通8个单端 模拟信号中的任何一个。片内带有锁存功能的8路模拟多路开关,可以对8路05V的输入模拟电 压信号分时进行转换,片内具有多路开关的地址译码和锁存电路、 比较器、256RT 型网络、树状电子开关、逐次逼近寄存器SAR、控制与时序电路等。输出具有TTL三态锁存缓冲器,可以直接连接到单片机数据总线上。1. ADC0809功能如下:(1) 分辨率为8位。(2) 最大不可调误差小于1LSB。(3) 单一 +5V供电,模拟输入范围05V(4) 具有锁存控制的8路模拟开关。(5) 可锁存三态输出,输出与 TTL兼
25、容。(6) 功耗为15mW。(7) 不必进行零点和满度调整。(8) 转换速度取决于芯片的时钟频率。时钟频率范围:101280KHz,当CLK=500kHz时,转换速度为1285。2. ADC0809管脚及功能2 1Fqr-E千K96ToA/D转换器ADC0809的引脚图如图3.8所示。I N - 0I N - 1I N - 2I N - 3I N - 4ADDADDADDI N - 5I N - 6I N - 7r ef( - )E N A BSTAR r ef( + )C L O C图3.8 ADC0809引脚图INOIN7: 8路输入通道的模拟量输入端口。2-12-8: 8位数字量输出端口
26、。START, ALE : START为启动控制输入端口, ALE为锁存控制信号端口。 这两个信号端可连接在一起,当通过软件输入一个正脉冲,便立即启动模/数转换。EOC, OE: EOC为转换结束信号脉冲输出端口, 0E为输出允许控制端口。 这两个信号也可连接在一起表示模/数转换结束。OE端的电平由低变高,打开三 态输出锁存器,将转换结果的数字量输出到数据总线上。REF( +),REF(-),Vcc, GND : REF( + )和 REF(-)为参考电压输 入端,Vcc为主电源输入端,GND为接地端。一般REF( +)与Vcc连接在一起, REF(-)与GND连接在一起。CLK :时钟输入端
27、口。ADDA,B,C: 8路模拟开关的三位地址选通输入端,以选择对应的输入通 道。其地址码与对应通道关系如表 3.3所示。表3.3地址码与输入通道对应关系表地址码对应的输入通道CBA0000111100110011010101011N0IN1IN2IN3IN4IN5IN(51N7强调说明一点:ADC0809虽然有八路模拟通道可以同时输入八路模拟信号 但每一个瞬间只能转换一路模拟信号,各路之间的切换由软件变换通道地址实 现。A/D转换器采用的转换万法主要有逐次逼近型A/D转换、双积分型A/D转换、并行A/D转换、串-并行A/D转换等,其中逐次逼近型A/D转换既照顾了转 换的速度,又具有一定的精度
28、,本系统中,传输数据的频率不高,对精度的要求 也不是很高,因此,我们选用了常用的逐次逼近型A/D转换ADC0809。3.4显示电路设计大多数的单片机应用系统,都要配置输入设备和输出设备。本系统的输出设 备是显示器,根据本系统的设计特点,采用七段LED数码管作为显示器。而本系统设计要求温度检测范围 0C95C,精度土 1C。数码管只需显示两位即可 达到要求,因此,显示部分电路采用两个一位的LED数码管来组成显示器,没有要求显示小数点,LED数码管的dp脚悬空。本设计显示电路的应用有两点, 一是实时显示引水机水箱的水温值,另一个是显示键盘设定的温度上、下限值。 其电路连接如图3.9所示。MPS65
29、143i 4 AQ2B3B12BB1BQ3MPS6514U118XTAL13938P0.0/AD0 x P0.1/AD137P0.2/AD2-74LS47QGLTQFRBIQEBI/RBOQDDQCCQBBQAAU23V5217293031231XTAL2RSTPSENALE EAP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7363534P0.3/AD3P0.4/AD4P0.5/AD534P0.6/AD6P0.7/AD73332P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A1321:222324 2526P2.6/A14-28P2.7
30、/A15 P3.0/RXD101112P3.1/TXDh- 仁 P3.2/INT0 P3.3/INT113P3.4/T0P3.5/T1P3.6/WRP3.7/RD_1415二17AT89C51图3.9显示部分电路通过一个74LS47连接7个100欧姆的电阻来驱动数码管显示。数码管的Vcc脚分别连接到两个三极管的共射极,而三极管的共基极连到一起接到+5V电 源上。共集极分别连接两个4.7K的电阻接到单片机AT89C51的P14P1.5管脚。LED显示块是由发光二极管显示字段的显示器件。在单片机应用系统中应 用非常普遍,通常使用的是七段 LED,这种显示器有共阳极和共阴极两种,本 设计选用的是共阳
31、极。共阳极 LED显示器的发光二极管的阳极连接在一起,通 常此公共阳极接正电压5V。当某个发光二极管的阴极接低电平时,发光二极管 被点亮,相应的段被显示。使用LED显示器时,为了显示数字或符号,要为LED 显示器提供代码,因为这些代码是通过各段亮与灭来为显示不同字型的。7段发光二极管,再加上一个小数点位,共计 8段。因此提供给LED显示器的段码正 好一个字节。各字节中对应关系如表 341所示。表3.4.1各段与字节中各位的对应关系表光二极管,获得不同的数字或字符。共阳极7段显示器显示数字对应的段码关系如表3.4.2所示。表3.4.2 7段LED数字与段码对应关系表显示 数字0123456789
32、共阳 极段 码C0HF9HA4HB0H99H92H82HF8H80H90H 3.5键盘电路设计键盘在单片机应用系统中能实现向单片机输入数据、传送命令功能,是人 工干预单片机的主要手段。键盘实质上是一组按键开关集合。通常键盘所用开 关为机械弹性开关,均利用了机械触点的合、断作用。键的闭合与否,反映在 输出电压是呈现高电平或低电平,如果高电平表示断开的话,那么低电平则表 示键闭合,所以通过对电平高低状态的检测,便可确认按键按下与否。为了确 保CPU对一次按键动作只确认一次按键, 必须消除抖动的影响,这样才能使键 盘在单片机系统中的使用得更加稳定。常用的键盘接口分为独立式按键接口和 矩阵式键盘接口。
33、根据本系统的设计特点及要求,键盘的功能主要是用来设置 温度上下限,因此本设计采用独立式键盘来完成这一功能要求。其电路连接如图3.10所示。XTAL1X T AL2RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EAP2 5/A13P2.6/A14P2.7/A15P1.0P3.0/RXDP1.1P3.1/TXDP1.2P3.2/INT0-P1.3P3.3/INT1P1 4P3 4/T0P1.5P3.5/T1P1.6P3.6
34、/WR-P1.7P3.7/RD-19189_24251AT89C512930_3137-36-34262728212223345678L1 1R10R11R1210k10k10kR1310k13 1415161710-TT120_L图3.10独立式键盘与 AT89C51连接图1键盘电路及其说明独立式按键就是各个按键相互独立, 每个按键各接一根输入线,一根输入线 上的按键工作状态不会影响其他输入线上的工作状态。因此,通过检测输入线的电平状态就可以很容易的判断出是哪一个按键按下了。独立式按键电路配置灵 活,软件简单。但每一个按键需占用一根输入口线, 在按键数量较多时学要较多 的输入口线且电路结构复
35、杂,故此种键盘适用与按键较少或操作速度较高的场 合。本设计,采用四按键键盘,所以在四个I/O 口上接四个按键组成一个四按键 的简易式键盘。各线通过电阻接+5V,当键盘上没有键闭合时,所有的线断开, 呈高电平状态。当键盘上某一个键闭合时,该键所对应的线与连接单片机的线短 路。例如:当S1号按键闭合时,它所在的线与连接线短路,使P3.2 口为低电平, 通过软件里对P3 口查寻,如果只有P3.2 口为低电平,那么就可以确定是 S1键 按下了,通过在软件里的设定,行使 S1键的功能。如果同时有多个 P3 口为低 电平,则报警显示,然后检查是否有多个键按下,直到只有一个P3 口为低电平时,停止报警,那个
36、低电平的 P3 口上连接的按键则为按下的键,在软件里执行他应该达到的功能。2、键盘功能说明S1:模式设置键,按一下进入到加热系统设置状态, 再按一下切换到制冷系 统设置状态。S2:步进加键,每按一下,要设置的限制值加 1。S3:步进减键,每按一下,要设置的限制值减 1。S4:确定键,确定前面所设的温度值。当S1键按1下,进入加热或制冷模式后,数码管显示为00, 00代表温度设 置起点温度。再按下按键 S2数码管显示值将逐步从个位数往上加,直到想要设 置的温度值,而按键S3是步进减键,按键每下一次,个位数减 1。S4键是确定 键,通过它来确定前面所设定的数值。3、键盘的机械抖动若Yo为低电平,S
37、1号键闭合一次,图中t1和t3分别为键 的闭合和断开过程中的抖动期(呈现一串负脉冲),抖动时间长 短和开关的机械特性有关,一般为510ms, t2为稳定的闭合期, 其时间由按键动作所确定,一般为十分之几秒到几秒,t0、t4为断开期。为了保证CPU寸键盘的闭合仅作一次处理, 在软件中 必须去除抖动,在第一次检测到有按键下时, 执行一段延时10ms 的子程序后确认该按键电平是否仍保持闭合状态电平,如果闭合状态电平则确认有按键下, 从而消除抖动的影响。键盘的机械抖 动示意图如图3.11所示。to tl k一t2 一) t3|iMTThJP|EZFJi.TfrhiNTiPaiPJjJHTHTPJ.fT
38、T1E341E34JiP-P1T4. 系统软件设计系统软件设计也就是程序设计,就是在完成了硬件系统德尔 基础上,再编写相应的程序,下载到芯片上,通过执行程序指令 控制硬件,从而实现各种功能。一般来讲,软件功能分为两大类。 一类是执行软件,它能完成个各种实质性的功能, 如测量、计算、 显示、打印、输出控制等。另一类是监控软件,它专门协调执行 模块和操作者的关系,在系统中充当组织协调的角色。软件设计就是用计算机所能接受的形式把解决问题的步骤 描述出来。简单地说,软件设计就是编制计算机程序。一个好的 程序应该完成规定的任务,而且应该层次清晰、易于阅读,并尽 可能少占内存,缩短执行时间,但也不要一味的
39、追求少占内存, 缩短执行时间。这样做可能会使程序的可读性变差。随着大规模和超大规模集成电路的发展, 芯片的内存容量也在不断增加, 计 算机执行命令的时间也大大的缩短。因此,程序的长短和执行时间,不再显得那么重要,而程序的易读性和程序的开发周期,显 得越来越重要。另外,在较复杂的程序设计中,必须充分考虑程 序的可读性、稳定性、可扩展性、兼容性以及容错性等也是衡量 与评价程序的优劣的重要指标。由于用汇编语言编写的程序效率高,占用的内存单兀和CPU资源少,执行速度快,还可直接访问存储器、输入/输出接口以及扩展的各种芯片,并可直接处理中断,直接管理和控制硬件设 备,适用于实时控制系统,因此,本设计选用
40、汇编语言来编写程 序。4.1主程序流程图及简要说明本设计的软件包括主程序 A/D转换子程序键盘子程序控制 子程序及显示子程序。结合本系统的功能,程序长度不会超过 AT89C51内部的程序存储器,所以硬件上不用外扩程序存储器。主程序流程如图4.1所示。本论文描述主程序工作过程为:2 3首先对系统初始化,由于本系统要实现对饮水机的冷热两个水箱 的检测与控制,因此先要选择模式,这主要是经过硬件电路的按 键S1来选择的。在确定进入加热或制冷模式后,调用A/D转换子程序对采集到的模拟量进行转换,转换完毕保存数据后,调用键盘子程序,这个子程序主要完成对温度上、下限的设置。完成 设置后,调用控制子程序 1或
41、子程序2,通过对执行这个程序, 实现报警、加热或制冷。最后调用显示子程序来显示温度值。整 个系统是一个闭环水的,系统工作是循环进行的, 这也就实现了 实时检测的设计要求。4.2 A/D转换子程序在这模块的软件设计中,主要完成的是将采集电路采集 到的模拟信号转换为数字信号, 然后送到单片机进行处理, 从而 完成A/D转换部分的最后功能,该部分程序流程如图4.2所示。根据设计的要求,程序先对端口初始化,根据模式选择的结果, 选择其中一路的采集来的数据, 然后启动A/D转换功能,在转换 一段时间后,判断一段时间后,判断转换是否结束,如果结束就 自动进入下一路的转换,否则继续转换。图4.2 A/D转换
42、子程序流程图2 54.3键盘子程序这部分主要完成温度上、下限的设置。其流程图如图4.3所示。本系统使用4个单键,这使得键值得识别问题也比较简单化。在执行程序的时候只需诸位判 断P3.2,P3.3, P3.4,P3.5 口是高电平还是低电平,若为高电平,则表示没有按 键按下,若为低电平,则表示有按键按下。在程序的设计当中,考虑了键的去抖 动问题。因为用手按下一个按键时,往往会出现所按键在闭合位置和断开位置之 间跳动几下才稳定到闭合状态的情况。 在释放一个键德尔时候,也会出现类似的 情况,抖动的时间是不一致的,通常小于 10毫秒,若抖动的问题不解决,就会 引起闭合键的多次读入。对于键的抖动处理,一
43、般采用软件延时10毫秒的方法。 在发现有按键闭合时,不是立即读入该键值,而是延时一段时间以后,再进行键 闭合与否的判断,确认此时是否真的有按键下,有则进行该按键的处理,没有则 不进行处理。图4.3键盘子程序流程图本部分主要是实现声光报警和驱动加热或制冷功能。由于本系统的控制对象 有两路,一路是控制饮水机的热水水箱,另一路是控制凉水水箱,因此,有两个 子程序,它们分别为控制子程序1和控制子程序2。控制程序1流程图如图4.4 所示,控制子程序2流程图如图4.5所示。选择控制模式后,先将采集转换后的 数据与设定的值进行比较,如果是加热模式,且采集转换的值低于设定值的下限, 置RXD为高电平,加热器开
44、始加热;如果是制冷模式,且采集转换的值高于设定 值的上限,则置AT89C51的P2.3、P2.4 口为高电平,实现声光报警,同时,置 TXD为高电平,制冷装置开始工作。图441控制子程序1流程图2 10( 开始 图4.4.2控制子程序2流程图4.5显示子程序此模块采用的是动态扫描的方法,这样各位LED能够显示出与本位相应 的显示字符。显示子程序流程图见图 4.5所示。在编写程序时,在某一时刻,只 让某一位的位选线处于选通状态, 而其它各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字符的段码。这样,在同一时刻,两位LED中只显示选通的一位,而另一位是熄灭的。依次循环下去,就可以是各位显
45、示出将要显示 的字符,虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其 它各位熄灭,但由于LED显示器的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,贝U可造成多位同时亮的假象,达到同时显示的目的,本系统,显示 一位保持1ms时间,共需2ms时间。图4.5显示子程序流程图软件程序清单#in clude#i nclude#defi neucharun sig nedchar#defi neuintun sig nedintsbit DQ=P1A0;/ 温度输入口un sig nedchar alarm2,time215,time3;un sig nedchar code dit
46、ab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;un sig nedchar temp_data2=0x00,0x00;/读出温度暂放bit flag; /18b20存在标志位exter ntemp_;11微秒延时函数 */3 7delay_us( un sig ned int t)for(;t0;t-);18B20复位函数*/RST18B20(void)un sig ned char i;DQ=1;_nop_();_nop_();DQ=0;/delay_us(50); /550usDQ=1;/delay_us (6);/ 66usfor(i=0;i0;i-)/DQ=1;_nop_();_nop_();DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ=va l&0x01;/最低位移出66usval=val/2;delay_us(6);/右移一位DQ=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内蒙古交通职业技术学院《大学体育一》2023-2024学年第二学期期末试卷
- 江苏省盐城市盐城初级中学2024-2025学年初三下学期第二次质量测试化学试题含解析
- 山东政法学院《国际物流学》2023-2024学年第二学期期末试卷
- 上海市黄浦区卢湾中学2025年初三五月调研测试物理试题试卷含解析
- 电动工具在医疗器械制造中的无菌要求考核试卷
- 电视边缘计算与内容分发优化考核试卷
- 电子智能健康监测设备行业挑战考核试卷
- 涤纶纤维在农业种植技术与智能温室中的应用与前景考核试卷
- 核辐射测量在核设施辐射防护性能提升中的研究考核试卷
- 燃油零售业务中的互联网思维考核试卷
- 附着龈重建在口腔种植修复中的应用探索
- 房屋建造流程过程
- 2025年教科新版七年级英语下册月考试卷
- 2025年春新沪科版物理八年级下册课件 第九章 浮力 第四节 物体的浮与沉 第1课时 物体的浮沉条件
- 第二单元“中华传统文化经典研习”说课稿 2024-2025学年统编版高中语文选择性必修上册001
- 中华人民共和国内河交通安全管理条例
- 文化行业非物质文化遗产保护传承方案
- 2025届高考政治核心知识梳理提纲
- 【MOOC】光学发展与人类文明-华南师范大学 中国大学慕课MOOC答案
- 《异常子宫出血诊断与治疗指南(2022版)》解读
- 中小学思政课课件
评论
0/150
提交评论