智能型即热式热水器控制系统毕业论文

更新时间:2023-03-08 06:24:55 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘要

热水器可分为燃气式、电热式和太阳能三大类;电热式热水器又可分为储水式和即热式两种;即热式热水器又可分为电热管和电热膜两种。总体来讲,电热水器,特别是即热式热水器已逐渐成为家庭生活时尚。其特点是安全、出热水快、节水节能、体积小、价格低,唯一的缺点是功率容量大,功率6KW/220V时,电流达27.3A,这是即开即热特点所决定的。本设计的主要特点是恒温以及温度可调。采用单片机来对它们进行控制不仅具有控制方便、简单和灵活性大等优点,而且还可以大幅度提高被控温度的技术指标,从而进一步提高产品的质量。本设计运用80C51单片机系统为主控制芯片。其外围电路主要由水温检测和A/D转换、晶闸管控制、水温和状态显示、按键输入以及稳压电源等部分组成。

关键字:温度控制 80C51 A/D转换

陕西国防学院机电工程系毕业论文 第一章 系统介绍

1.1 系统原理

该热水器的工作原理为:温度传感器及有关电路将电热水器出口温度转化为电压,单片机利用本身具有的A/D转换器将测得的模拟量转换为数字量,再转化为与之对应的温度值。与设定的温度相比较后,以偏差及其变化量为输入、加热量为输出,就可达到温度自调的目的,并加以显示。 其主控电路原理图如下:

1.2 方案论证

基于上述原理该系统具有对温度的精确控制、能显示当前时间热水器的实际温度以及自动检测热水器是否处于正常工作状态,并具有调温、恒温、防超高温等多项自检功能,使用户在使用过程中安全更有保障。

1.2.1 水温检测电路 1.2.2 按键输入电路 1.2.3 水温和状态显示电路

1

陕西国防学院机电工程系毕业论文 本设计中选的显示器是LED,显示方法是静态显示。而常用的显示器件有:(1)显示和记录仪表;(2)CRT显示终端;(3)LED或LCD显示器;(4)大屏幕显示器。在这些显示方法中,显示和记录仪表能连续进行显示和记录。但它的价钱比较贵,且为模拟显示,读数不方便,有一定的误差,所以它只适用于企业的技术改造,在新设计的微型计算机系统中不宜采用。CTR它直观、灵活,不但可显示数字,而且可以显示画面及报表;但系统比较复杂,价格也比较贵,所以多用于大、中型控制系统中。大屏幕显示具有显示清晰、视觉范围宽广等优点,主要用于车站、码头、体育场馆、大型生产装置的现场显示。LED数码管由于具有结构简单,体积小,功耗低,响应速度快,易于匹配,寿命长,可靠性高等优点。虽然LCD也有这些优点但它价格比LED贵。所以本设计选LED。在微型计算机控制系统中常用的显示方法有:(1)动态显示;(2)静态显示。动态显示的优点是使用硬件少,价格低,线路简单。但它占用机时长,只要单片机不执行显示程序,就立刻停止显示。因此是计算机的开销增大。静态显示占用机时少,显示可靠,只要不送入新的数据,则显示值不变同时用起来也比较方便。因此本设计选用静态显示。

1.3 芯片介绍

本设计采用的单片机是89C51,89C51单片机的封装共分为DIP、PLCC及PQEP3种形式,常用DIP封装方式。其外形及引脚如下图所示:

2

陕西国防学院机电工程系毕业论文 89C51单片机共40个引脚,大致可分为4类: (1)电源引脚。

Vcc(40脚):电源端,+5V。 Vss(20脚):接地端(GND)。 (2)时钟电路引脚。

XTAL1(19脚):外接晶振输入端。 XTAL2(18脚):外接晶振输出端。 (3)I/O引脚。

P0口(39脚~32脚):P0.0~P0.7统称为P0口。是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。

P1口(1脚~8脚):P1.0~P1.7统称为P1口。是一组内部带上拉电阻的8位准双向I/O口,可驱动4个TTL门电路。

