void main() { beep = 0; //蜂鸣器开机叫一声 delay_1ms(150); P0 = P1 = P2 = P3 = 0xff; //所有单片机IO口输出高电平 init_1602(); //lcd1602初始化 while(1) { flag_300ms ++; if(flag_300ms >= 300) //300毫秒执行一次里面的程序 { flag_300ms = 0; dht11_dis(); //先读出温湿度的值 if(menu_1 == 0) { write_lcd2(1,3,table_dht11[2]); //显示温度 write_lcd2(2,3,table_dht11[0]); //显示湿度 } clock_h_l(); //报警函数 } key(); //按键程序 if(key_can > 0) { key_with(); //设置报警值 if(menu_1 == 0) if(key_can == 3) { flag_en = 0; //手动取消报警 beep = 1; } } delay_1ms(1); //延时1毫秒 } }
时间: 2024-03-31 14:36:39 浏览: 8
这是一个51单片机的程序,主函数中包含了一些初始化操作,以及一个无限循环。在循环中,程序会每隔300毫秒执行一次dht11_dis()函数,读取温湿度值并显示在1602液晶屏上;同时也会执行clock_h_l()函数,用于报警。在读取温湿度值和报警的过程中,程序还会执行key()函数,处理按键事件,检测是否需要进行报警值的设置。该程序需要连接DHT11传感器、1602液晶屏和蜂鸣器等外部模块。