PIC16C72單片機(jī)的空調(diào)控制系統(tǒng)設(shè)計(jì)
1 控制器原理
系統(tǒng)CPU根據(jù)遙控器或按鍵輸入的命令,對(duì)采集到的溫度進(jìn)行智能判斷,然后作出相應(yīng)的制冷、制熱或除溫運(yùn)行。再通過接口電路,驅(qū)動(dòng)壓縮機(jī)、換向閥、風(fēng)向電機(jī)和室內(nèi)風(fēng)機(jī)作相應(yīng)動(dòng)作,并對(duì)溫度用LED指示。系統(tǒng)的原理框圖如圖1所示。
2 硬件設(shè)計(jì)
進(jìn)行系統(tǒng)硬件框圖設(shè)計(jì)時(shí),既要考慮編寫程序的方便、又要充分利用軟件的功能來簡化硬件結(jié)構(gòu),即做到“軟硬兼施”。
2.1 單片機(jī)的選擇
系統(tǒng)有3路溫度模擬信號(hào)輸入,還有1路電壓和1路電流模擬輸入,共5路模擬輸入要求;而模擬信號(hào)要轉(zhuǎn)換成數(shù)字信號(hào)才能用單片機(jī)CPU處理。為提高系統(tǒng)的性能價(jià)格比,應(yīng)采用含有A/D轉(zhuǎn)換器的單片機(jī)。經(jīng)過各方面的綜合比較,我們選用了美國Microchip公司的PIC16C72單片機(jī)作為控制核心。它具有5路模擬量輸入的A/D轉(zhuǎn)換器,恰好滿足系統(tǒng)的模擬輸入要求。另外,它在1塊芯片上集成了1個(gè)8位邏輯運(yùn)算單元和工作寄存器、2KB程序存儲(chǔ)器、128個(gè)數(shù)據(jù)存儲(chǔ)器、3個(gè)端口(A口、B口、C口)共22條I/O線、3個(gè)定時(shí)器/計(jì)數(shù)器。另外,只有35條易學(xué)易用而高效的RISC(精簡指令集計(jì)算機(jī))指令,同時(shí),芯片具看門狗功能,并提供對(duì)軟件運(yùn)行出錯(cuò)的保護(hù)。
2.2 模擬輸入電路
本系統(tǒng)直接用熱敏電阻進(jìn)行測溫,再加一級(jí)電容濾波。對(duì)外交換溫度檢測電路,因其干擾較大,特加上二極管限幅保護(hù)。對(duì)傳感器的不同電阻值,將其所對(duì)應(yīng)的不同分壓值輸入至PIC單片機(jī)的A/D轉(zhuǎn)換口,在單片機(jī)內(nèi)部轉(zhuǎn)換成數(shù)字信號(hào)。該檢測電路結(jié)構(gòu)簡單,性能價(jià)格比高。又因采用的單片機(jī)為8位,所以溫度轉(zhuǎn)換精度高,可為0.5℃,完全滿足了空調(diào)的信號(hào)檢測精度要求。
對(duì)過流信號(hào)的檢測,不用經(jīng)過比較器,節(jié)約了資源;而是采用模擬信號(hào)整流分壓后直接輸入,通過單片機(jī)自帶的A/D轉(zhuǎn)換器,每500μs對(duì)其進(jìn)行一次檢測,并進(jìn)行軟件比較,以確認(rèn)是否過流。
對(duì)過零電壓信號(hào)的檢測,也是采用模擬信號(hào)整流分壓后直接輸入。因兩個(gè)電壓半波的過零點(diǎn)都要檢測,所以用橋式整流。模擬輸入電路如圖2所示。
2.3 溫度指示電路
該電路可對(duì)設(shè)定溫度和房間溫度兩種溫度的10個(gè)溫度值進(jìn)行同時(shí)指示,而且結(jié)構(gòu)簡單,僅占用2根I/O線和使用1個(gè)八位移位寄存器74LS164。方法是對(duì)設(shè)定溫度進(jìn)行穩(wěn)定指示,對(duì)房間溫度進(jìn)行1s間隔閃爍指示。每秒取出溫度信號(hào)。如果是21℃或30℃,則直接將相應(yīng)位置成低電平,使相應(yīng)LED燈亮,如果上22~29℃,則將溫度轉(zhuǎn)換成相應(yīng)顯示碼,通過RB6產(chǎn)生CLOCK信號(hào),RB7串行送出顯示碼至8位移位寄存器74LS164,再進(jìn)行LED指示。
2.4 室內(nèi)風(fēng)向電機(jī)控制電路
本控制系統(tǒng)的室內(nèi)風(fēng)向葉片有自動(dòng)、擺動(dòng)以及5種固定角度等運(yùn)行狀態(tài)。為得到高精度的角度控制,我們采用DC12V四相八拍步電機(jī)驅(qū)動(dòng)。步進(jìn)控制電路中采用單片機(jī)的RB2、RB3、RB4、RB5作為四相(A、B、C、D)八拍環(huán)行分配時(shí)序,經(jīng)電流放大器件ULN2003功率放大后驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)轉(zhuǎn)??刂品椒ㄊ歉鶕?jù)目標(biāo)位置和當(dāng)前位置的角度差,輸出相應(yīng)數(shù)量的脈拍數(shù),并通過輸出脈拍的不同時(shí)序來控制正反轉(zhuǎn)。
2.5 室內(nèi)風(fēng)機(jī)控制電路
制冷和制熱量的大小與室內(nèi)風(fēng)機(jī)的轉(zhuǎn)速有著密切的關(guān)系。本系統(tǒng)中室內(nèi)風(fēng)機(jī)采用雙向晶閘管移相控制,使其產(chǎn)生電壓調(diào)速??刂齐娐啡鐖D3所示。在單片機(jī)內(nèi)部,根據(jù)RA5口檢測到的電壓過零點(diǎn)為同步信號(hào),再通過定時(shí)器控制產(chǎn)生所需脈沖的相位和寬度,從RC1口輸出,然后經(jīng)晶體管放大、脈沖變壓器隔離輸出,再觸發(fā)雙向晶體管導(dǎo)通。為了減小脈沖變壓器的容量,輸出的是幾個(gè)連續(xù)的窄脈沖序列。
單片機(jī)系統(tǒng)RA3口對(duì)室內(nèi)風(fēng)機(jī)的速度反饋脈沖進(jìn)行計(jì)數(shù),并與給定值進(jìn)行比較,然后進(jìn)行積分調(diào)節(jié),對(duì)速度進(jìn)行閉環(huán)控制。
2.6 繼電器實(shí)時(shí)控制電路
控制信號(hào)從單片機(jī)的通用雙向I/O端口RB1、RC4和RC5經(jīng)過驅(qū)動(dòng)器ULN2003放大,控制繼電器,使壓縮機(jī)、室外風(fēng)機(jī)和換向閥按要求狀態(tài)動(dòng)作。
3 軟件設(shè)計(jì)
軟件設(shè)計(jì)采用模擬化處理,主控程序包括以下幾個(gè)部分:程序的初始化、試運(yùn)轉(zhuǎn)、數(shù)據(jù)和信號(hào)的采集與處理、溫度LED指示、室內(nèi)風(fēng)機(jī)的閉環(huán)積分控制、室內(nèi)風(fēng)向電機(jī)的步進(jìn)控制。功能子程序包括制冷、制熱、除濕、自動(dòng)四種運(yùn)行模式。中斷程序包括遙控接收。各種定時(shí)的中斷查詢處理、速度檢測等。系統(tǒng)的主控程序流程如圖4所示。
系統(tǒng)資源分配:定時(shí)器0用于對(duì)速度反饋脈沖計(jì)數(shù),定時(shí)器1用于遙控處理,定時(shí)器2用于其它所有定時(shí)處理。由于定時(shí)器2處理的定時(shí)有20多個(gè),時(shí)間長短更是千變?nèi)f化,短的只有500μs,長的可達(dá)24h(小時(shí))。根據(jù)現(xiàn)實(shí)生活中一塊手表可處理多個(gè)事件的啟示,我們?cè)O(shè)計(jì)出口斷式查詢定時(shí)法,即將基準(zhǔn)中斷時(shí)間設(shè)為最小公約數(shù)500μs,每個(gè)事件分配1個(gè)時(shí)間寄存器、1個(gè)開始定時(shí)標(biāo)志和1個(gè)定時(shí)時(shí)間到標(biāo)志,在需要定時(shí)的時(shí)候,將其開始定時(shí)標(biāo)志1置。每次500μs中斷時(shí),對(duì)各定時(shí)標(biāo)志位進(jìn)行檢測,如果為1,則對(duì)相應(yīng)的時(shí)間寄存器進(jìn)行定時(shí)處理,如果定時(shí)時(shí)間到,則將相應(yīng)的定時(shí)時(shí)間到標(biāo)志置1。
軟件系統(tǒng)的制冷、制熱、除濕和自動(dòng)功能子程序模塊,主要功能是根據(jù)房間溫度和設(shè)定差值,并綜合考慮其他條件,然后對(duì)壓縮機(jī)和室內(nèi)外風(fēng)扇的運(yùn)行狀態(tài)進(jìn)行智能控制。同時(shí),在各模塊里進(jìn)行了睡眠和保護(hù)處理
評(píng)論