P2口(21脚~28脚):P2.0~P2.7统称为P2口。是一组内部带上拉电阻的8位准双向I/O口,可驱动4个TTL门电路。

P3口(10脚~17脚):P3.0~P3.7统称为P3口。是一组内部带上拉电阻的8位准双向I/O口,且该端口每个引脚具有第二功能。 (4)控制线引脚。 RST:复位端。

EA/Vpp(31脚):片外程序存储器选择端/Flash存储器编程电源。 ALE/PROG(30脚):地址锁存允许端/编程脉冲输入端。 PSEN(29脚):读片外程序存储器选通信号输出端。

第二章 硬件设计

2.1 电源部分的设计

一组交流输入通过桥式整流电路,输出4种电压:+12V、+6.8V、+5V、-0.7V。+12V用于继电器线圈电源(图中未画出);+6.8V和-0.7V用于运放正负电源(线性更可靠);+5V用于89C51及其余元件工作电源。

2.2 水温检测和A/D转换电路

在本设计中水温检测和A/D转换电路是一个配套电路,因为水温检测电路所检

测出的温度是一个连续变化的量,即模拟量。而单片机处理的数据只能是数字量,所以数据在进入单片机之前,必须把模拟量转换成数字量(也即A/D转换)。

2.2.1 水温检测电路

3

陕西国防学院机电工程系毕业论文 水温检测电路主要由R4VD1、R5R7RP1组成桥式检测电路和放大器组成,他的工作原理是先由桥式检测电路检测出温度信号再经IC5、IC6两个放大器将信号放大处理之后传送给ADC0809进行A/D转换,其中该电路还可以通过RP1和RP2两个滑动电阻来分别调节零度和满度两点的A/D值为00H和FFH。

2.2.2 A/D转换电路

A/D转换电路主要由A/D转换器组成,本设计采用的A/D转换芯片为ADC0809。因为ADC0809具有较高的转换速度和精度,受温度影响较小,能较长时间保证精度,重现性好,功耗较低,且具有8路模拟开关,对于过程控制它是比较理想的器件。

1.电路组成及转换原理

ADC0809是含8位A/D转换器、8路多路开关,以及与微型计算机兼容的控制逻辑的COMS组件,其转换方法为逐次逼近型。它的精度是1LSB。在A/D转换器内部有 一个高阻抗斩波稳定比较器,一个带模拟开关树组的256电阻分压器,以及一个逐次逼近型寄存器。8路的模拟开关的通/断由地址锁存器和译码器控制,可以在8个通道中任意访问一个单边的模拟信号。其原理框图如下:

2.ADC0809的引脚功能

ADC0809芯片有28条引脚,采用双列直插式封装,如下图所示:

? IN7~IN0:8个模拟量输入端。

? START:启动信号。当START为高电平时,A/D转换开始。

? EOC:转换结束信号。当A/D转换结束后,发出一个正脉冲,表示A/D转

4

陕西国防学院机电工程系毕业论文 换完毕。此信号可用做A/D转换是否结束的检测信号,或向CPU申请中断的信号。

? OE:输出允许信号。当此信号有效时,允许从A/D转换器的锁存器中读取

数字量。此信号可作为ADC0809的片选信号,高电平有效。 ? CLOCK:实时时钟,可通过外接RC电路改变时钟频率。

? ALE:地址锁存允许,高电平有效。当ALE为高电平时,允许C、B、A

所示的通道被选中,并把该通道的模拟量接入A/D转换器。 ? C,B,A:通道号选择端子。C为最高位,A为最低位。 ? D7~D0:数字量输出端。

? V,V:参考电压端子。用以提供D/A转换器权电阻的标准水平。对于一般

单极性模拟量输入信号,V=+5V,V=0V。 ? Vcc:电源端子。接+5V。 ? GND:接地端。 3.ADC0809的技术指标

? 单一电源,+5V供电,模拟量输入范围为0~5V。 ? 分辨率为8位。 ? 功耗为15mW。

