智能排气扇设计论文

上传人:仙*** 文档编号:27841371 上传时间:2021-08-21 格式:DOC 页数:29 大小:689KB
收藏 版权申诉 举报 下载
智能排气扇设计论文_第1页
第1页 / 共29页
智能排气扇设计论文_第2页
第2页 / 共29页
智能排气扇设计论文_第3页
第3页 / 共29页
资源描述:

《智能排气扇设计论文》由会员分享,可在线阅读,更多相关《智能排气扇设计论文(29页珍藏版)》请在装配图网上搜索。

1、题目名称:智能排气扇 广东工业大学信息工程学院 参赛队员: 摘要 : 本排气扇是以 MCU为主控芯片的智能排气扇,可以检测有毒气体并且能够根据温度和 湿度自动无级调速。结合燃气热水器一起使用能大大提高燃气热水器的安全性。 它具有可靠性好、可升级、独立性强的优点。改进了以往的普通排气扇功能单一,处 理应急事故的能力差的缺点。 这种具有燃气泄漏自动换气功能的智能排气扇,当检测到空气中燃气浓度超标时,声、 光报警,同时排气扇强制排气,及时通风换气,稀释燃气浓度,预防恶性事故的发生。 关键词: 智能 MCU 安全 Abstract : This exhaust fan use the MCU as t

2、he interface controller sfr CMOD = 0XD9; sfr CL = 0XE9; sfr CH = 0XF9; sfr CCAP0L = 0XEA; sfr CCAP0H = 0XFA; sfr CCAPM0 = 0XDA; sfr CCAPM1 = 0XDB; sfr AUXR = 0X8E; unsigned char U8FLAG; /超时标志 unsigned char U8temp; /赋值给每一 bit unsigned char U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata; /检

3、验后确定的数据 Unsigned char U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_t emp; /从 DHT11读进来的数据 unsigned char U8comdata; /8bit数据中间变量 unsigned int ms_10=0,flag=0; unsigned char dht11_flag=0; unsigned char ms_10_dht11_2s=0; unsigned char ms_10_dht11_30ms=0; unsigned char key_

4、flag=0 ,key_on=0 ,ms_10_key_15ms=0 ,key_time=1; unsigned char fire_beep_time_1s=31; unsigned char fire_on_flag=0; 17 unsigned char fire_on=0; unsigned char fire_flag=0; unsigned int fire_count=0; unsigned char fire_flag_count=0; unsigned char duqi_flag=0; unsigned char current_load_flag=0; unsigned

5、char Temp_test_on=0; unsigned char delay_count=5,delay_count_time=0 ,delay_count_time_flag=0,delay_count_time_flag_100ms=0; int Temp_test_on_time=500; sbit CR =0 xDE; sbit key_2 =P10; sbit Temp_led=P24; sbit dht11_data = P20 ; sbit beep=P12; sbit fire=P23; sbit duqi=P21; sbit jidianqi=P15; sbit Temp

