




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
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; /用于最終讀取的溫濕度數據/ read 8 bits onice char COM
2、(void) char i,U8temp,U8comdata; for(i=0;i<8;i+) while(!bit11); /表示 讀取的高電位延時大于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- /-校驗8位= U8checkdata- /-調用相關子程序如下- /- Delay();, Delay_10us();,COM(); bit11顯示數據的脈長/- void getDHT11(void) /主機拉低18ms GO1: bit11=0; Delay_ms(20); bit11=1; /總線由上拉電阻拉高 主機延時20us Delay_us(60); /主機設為輸入 判斷從機響應信號/ bit11=1; /判斷從機是否有低電平響應信號 如不響應則跳出,響應則向下運行if(!bi
4、t11) while(!bit11); while(bit11); /數據接收狀態/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; /數據校驗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 /*只由主函數調用的 有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 /* /顯示開/顯示關#define LCD_CURSOR_ON 0x0A /顯示光標/無光標/有光標,光標閃動/有光標,光標不閃動/進入模式設置指令/新數
7、據后光標右移/新數據后光標左移/畫面可平移/畫面不可平移/設定顯示屏或光標移動方向指令/光標左移1格,且AC值減1 /光標右移1格,且AC值加1 /顯示器上字符全部左移一格,但光標不動/顯示器上字符全部右移一格,但光標不動*/ /注 有主函數調用的函數都已作說明 其他函數一般不由主函數調用 /* *名 *功 稱:Init_Lcd()主函數調用能:Lcd初始化*入口參數:無*出口參數:無*范 例:在主函數中直接調用*/ /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)主函數調用能:在指定地址寫一個字符串eg:Y=0,1,2,3,4,5,6,7,8,9,10.15。X=0,1。*入口參數:X:橫坐標Y:縱坐標*s:字符串首地址*出口參數:無*范 例: 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 ) 能:指定一個地址the optic sign flash? *入口參數:X:橫坐標Y:縱坐標*出口參數:無*范 例: LCD_set_xy(5,1) *CD_set_xy* */ void LCD_s
10、et_xy( uchar x, uchar y ) /寫地址函數 unsigned char address; if (y = 0) address = 0x80 + x; else address = 0xc0 + x; LCD_write_char( address, 0 ); /* *名 *功 稱:LCD_en_write(void) 能:液晶使能*入口參數:無*出口參數:無*范 例:直接調用*CD_set_xy* */ /液晶使能 _nop_(); LCD_E=1;/EN=1 _nop_(); LCD_E=0;/EN=0 /- /* *名 稱:LCD_write_char(uchar
11、cd,uchar ab) *功 無效能:寫指令或數據 當寫ab時 應使cd=0當cd不為0則寫cd且ab的賦值 *入口參數:cd:指令內容ab:數據內容 指令常量已在上面定義 但一般不用*出口參數:無*范 例: LCD_write_char( 0,f )*CD_set_xy* */ void LCD_write_char(uchar cd,uchar ab) /寫數據 Delay_us(20); if(cd=0) /RS=1,寫顯示內容LCD_byte(ab); else /RS=0,寫命令LCD_byte(cd); /* *名 *功 稱:LCD_byte(abc); 能:寫一個字符到or c
12、alled one byte to LCD中*入口參數:*出口參數:無*CD_set_xy* */ void LCD_byte(unsigned char abc) RW = 0; LCD_E = 0; LCD_DATA = abc; LCD_en_write(); /在液晶中顯示浮點數函數LCD_value(unsigned char x,unsigned char y,float f) /不能定義為char* str,數組長度一定要大于浮點 數的總位數/1表示小數位數 小數太多 自動四舍五入LCD_write_str( x, y, str); return 0; 主函數文件#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"); /液晶預顯示測試LCD_value(0,0,34.345); Delay_ms(2000); Init_Lcd(); while(1) getDHT11(); LCD_write_str(0,0,"T="); /字符"應用轉義格式LCD_write_str(0,1,"RH="); LCD_value(4,1,F16RH); Delay_ms(500); 延時函數文件/以下為延時函數LCD_write_str(9,1,"%"); th
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CECS 10174-2022預鋪復合防水卷材
- T/CECS 10060-2019綠色建材評價建筑用蓄能裝置
- T/CECS 10040-2019綠色建材評價防水涂料
- T/CCS 01-2020智能化煤礦(井工)分類、分級技術條件與評價
- T/CCMA 0192-2024高原隧道純電動輪胎式裝載機
- T/CCMA 0060-2018牽引用鉛酸蓄電池電源裝置箱體
- T/CCASC 6008-2023氯堿行業聚氯乙烯樹脂碳排放核算標準
- T/CCAS 008-2019水泥及混凝土用粉煤灰中氨含量的測定方法
- T/CBDA 2-2016綠色建筑室內裝飾裝修評價標準
- T/CAZG 001-2019川金絲猴飼養管理技術規范
- 2025年中國邊云協同行業市場現狀及未來發展前景預測分析報告
- 2025-2030年辣椒素產業行業市場現狀供需分析及投資評估規劃分析研究報告
- 2025中國鐵路南寧局集團有限公司招聘高校畢業生58人三(本科及以上學歷)筆試參考題庫附帶答案詳解
- 新疆開放大學2025年春《國家安全教育》形考作業1-4終考作業答案
- 大國工匠活動方案
- 《腦炎護理查房》課件
- 職業院校技能大賽教學能力比賽備賽策略與實踐經驗分享
- 成人重癥患者人工氣道濕化護理專家共識
- 國家開放大學《統計與數據分析基礎》形考任務1-5答案
- 動靜脈內瘺評估護理課件
- 開展2025年全國“安全生產月”活動的通知
評論
0/150
提交評論