? 转换速度取决于芯片的时钟频率。 ? 可锁存三态输出,输出与TTL兼容。 ? 无须进行零位及满量程调整 ? 温度范围为-40℃~+85℃。

2.3 晶闸管控制电路

晶闸管控制电路是由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电热膜电源。本设计中所用的晶闸管是电力晶体管它是电流控制型器件,大多工作在功率开关状态,对其要求与小信号晶体管有所不同,它主要有足够的容量、适当的增益、较快的开关速度和较低的功率损耗。

K1~K3为继电器保护,与晶闸管控制组成双重控制和保护电路。IC11(TPL521-2)和G10组成过零检测电路,用于周期控制晶闸管触发电路。

5

陕西国防学院机电工程系毕业论文

2.4 水温和状态显示电路

显示电路由4511(七段译码、锁存、驱动)和共阴LED数码管组成,P0.0~P0.3输出BCD码,P0.5、P0.6分别控制二位刷新显示,P0.4用于控制闪烁显示,P0.7控制小数点显示。P0口作为输出口时,外接上拉电阻(排阻)。

2.5 按键输入电路

ON/OFF是启动按钮与P3.5连接,直流电源始终接通,热水器未使用时,89C51处于低耗待机方式,仅开放T1中断,T1设置在计数器临界状态,按ON/OFF键即触发T1中断,在T1中断服务子程序中,唤醒CPU跳出低功耗待机方式,进入正常工作。

键用于设置水温,设置水温时,小数点亮,以便于实际水温显示区别(3秒后自动恢复显示实际水温)。

按键输入端RC电路用于消除按键抖动。

第三章 软件设计

3.1 程序流程图

3.1.1 主程序流程图

主控程序将整个控制过程分为两种周期,一种周期是10ms,另一种周期是320ms。10ms周期由交流电压过零中断开始,由T0中断控制,每隔2ms进行一次A/D转换,测一次出水水温,10ms内共4次,其平均值作为10ms水温平均值;余下时间内检测一次漏电、关水、水温设置上升下降;若出水,则输出刷新SCR控制字。320ms周期由对10ms计数控制,求320ms水温平均值,此值作为显示和控温的参数。满320ms刷新一次水温显示,调整一次320ms周期SCR控制字。程序流程图如下:

6

陕西国防学院机电工程系毕业论文 开始 初始化 等待交流电压过零或T02ms中断 有电压过零或T02ms中断,清中断标志 跳出低功耗 检测出水温 转入低功耗睡眠状态 T0未停,2ms中断满4次否 求10ms水温平均值 检测漏电否? 检测关水 扫描水温设置上升、下降键子程序 调用求320ms水温平均值子程序 判320ms周期满否? 320ms刷新显示一次 控温320ms调整一次周期控制状态 解码

图3—1

7

陕西国防学院机电工程系毕业论文 3.1.2 求320ms水温平均值子程序流程图

320ms水温平均值是由32个10ms水温平均值在平均产生的。求320ms水温平均值的方法有两种,一种方法是记录每10ms的水温平均值,这样就需要占用内RAM32B存储空间,显然是不可取的;第二种方法是将每次10ms水温平均值除以32,然后累加而得,这种方法占用内RAM存储空间少。本设计采用第二种方法。程序流程图如下:

8

陕西国防学院机电工程系毕业论文 开始 读水温10ms平均值 10ms水温平均值÷32 320ms水温平均值累加 回存 读320ms水温平均值余数 320ms水温平均值加1 320ms水温平均值余数累加 余数累加值减32≥0? 余数累加值不变 判320ms到否? 重置320ms计数器初值 余数减16≥0? 刷新上次水温 存320ms水温平均值 累加器清0 返回 图3—2

9

陕西国防学院机电工程系毕业论文 3.1.3 水温设置上升、下降键子程序流程图