6、_test=P22; sbit key_button = P11 ; /* /全局需开总中断 EA; /15360*(12/18.432M) /* void Timer0_Initial() TMOD |=0X01; TH0=0XFF; / TL0=0XCF; ET0=1; /开 T1中断 TR0=1; /启动 T1定时器 /* /用于计数到 10ms: /* void Timer0() interrupt 1 TR0=0; TH0=0XFF; TL0=0XCF; TR0=1; /* 18 void zero() interrupt 0 /过流触发中断 /TR0=0; TR0=1; CR=0;

7、CR=1; void Pwm_Initial() CMOD=0X04; CL=0X00; CH=0X00; /初始化 CCAP0L=0 xff; CCAP0H=0 xff; /占空比 CCAPM0=0X42; AUXR=0X00; CR=1; /开 PWM void Interrupt_Initial() IT0=1; /外部中断 0边沿触发 IT1=1; /外部中断 1边沿触发 EX0=1; /开外部中断 0 EX1=1; /开外部中断 1 EA=1; /开总中断 void Pwm_Change() if(duqi_flag=0 if(15=U8T_data_H /根据温度调整占空比 CCA

8、P0H=(195-(U8T_data_H-15)*1); if(25=U8T_data_H CCAP0H=(195-(U8T_data_H-25)*5); if(35=U8T_data_H CCAP0H=(125-(U8T_data_H-35)*5); if(45=U8T_data_H CCAP0H=(16-(U8T_data_H-45)*1); delay_count_time_flag=1; if(duqi_flag=1) CCAP0L=0 x00; /占空比为 0,关排气扇 CCAP0H=0 x00; else if(fire_on=0) if(delay_count_time_flag

9、=1|delay_count_time_flag=2) delay_count_time_flag=2; if(delay_count_time=delay_count) CR=0; CCAP0L=0 xff; /占空比 100%,全速运行 CCAP0H=0 xff; delay_count_time_flag=3; delay_count_time=0; if(delay_count_time_flag=0) CR=0; CCAP0L=0; /延时关排气扇 CCAP0H=0; if(current_load_flag=1) jidianqi=0; /触发继电器 20 /*数字-码型转换函数*

10、 /描 述:把数字转换成七段码型,此程序仅配合共阳的七 / 段数码管使用 /入口参数:unsigned char i,要转换的数字(0-9), /返回参数:转换后的七段码型,0 xff 表示转换失败 /设计人:ycj /最后修改:时间(2006.4.26)修改人(ycj) /* unsigned char change(unsigned char i) switch(i) case 0: return(0 x88);/0的七段码型 case 1: return(0 x9F);/1的七段码型 case 2: return(0 xA4);/2的七段码型 case 3: return(0 x85);

11、/3的七段码型 case 4: return(0 x93);/4的七段码型 case 5: return(0 xC1);/5的七段码型 case 6: return(0 xC0);/6的七段码型 case 7: return(0 x8F);/7的七段码型 case 8: return(0 x80);/8的七段码型 case 9: return(0 x81);/9的七段码型 default: return(0 xff);/转换失败 /* /功能描述:LED 显示函数,显示两位数值,不使用延时函数 /入口参数: char num,要显示的数值(两位) /返回参数: 无 21 /使用 :1、时间段号

12、标志变量 ms_10 / 2、数码管查表函数 change(); / 3、全局变量 change_led l片选数码管 / 4、led_date 数码管数据口 /设计者 : EDWIN /最后修改: 2010.4.19 /* void diaplay(unsigned char num1,unsigned char num2) char num; if(flag=1) / 使显示更加稳定 flag=0; if(key_on=0) P1 P1 |=0X80; num=num1; if(key_on=1) P1 P1 |=0X40; num=num2; if(key_on=2) P1 |=0XC0

13、; num=delay_count; if(ms_10=0) /每隔 10ms切换个、十位显示 choose_led|=0X80; /关个位,% led_date= change(num/10); /得出十位 choose_led /选通十位,% if(ms_10=1) /每隔 10ms切换个、十位显示 choose_led|=0X40; /关十位,% led_date=change(num%10); /得出十位 choose_led /选通个位,% 22 /* /延时子程序 /* void Delay_10us(void) unsigned char i; i-; i-;i-; i-; i-

14、;i-; i-;i-; i-;i-;i-;i-;i-;i-;i-;i-; i-;i-;i-;i-;i-;i-;i-;i-;i-;i-; i-;i-;i-;i-;i-;i-; i-;i-;i-;i-; i-;i-;i-;i-;i-;i-;i-;i-;i-;i-; /* DHT11读一个字节子程序 /* void COM(void) unsigned char i; for(i=0;i8;i+) U8FLAG=2; while(!dht11_data) Delay_10us(); Delay_10us(); U8temp=0; Delay_10us(); if(dht11_data)U8temp=

15、1; U8FLAG=2; while(dht11_data) /超时则跳出 for循环 if(U8FLAG=1) /判断数据位是 0还是 1 break; U8comdata30) fire_beep_time_1s=30; if(delay_count_time_flag=2) /延时计数 delay_count_time_flag_100ms+; if(delay_count_time_flag_100ms=100) delay_count_time+; delay_count_time_flag_100ms=0; if(delay_count_time delay_count) dela

16、y_count_time=delay_count; Temp_test_on_time+; if(Temp_test_on_time=500) Temp_test_on_time=500; if(Temp_test_on_time50) if(key_flag=0) if(key_button=0) key_flag=1; if(key_flag=1) ms_10_key_15ms=0; key_flag=2; if(key_flag=2) if(ms_10_key_15ms=12) key_flag=0; if(key_button=0) key_on+; if(key_on=3) key_

17、on=0; key_time=0; if(key_2=0) if(key_time15) if(key_flag=0) if(key_button=0) key_flag=1; if(key_flag=1) 27 ms_10_key_15ms=0; key_flag=2; if(key_flag=2) if(ms_10_key_15ms=5) key_flag=0; if(key_button=0) delay_count+; if(delay_count=100) delay_count=0; key_time=0; /火焰检测 void fire_test() if(fire_flag=1

18、) fire=1;fire=0;fire=1; if(fire=1) fire_count+; if(fire_flag_count=20) if(fire_count1) fire_on=1; else fire_on=0; if(fire_flag_count=21) fire_count=0; /火焰触发蜂鸣器 void fire_beep() if( fire_on=1 28 fire_beep_time_1s=0; if(fire_on=0 fire_beep_time_1s=0; if(fire_beep_time_1s=30 /检测毒气 void duqi_test() duqi

19、=1; if(duqi=0) duqi_flag=1; else duqi_flag=0; /毒气触发蜂鸣器 void duqi_beep() if(duqi_flag=1) beep=0; if(duqi_flag=0 void current_load() interrupt 2 current_load_flag=1; /过流检测并触发蜂鸣器 void current_load_beep() if(current_load_flag=1) beep=0; if(current_load_flag=0 29 /移动热水检测 void Temp_move_test() if(Temp_tes

20、t=1) Temp_test_on=0; if( Temp_test=0) Temp_test_on_time=0; void main() Timer1_Initial(); /定时器 1初始化 Pwm_Initial(); /PWM初始化 Timer0_Initial(); /定时器 0初始化 Interrupt_Initial(); /中断初始化 while(1) DHT11(); /读 DHT11转换的数据 diaplay(U8T_data_H,U8RH_data_H); /显示数据 Pwm_Change(); /根据各种情况改变占空比 key(); /读取按键值 fire_test(); /火焰检测 fire_beep(); /火焰触发蜂鸣器 duqi_test(); /毒气检测 duqi_beep(); /毒气触发蜂鸣器 current_load_beep(); /过流触发蜂鸣器 Temp_move_test(); /移动热水源检测

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!