
1.3 基于采用負溫度系數(NTC)的溫度傳感器
蒸發器溫度的測量傳感器采用原車的具有負溫度系數(NTC)的傳感器,其溫度范圍較寬,溫度和電阻值的變化曲線接近線性,有利于溫度的測量。
溫度測量電路采用簡單的電阻串聯分壓式,如圖3所示。

系統裝置中Rt的標稱阻值為1.5kΩ,實測0℃時的電阻值為4.65kΩ,本系統蒸發器溫度控制在3℃~5℃之間,電阻Rt值在4.36kΩ~3.62kΩ之間變化。圖中R1和R2不能太大,否則經A/D轉換后得到的數據量變化不大會影響測量的分辨率;R1和R2也不能太小,否則會使流過Rt的電流增大,造成Rt本身功耗增大而影響測量精度。系統裝置中R1取10kΩ小型金屬膜電阻,R2選取1kΩ的精密可調電位器,用于溫度的調零整定。
1.4 基于模塊MAX 7219的顯示電路
MAX7219模塊用來實時顯示加速度、溫度(10ms刷新一次)和溫度設定值顯示。MAX7219是8位串行共陰數碼管動態掃描驅動電路,其峰值電流可達40mA,最高串行掃描速率為10MHz,典型掃描速率為1.3MHz,僅使用單片機3個I/O口,即可完成對8位LED數碼的顯示控制和驅動。線路簡單,控制方便,外圍電路僅需要一個電阻設定峰值段電流,同時可以通過軟件設定其顯示亮度;還可以通過級聯,完成對多于8位的數碼管的控制顯示。值得一提的是,當工作于關閉(SHUTDOWN)方式時,不僅單片機仍可以對其傳輸數據和修改控制方式,而且芯片耗電僅為150μA。
圖4是MAX7219的應用電路。LOAD端是片選端,低電平有效,上升沿鎖存接收的最后16位串行數據。CLK端是串行時鐘輸入端。DIN端是串行數據輸入端(高位先入),在時鐘脈沖上升沿后數據有效,下降沿后無效,因此一個時鐘脈沖對應一位二進制數據。Dout端是串行數據輸出端,用于級聯輸出。ISET端是峰值段電流設定端,外接上拉電阻。Sega~Segdp端是段輸出,接各數碼管的a~dp段。dig0~dig7是位輸出線。

1.5 基于STC12C5410AD的主電路設計
總體硬件框圖如圖5所示。主電路的設計主要是以STC12C5410AD為控制核心的處理器及其輔助電路的設計,其中包括ADXL202加速度傳感器、DS18B20線性數字溫度傳感器、NTC熱敏電阻傳感器、基于MAX7219串行數碼管驅動接口電路的設計。在STC12C5410AD的內部中具有10KB的Flash程序存儲器,512B的數據存儲器和2KB的E2PROM用戶數據存儲器,8路10位精度可編程A/D轉換電路,內部復位監視電路和看門狗電路。從實際設計要求出發,充分利用其內部的硬件電路,可以簡化電路的復雜程度,提高系統的穩定性。其外圍接口輔助電路的設計,有以下幾點需要注意。

(1)利用單片機的定時器、中斷功能,單片機INT0、INT1工作于外部下降沿觸發中斷狀態,T0、T1分別定時,從而測出加速度傳感器輸出的脈寬值,再經過單片機計算得到加速度的瞬時采樣值。硬件連接如圖6所示。

(2)蒸發器溫度的測量使用原車NTC負溫特性的熱敏電阻,使用單片機8路擴展功能中的1路A/D轉換端口,依據硬件設計安排,選P1.7作為A/D轉換端口。因為蒸發器溫度的控制僅在3℃~5℃比較小的范圍內,溫度和電壓的變化接近線性。本系統采用10位精度A/D轉換編程,因此,在沒有采取溫度補償措施下仍能準確測出蒸發器的實際溫度,滿足系統控制要求。
(3)利用單片機內部Flash數據存儲器掉電記憶功能,把設定的控制溫度保存,避免單片機掉電時數據丟失。
(4)啟用單片機內部看門狗功能,提高系統的軟件抗干擾能力。
(5)MAX7219的引腳18(Isei)為硬件亮度調節控制端,用于設定段電流峰值,通過在+VCC和該引腳間接一電阻實現。一般參考資料均描述為10kΩ左右,但在實際應用中發現,此電阻選30kΩ左右比較妥當,既可以保證顯示亮度,同時又可以保證顯示的可靠性,否則會出現無法正常顯示的問題。據估計,其原因是在10kΩ條件下,段電流過大,導致上電復位期間系統電流過大,從而引起系統電壓跌落,使系統復位而引起工作失常。
(6)STC12C5410AD的工作電壓為3.4V~5.5V。本系統單片機、傳感器、輔助電路工作電壓均為+5V。驅動空調壓縮機電磁離合器的執行器件選取10A/12VDC的直流繼電器,實際壓縮機電磁離合器的工作電流僅3A~5A左右,因此繼電器完全滿足系統控制輸出負荷,主電源取自原車的12V蓄電池電源,一路直接驅動執行繼電器控制壓縮機電磁離合器的接通與斷開,另一路經穩壓濾波后供給單片機、外圍輔助和接口電路。因為在汽車上的干擾源比較嚴重,為確保系統穩定可靠工作,電源須經過嚴格穩壓和濾波處理。電源前端串接一高頻扼流電感L,目的是阻礙汽車發動機工作時火花塞產生的電磁脈沖進入電源影響系統工作,+12V電源經高頻扼流電感L后,經過C2、C3組成的低頻和高頻濾波,再經三端穩壓器件(LM7805)穩壓輸出+5V穩壓電源,經C4、C5低通和高通濾波后供給系統工作電源,如圖7所示。