经常在一些智能化设备中看到设置整定值采用上升键和下降键的方法,按一下上升键,设置整定值上升一位数,按住不放,快速上升;按一下下降键,设置整定值下降一位数,按住不放,快速下降。能实现这种效果的方法可能很多,下图为本设计的扫描上升键流程图。按键按一次释放,设置整定值加1并发短促嘟声(嘟声表示有效);按键超过0.2s开始计时,计时每增加0.1s,设置整定值加1,并刷新显示发出长嘟声。程序流程图如下:

10

陕西国防学院机电工程系毕业论文 开始 键按下否? 有按下标志否? 置按下标志 按钮计时 有按下标志否? 按钮超0.2s否? 有长按钮标志否? 置长按钮标志置100ms计数器 长按钮100ms计数 长按钮100ms满否? 确认长按钮一次100ms计数器重置初值 设置整定值+1 判设置整定值超限否? 置最大整定刷新显示 返回 图3—3

3.1.4 判水温升降状态子程序流程图

11

陕西国防学院机电工程系毕业论文 开始 请上升下降与水温不变标志 读本次水温 本次水温-上次水温 判差值>0否? 置上升标志 置下降标志 判上升1? 置上升1标志 判上升2? 上次水温-本次水温 判下降1? 置下降1标志 置上升2标志 判下降2? 置上升3及以上标志 置下降2标志 置下降3标志 返回 图3—4

3.1.5 判水温高低状态子程序流程图

12

陕西国防学院机电工程系毕业论文 开始 清水温高低状态、水温等于整定值标志 读水温 水温值-整定值>0? 置水温值>整定值标志 置水温值<整定值标志 判水温高1℃? 判水温低1℃? 置高1℃标志 置低1℃标志 判水温高2℃? 置高2℃标志 判水温低2℃? 置低2℃标志 置高3℃及以上标志 置低3℃及以上标志 返回 图3—5

3.1.6 求SCR控制字升降子程序流程图

3.2

主程序

程序设计

3.2.1 主程序

MAIN: LCALL STAT ; 初始化

WORK: JNB 01H , WORK ;等待交流电压过零或T02ms中断

13

陕西国防学院机电工程系毕业论文 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 KUP ;扫描水温设置上升键 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 WORK ;返回循环

WK3: LCALL LOW ;转入低功耗睡眠状态

LJMP WORK ;跳出低功耗,返回正常工作循环

3.2.2 求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水温平均值余数累加

14

陕西国防学院机电工程系毕业论文 MOV 43H , A ;回存 CLR C ;

SUBB A , #32 ;320ms水温平均值余数累加值试减32 JC T320 ;余数累加值<32,余数累加值不变 INC 42H ;余数累加值>=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,“四舍” INC 42H ;余数>=16,“五入” T322: MOV 45H , 44H ;刷新上次水温

MOV 44H , 42H ;存320ms水温平均值(本次水温) MOV 42H , #0 ;320ms水温平均值累加器清0 MOV 43H , #0 ;320ms水温平均值余数累加器清0 T323: RET

有关寄存器和标志位说明: 32H:10ms水温A/D平均值; 42H:320ms水温平均值累加器; 43H:320ms水温平均值余数累加器; 44H:本次320ms水温A/D平均值; R3: 320ms计数器; 02H:320ms标。

3.2.3 水温设置上升、下降键子程序

水温设置上升、下降键子程序

KUP: JNB P1.6 , KUP1 ;按上升键,转记一次 JB 0CH , KUP0 ;已按下降键,互锁返回

CLR 09H ;未按上升键或上升键后释放,清长按钮标志 SETB P2.6 ;停嘟声

MOV R7 , #00H ;长按钮计数器清0

15

陕西国防学院机电工程系毕业论文 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 , 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 ;置整定刷新显示保留时间(3220ms×10) SETB 06H ;置整定刷新显示控制标志 LCALL DIR ;刷新显示 RET ; 个标志位和寄存器说明: 08H:上升键按下标志;

09H:上升键长按钮标志(按上升键0.2s后建立); 0CH:下降键按下标志(与上升键互锁);

06H:整定刷新显示控制标志(在显示子程序中起整定刷新显示控制作用); P0.7:小数点显示控制端; P2.6:嘟声输出端;

