秦 偉
(陜西理工學院 物理與電信工程學院,陜西 漢中 723003)
溫度與濕度與人們的生活息息相關,與人的生理與心理狀態與環境溫度密切相關。傳統的溫濕度計,溫度是用水銀柱來顯示的,濕度是用機械式指針顯示、價格便宜,但是它精確度不高,不易讀數。采用單片機對溫濕度進行檢測,用LCD來顯示溫濕度的數值,不僅具有測量方便、簡單和靈活等優點,而且可以大幅度提高溫濕度檢測的精度,示數也更加直觀易讀。
數字溫濕度傳感器AM2301是一款含有已校準數字信號輸出的溫濕度復合型傳感器,包括一個NTC測溫元件和一個電容式感濕元件,并與一個高性能8位單片機相連接,因此該產品具有超快響應、抗干擾能力強、性價比極高等優點。
AM2301數據傳輸為40bit,高位先出。數據格式:40bit數據=16bit濕度數據+16bit溫度數據+8bit校驗和。濕度高8位+濕度低8位+溫度高8位+溫度低8位=校驗和(末8位)。例如:接收40bit數據如下:
byte4 byte3 byte2 byte1 byte0
0000 0010 1000 1100 0000 0001 0101 1111 1110 1110
濕度數據:0000 0010 1000 1100
溫度數據:0000 0001 0101 1111
0000 0010+1000 1100+0000 0001+0101 1111=1110 1110
所以校驗和為1110 1110。
由以上數據就可得到濕度和溫度的值計算方法:
hum(濕度)=byte4.byte3=65.2(%RH)
temp(溫度)=byte2.byte1=35.1(℃)
Verify(校驗)=byte4+byte3+byte2+byte1
當溫度低于0℃時溫度數據的最高位置1。
例如:-10.1℃表示為1000 0000 0110 0101
系統硬件電路主要由AT89C51單片機、AM2301溫濕度傳感器、FM1602C液晶顯示三部分電路構成。AM2301用于檢測環境溫濕度,單片機AT89C51讀取AM2301的溫濕度數據并對數據進行校驗、數據處理,處理后AT89C51控制液晶FM1602C將處理的數據顯示出來。系統電路如圖1所示。

圖1 系統電路圖
(1)AM2301溫濕度傳感器電路。AM2301為4針單排引腳封裝,4個引腳分別為:VDD、DATA、GND、NC。VDD供電范圍為直流3.3~5.5V,電源引腳VDD和GND之間可增加一個100nF電容,用于去耦濾波。設計中用5V直流供電;DATA用于和處理器之間的通訊和同步,采用單總線格式,設計中將該引腳接5KΩ上拉電阻并連接到AT89C51的P2.0;GND接地;NC空腳,設計中該引腳懸空。
(2)液晶顯示電路。FM1602C為16針單排引腳封裝,16個引腳分別為:VSS、VDD、VEE、RS、RW、E、DB0-DB7、BLA、BLK。VSS電源地;VDD電源,設計中接+5V電源;VEE液晶驅動電壓,設計中VEE經10KΩ可調電阻接+5V;RS寄存器選擇,設計中RS接單片機P2.3,當P2.3輸出高電平時表示數據輸入,當P2.3輸出低電平時表示指令代碼輸入;RW讀寫信號,RW接單片機P2.2,當P2.2為高電平時表示讀數據,當P2.2為低電平時表示寫數據;E使能信號,E接單片機P2.2;DB0-DB7數據線,DB0-DB7分別對應接至單片機P0.0-P0.7,并且P0.0-P0.7作為準雙向IO口,在使用時外接10K上拉排阻;BLA背光源負,實際測試中接地;BLK背光源正,實際測試中接+5V電源。
(3)電源電路。設計采用市電或備用電源供電,市電供電使用通用LM7805穩壓芯片,即將市電轉換為9V交流經整流濾波后用LM7805穩壓獲得5V直流。備用電源用三節1.5V 7號電池供電。
(1)系統主程序設計。系統上電,AT89C51首先完成對串口及LCD1602的初始化工作,然后開始讀取am2301的溫濕度數據,對讀取的數據進行校驗,如果錯誤則重新讀取,如果數據正確則將讀取的溫濕度數據存入內部數據寄存器,然后對該數據進行數據轉換將結果存入數據顯示寄存區,將待顯示數據送LCD1602顯示,并將該數據發送至串口,然后重新進行下一輪溫濕度數據讀取與顯示。系統主程序如圖2所示。

圖2 系統主程序流程圖
(2)AM2301溫濕度讀取程序設計。通過單總線訪問AM2301。首先主機發開始信號,然后主機等待接收AM2301響應信號,當AM2301發出響應信號后,主機則連續接收AM2301送出的40位數據,對40位數據校驗正確后則存入內部數據寄存區。
基于AM2301的家用溫濕度計,經實驗驗證,溫度絕對偏差最大為0.5℃,濕度絕對偏差最大為3%RH,設計運行穩定。LCD顯示數字讀數方面,便于掌握環境溫濕度數據,適合醫院、倉庫、家庭環境等測量溫濕度。