標(biāo)題: 單片機(jī)+DHT11在LCD12864上的顯示不穩(wěn)定的問(wèn)題 [打印本頁(yè)]

作者: 次奧小卓拉    時(shí)間: 2021-2-27 18:34
標(biāo)題: 單片機(jī)+DHT11在LCD12864上的顯示不穩(wěn)定的問(wèn)題
有沒有大神可以幫忙看看呀?

問(wèn)題一:溫濕度顯示不穩(wěn)定(有事可以顯示,有時(shí)會(huì)出現(xiàn)亂碼),倘若把DHT11的顯示代碼放While(1)里面,那么當(dāng)進(jìn)行按鍵中斷時(shí),DHT11測(cè)試到的依然在屏幕二進(jìn)行顯示,如下圖所示
問(wèn)題二:當(dāng)按了一次設(shè)置鍵時(shí)就直接可以對(duì)溫度上限進(jìn)行加或減操作。(理想的效果應(yīng)該是:當(dāng)按鍵中斷的問(wèn)題,當(dāng)按第一次設(shè)置鍵時(shí),LCD12864進(jìn)行屏幕轉(zhuǎn)換,當(dāng)再按一次設(shè)設(shè)置鍵時(shí)設(shè)置最高溫度,當(dāng)按第三下設(shè)置鍵時(shí),設(shè)置最低溫度,以此類推,當(dāng)設(shè)置鍵的按鍵次數(shù)大于5次時(shí)返回屏幕一。)

單片機(jī)源程序如下:
#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;//并串口選擇信號(hào)
sbit RST = P1^4;//復(fù)位信號(hào)
sbit beep = P3^3;
sbit LED = P1^4;
sbit Kset = P3^2; //日期時(shí)間設(shè)置按鈕,硬件接到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;//安全溫濕度范圍設(shè)置的變量
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ù)名稱:




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1