R7:长按钮计数器,计数0.2s;

16

陕西国防学院机电工程系毕业论文 33H:100ms计数器,在确定长按钮后,每增加100ms,设置整定值加1; 46H:设置整定值寄存器;

36H:整定刷新显示保留时间计数器,保留显示10×320ms=3.2s。

3.2.4 温控子程序

温控子程序

CTRL: JNB 00H , CL1 ;非初始,转正常温控 LCALL BEGN ;初始,按初始状态控温 RET ;

CL1: LCALL UPDN ;判水温升降状态标志 LCALL HILW ;判水温高低状态标志

LCALL WORD ;根据水温升降、高低,求SCR控制字升降 RET ;

3.2.5 判水温升降状态子程序

判水温升降状态子程序

UPDN: MOV 23H , #0 ;清上升下降标志 CLR 0EH ;清水温不变标志 CLR C ;

MOV A , 44H ;读本次水温

SUBB A , 45H ;本次水温-上次水温 JC DN ;下降,转 JNZ UP ;上升,转

SETB 0EH ;不变,置水温不变标志 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标志

17

陕西国防学院机电工程系毕业论文 RET ;

UP3: SETB 1EH ;置上升3及以上标志 RET ;

DN: SETB 18H ;置下降标志 CLR C ; MOV A , 45H ;

SUBB A , 44H ;上次水温-本次水温 DN1: CJNE A , #2 ,DN10 ;判下降1?

DN10:JNC DN2 ;非下降1,转判下降2 SETB 19H ;置下降1标志 RET ;

DN2: CJNE A , #3 , DN20 ;判下降2

DN20:JNC DN3 ;非下降2,转下降3 SETB 1AH ;置下降2标志 RET ;

DN3: SETB 1BH ;置下降3标志 RET ; 有关寄存器及标志位说明:

23H:上升下降标志寄存器(位地址18H~1FH); 44H:本次水温寄存器; 45H:上次水温寄存器;

0EH:水温不变标志(本次水温与上次水温相比); 18H:水温下降标志; 19H:下降1标志; 1AH:下降2标志; 1BH:下降3标志; 1CH:上升1标志; 1DH:上升2标志; 1EH:上升3标志; 1FH:上升标志。

3.2.6 判水温高低状态子程序

18

陕西国防学院机电工程系毕业论文 判水温高低状态子程序

HILW: MOV 24H , #0 ;清水温高低状态标志 CLR 0DH ;清水温=整定值标志 MOV A , 44H ;读水温 CLR C ;

SUBB A , 47H ;水温值-整定值 JC JNZ SETB RET HI: SETB HI1: CJNE HI10: JNC SETB RET HI2: CJNE HI20: JNC SETB RET HI3: SETB RET LW: SETB MOV CLR SUBB LW1: CJNE LW10: JNC SETB RET LW2: CJNE LW20: JNC SETB LW ;水温值<整定值,转 HI ;水温值>整定值,转

0DH ;水温值等于整定值,置水温值等于整定值标志 ;

27H ;置水温值>整定值标志 A ,#4 , HI10 ;判水温高1℃

HI2 ;>1℃,转判高2℃及以上 24H ;≤1℃,置≤1℃标志 ;

A ,#7 ,HI20 ;判水温高2℃

HI3 ;>2℃,转高3℃及以上 25H ;≤2℃,置≤2℃标志 ;

26H ;置高3℃及以上标志 ;

20H ;置水温值<整定值标志 A ,47H ; C ;

A ,44H ;整定值-水温值 A ,#4 ,LW10 ;判水温低1℃?

LW2 ;低1℃及以上,转判低2℃ 21H ;低1℃及以内,置低1℃标志 ;

A ,#7 ,LW20 ;判水温低2℃

LW3 ;低2℃以上,转低3℃及以上 22H ;低2℃及以内,置低2℃标志

19

本文来源:https://www.bwwdw.com/article/zv4.html

Top