2 軟件設計
2.1 主程序與STC12C5410AD的初始化
由于目前流行的絕大多數仿真器均不支持STC類增強型內核為8051的單片機的仿真,因此對基于STC12C5410AD開發的應用程序進行匯編(或編譯)時,必須首先對STC12C5410AD的特殊功能寄存器(SFR)進行定義,否則無法生成所需的機器代碼。從這個意義上說,這也是STC12C5410AD的初始化工作之一。由于無法仿真調試,程序的調試過程只能通過把應用程序下載到單片機應用板上演示方能實現。因此程序的調試工作是個反復而耗費時間的過程,需要編程者有足夠的耐心。軟件流程圖如圖8所示,并作以下幾點說明:

(1)具備4位數碼管溫度、加速度動態刷新顯示,包括符號位和小數點位。
(2)設定控制溫度有斷電記憶功能。
(3)空調器壓縮機運行或停止受控于車室溫度和汽車的運行狀態。
該控制過程是:把一段時間內采樣的加速度代數值相加,加速度的代數和就反映汽車行駛的狀態。如果加速度的代數和等于零則代表汽車處在停止或勻速運行狀態,大于零則代表汽車處于爬坡或加速的前進狀態,小于零則代表汽車處于減速或下坡的運行狀態。人為設定一個大于零的加速度控制目標值,控制目標值可通過外部多路開關來選擇。假如此時駕駛室溫度未達到設定溫度目標控制值,壓縮機還在工作中,如果汽車正處于加速狀態并且此時單片機檢測到的加速度代數和已經大于或等于設定的目標控制值,則延時斷開壓縮機。延時時間由加速度代數和與設定的加速度控制目標值比較的大小數值量級決定,數值量大,延時時間短,反之則長。
(4)人工選擇設定車室控制溫度,由外部鍵控選擇,加速度啟控值由外部多路開關選擇。
(5)啟用單片機內部看門狗功能。
2.2 系統軟件的規劃
系統程序主要包括以下功能模塊:
(1)DS18B20溫度傳感器接口模塊,分為初始化子程序、寫入子程序及讀取子程序等部分。
(2)基于MAX7219的顯示模塊,分為MAX7219的初始化子程序、寫入子程序及顯示子程序部分。
(3)加速度傳感器測量模塊,分為ADXL202的加速度數據處理子程序、加速度平均值子程序。
(4)蒸發器溫度測量模塊。
(5)設定的溫度數據讀、寫Flash數據存儲器模塊。
(6)按鍵設置和控制輸出模塊
以上程序比較復雜,限于篇幅,在此不再贅述。
單片機控制空調節能系統裝置目前已在深圳某公司生產。在實際應用中,系統運行可靠穩定,且具備節能及相對提升汽車加速性能的效果,同時還增加了汽車加速度和溫度實時顯示功能。雖然此裝置節油效果不是很明顯(實測根據改良車型不同節油效率在2~10%之間),然而該裝置通過適時巧妙地控制空調壓縮機的接通或斷開,能夠相對提升汽車加速性能。
參考文獻
[1] 陳志恒,胡寧.汽車電控技術[M].北京:高等教育出版社,2003.
[2] 孫重祥,曾志斌.汽車空調的使用維護和檢修方法[J].汽車電器,2005,(7):39-41.
[3] 洪華.基于單片機控制的汽車空調控制器系統[J].家電科技,2005,(1):60-62.
[4] 沙占友.集成傳感器應用[M].北京:中國電力出版社,2005.





