欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

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

    • 资源ID:9942902       资源大小:81.50KB        全文页数:31页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    #include <reg52.h>#include <intrins.h>#define uint unsigned int #define uchar unsigned char#include "DHT11.h"#include "DS1302.h"#include "TLC2543.H"#include "lcd_1602.h"sbit 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时多界面有按键决定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;m>0;m-)for(n=124;n>0;n-);void beer()Beer=0;delayms(30);Beer=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; /case 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+;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_flag=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_2>2)sw2_2=0;switch(sw2_2) /温湿度设置case 0: /确定 光标消失display_flag=0;wr_com(0x0c);break; /case 1: /光标 移动到display_flag=1;wr_com(0xc5);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(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_com(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)case 0:switch(sw1_2)/ /设置年月日及其时间case 0:break; case 1:year+;if(year>99)year=0;lcd_display_ds1302();wr_com(0x88);break;case 2:month+;if(month>12)month=1;lcd_display_ds1302();wr_com(0x8b);break; case 3:day+;if(day>31)day=1;lcd_display_ds1302();wr_com(0x8e);break; /case 4:hour+;if(hour>23)hour=0;lcd_display_ds1302();wr_com(0xc7);break; /case 5:minute+;if(minute>59)minute=0;lcd_display_ds1302();wr_com(0xca);break; / case 6: second+;if(second>59)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();break; 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: Alc_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);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);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)day=31;lcd_display_ds1302();wr_com(0x8e);break; /case 4:hour-;if(hour<0)hour=23;lcd_display_ds1302();wr_com(0xc7);break; /case 5: /温度报警值增加minute-;if(minute<0)minute=59;lcd_display_ds1302();wr_com(0xca);break; / case 6: /温度报警值增加second-;if(second<0)second=59;lcd_display_ds1302();wr_com(0xcd);break; / break; /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; / case 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) /case 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;if(Smog_num<=1000)Smog_num=1000;display_Smog_num();wr_com(0xc6);break; break; / while(Key_min=0);void key() /功能切换KKey_switch();KKey_set();KKey_add();KKey_min();void init_xinxi()init_xian(0x90,str2_1); /显示多功能传感器init_xian(0xd0,str2_2);delayms(2000);move_right();init_xian(0x80,str3_1); /制作人init_xian(0xc0,str3_2);delayms(2000);move_left();init_xian(0x90,str4_1); /制作人信息init_xian(0xd0,str4_2);delayms(1500);move_right();init_xian(0x80,str5_1); /init_xian(0xc0,str5_2);delayms(2000);move_left();void switch_display()if(display_flag=0) /*动态显示控制位if(flag_display=0)delayms(1);speed+;if(speed>=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=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_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=0xb0;if(flag_display=0) /=1时,显示自动切换界面if(sw1_2=0) && (sw2_2=0) && (sw3_2=0) && (sw4_2=0)/如果在设置状态时不会自动切换t0+;if(t0>600) /时间, 20秒未操作显示温湿度 时间界面flag_display=1;flag_display1=1;/#ifndef _LCD_1602_H_#define _LCD_1602_H_#include<intrins.h>#define uchar unsigned char#define uint unsigned intsbit RS=P27;sbit RW=P26;sbit EN=P25;uchar 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 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

    注意事项

    本文([毕业设计精品] DHT11程序TLC2543程序LCD1602程序DS1302程序报警程序.doc)为本站会员(rrsccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开