羅 潛,廖文浩,柳 暢
(1.廣東梅州職業(yè)技術學院,廣東 梅州 514011;2.廣州番禺職業(yè)技術學院,廣州 511487)
隨著人們生活水平的不斷提高,汽車越來越多地走進了普通百姓家庭,在給人們的生活、工作以及學習帶來極大便利的同時,人們也越來越注重汽車的舒適性。其中,車內溫濕度就是汽車舒適性的重要指標之一[1,2]。車內溫濕度過高或過低都會直接影響到車內人員的舒適程度,甚至會導致交通事故。為了給駕駛員和乘車人員營造一個舒適的溫濕度環(huán)境,設計了一款基于STC89C52單片機的車內溫濕度智能監(jiān)控系統(tǒng)。該系統(tǒng)主要由STC89C52單片機最小系統(tǒng)、DHT11溫濕度傳感器模塊、LCD1602顯示模塊、繼電器驅動模塊,以及按鍵模塊等軟硬件組成,能夠對車內溫濕度進行實時監(jiān)控,使車內保持舒適的溫濕度環(huán)境[3-5]。
本系統(tǒng)以STC89C52單片機最小系統(tǒng)為核心,并搭配DHT11溫濕度傳感器模塊、LCD1602顯示模塊、蜂鳴器報警模塊、繼電器驅動模塊,以及按鍵模塊等外圍功能模塊。系統(tǒng)整體結構如圖1所示。DHT11溫濕度模塊實時采集車內的溫濕度,并把采集到的溫濕度數(shù)據(jù)發(fā)送給STC89C52單片機。STC89C52單片機會對傳送回來的溫濕度數(shù)據(jù)進行處理,把采集到的溫濕度數(shù)據(jù)發(fā)送給LCD1602顯示模塊進行顯示。如果溫濕度值超過或低于溫濕度上下限值,蜂鳴器報警模塊會發(fā)出“嘀嘀嘀”的報警聲,同時繼電器驅動模塊會驅動車載空調設備工作,及時調控車內溫濕度,并可通過按鍵模塊來設置溫濕度上下限值。
圖1 系統(tǒng)整體結構圖Fig.1 The system structure diagram
系統(tǒng)硬件設計采用Altium Design進行系統(tǒng)電路設計,在電路設計過程中要選擇符合常規(guī)用法的經(jīng)典電路,并且要注意硬件抗干擾的設計。系統(tǒng)電路原理如圖2所示。
圖2 系統(tǒng)電路原理圖Fig.2 The system circuit Schematic diagram
本系統(tǒng)采用STC89C52單片機最小系統(tǒng)作為微控制系統(tǒng),主要由STC89C52單片機、時鐘電路、復位電路以及電源組成[6]。STC89C52是STC公司生產的一種低功耗、高性能的CMOS 8-bit MCU,具有如下功能特點:8kB Flash,512B RAM,內置4KB EEPROM,MAX810復位電路,WDT,4個8位I/O口,3個16位T/C,4個外部中斷,1個7向量4級中斷結構(兼容傳統(tǒng)51的5向量2級中斷結構),全雙工串行口;另外,STC89C52可降至0 Hz靜態(tài)邏輯操作,支持2種SOFTWARE可選擇節(jié)電模式;空閑模式下,CPU停止工作,允許RAM、T/C、串口,中斷繼續(xù)工作;掉電保護模式下,RAM內容被保存,振蕩器被凍結,MCU停止工作,直至下一個中斷出現(xiàn)或硬件復位;最高運作頻率35MHz,6T/12T可選。
時鐘電路本質上是一個振蕩器,通過產生特定的時鐘信號來驅動單片機工作,采用11.0592 MHz高速外部晶振Y1和電容C6、C7組成的并聯(lián)諧振回路,分別連接到STC89C52單片機的X1(Pin18)、X2(Pin19)引腳。
復位電路的作用是使整個系統(tǒng)恢復至初始狀態(tài),采用阻容式復位電路來實現(xiàn)系統(tǒng)上電復位,在系統(tǒng)接通電源那一瞬間,電容C8進行充電;當電容C8兩端電壓未達到STC89C52單片機RESET(Pin9)引腳高電平的門限電壓值時,RESET引腳輸出為低電平,系統(tǒng)處于復位狀態(tài);當電容C8兩端的電壓達到STC89C52單片機RESET引腳高電平的門限電壓值時,RESET引腳輸出為高電平,系統(tǒng)進入正常工作狀態(tài)。
本系統(tǒng)采用DHT11溫濕度傳感器模塊作為數(shù)據(jù)采集端。DHT11溫濕度傳感器內部包括1個NTC測溫元件和1個電阻式感濕元件,并與1個高性能的8-bit MCU相連接,是一款含有已校準DS輸出的溫濕度復合傳感器。Dout用于STC89C52單片機與DHT11之間的通訊和同步,采用單線制串行接口,使模塊集成變得簡易快捷[7,8]。
本系統(tǒng)采用LCD1602顯示模塊作為數(shù)據(jù)顯示端。LCD1602顯示模塊是一種字符型液晶顯示模塊,能夠顯示字母、數(shù)字以及符號,主要由字符型液晶顯示屏(LCD)、控制驅動主電路(HD44780)、電阻、電容等組成。為了減少對單片機I/O的需求,利用HD44780所具有的4-bit數(shù)據(jù)總線的功能,采用間接控制方式(四線并口通信方式),分別用DB4~DB7引腳與STC89C52單片機P0.4~P0.7(Pin32~Pin35)引腳相連接,先傳數(shù)據(jù)或命令的高4位,再傳低4位。
本系統(tǒng)采用蜂鳴器模塊作為報警端。該電路是利用三極管工作開關狀態(tài)原理,三極管Q1的基集串聯(lián)1個限流電阻R1與STC89C52單片機P1.0(Pin1)引腳相連接,當三極管Q1的基集端為低電平時,三極管Q1開關導通,蜂鳴器發(fā)出“嘀嘀嘀”報警聲;否則,蜂鳴器不鳴聲報警。
本系統(tǒng)采用3個獨立按鍵并聯(lián)上拉電阻組成按鍵模塊。按鍵KEY1(參數(shù)切換功能)、KEY2(增加功能)、KEY3(減小功能)分別與STC89C52單片機P3.1~P3.3(Pin11~Pin13)引腳相連接。按鍵輸入信號是低電平有效,按鍵無輸入信號作用時,就由上拉電阻拉至高電平置位。
本系統(tǒng)采用繼電器驅動模塊作為負載驅動端。繼電器驅動是STC89C52單片機與車載空調設備的接口,三極管Q2與三極管Q1在電路中一樣起著開關作用,其基集端串聯(lián)一個限流電阻R7與STC89C52單片機P1.1(Pin2)引腳相連接。當三極管Q2的基集端為低電平時,三極管Q2開關導通,繼電器線圈得電,使其常開觸點與公共端短接、常閉觸點與公共端斷開,從而驅動車載空調設備工作;否則,繼電器不工作。
本系統(tǒng)所需電壓為5V,采用單獨供電,選用普通的蓄電池即可滿足系統(tǒng)供電需求,通過電源開關P4(Switch)控制電源與系統(tǒng)之間的供電。
系統(tǒng)軟件設計采用C語言進行編程,以軟件程序模塊化設計來配合硬件模塊,最終實現(xiàn)系統(tǒng)功能。軟件程序主要由主程序和子程序組成,其主程序工作流程如圖3所示。
圖3 系統(tǒng)主程序工作流程圖Fig.3 The system main program work flow chart
當系統(tǒng)上電工作后,整個系統(tǒng)先進行初始化操作,包括STC89C52單片機最小系統(tǒng)初始化、DHT11溫濕度模塊初始化、LCD1602顯示模塊初始化、繼電器驅動模塊初始化以及按鍵模塊初始化等,保證各模塊準備就緒;DHT11溫濕度模塊實時采集車內的溫濕度,并把采集到的溫濕度值以特定的數(shù)據(jù)幀格式發(fā)送給STC89C52單片機;STC89C52單片機會對傳送回來的溫濕度數(shù)據(jù)進行處理,若溫濕度值超過或低于溫濕度上下限值,蜂鳴器報警模塊會發(fā)出“嘀嘀嘀”的報警聲,同時繼電器驅動模塊會驅動車載空調設備工作,及時調控車內溫濕度;LCD1602顯示模塊顯示溫濕度值,第一行顯示采集到的實時溫濕度值,第二行顯示預設的溫濕度上下限值;按鍵模塊可用來設置溫濕度上下限值。系統(tǒng)各子程序工作流程如圖4所示。
圖4 系統(tǒng)各子程序工作流程圖Fig.4 The system sub-program work flow chart
本課題充分利用傳感器技術、集成電子技術以及嵌入式技術,設計了一款基于STC89C52單片機的車內溫濕度智能監(jiān)控系統(tǒng),通過對系統(tǒng)軟硬件的調試,實現(xiàn)了對車內溫濕度的實時采集、傳輸、顯示,以及異常報警,能夠及時調控車內溫濕度,使車內人員保持良好的舒適度,在一定程度上可降低交通事故的發(fā)生率。此外,該系統(tǒng)可應用于其他領域的溫濕度監(jiān)控,具有很強的移植性和廣泛的應用性。