第一范文网 - 专业文章范例文档资料分享平台

基于单片机的温湿度报警器设计

来源:用户分享 时间:2025/5/29 15:59:12 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

基于单片机的温湿度监控报警系统设计

L1602_char(2, 16, HH+48); break; default: break; } Save_Setting(); }

/*********主函数**********/ void main()

{ U16 i, j, testnum; EA = 0;

Timer0_Init(); //定时器0初始化 Data_Init(); EA = 1;

L1602_init(); L1602_string(1,1,\ \ L1602_string(2,1,\ \

for (i=0;i<1000;i++) //延时 for (j=0;j<1000;j++) {;}

L1602_string(1,1,\ \清屏 L1602_string(2,1,\ \ L1602_string(1,1,\ C TH:\ L1602_string(2,1,\ % HH:\

Load_Setting(); //载入温度上限和湿度上限设定值 L1602_char(1, 15, TH/10+48); L1602_char(1, 16, TH+48); L1602_char(2, 15, HH/10+48); L1602_char(2, 16, HH+48); while(1) { if (FlagStartRH == 1) //温湿度转换标志检查 { TR0 = 0;

testnum = RH(); FlagStartRH = 0; TR0 = 1;

- 28 -

基于单片机的温湿度监控报警系统设计

humidity = U8RH_data_H; //读出温湿度,只取整数部分 temperature = U8T_data_H;

L1602_int(1,5,temperature); //显示温湿度 L1602_int(2,5,humidity); } //温湿度控制

if (temperature > TH) { Led_jiangwen = 0; beep=0; DELAY(500); } else

//判断超温

//二极管亮,超温报警 //蜂鸣器响,超温报警 //延时

{ Led_jiangwen = 1; beep=1; DELAY(500); }

//判断潮湿

//二极管亮,超湿报警 //蜂鸣器响,超温报警

if (humidity > HH)

{ Led_qushi = 0; beep=0; DELAY(500); } else

{ Led_qushi = 1;

beep=1;

DELAY(500); }

//键盘查询,在弹起时响应

if ((Key_TH1)&&(keyTH1==0)) {FlagKeyPress = 1; keyvalue = 1;} else if((Key_TH2)&&(keyTH2==0)){FlagKeyPress=1;keyvalue = 2;} else if((Key_HH1)&&(keyHH1==0)){FlagKeyPress =1;keyvalue=3;} else if((Key_HH2)&&(keyHH2==0)){FlagKeyPress=1;keyvalue=4;} if (FlagKeyPress == 1) { KeyProcess(keyvalue); FlagKeyPress = 0; } if (!Key_TH1) keyTH1 = 0; else keyTH1 = 1;

if (!Key_TH2) keyTH2 = 0; else keyTH2 = 1;

- 29 -

基于单片机的温湿度监控报警系统设计

if (!Key_HH1) keyHH1 = 0; else keyHH1 = 1;

if (!Key_HH2) keyHH2 = 0; else keyHH2 = 1; } }

A1.2 24C02程序

#include \

void DELAY(unsigned int t) { while(t!=0)

t--; }

void IICStart(void)

{ SCL=0; DELAY(1);

SDA=1; SCL=1; DELAY(1); SDA=0; DELAY(1); SCL=0; } void IICStop(void)

{ SDA=0;SCL=1; DELAY(1); SDA=1; DELAY(1); SCL=0; } void SEND0(void)

{ SDA=0; SCL=1; DELAY(1); SCL=0; } void SEND1(void)

{ SDA=1; DELAY(1); SCL=1; DELAY(1); SCL=0; }

bit Check_Ack(void)

{ unsigned char errtime=250; DELAY(1); SCL=1; DELAY(1); CY=SDA; while(CY)

{ errtime--; CY=SDA; if (!errtime)

- 30 -

基于单片机的温湿度监控报警系统设计

{ IICStop(); return 1; } }

DELAY(1); SCL=0; return 0; }

void Write_byte(unsigned char dat) { unsigned char i; for(i=0;i<8;i++) { if((dat<

unsigned char Read_byte(void) { unsigned char i,temp=0; for(i=0;i<8;i++) { SDA=1; SCL=1; DELAY(1); if(SDA==1) { temp=temp<<1; temp=temp|0x01; } else temp=temp<<1; SCL=0; } return temp; }

unsigned char rdeeprom(unsigned char addr) { unsigned char temp=0; bit flag=0; IICStart(); Write_byte(0xa0); Check_Ack(); Write_byte(addr); Check_Ack(); IICStart();

- 31 -

搜索更多关于: 基于单片机的温湿度报警器设计 的文档
基于单片机的温湿度报警器设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0qyds9kso31ujtp7zfug_9.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top