




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、DHT11.c 文件#include<reg52.h> #include<Time_Delay.h> /the main only needs to call getDHT11(),then the temperature and huminity was geted in F16T,F16RH as float sbit bit11=P20; unsigned char U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata; /用于最終讀取的溫濕度數(shù)據(jù)/ read 8 bits onice char COM
2、(void) char i,U8temp,U8comdata; for(i=0;i<8;i+) while(!bit11); /表示 讀取的高電位延時(shí)大于20多us則讀取的是1否則讀取的是0 /通過U8FLAG可判斷Delay_us(35); U8temp=0; if(bit11)U8temp=1; while(bit11); U8comdata<<=1; U8comdata|=U8temp; /0 /rof return U8comdata; /- /-溫濕度讀取子程序- /- /-以下變量均為全局變量- /-溫度高8位= U8T_data_H- /-溫度低8位= U8T_
3、data_L- /-濕度高8位= U8RH_data_H- /-濕度低8位= U8RH_data_L- /-校驗(yàn)8位= U8checkdata- /-調(diào)用相關(guān)子程序如下- /- Delay();, Delay_10us();,COM(); bit11顯示數(shù)據(jù)的脈長/- void getDHT11(void) /主機(jī)拉低18ms GO1: bit11=0; Delay_ms(20); bit11=1; /總線由上拉電阻拉高 主機(jī)延時(shí)20us Delay_us(60); /主機(jī)設(shè)為輸入 判斷從機(jī)響應(yīng)信號(hào)/ bit11=1; /判斷從機(jī)是否有低電平響應(yīng)信號(hào) 如不響應(yīng)則跳出,響應(yīng)則向下運(yùn)行if(!bi
4、t11) while(!bit11); while(bit11); /數(shù)據(jù)接收狀態(tài)/T ! /wait DHT goto high U8RH_data_H=COM(); U8RH_data_L=COM(); U8T_data_H=COM(); U8T_data_L=COM(); U8checkdata=COM(); bit11=1; /數(shù)據(jù)校驗(yàn)if(U8T_data_H+U8T_data_L+U8RH_data_H+U8RH_data_L)!=U8checkdata) check wrong,read again goto GO1; /fi F16T=U8T_data_H+(float)U8T
5、_data_L/256; /change integer to float F16RH=U8RH_data_H+(float)U8RH_data_L/256; /if LCD1602 文件#include<reg52.h> #include <stdio.h> #include <INTRINS.H> #include <Lcd_1602.h> #include <Time_Delay.h> #define LCD_DATA P0 #define uint unsigned int #define uchar unsigned cha
6、r /*只由主函數(shù)調(diào)用的 有Init_Lcd() LCD_write_str(uchar X,uchar Y,uchar *s) /LCD1602 data transfer define LCD_value(unsigned char x,unsigned char y,float f) */ sbit LCD_RS = P25; sbit RW = P26; sbit LCD_E = P27; /1602 control define /* /顯示開/顯示關(guān)#define LCD_CURSOR_ON 0x0A /顯示光標(biāo)/無光標(biāo)/有光標(biāo),光標(biāo)閃動(dòng)/有光標(biāo),光標(biāo)不閃動(dòng)/進(jìn)入模式設(shè)置指令/新數(shù)
7、據(jù)后光標(biāo)右移/新數(shù)據(jù)后光標(biāo)左移/畫面可平移/畫面不可平移/設(shè)定顯示屏或光標(biāo)移動(dòng)方向指令/光標(biāo)左移1格,且AC值減1 /光標(biāo)右移1格,且AC值加1 /顯示器上字符全部左移一格,但光標(biāo)不動(dòng)/顯示器上字符全部右移一格,但光標(biāo)不動(dòng)*/ /注 有主函數(shù)調(diào)用的函數(shù)都已作說明 其他函數(shù)一般不由主函數(shù)調(diào)用 /* *名 *功 稱:Init_Lcd()主函數(shù)調(diào)用能:Lcd初始化*入口參數(shù):無*出口參數(shù):無*范 例:在主函數(shù)中直接調(diào)用*/ /LCD初始化 LCD_write_char(0x38,0); Delay_ms(1); LCD_write_char(0x38,0); Delay_ms(1); LCD_wri
8、te_char(0x38,0); Delay_ms(1); LCD_write_char(0x0c,0); Delay_ms(1); LCD_write_char(0x06,0); Delay_ms(1); LCD_write_char(0x0c,0); Delay_ms(1); / /* *名 *功 稱:LCD_write_str(uchar X,uchar Y,uchar *s)主函數(shù)調(diào)用能:在指定地址寫一個(gè)字符串eg:Y=0,1,2,3,4,5,6,7,8,9,10.15。X=0,1。*入口參數(shù):X:橫坐標(biāo)Y:縱坐標(biāo)*s:字符串首地址*出口參數(shù):無*范 例: LCD_write_str(
9、1,1,uchar *s) */ void LCD_write_str(unsigned char X,unsigned char Y,unsigned char *s) LCD_write_char(0,' '); /寫地址/寫顯示字符 LCD_write_char( 0, *s ); s +; /* *名 *功 稱:LCD_set_xy( uchar x, uchar y ) 能:指定一個(gè)地址the optic sign flash? *入口參數(shù):X:橫坐標(biāo)Y:縱坐標(biāo)*出口參數(shù):無*范 例: LCD_set_xy(5,1) *CD_set_xy* */ void LCD_s
10、et_xy( uchar x, uchar y ) /寫地址函數(shù) unsigned char address; if (y = 0) address = 0x80 + x; else address = 0xc0 + x; LCD_write_char( address, 0 ); /* *名 *功 稱:LCD_en_write(void) 能:液晶使能*入口參數(shù):無*出口參數(shù):無*范 例:直接調(diào)用*CD_set_xy* */ /液晶使能 _nop_(); LCD_E=1;/EN=1 _nop_(); LCD_E=0;/EN=0 /- /* *名 稱:LCD_write_char(uchar
11、cd,uchar ab) *功 無效能:寫指令或數(shù)據(jù) 當(dāng)寫ab時(shí) 應(yīng)使cd=0當(dāng)cd不為0則寫cd且ab的賦值 *入口參數(shù):cd:指令內(nèi)容ab:數(shù)據(jù)內(nèi)容 指令常量已在上面定義 但一般不用*出口參數(shù):無*范 例: LCD_write_char( 0,f )*CD_set_xy* */ void LCD_write_char(uchar cd,uchar ab) /寫數(shù)據(jù) Delay_us(20); if(cd=0) /RS=1,寫顯示內(nèi)容LCD_byte(ab); else /RS=0,寫命令LCD_byte(cd); /* *名 *功 稱:LCD_byte(abc); 能:寫一個(gè)字符到or c
12、alled one byte to LCD中*入口參數(shù):*出口參數(shù):無*CD_set_xy* */ void LCD_byte(unsigned char abc) RW = 0; LCD_E = 0; LCD_DATA = abc; LCD_en_write(); /在液晶中顯示浮點(diǎn)數(shù)函數(shù)LCD_value(unsigned char x,unsigned char y,float f) /不能定義為char* str,數(shù)組長度一定要大于浮點(diǎn) 數(shù)的總位數(shù)/1表示小數(shù)位數(shù) 小數(shù)太多 自動(dòng)四舍五入LCD_write_str( x, y, str); return 0; 主函數(shù)文件#include
13、 <reg52.h> #include <intrins.h> #include <Lcd_1602.h> #include <Time_Delay.h> #include"DHT11.h" /全局變量聲明void main () Init_Lcd(); LCD_write_str(0,1,"abc"); /液晶預(yù)顯示測(cè)試LCD_value(0,0,34.345); Delay_ms(2000); Init_Lcd(); while(1) getDHT11(); LCD_write_str(0,0,"T="); /字符"應(yīng)用轉(zhuǎn)義格式LCD_write_str(0,1,"RH="); LCD_value(4,1,F16RH); Delay_ms(500); 延時(shí)函數(shù)文件/以下為延時(shí)函數(shù)LCD_write_str(9,1,"%"); th
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 技術(shù)合同協(xié)議
- 解除工程項(xiàng)目合同協(xié)議書
- 土地協(xié)議合同模板
- 火災(zāi)安全協(xié)議合同
- 二手回遷房合同協(xié)議書
- 投資占股協(xié)議合同
- 洗碗工合同協(xié)議
- 購貓合同協(xié)議
- 酒店補(bǔ)充協(xié)議合同范本
- 咖啡無人機(jī)合作協(xié)議合同
- 汽車托管合同范例
- 醫(yī)院科室主任的教育與培訓(xùn)計(jì)劃
- 《肺性腦病》課件
- 成人手術(shù)后疼痛評(píng)估與護(hù)理團(tuán)體標(biāo)準(zhǔn)
- 工程檢測(cè)技術(shù)咨詢合同
- 消防監(jiān)督管理中級(jí)專業(yè)技術(shù)任職資格評(píng)審題庫大全-2多選題部分
- 急性創(chuàng)傷的現(xiàn)場(chǎng)急救和評(píng)估
- 職高數(shù)學(xué)高考試題及答案
- 民兵知識(shí)小常識(shí)
- 湖北省黃石市(2024年-2025年小學(xué)四年級(jí)語文)部編版期中考試(下學(xué)期)試卷及答案
- 2024年同等學(xué)力申碩英語考試真題及答案
評(píng)論
0/150
提交評(píng)論