




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、#include iocc2530. h#inc1udo "stdio. h"#include "string.h"#define uchar unsigned char /* defined for unsigned 8-bits integer variable無符號8位整型變量*/define uint unsigned int /* def incd for unsignod 16-bits integer variable無符號16位整型變量*/#define dht11 data pl 0uchar overtime_counter; /判斷
2、等待是否超時的計數(shù)器。利用uchar型的數(shù) 值范圍進行自動延時控制(時長由初值決定),并判斷是否超時uchar bit value; /從data總線上讀到的位值uchar t_data_h, t_data_l, rh_data_h, rh_data_l, checkdata;/校驗過的溫度 高8位,溫度低8位,濕度高8位,濕度低8位,校驗和8位uchart_data_ii_temp, t_data_l_temp, ril_data_temp, ril_data_l_temp, checkdata _temp; /未經(jīng)校驗的數(shù)據(jù) uchar comdata; /從dht11讀取的一個字節(jié)的數(shù)據(jù)
3、 uchar count; /串口發(fā)送的字節(jié)計數(shù)變量void delay(uint);void inituart(void);void initialad(void);void uarttx send string(char *data, int len);char str16;void delay_10us(void)uchar i;for (i=0;i<16;i+); void delay loous(uint i) uchar j;for (;i>0;i-)for (j=0;j<10;j+)delay !ous ();vtz丄丄丄“ !" 丄"丄&q
4、uot;f”、丫 t、"丫丫j丫j *7* "丫j |、"t、.、"丫夕、"丫0 夕、"丫."丫"丫"丫"丫"a、"丫. 、丫"丫' "a、丫j丫 "a、丫j "a、丫丫j丫j丫j 丫0丫0 jj"aj"ajj*函數(shù)功能:初始化串口 1 *入口參數(shù):無*返回值:無*說明:57600-8-n-l *£# >1 / 1% t%"卜 xy% y% tw xy% .卜 卜夕;、卜夕廣卜 卜祥
5、、xt% 訐 xt% 訐卜訐卜嚇、xt% "訐 xt% 斤、葉xr* 嚇、嚇、嚇、嚇、嚇j*t%xr% #t% xr% #t r% #t>r* fvoid inituart(void) sleepcmd&= "0x04;clkconcmd = 0x10; while(clkconsta!=0x10);sleepcmd = 0x04;percfg = 0x00; /位置 1 p0 口posel = 0x30; /p0 用作串口u1csr = 0x80; /uart 方式u1gcr |= 10; /baud_eu1baud |= 216; /波特率設(shè)為 57600
6、utx1if = 1;u1csk 二 0x40; /允許接收urx1ie = 1;ea =1;j* j"7" *2*2 7" *2*i>k!*k!* *2 >1 >( >1 >1 >1 >1 >1 >1 >1*函數(shù)功能:串口發(fā)送字符串函數(shù)*入口參數(shù):data:數(shù)據(jù)* len :數(shù)據(jù)長度*返回值:無*說明:*2 丄"?x 丄"%y> 丄"丄"丄"%2 丄"丄"丄"丄"丄"%?>丄"丄&q
7、uot;丄"丄"丄".丄“.丄"x*丄丄"" 丄"“ 丄"" 丄".丄“k1xr*夕t> 哼v、叫、"t"t v、"4 夕vv、穆;."( ";、7 :、/void uarttx_send_string(char *data, int len)int j;for(j=0;j<len;j+)83. u1dbuf = *data+;84. while(utxlif = 0);85. utx1if = 0;86. 87. 88. /*從14
8、'1'11 讀取一個字節(jié)函數(shù)*/89. void read_byte(void)90. 91. uchar i;92. for(i=0;i<8;i+) /循環(huán) 8 次,讀取 8bit 的數(shù)據(jù)93. 94. overtime_counter=2; 讀取并等待dht11發(fā)出的12-14us低電平開始信號95. pldir=0x00;96. while(!dht11data)&&0vertime_counter+);97. delay_10us(); /2628us 的低電平判斷門限98. delay_10us();99. bit_valuc=0; /跳過門限后
9、判斷總線是高還是低,高為1,低為0100. if(dhtll data)101. bit_value=l;102. overtime_counter=2;/等待lbit的電平信號結(jié)束,不管是0是1在118us后都變?yōu)榈碗娖?,否則錯誤超時103. whi le (dht1 l_data)&&overtime_counter+); /當(dāng) u8flag 加到 255 后溢 出為0,跳出循環(huán),并后加加為1104. i f(overt i mecounter=l)105. break; /超時則跳出for循壞106. comdata«=l; 左移 1 位,lsb 補 0107.
10、 comdata | =bi t_val ue;/lsb 賦值10&109. 110.110. /* *dhti 1 讀取五個字節(jié)函數(shù)* * * */111. void read_dhtll(void)112. 113. uchar checksum;114. p1dir二0x01;115. dht11 data=0; 主機拉低18ms116. delay_100us(180);11&dht11 data=1;/總線由上拉電阻拉高 主機延時20us-40us119. delay 10us ();120. delay_10us ();121. delay lous ();122.
11、 delay_10us();123. dht11 data=1; /主機轉(zhuǎn)為輸入或者輸出高電平,data線由上拉電阻拉 高,準(zhǔn)備判斷dht11的響應(yīng)信號124. p1dir二0x00;125. if(!dhtll_data) /判斷從機是否有低電平響應(yīng)信號 如不響應(yīng)則跳出, 響應(yīng)則向下運行126. 127. overtime_counter=2; 判斷dht11發(fā)出的80us的低電平響應(yīng)信號是否結(jié)束12&while(!dht1l_data)&&overtime_counter+);129. overtime counter=2; /判斷dht11是否發(fā)出80us的高電平
12、,如發(fā)tl!則 進入數(shù)據(jù)接收狀態(tài)130. while(diit11_data)&&overtime_counter卄);131. read byteo ; /讀取濕度值整數(shù)部分的高8bit132. rh_data_h_temp=comdata;133. read_byte() ; /讀取濕度值小數(shù)部分的低8bit134. rh_data_l_temp二comdata;135. read.byte (); /讀取溫度值整數(shù)部分的高8bit136. t data h temp二comdata;137. read_byte(); 讀取溫度值小數(shù)部分的低8bit138. t data
13、l temp=comdata;139. read byteo ; /讀取校驗和的 8bit140. checkdata_temp=comdata;141. pldir=0x01;142. dht11_data=1; /讀完數(shù)據(jù)將總線拉高143. checksum= (t data h tenip + t datal temp + rh data h temp +rh_data_l_temp) ;/進行數(shù)據(jù)校驗144. if (checksum 二二 checkdatjtemp)145. 146. rh_data_h=rh_data_h_temp;147. rh data l=rh data l
14、temp;148. tdatah = t_data_h_temp;149. t_data_l = t_data_l_temp;150. checkdata=checkdata temp;151. 152. 153. 154.155.154. int putchar (int c) 155. if (c = ' n')156. while (!utxotf);157. utx1if = 0;158. u1dbuf 二 oxod;/* output cr */159. 162.163.while (!utx1tf);164.utx1if = 0;165.return (u1dbuf
15、 = c);166.167.16&/2z2z/1%xt% #?% >t% #y xt%>t%xt% *<% >t%t% xt% >t% >1% *7% xt >t% xy% >t% >1%xy xy% >yx xt% >1% xy% "卜 xy% >t%*169.*函數(shù)功能:主函數(shù)*170.*入口參數(shù):無*171.*返回值:無*172.*說明:無*173.kjx %l kj>azk|xxtxxtx jz %lxvlx jzlzlzsfz k1叫、“廣 *;、*(、t> <|>卜7%
16、葉s 7%叮 jx葉> *1%*1%*1%嚇j*/174.void main(void)175.176.inituarto ;177.delay 100us(500); 延時 100us (12m 晶振)178.wh i 1 e 仃)179.180.read_dhtll() ;/調(diào)用溫濕度讀取子程序181./ sprintf(str, "%d", rh_data_h);182./uarttx send string(str, 2);183.putchar (rh_data_h);184.putchar (rh data l);185.put char (tdataji);186.putchar (t_data_l);187.putchar (checkdata);188.delay_100us(20000) ;/循環(huán)采樣的延時,讀取模塊數(shù)據(jù)周期
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)品服務(wù)購銷合同范例
- 住宅物業(yè)前期合同范例
- 員工j就職合同范本
- 買房交訂金合同范本
- 刑事代理訴訟合同范本
- 合同范例幾個部分
- 個人購買古董合同范本
- 關(guān)于醫(yī)院合作合同范本
- 兵團勞動合同范本
- 單位修建公路合同范本
- 醫(yī)學(xué)教材成人高尿酸血癥與痛風(fēng)食養(yǎng)指南(2024年版)解讀課件
- 金川集團股份有限公司招聘筆試題庫2024
- 小學(xué)數(shù)學(xué)北師大版三年級下長方形的面積教案
- 2024年全國職業(yè)院校技能大賽高職組(中藥傳統(tǒng)技能賽項)考試題庫(含答案)
- DGJ32 J 67-2008 商業(yè)建筑設(shè)計防火規(guī)范
- 2024年上海交通大學(xué)招考聘用高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 浙江省金華市2024年初中畢業(yè)升學(xué)適應(yīng)性檢測 科學(xué)試題卷
- 延長石油招聘筆試試題
- DB-T 29-22-2024 天津市住宅設(shè)計標(biāo)準(zhǔn)
- 2024年贛州職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案解析
- DL∕T 5209-2020 高清版 混凝土壩安全監(jiān)測資料整編規(guī)程
評論
0/150
提交評論