專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
在本文中,英銳恩單片機(jī)開(kāi)發(fā)工程師分享了一個(gè)基于8051單片機(jī)開(kāi)發(fā)的濕度計(jì),這個(gè)方案比較簡(jiǎn)單,以供單片機(jī)初學(xué)者學(xué)習(xí)。
濕度傳感器也稱為濕度計(jì),在本單片機(jī)方案中,其電路可以以5%的精度感測(cè)20%至95%的相對(duì)濕度(RH),濕度信息可以顯示在16×2 LCD顯示屏上。另外,在本單片機(jī)方案中,還提供了一個(gè)繼電器,也就是說(shuō)當(dāng)濕度超過(guò)某個(gè)跳變點(diǎn)時(shí),該繼電器將被激活,執(zhí)行某些操作。
一、的DHT11濕度傳感器
DHT11是一款低成本的濕度兼溫度傳感器,具有數(shù)字輸出。電容法用于感測(cè)濕度,而熱敏電阻用于測(cè)量溫度。傳感器可以以5%的分辨率感測(cè)20%至95%的相對(duì)濕度。溫度測(cè)量最高可達(dá)50°C,分辨率為2°C。與單片機(jī)的通信是通過(guò)單線進(jìn)行的。下圖為基本的通信方案:
與DHT11傳感器的來(lái)回通信非常容易。DHT11的引腳2連接到單片機(jī)的端口引腳。連接方案如下圖所示,DHT11的數(shù)據(jù)引腳(引腳2)需要一個(gè)外部10K上拉電阻。
其通信協(xié)議原理如下,單片機(jī)首先將寬度為18mS的低電平信號(hào)發(fā)送到DHT11。收到此信號(hào)后,單片機(jī)拉起通信線,等待DHT11的響應(yīng)。它最多需要2到40uS。然后DHT11拉低通訊線,并保持低電平80usS。然后DHT11拉高線路,并保持高電平80uS。然后DHT將線拉低50uS,下一個(gè)高脈沖將成為數(shù)據(jù)的第一位。數(shù)據(jù)以8位突發(fā)發(fā)送。脈沖串的每個(gè)高脈沖表示一個(gè)數(shù)據(jù)信號(hào)。數(shù)據(jù)位之間的50uS低信號(hào)只是間隔。數(shù)據(jù)位的邏輯通過(guò)測(cè)量其寬度來(lái)確定。26至28uS寬的脈沖表示“低”,而70uS寬的脈沖表示“高”。簡(jiǎn)單來(lái)說(shuō)窄于50uS的脈沖可被視為“低”,寬于50us的脈沖可被視為“高”。數(shù)據(jù)脈沖串的前8位代表相對(duì)濕度的整數(shù)值,后8位代表相對(duì)濕度的十進(jìn)制值,后8位代表溫度數(shù)據(jù)的整數(shù)值,后8位代表十進(jìn)制值對(duì)于DHT11,十進(jìn)制值始終為零,我們僅在此方案中測(cè)量相對(duì)濕度。因此,我們只需要關(guān)注數(shù)據(jù)的前8位,這是相對(duì)濕度數(shù)據(jù)的組成部分。下圖顯示了濕度傳感器的電路圖。后8位代表相對(duì)濕度的十進(jìn)制值,后8位代表溫度數(shù)據(jù)的整數(shù)值,后8位代表溫度數(shù)據(jù)的十進(jìn)制值,對(duì)于DHT11,十進(jìn)制值始終為零,我們正在測(cè)量?jī)H在此方案中的相對(duì)濕度。因此,我們只需要關(guān)注數(shù)據(jù)的前8位,這是相對(duì)濕度數(shù)據(jù)的組成部分。下圖顯示了濕度傳感器的電路圖。后8位代表相對(duì)濕度的十進(jìn)制值,后8位代表溫度數(shù)據(jù)的整數(shù)值,后8位代表溫度數(shù)據(jù)的十進(jìn)制值,對(duì)于DHT11,十進(jìn)制值始終為零,我們正在測(cè)量?jī)H在此方案中的相對(duì)濕度。因此,我們只需要關(guān)注數(shù)據(jù)的前8位,這是相對(duì)濕度數(shù)據(jù)的組成部分。下圖顯示了濕度傳感器的電路圖。因此,我們只需要關(guān)注數(shù)據(jù)的前8位,這是相對(duì)濕度數(shù)據(jù)的組成部分。下圖顯示了濕度傳感器的電路圖。因此,我們只需要關(guān)注數(shù)據(jù)的前8位,這是相對(duì)濕度數(shù)據(jù)的組成部分。下圖為濕度傳感器的電路圖:
濕度傳感器DHT11連接到8051單片機(jī)的P3.1。R8拉起DHT11和8051之間的通信線。該繼電器由單片機(jī)的P2.0驅(qū)動(dòng)。晶體管Q1切換繼電器。R0是上拉電阻,R7限制Q1的基極電流。D5只是一個(gè)續(xù)流二極管。LCD顯示器的數(shù)據(jù)線連接到單片機(jī)的端口0??刂凭€RS,R/E和E分別連接到單片機(jī)的P2.7,P2.6和P2.5引腳。R4設(shè)置顯示的對(duì)比度。R5限制流過(guò)背光LED的電流。C9是一個(gè)旁路電容器。C8、C10和X1與時(shí)鐘電路相關(guān)聯(lián)。C11、R6和S2構(gòu)成復(fù)位電路。
二、源代碼
RS EQU P2.7 RW EQU P2.6 E EQU P2.5 ORG 000H MOV DPTR,#LUT SETB P3.5 CLR P2.0 MOV TMOD,#00100001B MOV TL1,#00D ACALL DINT ACALL TEXT1 MAIN: MOV R1,#8D SETB P3.5 CLR P3.5 ACALL DELAY1 SETB P3.5 HERE:JB P3.5,HERE HERE1:JNB P3.5,HERE1 HERE2:JB P3.5,HERE2 LOOP:JNB P3.5,LOOP RL A MOV R0,A SETB TR1 HERE4:JB P3.5,HERE4 CLR TR1 MOV A,TL1 SUBB A,#50D MOV A,R0 JB PSW.7, NEXT SETB ACC.0 SJMP ESC NEXT:CLR ACC.0 ESC: MOV TL1,#00D CLR PSW.7 DJNZ R1,LOOP ACALL DINT ACALL TEXT1 ACALL LINE2 ACALL TEXT2 ACALL HMDTY ACALL CHECK ACALL DELAY2 LJMP MAIN DELAY1: MOV TH0,#0B9H MOV TL0,#0B0H SETB TR0 HERE5: JNB TF0,HERE5 CLR TR0 CLR TF0 RET DELAY2:MOV R1,#112D BACK:ACALL DELAY1 DJNZ R1,BACK RET CHECK:MOV A,R0 MOV B,#65D SUBB A,B JB PSW.7,NEXT1 ACALL TEXT3 SETB P2.0 SJMP ESC1 NEXT1:ACALL TEXT4 CLR P2.0 ESC1:CLR PSW.7 RET CMD: MOV P0,A CLR RS CLR RW SETB E CLR E ACALL DELAY RET DISPLAY:MOV P0,A SETB RS CLR RW SETB E CLR E ACALL DELAY RET HMDTY:MOV A,R0 MOV B,#10D DIV AB MOV R2,B MOV B,#10D DIV AB ACALL ASCII ACALL DISPLAY MOV A,B ACALL ASCII ACALL DISPLAY MOV A,R2 ACALL ASCII ACALL DISPLAY MOV A,#"%" ACALL DISPLAY RET TEXT1: MOV A,#"H" ACALL DISPLAY MOV A,#"y" ACALL DISPLAY MOV A,#"g" ACALL DISPLAY MOV A,#"r" ACALL DISPLAY MOV A,#"o" ACALL DISPLAY MOV A,#"m" ACALL DISPLAY MOV A,#"e" ACALL DISPLAY MOV A,#"t" ACALL DISPLAY MOV A,#"e" ACALL DISPLAY MOV A,#"r" ACALL DISPLAY RET TEXT2: MOV A,#"R" ACALL DISPLAY MOV A,#"H" ACALL DISPLAY MOV A,#" " ACALL DISPLAY MOV A,#"=" ACALL DISPLAY MOV A,#" " ACALL DISPLAY RET TEXT3: MOV A,#" " ACALL DISPLAY MOV A,#" " ACALL DISPLAY MOV A,#"O" ACALL DISPLAY MOV A,#"N" ACALL DISPLAY RET TEXT4:MOV A,#" " ACALL DISPLAY MOV A,#"O" ACALL DISPLAY MOV A,#"F" ACALL DISPLAY MOV A,#"F" ACALL DISPLAY RET DINT:MOV A,#0CH ACALL CMD MOV A,#01H ACALL CMD MOV A,#06H ACALL CMD MOV A,#83H ACALL CMD MOV A,#3CH ACALL CMD RET LINE2:MOV A,#0C0H ACALL CMD RET DELAY: CLR E CLR RS SETB RW MOV P0,#0FFH SETB E MOV A,P0 JB ACC.7,DELAY CLR E CLR RW RET ASCII: MOVC A,@A+DPTR RET LUT: DB 48D DB 49D DB 50D DB 51D DB 52D DB 53D DB 54D DB 55D DB 56D DB 57D END
以上就是英銳恩單片機(jī)開(kāi)發(fā)工程師分享的使用8051單片機(jī)開(kāi)發(fā)的濕度計(jì)。英銳恩專注單片機(jī)應(yīng)用方案設(shè)計(jì)與開(kāi)發(fā),提供8位單片機(jī)、16位單片機(jī)、32位單片機(jī)。