DHT11測溫濕度程序lcd1602顯示_第1頁
DHT11測溫濕度程序lcd1602顯示_第2頁
DHT11測溫濕度程序lcd1602顯示_第3頁
DHT11測溫濕度程序lcd1602顯示_第4頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、#include#include#define uchar unsigned char#define uint unsigned int#define data p0 /數據端口sbit rs=p24;sbit rw=p25;sbit e=p26;sbit dht=p10;uchar firstline =wen:00.00; /第一行數據uchar secondline=shi:00.00; /第二行數據unsigned char shiz,shix,wenz,wenx,check;unsigned char tr_shiz,tr_shix,tr_wenz,tr_wenx;unsigned

2、char flag;unsigned int n=20,m;void delay_1ms(unsigned int i)unsigned int j=88;for(;i0;i-)while(j0)j-;void delay_10us()unsigned char i;i-;i-;i-;i-;i-;i-;/*/*溫濕度讀取函數*/*/char read_data()unsigned char i,num,temp;num=0;for(i=0;i8;i+)flag=2;while(!dht)&flag+);delay_10us();delay_10us();delay_10us();if(dht=

3、1) temp=1;flag=2;while(dht&flag+);elsetemp=0;num0;i-)for(j=100;j0;j-);void delayus(unsigned char us)/-延時函數 unsigned char uscnt; uscnt=us1; /*12mhz頻率*/ while(-uscnt);void delayms(unsigned char ms) while(-ms) delayus(250); delayus(250); delayus(250); delayus(250); void lcd_write_com(uchar c) /寫命令 dela

4、yms(5);/操作前短暫延時,保證信號穩定 e=0; rs=0; rw=0; _nop_(); e=1; data=c; e=0;void lcd_write_dat(uchar c) /寫數據 delayms(5); /操作前短暫延時,保證信號穩定 e=0; rs=1; rw=0; _nop_(); e=1; data=c; e=0; rs=0;void lcd_init() /lcd初始化 delayms(15); lcd_write_com(0x38); /display mode lcd_write_com(0x38); /display mode lcd_write_com(0x3

5、8); /display mode lcd_write_com(0x06); /顯示光標移動位置 lcd_write_com(0x0c); /顯示開及光標設置 lcd_write_com(0x01); /顯示清屏void showchar(uchar pos,uchar c) /顯示單個字符 unsigned char p; if (pos=0x10) p=pos+0xb0; /是第二行則命令代碼高4位為0xc else p=pos+0x80; /是第二行則命令代碼高4位為0x8 lcd_write_com(p);/寫命令 lcd_write_dat(c); /寫數據void showstri

6、ng (uchar line,char *ptr) /顯示字符串 unsigned char l,*p; p=ptr; l=line4; while(*p)!=0) showchar(l+,*(p);p+; void disp(void) /主函數調用的顯示函數 showstring(0,firstline); showstring(1,secondline); /*/*初始化及采集程序*/*/void read_init()dht=0; /主機使dht11低電平并延時至少18msdelay_1ms(21);dht=1; /主機置dht11高電平2040us,并等待從機相應delay_10us

7、();delay_10us();delay_10us();delay_10us();dht=1;if(!dht) /從機發出相應信號flag=2;while(!dht)&flag+);flag=2;while(dht&flag+);/開始采集數據tr_shiz=read_data();/采集濕度整數部分tr_shix=read_data();/采集濕度小數部分tr_wenz=read_data();/采集溫度整數部分tr_wenx=read_data();/采集溫度小數部分check=read_data();/采集校驗位dht=1; void main()unsigned char temp;lcd_init();delay(50);while(1) disp();read_init();temp=tr_shiz+tr_shix+tr_wenz+tr_wenx;if(check=temp)shiz=tr_shiz;shix=tr_shix;wenz=tr_wenz;wenx=tr_wenx;firstline4=0+wenz/10;firstline5=0+wenz%10;firstline8

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論