1、陕西国防学院机电工程系毕业论文摘要热水器可分为燃气式、电热式和太阳能三大类;电热式热水器又可分为储水式和即热式两种;即热式热水器又可分为电热管和电热膜两种。总体来讲,电热水器,特别是即热式热水器已逐渐成为家庭生活时尚。其特点是安全、出热水快、节水节能、体积小、价格低,唯一的缺点是功率容量大,功率6KW/220V时,电流达27.3A,这是即开即热特点所决定的。本设计的主要特点是恒温以及温度可调。采用单片机来对它们进行控制不仅具有控制方便、简单和灵活性大等优点,而且还可以大幅度提高被控温度的技术指标,从而进一步提高产品的质量。本设计运用80C51单片机系统为主控制芯片。其外围电路主要由水温检测和A
2、/D转换、晶闸管控制、水温和状态显示、按键输入以及稳压电源等部分组成。关键字:温度控制 80C51 A/D转换第一章 系统介绍11 系统原理 该热水器的工作原理为:温度传感器及有关电路将电热水器出口温度转化为电压,单片机利用本身具有的A/D转换器将测得的模拟量转换为数字量,再转化为与之对应的温度值。与设定的温度相比较后,以偏差及其变化量为输入、加热量为输出,就可达到温度自调的目的,并加以显示。 其主控电路原理图如下:12 方案论证 基于上述原理该系统具有对温度的精确控制、能显示当前时间热水器的实际温度以及自动检测热水器是否处于正常工作状态,并具有调温、恒温、防超高温等多项自检功能,使用户在使用
3、过程中安全更有保障。121 水温检测电路122 按键输入电路123 水温和状态显示电路 本设计中选的显示器是LED,显示方法是静态显示。而常用的显示器件有:(1)显示和记录仪表;(2)CRT显示终端;(3)LED或LCD显示器;(4)大屏幕显示器。在这些显示方法中,显示和记录仪表能连续进行显示和记录。但它的价钱比较贵,且为模拟显示,读数不方便,有一定的误差,所以它只适用于企业的技术改造,在新设计的微型计算机系统中不宜采用。CTR它直观、灵活,不但可显示数字,而且可以显示画面及报表;但系统比较复杂,价格也比较贵,所以多用于大、中型控制系统中。大屏幕显示具有显示清晰、视觉范围宽广等优点,主要用于车
4、站、码头、体育场馆、大型生产装置的现场显示。LED数码管由于具有结构简单,体积小,功耗低,响应速度快,易于匹配,寿命长,可靠性高等优点。虽然LCD也有这些优点但它价格比LED贵。所以本设计选LED。在微型计算机控制系统中常用的显示方法有:(1)动态显示;(2)静态显示。动态显示的优点是使用硬件少,价格低,线路简单。但它占用机时长,只要单片机不执行显示程序,就立刻停止显示。因此是计算机的开销增大。静态显示占用机时少,显示可靠,只要不送入新的数据,则显示值不变同时用起来也比较方便。因此本设计选用静态显示。13 芯片介绍本设计采用的单片机是89C51,89C51单片机的封装共分为DIP、PLCC及P
5、QEP3种形式,常用DIP封装方式。其外形及引脚如下图所示:89C51单片机共40个引脚,大致可分为4类:(1)电源引脚。 Vcc(40脚):电源端,+5V。 Vss(20脚):接地端(GND)。(2)时钟电路引脚。 XTAL1(19脚):外接晶振输入端。 XTAL2(18脚):外接晶振输出端。(3)I/O引脚。 P0口(39脚32脚):P0.0P0.7统称为P0口。是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。 P1口(1脚8脚):P1.0P1.7统称为P1口。是一组内部带上拉电阻的8位准双向I/O口,可驱动4个TTL门电路。 P2口(21脚28脚):P2.0P2.7统称为P2
6、口。是一组内部带上拉电阻的8位准双向I/O口,可驱动4个TTL门电路。 P3口(10脚17脚):P3.0P3.7统称为P3口。是一组内部带上拉电阻的8位准双向I/O口,且该端口每个引脚具有第二功能。(4)控制线引脚。 RST:复位端。 EA/Vpp(31脚):片外程序存储器选择端/Flash存储器编程电源。 ALE/PROG(30脚):地址锁存允许端/编程脉冲输入端。 PSEN(29脚):读片外程序存储器选通信号输出端。第二章 硬件设计21 电源部分的设计 一组交流输入通过桥式整流电路,输出4种电压:+12V、+6.8V、+5V、-0.7V。+12V用于继电器线圈电源(图中未画出);+6.8V
7、和-0.7V用于运放正负电源(线性更可靠);+5V用于89C51及其余元件工作电源。22 水温检测和A/D转换电路在本设计中水温检测和A/D转换电路是一个配套电路,因为水温检测电路所检测出的温度是一个连续变化的量,即模拟量。而单片机处理的数据只能是数字量,所以数据在进入单片机之前,必须把模拟量转换成数字量(也即A/D转换)。221 水温检测电路 水温检测电路主要由R4VD1、R5R7RP1组成桥式检测电路和放大器组成,他的工作原理是先由桥式检测电路检测出温度信号再经IC5、IC6两个放大器将信号放大处理之后传送给ADC0809进行A/D转换,其中该电路还可以通过RP1和RP2两个滑动电阻来分别
8、调节零度和满度两点的A/D值为00H和FFH。222 A/D转换电路 A/D转换电路主要由A/D转换器组成,本设计采用的A/D转换芯片为ADC0809。因为ADC0809具有较高的转换速度和精度,受温度影响较小,能较长时间保证精度,重现性好,功耗较低,且具有8路模拟开关,对于过程控制它是比较理想的器件。1 电路组成及转换原理ADC0809是含8位A/D转换器、8路多路开关,以及与微型计算机兼容的控制逻辑的COMS组件,其转换方法为逐次逼近型。它的精度是1LSB。在A/D转换器内部有 一个高阻抗斩波稳定比较器,一个带模拟开关树组的256电阻分压器,以及一个逐次逼近型寄存器。8路的模拟开关的通/断
9、由地址锁存器和译码器控制,可以在8个通道中任意访问一个单边的模拟信号。其原理框图如下:2 ADC0809的引脚功能 ADC0809芯片有28条引脚,采用双列直插式封装,如下图所示:l IN7IN0:8个模拟量输入端。l START:启动信号。当START为高电平时,A/D转换开始。l EOC:转换结束信号。当A/D转换结束后,发出一个正脉冲,表示A/D转换完毕。此信号可用做A/D转换是否结束的检测信号,或向CPU申请中断的信号。l OE:输出允许信号。当此信号有效时,允许从A/D转换器的锁存器中读取数字量。此信号可作为ADC0809的片选信号,高电平有效。l CLOCK:实时时钟,可通过外接R
10、C电路改变时钟频率。l ALE:地址锁存允许,高电平有效。当ALE为高电平时,允许C、B、A所示的通道被选中,并把该通道的模拟量接入A/D转换器。l C,B,A:通道号选择端子。C为最高位,A为最低位。l D7D0:数字量输出端。l V,V:参考电压端子。用以提供D/A转换器权电阻的标准水平。对于一般单极性模拟量输入信号,V=+5V,V=0V。l Vcc:电源端子。接+5V。l GND:接地端。3 ADC0809的技术指标l 单一电源,+5V供电,模拟量输入范围为05V。l 分辨率为8位。l 功耗为15mW。l 转换速度取决于芯片的时钟频率。l 可锁存三态输出,输出与TTL兼容。l 无须进行零
11、位及满量程调整l 温度范围为4085。23 晶闸管控制电路 晶闸管控制电路是由P1.3、P1.5、P1.7输出三路晶闸管控制信号来分别控制2kW电热膜的通断,三路控制电路相同。在运行过程中P1.3输出低电平时,G3(PNP)导通,经MOC3041光耦,自动过零触发可控硅导通,接通2kW电热膜电源;P1.5输出低电平时,G2(PNP)导通,经MOC3041光耦,自动过零触发可控硅导通,接通2kW电热膜电源;P1.7输出低电平时,G1(PNP)导通,经MOC3041光耦,自动过零触发可控硅导通,接通2kW电热膜电源。本设计中所用的晶闸管是电力晶体管它是电流控制型器件,大多工作在功率开关状态,对其要
12、求与小信号晶体管有所不同,它主要有足够的容量、适当的增益、较快的开关速度和较低的功率损耗。K1K3为继电器保护,与晶闸管控制组成双重控制和保护电路。IC11(TPL521-2)和G10组成过零检测电路,用于周期控制晶闸管触发电路。24 水温和状态显示电路 显示电路由4511(七段译码、锁存、驱动)和共阴LED数码管组成,P0.0P0.3输出BCD码,P0.5、P0.6分别控制二位刷新显示,P0.4用于控制闪烁显示,P0.7控制小数点显示。P0口作为输出口时,外接上拉电阻(排阻)。25 按键输入电路 ON/OFF是启动按钮与P3.5连接,直流电源始终接通,热水器未使用时,89C51处于低耗待机方
13、式,仅开放T1中断,T1设置在计数器临界状态,按ON/OFF键即触发T1中断,在T1中断服务子程序中,唤醒CPU跳出低功耗待机方式,进入正常工作。键用于设置水温,设置水温时,小数点亮,以便于实际水温显示区别(3秒后自动恢复显示实际水温)。按键输入端RC电路用于消除按键抖动。第三章 软件设计31 程序流程图311 主程序流程图主控程序将整个控制过程分为两种周期,一种周期是10ms,另一种周期是320ms。10ms周期由交流电压过零中断开始,由T0中断控制,每隔2ms进行一次A/D转换,测一次出水水温,10ms内共4次,其平均值作为10ms水温平均值;余下时间内检测一次漏电、关水、水温设置上升下降
14、;若出水,则输出刷新SCR控制字。320ms周期由对10ms计数控制,求320ms水温平均值,此值作为显示和控温的参数。满320ms刷新一次水温显示,调整一次320ms周期SCR控制字。程序流程图如下:开始初始化检测关水扫描水温设置上升、下降键子程序调用求320ms水温平均值子程序转入低功耗睡眠状态320ms刷新显示一次跳出低功耗等待交流电压过零或T02ms中断检测漏电否?有电压过零或T02ms中断,清中断标志检测出水温求10ms水温平均值控温320ms调整一次周期控制状态解码判320ms周期满否?T0未停,2ms中断满4次否 图31312 求320ms水温平均值子程序流程图 320ms水温平
15、均值是由32个10ms水温平均值在平均产生的。求320ms水温平均值的方法有两种,一种方法是记录每10ms的水温平均值,这样就需要占用内RAM32B存储空间,显然是不可取的;第二种方法是将每次10ms水温平均值除以32,然后累加而得,这种方法占用内RAM存储空间少。本设计采用第二种方法。程序流程图如下:开始读水温10ms平均值余数累加值不变存320ms水温平均值重置320ms计数器初值320ms水温平均值加1累加器清0刷新上次水温320ms水温平均值余数累加10ms水温平均值32320ms水温平均值累加读320ms水温平均值余数回存余数累加值减320?判320ms到否?余数减160?返回图32
16、313 水温设置上升、下降键子程序流程图经常在一些智能化设备中看到设置整定值采用上升键和下降键的方法,按一下上升键,设置整定值上升一位数,按住不放,快速上升;按一下下降键,设置整定值下降一位数,按住不放,快速下降。能实现这种效果的方法可能很多,下图为本设计的扫描上升键流程图。按键按一次释放,设置整定值加1并发短促嘟声(嘟声表示有效);按键超过0.2s开始计时,计时每增加0.1s,设置整定值加1,并刷新显示发出长嘟声。程序流程图如下:返回有按下标志否?键按下否?有按下标志否?按钮计时开始按钮超0.2s否?有长按钮标志否?长按钮100ms计数长按钮100ms满否?确认长按钮一次100ms计数器重置
17、初值设置整定值1判设置整定值超限否?刷新显示置按下标志置长按钮标志置100ms计数器置最大整定值图33314 判水温升降状态子程序流程图开始请上升下降与水温不变标志读本次水温本次水温上次水温判差值0否?置上升标志判上升1?判上升2?置上升3及以上标志置下降2标志置下降1标志置上升2标志置下降3标志判下降2?判下降1?上次水温本次水温置下降标志置上升1标志返回图34315 判水温高低状态子程序流程图开始清水温高低状态、水温等于整定值标志读水温判水温高1?置水温值整定值标志水温值整定值0?判水温高2?置高3及以上标志置水温值整定值标志判水温低1?判水温低2?置低3及以上标志返回置高1标志置高2标志
18、置低1标志置低2标志图35316 求SCR控制字升降子程序流程图32 程序设计321 主程序主程序MAIN: LCALL STAT ; 初始化WORK: JNB 01H , WORK ;等待交流电压过零或T02ms中断 CLR 01H ;有电压过零或T02ms中断,清中断标志 LCALL AD ;检测出水温(A/D转换) JB TR0 , WORK ;T0未停,2ms中断未满4次,返回中断WK1: LCALL TAV10 ;求10ms水温平均值 LCALL LOST ;检测漏电(若漏电,则0FH=1) JBC 0FH , WK ;漏电、转低功耗 LCALL CLOS ;检测开关 LCALL K
19、UP ;扫描水温设置上升键 LCALL KDN ;扫描水温设置下降键 LCALL TAV320 ;求水温320ms平均值 JNB 02H , WK2 ;判320ms周期满否?(02H标志在TAV320中设置) CLR 02H ;320ms周期满,清320ms标志 LCALL DISP ;320ms刷新显示一次 LCALL CTRL ;控温320ms调整一次周期控制状态 LCALL EXP ;解码(周期控制状态转化为SCR控制字)WK2: JNB 03H , WORK ;未出水,返回循环(03H在出水中断INT1中置位) LCALL SCR ;出水,输出SCR控制字(10ms刷新一次) LJMP
20、 WORK ;返回循环WK3: LCALL LOW ;转入低功耗睡眠状态 LJMP WORK ;跳出低功耗,返回正常工作循环322 求320ms水温平均值子程序求320ms水温平均值子程序TAV320: MOV A , 32H ;读水温10ms平均值 MOV B , #32 ;置除数 DIV AB ;10ms水温平均值/32 ADD A , 42H ;320ms水温平均值累加 MOV 42H , A ;回存 MOV A , B ;读320ms水温平均值余数 ADD A , 43H ;320ms水温平均值余数累加 MOV 43H , A ;回存 CLR C ; SUBB A , #32 ;320
21、ms水温平均值余数累加值试减32 JC T320 ;余数累加值=32,320ms水温平均值加1 MOV 43H , A ;余数累加值减去32后的差值回存T320: DJNZ R3 , T323 ;判320ms到否?未到返回 SETB 02H ;320ms到,置320标志 MOV R3 , #32 ;重置320ms计数器出值 MOV A , 43H ;读余数(余数四舍五入) CJNE A , #16 , T321 ;余数与32半数(16)比较T321: JC T322 ;余数=16,“五入”T322: MOV 45H , 44H ;刷新上次水温 MOV 44H , 42H ;存320ms水温平均
22、值(本次水温) MOV 42H , #0 ;320ms水温平均值累加器清0 MOV 43H , #0 ;320ms水温平均值余数累加器清0T323: RET有关寄存器和标志位说明:32H:10ms水温A/D平均值;42H:320ms水温平均值累加器;43H:320ms水温平均值余数累加器;44H:本次320ms水温A/D平均值;R3: 320ms计数器;02H:320ms标。323 水温设置上升、下降键子程序水温设置上升、下降键子程序KUP: JNB P1.6 , KUP1 ;按上升键,转记一次 JB 0CH , KUP0 ;已按下降键,互锁返回 CLR 09H ;未按上升键或上升键后释放,清
23、长按钮标志 SETB P2.6 ;停嘟声 MOV R7 , #00H ;长按钮计数器清0 JBC 08H ,KUP2 ;有上升键按下标志,确认按一次上升键KUP0: RET ;未按上升键,返回KUP1: JB 08H , KUP10 ;已有上升键按下标志,转长按钮计数 SETB 08H ;无按下标志,置上升键按下标志 CLR P0.7 ;小数点亮(表示与水温显示的区别) CLR P2.6 ;发嘟声KUP10: INC R7 ;长按钮0.2s计数 CJNE R7 , #20,KUP0 ;判长按钮0.2s满否?未满返回 DEC R7 ;满0.2s,长按钮0.2s计数器保持临界状态 JB 09H ,
24、 KUP11 ;有长按钮标志,转100ms计数 SETB 09H ;无长按钮标志,置长按钮标志 MOV 33H ,#10 ;置100ms计数器初值KUP11: DJNZ 33H , KUP0 ;判100ms满否?未满返回 MOV 33H , #10 ;满100ms,重置100ms计数器初值KUP2: INC 46H ;设置整定值+1 MOV A , 46H ; CJNE A , #85 ,KUP20 ;判设置整定值大于85否?KUP20: JC KUP3 ;85 MOV 46H , #85 ;85,置最大整定值85 MOV A , 46H ;KUP3: MOV 36H ,#10 ;置整定刷新显
25、示保留时间(3220ms10) SETB 06H ;置整定刷新显示控制标志 LCALL DIR ;刷新显示 RET ;个标志位和寄存器说明:08H:上升键按下标志;09H:上升键长按钮标志(按上升键0.2s后建立);0CH:下降键按下标志(与上升键互锁);06H:整定刷新显示控制标志(在显示子程序中起整定刷新显示控制作用);P0.7:小数点显示控制端;P2.6:嘟声输出端;R7:长按钮计数器,计数0.2s;33H:100ms计数器,在确定长按钮后,每增加100ms,设置整定值加1;46H:设置整定值寄存器;36H:整定刷新显示保留时间计数器,保留显示10320ms=3.2s。324 温控子程序
26、温控子程序CTRL: JNB 00H , CL1 ;非初始,转正常温控 LCALL BEGN ;初始,按初始状态控温 RET ;CL1: LCALL UPDN ;判水温升降状态标志 LCALL HILW ;判水温高低状态标志 LCALL WORD ;根据水温升降、高低,求SCR控制字升降 RET ;325 判水温升降状态子程序判水温升降状态子程序UPDN: MOV 23H , #0 ;清上升下降标志 CLR 0EH ;清水温不变标志 CLR C ; MOV A , 44H ;读本次水温 SUBB A , 45H ;本次水温上次水温 JC DN ;下降,转 JNZ UP ;上升,转 SETB 0
27、EH ;不变,置水温不变标志 RET ;UP: SETB 1FH ;置上升标志UP1: CJNE A , #2 ,UP10 ;判上升1?UP10: JNC UP2 ;非上升1,转判上升2 SETB 1CH ;置上升1标志 RET ;UP2: CJNE A , #3 ,UP20 ;判上升2?UP20: JNC UP3 ;非上升2,转上升3 SERB 1DH ;置上升2标志 RET ;UP3: SETB 1EH ;置上升3及以上标志 RET ;DN: SETB 18H ;置下降标志 CLR C ; MOV A , 45H ; SUBB A , 44H ;上次水温本次水温DN1: CJNE A ,
28、#2 ,DN10 ;判下降1?DN10:JNC DN2 ;非下降1,转判下降2 SETB 19H ;置下降1标志 RET ;DN2: CJNE A , #3 , DN20 ;判下降2DN20:JNC DN3 ;非下降2,转下降3 SETB 1AH ;置下降2标志 RET ;DN3: SETB 1BH ;置下降3标志 RET ;有关寄存器及标志位说明:23H:上升下降标志寄存器(位地址18H1FH);44H:本次水温寄存器;45H:上次水温寄存器;0EH:水温不变标志(本次水温与上次水温相比);18H:水温下降标志;19H:下降1标志;1AH:下降2标志;1BH:下降3标志;1CH:上升1标志;
29、1DH:上升2标志;1EH:上升3标志;1FH:上升标志。326 判水温高低状态子程序判水温高低状态子程序HILW: MOV 24H , #0 ;清水温高低状态标志 CLR 0DH ;清水温=整定值标志 MOV A , 44H ;读水温 CLR C ; SUBB A , 47H ;水温值整定值 JC LW ;水温值整定值,转 SETB 0DH ;水温值等于整定值,置水温值等于整定值标志 RET ;HI: SETB 27H ;置水温值整定值标志HI1: CJNE A ,#4 , HI10 ;判水温高1HI10: JNC HI2 ;1,转判高2及以上 SETB 24H ;1,置1标志 RET ;H
30、I2: CJNE A ,#7 ,HI20 ;判水温高2HI20: JNC HI3 ;2,转高3及以上 SETB 25H ;2,置2标志 RET ;HI3: SETB 26H ;置高3及以上标志 RET ;LW: SETB 20H ;置水温值整定值标志 MOV A ,47H ; CLR C ; SUBB A ,44H ;整定值水温值LW1: CJNE A ,#4 ,LW10 ;判水温低1?LW10: JNC LW2 ;低1及以上,转判低2 SETB 21H ;低1及以内,置低1标志 RET ;LW2: CJNE A ,#7 ,LW20 ;判水温低2LW20: JNC LW3 ;低2以上,转低3及
31、以上 SETB 22H ;低2及以内,置低2标志 RET ;LW3: SETB 23H ;置低3及以上标志 RET ;有关寄存器及标志位说明:24H:水温高低标志寄存器(位地址20H27H);44H:本次水温A/D值寄存器;47H:水温整定值(温度数3)寄存器;0DH:水温值整定值标志;20H:水温值整定值标志;21H:水温值低于整定值1及以内标志;22H:水温值低于整定值2标志;23H:水温值低于整定值3及以上标志;24H:水温值高于整定值1及以内标志;25H:水温值高于整定值2标志;26H:水温值高于整定值3及以上标志;27H:水温值整定值标志。327 求SCR控制字升降子程序求SCR控制
32、字升降子程序WORD: JBC 0DH , WD0 ;本次水温整定值,转R4不变 JBC 27H , WDN ;本次水温整定值,转降低R4 CLR 20H ; 本次水温整定值,清低于标志 JBC 21H , WUP1 ;本次水温低于整定值1以内,转 JBC 22H , WUP2 ;本次水温低于整定值2以内,转WUP3: CLR 23H ;本次水温低于整定值3及以上,清低于3标志 JBC 19H , WUPN2 ;低3,且下降1,转控制字R42 JBC 1AH , WUPN3 ;低3,且下降2,转控制字R43 JBC 1BH , WUPN3 ;低3,且下降3,转控制字R43 SJMP WUPN1
33、 ;低3,其余情况,转控制字R41WUPN3;INC R4 ;控制字R43WUPN2:INC R4 ;控制字R42WUPN1:INC R4 ;控制字R41 CJNE R4 ,#96 , UP0 ;判控制字超上限否?(最大控制字96)WUP0: JC WD0 ;控制字96,正常返回 MOV R4 , #96 ;控制字96,置最大控制字96WD0: RET ;WUP2: JBC 1AH , WUPN2 ;低2,且下降2,转R42 JBC 1BH , WUPN3 ;低2,且下降3,转R43 SJMP WUPN1 ;低2,其余情况,转R41WUP1: JBC 19H , WUPN1 ;低1,且下降1,转R41 JBC 1AH , WUPN1 ;低1,且下降2,转R41 JBC 1BH , WUPN2 ;低1,且下降3,转R42 SJMP WD0 ;低1,其余情况,转R4不变WDN: JBC 24H , WDN1 ;本次水温高于整定值1,转 JBC 25H , WDN2 ;本次水温高于整定值2,转WDN3:CLR 26H ;本次水温高于整定值3及以上,清高于3标志 JBC 1EH , WDNN3 ;高3,且上升3,转R43
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100