发布时间 : 星期一 文章(完整版)基于单片机的家用加湿器控制装置设计毕业设计更新完毕开始阅读1fc1989851e2524de518964bcf84b9d529ea2c70
3.9 报警电路设计
加湿器若出现故障无法停止工作会导致室内湿度过高对人体的健康造成危害,本设计中人性化的加入了湿度过高的报警系统,以保证加湿器的正常工作。
本设计采用峰鸣音报警电路。峰鸣音报警接口电路的设计只需购买市售的压电式蜂鸣器,然后通过AT89C52的1根口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以使用TTL系列集成电路7406或7407低电平驱动,也可以用一个晶体三极管驱动。在图中,P3.0接晶体管基极输入端。当P3.0输出高电平“1”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P3.0输出低电平“0”时,三极管截止,蜂鸣器停止发声。
图3.10 报警电路
3.10 加湿器控制装置总体结构图
图3.11 系统总体结构框图
第4章 软件电路设计
4.1 程序流程图
图4.1主程序流程图 图4.2 温湿度与显示程序流程
图4.3湿度处理与控制程序流程图
图4.4 湿度值设定程序图
4.2 程序设计
#include extern lcd_wdat(BYTE dat); 写入字符显示数据到LCD extern lcd_init(); LCD初始化设定 extern unsigned int datpro(); ADC0804 读出的数据处理,取平均值 extern unsigned char adc0804(); 读AD0804子程序 unsigned int flag=0; unsigned char shiduzhi,shedingzhi=30; unsigned char codeDisp_Tab[] = {0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x78}; 1602字符'0~9'加'.' void Init(void) { lcd_pos(0x03); lcd_wdat('S'); lcd_wdat('D'); lcd_wdat('Z'); lcd_wdat(':'); lcd_wdat('3'); lcd_wdat('0'); lcd_wdat('.'); lcd_wdat('0'); lcd_wdat('0'); lcd_pos(0x40); lcd_wdat('S'); lcd_wdat('D'); lcd_wdat(':'); lcd_pos(0x48); } void system_Ini() { TMOD|= 0x11; TH1 = 0xD8; 10 TL1 = 0xF0; IE = 0x8A; TR1 = 1; } void delayms(unsigned char ms) { unsigned char i; while(ms--) { for(i = 0; i < 120; i++); } } void shuru(void) { unsigned char key_n,m=0,n; while(flag) { key_n=scan_key(); if(key_n==2) { delayms(10); key_n=scan_key(); if(key_n==2) { m++; if(m>=5) m=0; n=m+9; lcd_pos(n); } } if(key_n==4) { delayms(10); key_n=scan_key(); if(key_n==4) { 获取键值 K1按下,移位按键 延时 再次获取 确认按下 指针加一 等于五归零,实现循环 显示位置 移动光标到指定位置 K2按下,加一按键 确认按键