[毕业设计精品] DHT11程序TLC2543程序LCD1602程序DS1302程序报警程序.doc

上传人:文库蛋蛋多 文档编号:3025921 上传时间:2023-03-09 格式:DOC 页数:31 大小:81.50KB
返回 下载 相关 举报
[毕业设计精品] DHT11程序TLC2543程序LCD1602程序DS1302程序报警程序.doc_第1页
第1页 / 共31页
[毕业设计精品] DHT11程序TLC2543程序LCD1602程序DS1302程序报警程序.doc_第2页
第2页 / 共31页
[毕业设计精品] DHT11程序TLC2543程序LCD1602程序DS1302程序报警程序.doc_第3页
第3页 / 共31页
[毕业设计精品] DHT11程序TLC2543程序LCD1602程序DS1302程序报警程序.doc_第4页
第4页 / 共31页
[毕业设计精品] DHT11程序TLC2543程序LCD1602程序DS1302程序报警程序.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《[毕业设计精品] DHT11程序TLC2543程序LCD1602程序DS1302程序报警程序.doc》由会员分享,可在线阅读,更多相关《[毕业设计精品] DHT11程序TLC2543程序LCD1602程序DS1302程序报警程序.doc(31页珍藏版)》请在三一办公上搜索。

1、#include #include #define uint unsigned int #define uchar unsigned char#include DHT11.h#include DS1302.h#include TLC2543.H#include lcd_1602.hsbit Key_swi=P34;sbit Key_set=P35;sbit Key_add=P36;sbit Key_min=P37;sbit Beer =P21;sbit LED_RED=P30;sbit LED_GRE=P31;bit flag_display=0; /自动切换标志位=1显示时间和温湿度 =0时

