版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、-. z基于89C51單片機(jī)SHT11溫濕度傳感器電路圖于程序張志杰SHT11.h文件:#ifndef _SHT11_H_#define _SHT11_H_/*SHT11相關(guān)命令*/#define uchar unsigned char#define uint unsigned int#define TEM_TEST 0*03/溫度檢測(cè)命令#define HUM_TEST 0*05/濕度檢測(cè)命令#define REG_READ 0*07/讀存放器#define REG_WRITE 0*06/寫存放器#define FUNCTION_SET 0*01/設(shè)置SHT11的工作精度為8位/濕度 12位
2、溫度/*SHT11端口定義*/sbit SHT11_DATA=P31;sbit SHT11_SCK=P30;sbit P33=P33;sbit P32=P32;sbit P36=P36;sbit P37=P37;uchar flag_tempeture=0; /顯示溫度位置的標(biāo)志uchar flag_humidity=0; /顯示濕度位置的標(biāo)志uchar code str1= 0*10,0*06,0*09,0*08,0*08,0*09,0*06,0*00;/溫度圖標(biāo)uchar code str6_sht11=%RH ; uchar code str4_sht11=humi=;uchar cod
3、e str2_sht11=temp=;uchar code str7_sht11= ;/去除沒不要的顯示/*函數(shù)名稱:Delay()函數(shù)功能:SHT11內(nèi)部延時(shí)*/void Delay() ; ;/*函數(shù)名稱:Delay_Ms()函數(shù)功能:SHT11檢測(cè)等待延時(shí)函數(shù)說明:11ms/55ms/210ms 分別對(duì)應(yīng)8位/12位/14位 測(cè)量結(jié)果對(duì)應(yīng)的形參為N 則延時(shí)Nms*/void Delay_Ms(uint ms) / ms延時(shí)函數(shù) (AT89C51 11.0592MHz) uint i; uchar j; for(i=0;ims;i+) for(j=0;j200;j+); for(j=0;j
4、102;j+); /*函數(shù)功能:SHT11啟動(dòng)時(shí)序*/void SHT11_Start() SHT11_SCK=1; SHT11_DATA=1; Delay(); SHT11_DATA=0; Delay(); SHT11_SCK=0; Delay(); SHT11_SCK=1; Delay(); SHT11_DATA=1;/*函數(shù)名稱:SHT11_Sendbyte(uchar dat)函數(shù)功能: 向SHT11發(fā)送8bite數(shù)據(jù)*/void SHT11_Sendbyte(uchar dat) uchar i; SHT11_SCK=0; Delay(); for(i=0;i8;i+) if(dat
5、&0*80) SHT11_DATA=1; Delay(); else SHT11_DATA=0; Delay(); dat=dat1; SHT11_SCK=1; Delay(); SHT11_SCK=0; /*函數(shù)名稱SHT11_Answer():函數(shù)功能:檢測(cè)SHT11的響應(yīng)信號(hào)(在第九個(gè)時(shí)鐘周期)*/void SHT11_Answer() SHT11_SCK=1; Delay(); while(SHT11_DATA=1); SHT11_SCK=0; SHT11_DATA=1;/*函數(shù)名稱:SHT11_Test_Finish()函數(shù)功能:檢測(cè)SHT11溫濕度檢測(cè)是否完畢*/void SHT1
6、1_Test_Finish() while(SHT11_DATA=1);/*函數(shù)名稱:SHT11_Receivebyte()函數(shù)功能:從SHT11接收8bite數(shù)據(jù)*/uchar SHT11_Receivebyte() uchar i; uchar dat; SHT11_SCK=0; Delay(); for(i=0;i8;i+) SHT11_SCK=1; Delay(); dat=dat2.47V 當(dāng)位6為1時(shí)說明VDD2.47V即電量缺乏 位0說明當(dāng)前的測(cè)量分辨率 當(dāng)位0為1時(shí)說明測(cè)量精度:8位/濕度 12位溫度 當(dāng)位0為0時(shí)說明測(cè)量精度:12位濕度 14位溫度 默認(rèn)為0*/uchar S
7、HT11_Read_Register(uchar mand) uchar dat; SHT11_Start(); SHT11_Sendbyte(mand); SHT11_Answer(); dat=SHT11_Receivebyte(); SHT11_End(); return(dat);/*函數(shù)名稱:SHT11_Measure(uchar mand,uint time);函數(shù)功能:設(shè)置SHT11檢測(cè)功能,并返回相應(yīng)的檢測(cè)結(jié)果函數(shù)說明:mand形參用于設(shè)定溫度檢測(cè)還是濕度檢測(cè),time形參用于設(shè)定檢測(cè)過程中的等待時(shí)間,以確定檢測(cè)結(jié)果的位數(shù)11ms/55ms/210ms 分別對(duì)應(yīng)8位/12位/1
8、4位 */uint SHT11_Measure(uchar mand,uchar time) uint dat=0; uchar data_high,data_low; SHT11_Start(); SHT11_Sendbyte(mand); SHT11_Answer(); Delay_Ms(time); SHT11_Test_Finish(); data_high=SHT11_Receivebyte(); MCU_Answer(); data_low=SHT11_Receivebyte(); SHT11_End(); dat=(dat|data_high); dat=(dat23) temp
9、eture1=tempeture1+1; if(tempeture155) tempeture1=tempeture1+1; if(P37=1) if(tempeture1=16&tempeture1=400&r=600) P32=1; else P32=0; return(r);#endifDisplay.c文件:#include #include SHT11.h#define uchar unsigned char#define uint unsigned int#define TEM_TEST 0*03/溫度檢測(cè)命令#define HUM_TEST 0*05/濕度檢測(cè)命令#define
10、REG_READ 0*07/讀存放器#define REG_WRITE 0*06/寫存放器#define FUNCTION_SET 0*01/設(shè)置SHT11的工作精度為8位/濕度 12位溫度uchar DispData4 = 0, 1, 2, 3;code uchar DispSegmentP010=0*3f,0*06,0*1b,0*0f,0*26,0*2d,0*3d,0*07,0*3f,0*2f;code uchar DispSegmentP210=0*00,0*00,0*22,0*22,0*22,0*22,0*22,0*00,0*22,0*22; / 0 1 2 3 4 5 6 7 8 9
11、 %code uchar DispCtrl4 = 0*ef, 0*dF, 0*bf ,0*7F;sbit P16=P16;sbit P26=P26;sbit P34=P34;void Temp_delay(unsigned int j) uchar i; for(i=100;i0;i-) for(j;j0;j-); void Show(uchar *Buffer) uchar i; for (i=0; i4; i+) P1 = DispCtrli; P0 = DispSegmentP0*Buffer; P2 = DispSegmentP2*Buffer; if(P16=0) P26=1; Te
12、mp_delay(2); Buffer+; void DispConvert(uchar *DispAddr, uint Temp2Con) DispAddr0 = Temp2Con/1000; DispAddr1 = (Temp2Con - DispAddr0*1000)/100; DispAddr2 = (Temp2Con - DispAddr0*1000 - DispAddr1*100)/10; DispAddr3 = Temp2Con - DispAddr0*1000 - DispAddr1*100 - DispAddr2*10; void main() uint temp; uint dat; uint Hum; /float f; while(1) Show(DispData); SHT11_Write_Register(REG_WRITE,FUNCTION_SET); temp=SHT11_Measure(TEM_TEST,0*37); temp=SHT11_Convert_Tempeture12
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年雄安綜合保稅區(qū)建設(shè)發(fā)展有限公司工作人員公開招聘?jìng)淇碱}庫及參考答案詳解一套
- 2025年杭州市濱蘭實(shí)驗(yàn)學(xué)校教師招聘?jìng)淇碱}庫及參考答案詳解一套
- 人保財(cái)險(xiǎn)陽江市分公司2026統(tǒng)籌校園招聘?jìng)淇碱}庫及一套答案詳解
- 陸良縣消防救援局專職消防員招聘20人備考題庫及1套完整答案詳解
- 職業(yè)高中會(huì)計(jì)基礎(chǔ)題庫及答案
- 2025年葫蘆島市市直部分事業(yè)單位公開招聘高層次人才備考題庫及參考答案詳解1套
- 2025年中共贛州市贛縣區(qū)委政法委下屬事業(yè)單位面向全區(qū)選調(diào)工作人員備考題庫及答案詳解一套
- 2025年百色市凌云縣新活力勞務(wù)有限責(zé)任公司工作人員招聘6人備考題庫完整答案詳解
- 理想與夢(mèng)想課件
- 解約談判溝通話術(shù)
- 2025天津?yàn)I海新區(qū)建設(shè)投資集團(tuán)招聘27人模擬筆試試題及答案解析
- 2026民航招飛心理測(cè)試題目及答案
- 醫(yī)院收款員筆試題及答案
- 調(diào)色制作合同范本
- 2025年陜西岳文投資有限責(zé)任公司社會(huì)招聘參考模擬試題及答案解析
- 3D建模服務(wù)合同
- 公共區(qū)域裝修工程技術(shù)標(biāo)書文檔樣本
- 中國國際大學(xué)生創(chuàng)新大賽獲獎(jiǎng)項(xiàng)目商業(yè)計(jì)劃書
- 煤礦安全生產(chǎn)管理制度的內(nèi)容
- 2024年廣東省粵科金融集團(tuán)有限公司招聘筆試參考題庫含答案解析
- GB/T 19216.21-2003在火焰條件下電纜或光纜的線路完整性試驗(yàn)第21部分:試驗(yàn)步驟和要求-額定電壓0.6/1.0kV及以下電纜
評(píng)論
0/150
提交評(píng)論