仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
部分源码- #include "reg51.h"
- #include "intrins.h"
- #include "dht11.c"
- #include "adc.c"
- #include "key.c"
- #include "lcd1602.c"
- #include "UART.c"
- sbit LED0 = P2^3;
- sbit LED1 = P2^4;
- sbit LED2 = P2^5;
- sbit Buzzer = P2^6;
- void judge()
- {
- if(humi_value < rh_low || humi_value > rh_high)
- {
- LED0 = 0;
- }
- else
- LED0 = 1;
- if(temp_value < temp_low || temp_value > temp_high)
- {
- LED1 = 0;
- }
- else
- LED1 = 1;
- if(co2 < co2_low || co2 > co2_high)
- {
- LED2 = 0;
- }
- else
- LED2 = 1;
-
- if(humi_value < rh_low || humi_value > rh_high || temp_value < temp_low || temp_value > temp_high || co2 < co2_low || co2 > co2_high)
- Buzzer = 0;
- else Buzzer = 1;
-
- }
- void main()
- {
- flcd1602_init();
- InitUart();
- while(1)
- {
- Display();
- DHT11_receive();
- co2 = (adc0832(0) * 12);
- key();
- judge();
- printf("T:%d,RH:%d,CO2:%d\r\n",(int)temp_value,(int)humi_value,(int)co2);
- }
- }
复制代码 Proteus8.8仿真程序资料51hei下载地址,大家下载一个串口调试助手调试一下看看:
上位机通讯.zip
(130.27 KB, 下载次数: 40)
|