有沒有大神可以幫忙看看呀?
問題一:溫濕度顯示不穩(wěn)定(有事可以顯示,有時會出現(xiàn)亂碼),倘若把DHT11的顯示代碼放While(1)里面,那么當進行按鍵中斷時,DHT11測試到的依然在屏幕二進行顯示,如下圖所示
問題二:當按了一次設置鍵時就直接可以對溫度上限進行加或減操作。(理想的效果應該是:當按鍵中斷的問題,當按第一次設置鍵時,LCD12864進行屏幕轉換,當再按一次設設置鍵時設置最高溫度,當按第三下設置鍵時,設置最低溫度,以此類推,當設置鍵的按鍵次數(shù)大于5次時返回屏幕一。)
圖3.jpg (105.08 KB, 下載次數(shù): 69)
下載附件
2021-2-27 18:22 上傳
圖1.jpg (3.82 MB, 下載次數(shù): 61)
下載附件
2021-2-27 18:24 上傳
圖2.jpg (55.14 KB, 下載次數(shù): 51)
下載附件
2021-2-27 18:25 上傳
單片機源程序如下:
#include<reg52.h>
//#include<motor.h>
#include<DHT.h>
//#include<DHT.h>
#define uchar unsigned char
#define uint unsigned int
#define u8 unsigned char
#define u16 unsigned int
sbit RS = P1^0; //12864的RS控制端,硬件接到P1.0,在此一定要寫P1.0
sbit RW = P1^1; //12864的RW控制端,硬件接到P1.1,在此一定要寫P1.1
sbit E = P1^2; //12864的使能控制端,硬件接到P1.2,在此一定要寫P1.2
sbit PSB = P1^3;//并串口選擇信號
sbit RST = P1^4;//復位信號
sbit beep = P3^3;
sbit LED = P1^4;
sbit Kset = P3^2; //日期時間設置按鈕,硬件接到P3.2
sbit Kadd = P1^5; //"加1"鍵,硬件接到P1.6
sbit Ksub = P1^6; //"減1"鍵,硬件接到P1.7
u8 ;Turn=0,WH=65,WL=12,SH=75,SL=21;//安全溫濕度范圍設置的變量
uchar j;
u8 table0[]="溫度濕度控制系統(tǒng)";
u8 table1[]="濕度為: % ";
u8 table2[]="溫度為: ℃ ";
//u8 table3[]= "℃";
u8 table4[]="開發(fā)者:大白菜 ";
u8 table5[]="最高溫: ℃ ";
u8 table6[]="最低溫: ℃ ";
u8 table7[]="最高濕: % ";
u8 table8[]="最低濕: % ";
u8 table9[]="0123456789";
void delay_ms(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
/**********************************************************************
函數(shù)名稱: |