陕西国防学院机电工程系毕业论文 换完毕。此信号可用做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