2、多界面有按键决定bit flag_display1=0;bit display_flag=0;/*动态显示控制位uchar sw1_2=0; /键二,设置时间uchar sw2_2=0; /键二,设置温湿度报警值uchar sw3_2=0;/建二,设置酒精浓度报警值uchar sw4_2=0;/建二,设置烟雾浓度报警值uchar num1=0;/功能切换uchar speed=0; /数据说新速度uint t0=0;delayms(uint z)uint m,n;for(m=z;m0;m-)for(n=124;n0;n-);void beer()Beer=0;delayms(30);Beer=

3、1;t0=0; /自动切换清零/*功能键11111111111111*/void KKey_switch() /功能键一if(!Key_swi)beer();if(!Key_swi & (sw1_2=0) & (sw2_2=0) & (sw3_2=0) & (sw4_2=0) /=1时,表示正在设置状态,不能却换到其他的状态 flag_display=0;/自动切换标志位num1+;if(num1=4)num1=0;while(!Key_swi);switch(num1)case 0:init_xian(0x80,str5_1);init_xian(0xc0,str5_2);break; /c

4、ase 1:init_xian(0x80,str6_1);init_xian(0xc0,str6_2);break; /case 2:init_xian(0x80,str7_1);init_xian(0xc0,str7_2);break; /case 3:init_xian(0x80,str8_1);init_xian(0xc0,str8_2);break; /*功能键2222222222222*/void KKey_set() /功能键二if(Key_set=0) /设置beer();if(Key_set=0 & flag_display=0)switch(num1)case 0:sw1_2

5、+;if(sw1_2=7)sw1_2=0;switch(sw1_2) /温湿度设置case 0: /确定 光标消失display_flag=0;wr_com(0x0c);Init_DS1302();break; /case 1: /光标 移动到display_flag=1;wr_com(0x88);wr_com(0x0d);break; / case 2:display_flag=1;wr_com(0x8b);wr_com(0x0d);break; /case 3:display_flag=1;wr_com(0x8e);wr_com(0x0d);break; /case 4:display_f

6、lag=1;wr_com(0xc7);wr_com(0x0d);break; /case 5:display_flag=1;wr_com(0xca);wr_com(0x0d);break; /case 6:display_flag=1;wr_com(0xcd);wr_com(0x0d);break; /break;case 1:sw2_2+;if(sw2_22)sw2_2=0;switch(sw2_2) /温湿度设置case 0: /确定 光标消失display_flag=0;wr_com(0x0c);break; /case 1: /光标 移动到display_flag=1;wr_com(0

7、xc5);wr_com(0x0d);break; / case 2:display_flag=1;wr_com(0xcE);break; /break; /case 2: /酒精浓度设置sw3_2+;if(sw3_2=5)sw3_2=0;switch(sw3_2) case 0: /确定 光标消失display_flag=0;wr_com(0x0c);break; /case 1: /光标 移动到display_flag=1;wr_com(0xc8);wr_com(0x0d);break; / case 2: /光标 移动到display_flag=1;wr_com(0xc7);wr_com(

8、0x0d);break; / case 3: /光标 移动到display_flag=1;wr_com(0xc6);wr_com(0x0d);break; / case 4: /光标 移动到display_flag=1;wr_com(0xc5);wr_com(0x0d);break; / break; /case 3:sw4_2+;if(sw4_2=5)sw4_2=0;switch(sw4_2) case 0: /确定 光标消失display_flag=0;wr_com(0x0c);break; /case 1: /光标 移动到display_flag=1;wr_com(0xc9);wr_co

9、m(0x0d);break; / case 2: /光标 移动到display_flag=1;wr_com(0xc8);wr_com(0x0d);break; / case 3: /光标 移动到display_flag=1;wr_com(0xc7);wr_com(0x0d);break; / case 4: /光标 移动到display_flag=1;wr_com(0xc6);wr_com(0x0d);break; / break; /while(Key_set=0);void KKey_add()if(Key_add=0)beer();if(Key_add=0)switch(num1)cas

10、e 0:switch(sw1_2)/ /设置年月日及其时间case 0:break; case 1:year+;if(year99)year=0;lcd_display_ds1302();wr_com(0x88);break;case 2:month+;if(month12)month=1;lcd_display_ds1302();wr_com(0x8b);break; case 3:day+;if(day31)day=1;lcd_display_ds1302();wr_com(0x8e);break; /case 4:hour+;if(hour23)hour=0;lcd_display_ds

11、1302();wr_com(0xc7);break; /case 5:minute+;if(minute59)minute=0;lcd_display_ds1302();wr_com(0xca);break; / case 6: second+;if(second59)second=0;lcd_display_ds1302();wr_com(0xcd);break; / break; /case 1:switch(sw2_2) /设置温湿度报警值case 0:break; case 1: /设置温度T_num+;if(T_num=99)T_num=99;display_T_num();brea

12、k; case 2: /设置湿度H_num+;if(H_num=99)H_num=99;display_H_num();break; break; case 2:switch(sw3_2)/酒精浓度case 0:break; case 1: Alc_num+=1;if(Alc_num=4999)Alc_num=4999;display_Alc_num();wr_com(0xc8);break; / case 2: Alc_num+=10;if(Alc_num=4999)Alc_num=4999;display_Alc_num();wr_com(0xc7);break; / case 3: Al

13、c_num+=100;if(Alc_num=4999)Alc_num=4999;display_Alc_num();wr_com(0xc6);break; / case 4: Alc_num+=1000;if(Alc_num=4999)Alc_num=4999;display_Alc_num();wr_com(0xc5);break; / break; /case 3:switch(sw4_2) /烟雾浓度case 0:break; case 1:Smog_num+=1;if(Smog_num=4999)Smog_num=4999;display_Smog_num();wr_com(0xc9)

14、;break;case 2:Smog_num+=10;if(Smog_num=4999)Smog_num=4999;display_Smog_num();wr_com(0xc8);break;case 3:Smog_num+=100;if(Smog_num=4999)Smog_num=4999;display_Smog_num();wr_com(0xc7);break;case 4:Smog_num+=1000;if(Smog_num=4999)Smog_num=4999;display_Smog_num();wr_com(0xc6);break; break; while(Key_add=0

15、);void KKey_min() if(Key_min=0)beer();if(Key_min=0) switch(num1)case 0:switch(sw1_2) /设置年月日及其时间case 0:break; /case 1: /温度报警值增加year-;if(year=0)year=99;lcd_display_ds1302();wr_com(0x88);break; / case 2:month-;if(month=0)month=12;lcd_display_ds1302();wr_com(0x8b);break; /case 3:/湿度报警值增加day-;if(day=0)da

16、y=31;lcd_display_ds1302();wr_com(0x8e);break; /case 4:hour-;if(hour0)hour=23;lcd_display_ds1302();wr_com(0xc7);break; /case 5: /温度报警值增加minute-;if(minute0)minute=59;lcd_display_ds1302();wr_com(0xca);break; / case 6: /温度报警值增加second-;if(second0)second=59;lcd_display_ds1302();wr_com(0xcd);break; / break

17、; /case 1:switch(sw2_2) /case 0:break; /case 1: /温度报警值减小T_num-;if(T_num=0)T_num=0;display_T_num();break; / case 2:H_num-;if(H_num=0)H_num=0;display_H_num();break; / break; / case 2:switch(sw3_2) /case 0:break; case 1: Alc_num-=1;if(Alc_num=1000)Alc_num=1000;display_Alc_num();wr_com(0xc8);break; / ca

18、se 2: Alc_num-=10;if(Alc_num=1000)Alc_num=1000;display_Alc_num();wr_com(0xc7);break; / case 3: Alc_num-=100;if(Alc_num=1000)Alc_num=1000;display_Alc_num();wr_com(0xc6);break; / case 4: Alc_num-=1000;if(Alc_num=1000)Alc_num=1000;display_Alc_num();wr_com(0xc5);break; / break; /case 3:switch(sw4_2) /ca

19、se 0:break; case 1:Smog_num-=1;if(Smog_num=1000)Smog_num=1000;display_Smog_num();wr_com(0xc9);break;case 2:Smog_num-=10;if(Smog_num=1000)Smog_num=1000;display_Smog_num();wr_com(0xc8);break;case 3:Smog_num-=100;if(Smog_num=1000)Smog_num=1000;display_Smog_num();wr_com(0xc7);break;case 4:Smog_num-=1000

20、;if(Smog_num=1000)speed=0; /间隔采集数据switch(num1)case 0:receive_time(); lcd_display_ds1302();break; /case 1:if(speed=10)lcd_display_wenshidu();break; /case 2:if(speed=1)lcd_display_jiujing();break; /case 3:if(speed=10)lcd_display_yanwu();break; /case 4:Beer=0;break; / if(flag_display=1)if(flag_display1

21、=1)init_xian(0x80,str5_2);init_xian(0xc0,str6_1);flag_display1=0;lcd_display_time_wenshi();void warning()/报警程序if(TH_data=T_num)&(num1=1) | (RH_data=H_num)&(num1=1) | (Alc_0=Alc_num)&(num1=2) | (Smog_0=Smog_num)&(num1=3)Beer=0;else Beer=1;if(TH_data=T_num)LED_RED=0;else LED_RED=1;if(RH_data=H_num)LED

22、_GRE=0;else LED_GRE=1;void init()TMOD=0x01;TH0=0x3c;TL0=0xb0;ET0=1;/定时器0中断允许位 TR0=1;/定时器0运行控制位EA=1;void main() uint temp=0;init_display(); /液晶初始化init_xinxi(); /显示个人信息Init_DS1302(); /时钟初始化init(); /中断初始化while(1)key(); switch_display(); /功能切换warning(); /报警程序void time_0(void) interrupt 1TH0=0x3c;TL0=0xb

23、0;if(flag_display=0) /=1时,显示自动切换界面if(sw1_2=0) & (sw2_2=0) & (sw3_2=0) & (sw4_2=0)/如果在设置状态时不会自动切换t0+;if(t0600) /时间, 20秒未操作显示温湿度 时间界面flag_display=1;flag_display1=1;/#ifndef _LCD_1602_H_#define _LCD_1602_H_#include#define uchar unsigned char#define uint unsigned intsbit RS=P27;sbit RW=P26;sbit EN=P25;u

24、char aa12;uchar ab20;char T_num=40; /温度报警值char H_num=45; /湿度报警值int Alc_num=918; /酒精报警值int Smog_num=919; /烟雾报警值uint Alc_0=0; /酒精浓度值uint Smog_0=0; /烟雾浓度值unsigned char code str1_1=Multi-functional;/多功能传感器unsigned char code str1_2= Sensor Design ;/unsigned char code str2_1=Producer: ;unsigned char code

25、str2_2= Chenshuai ;unsigned char code str3_1=Student Number: ;unsigned char code str3_2= 200880864120 ;unsigned char code str4_1=Production Date:;unsigned char code str4_2= 2011/12/04 ;unsigned char code str5_1=Date:2011-12-04 ;unsigned char code str5_2=Time: 00:00:00 ;unsigned char code str6_1=T:00C H:00%RH ;unsigned char code str6_2=T_H:00 H_H:00 ;unsigned char code str7_1=Alcohol=0000ppm ;unsigned char code str7_2=HIAL=0000ppm

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号