張嵩, 劉光利, 馬巖, 高琳
(長春理工大學(xué) 機(jī)電工程學(xué)院,長春130022)
PIC 單片機(jī)(Peripheral Interface Controller)是一種用來可開發(fā)的去控制外圍設(shè)備的可編程集成電路。由美國Microchip(微星)公司推出的PIC 單片機(jī)系列產(chǎn)品,首先采用了RISC 結(jié)構(gòu)的嵌入式微控制器,其高速度、低電壓、低功耗、大電流LCD 驅(qū)動能力和低價位OTP(一次性編程)技術(shù)等都體現(xiàn)出單片機(jī)產(chǎn)業(yè)的新趨勢?,F(xiàn)在PIC 系列單片機(jī)在世界單片機(jī)市場的份額排名中已逐年升位,尤其在8位單片機(jī)市場,據(jù)稱已從1990 年的第20 位上升到目前的第二位。PIC 單片機(jī)從覆蓋市場出發(fā),已有三種(又稱三層次)系列多種型號的產(chǎn)品問世,所以在全球都可以看到PIC 單片機(jī)從電腦的外設(shè)、家電控制、電訊通信、智能儀器、汽車電子到金融電子各個領(lǐng)域的廣泛應(yīng)用?,F(xiàn)今的PIC 單片機(jī)已經(jīng)是世界上最有影響力的嵌入式微控制器之一。本文用的16f690 就是一種應(yīng)用廣泛的8 位單片機(jī)。
冰箱一般具有制冷、保溫和控制溫度3 項基本功能,隨著科技水平的快速發(fā)展,消費(fèi)者對于冰箱的保鮮功能也提出了更高的要求。保鮮時間要長久、營養(yǎng)不能流失、隔斷之間不能串味、冷藏室不能有異味等,都成為購買冰箱的最基本要求。
冰箱是利用電能通過壓縮機(jī)使制冷劑不斷循環(huán),通過制冷劑狀態(tài)的改變把冰箱內(nèi)的熱量不斷帶到冰箱外散發(fā)掉,為了保持冰箱內(nèi)的溫度,我們用箱體和門體的發(fā)泡層及門封條隔熱。同時為了使冰箱內(nèi)保持所需要的溫度,我們用溫控器來控制冰箱內(nèi)溫度的高低,并控制壓縮機(jī)的開、停機(jī)及照明功能。冰箱的整個制冷過程如圖1 所示。
圖1 冰箱的制冷過程示意圖
本文通過C 語言程序的編寫實(shí)現(xiàn)對冰箱的以下幾項功能的控制:
(1)冰箱門的開和關(guān)控制著冰箱內(nèi)部燈的亮滅,并且冰箱關(guān)門后保鮮模塊開1h;
(2)當(dāng)冷凍傳感器值>18 或冷藏傳感器值>18 時,壓縮機(jī)和風(fēng)機(jī)分別開機(jī),這時輸出PWM 為100Hz。當(dāng)冷凍傳感器值<25 并且冷藏傳感器值<25 時,壓縮機(jī)和風(fēng)機(jī)分別關(guān)機(jī),這時輸出PWM 為40Hz;其它情況下保持原來狀態(tài);
(3)當(dāng)壓縮機(jī)累計運(yùn)行8h 時,開始化霜,化霜時壓機(jī)和風(fēng)機(jī)都停機(jī)。當(dāng)化霜加熱器工作30min 或蒸發(fā)傳感器值>16 時,化霜停止;
Timer0 模塊是8 位定時器/計數(shù)器,它具備以下特性:8 位定時器/計數(shù)器寄存器(TMR0);8 位預(yù)分頻器(與看門狗定時器共用);可編程內(nèi)部或外部時鐘源;可編程外部時鐘邊沿選擇;溢出中斷。
作為定時器使用時,Timer0 模塊可用作8 位定時器或8 位計數(shù)器。當(dāng)Timer0 作為定時器使用時,Timer0 模塊將在每個指令周期遞增(無預(yù)分頻器)。將OPTION 寄存器的T0CS 位清零可以將時鐘源選擇位內(nèi)部指令周期時鐘,即FOSC/4。當(dāng)Timer0 作為計數(shù)器使用時,Timer0 模塊將在T0CKI 引腳的每個上升沿遞增。遞增邊沿由OPTION 寄存器的T0SE 位決定。將OPTION 寄存器的T0CS 位置1 選擇計數(shù)器模式。特別在TMR0 被寫入時,為了計入兩個指令周期的延時,可以調(diào)整寫入TMR0 寄存器的值。
模數(shù)轉(zhuǎn)換器(Analog-to-digital Converter,ADC)可將模擬輸入信號轉(zhuǎn)換為相應(yīng)的10 位二進(jìn)制表征值。該系列器件采用多個模擬輸入復(fù)用到一個采樣保持電路。采樣保持電路的輸出與轉(zhuǎn)換器的輸入相連接。轉(zhuǎn)換器通過逐次逼近法產(chǎn)生10 位二進(jìn)制值,并將轉(zhuǎn)換結(jié)果保存在ADC結(jié)果寄存器(ADRESL:ADRESH)中。
整個控制系統(tǒng)的設(shè)計,首先考慮的是門開關(guān)對LED燈的亮滅控制及對保鮮模塊啟動的控制,本文將RB4 引腳作為門開關(guān)的狀態(tài)輸入引腳,將RB6 作為LED 燈的控制引腳,將RB2 作為保鮮模塊的控制引腳。RB4 置0,表明冰箱門是打開狀態(tài),這時將RB6 置1,即LED 燈亮,當(dāng)RB4 變?yōu)? 時,說明冰箱門關(guān)閉,這時將RB6 置0 的同時把RB2 置1,啟動保鮮模式,保鮮在開啟1h 后關(guān)閉。其次是對壓縮機(jī)和風(fēng)機(jī)的控制,本文將RC1 作為冷凍傳感器采集數(shù)據(jù)輸入引腳;RC2 作為冷藏傳感器采集數(shù)據(jù)輸入引腳;RC3 作為壓縮機(jī)控制引腳;RC5 作為PWM 輸出引腳;RA0 作為風(fēng)機(jī)控制引腳。當(dāng)RC1 或RC2 的值大于18 時,要分別將RC3 和RA0 置1,打開壓縮機(jī)和風(fēng)機(jī),同時PWM 的輸出為100Hz,當(dāng)RC1 且RC2 的值小于25時,分別將RC3 和RA0 置0,關(guān)閉壓縮機(jī)和風(fēng)機(jī),同時PWM 的輸出為40Hz。最后是對冰箱化霜的控制,本文將RC6(低電平有效)作為化霜控制引腳,RC0 作為蒸發(fā)傳感器數(shù)據(jù)采集值輸入引腳。當(dāng)壓縮機(jī)累計運(yùn)行8h 的時候,化霜開始即將RC6 置0,此時分別將RC3 和RA0 置0,關(guān)閉壓縮機(jī)和風(fēng)機(jī),同時PWM 的輸出為40Hz。當(dāng)化霜加熱器工作30min 或蒸發(fā)傳感器數(shù)據(jù)采集值大于16 時,化霜停止,即RC6 置1。
對于整個控制系統(tǒng)中的時間控制,本文采用的是中斷函數(shù)控制,對不同的時間控制設(shè)定了不同的時間標(biāo)志位,實(shí)現(xiàn)了準(zhǔn)確的控制。因為RC0、RC1、RC2 是傳感器數(shù)據(jù)采集引腳,所以這三個引腳都設(shè)置成模擬輸入端,其余的都設(shè)置為數(shù)字輸入/輸出引腳。PIC16f690 的引腳總匯如圖2所示。
圖2 PIC16f690 引腳總匯
RA1 外接的是掉點(diǎn)檢測電路,該電路主要針對各種原因造成的瞬時掉電采取立即保護(hù)措施,防止來電后壓縮機(jī)的頻繁啟停對壓縮機(jī)造成損傷。RA3 外接的是復(fù)位電路,用于當(dāng)單片機(jī)系統(tǒng)在運(yùn)行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時候,按下復(fù)位按鈕內(nèi)部的程序自動從頭開始執(zhí)行,其中,與電阻并聯(lián)的二極管起到了加快電容放電速度的作用。RA4、RA5 是外接的晶振電路,用于給單片機(jī)提供必要的外部振蕩源。
圖3 硬件電路圖
單片機(jī)可以用匯編語言編程, 也可以用高級語言C、Basic 編程,也可以用圖形化語言編程。本文采用的是C語言的編程,函數(shù)的開始首先需要對引腳的端口進(jìn)行初始化,包括端口方向的設(shè)置、初值的設(shè)置以及分頻比等的設(shè)置。然后就是一個大的While 的死循環(huán)調(diào)用,這樣通過對門開關(guān)函數(shù)、壓縮機(jī)和風(fēng)機(jī)開關(guān)機(jī)函數(shù)以及化霜函數(shù)的調(diào)用和判斷,實(shí)現(xiàn)了對所用功能的控制。圖4 為整個程序的控制流程圖。部分程序代碼如下:
圖4 控制流程圖
以PIC16f690 單片機(jī)為基礎(chǔ),通過對各個引腳的功能分配及硬件電路的設(shè)計,對冰箱部分功能進(jìn)行了C 語言程序的編寫。整個程序利用軟件進(jìn)行了不斷的仿真和調(diào)試,實(shí)現(xiàn)了對冰箱的LED 燈、保鮮模塊、壓縮機(jī)和風(fēng)機(jī)及化霜的控制。
[1] 李學(xué)海.PIC 單片機(jī)實(shí)用教程-提高篇[M].北京:北京航空航天大學(xué)出版社,2002.
[2] 余永權(quán),汪明慧,黃英.單片機(jī)在控制系統(tǒng)中的應(yīng)用[M].北京:電子工業(yè)出版社,2003.
[3] 竇振中,汪立森.PIC 系列單片機(jī)應(yīng)用設(shè)計與實(shí)例[M].北京:北京航空航天大學(xué)出版社,2001.
[4] 汪睿.淺談PIC 單片機(jī)的使用[J].安慶科技,2012(1):38-41.
[5] 張春芝,馮海明.電冰箱單片機(jī)控制系統(tǒng)的設(shè)計[J].北京工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報,2002(3):21-26.