基于GMS87C1404的干洗機自動(dòng)控制系統設計
關(guān)鍵詞:?jiǎn)纹瑱C;MCU;干冼機;VFD;GMS87C1404
1 概述
GMS87C1404是韓國HYNIX半導體公司(前身是韓國現代半導體公司)采用CMOS技術(shù)生產(chǎn)的8位單片機,它具有功耗低、速度高等特點(diǎn),并具有豐富的片內資源。GMS87C1404采用28腳封裝,有23個(gè)I/O口。由于該單片機的性?xún)r(jià)比高,因此,近兩年來(lái)在國內家電行業(yè)中獲得了越來(lái)越多的應用。
筆者依據GMS87C1404的特點(diǎn)和干洗機中自動(dòng)控制系統的要求設計了一個(gè)基于GMS87C1404的干洗機自動(dòng)控制系統。該系統在使用了一段時(shí)間后獲得了滿(mǎn)意的效果。
2 GMS87C1404的特點(diǎn)
圖1是GMS87C1404的引腳圖。它的主要特點(diǎn)如下:
●內帶4kROM和192字節在片RAM(包括堆棧);
●8MHz時(shí)的指令周期為0.25μs;
●工作電壓范圍為2.5~5.5V;
●具有8位雙向多功能I/O口,可直接驅動(dòng)LED顯示;
●內含8位A/D轉換器;
●內含1個(gè)8位時(shí)間間隔定時(shí)器;
●內含4個(gè)8位定時(shí)/計數器;
●內含2個(gè)10位高速PWM模式;
●內含WATCHDOG定時(shí)器;
●帶有1個(gè)8位SPI串行接口;
●具有12個(gè)中斷源;
●具有1個(gè)可編程蜂鳴器驅動(dòng)口;
●可支持省電模式STOP;
●可選用RC振蕩。
GMS87C1404中的四個(gè)定時(shí)器/計數器不僅可以作為四個(gè)8位定時(shí)器/計數器使用,同時(shí)通過(guò)對定時(shí)方式寄存器TM0、TM1和TM2、TM3中有關(guān)位的設置還可以使它們工作在如下7種定時(shí)方式:
(1)8位計數器和8位捕捉方式;
(2)8位捕捉方式和8位比較輸出方式;
( 3)8位定時(shí)/計數10位PWM方式;
( 4)16位定時(shí)器方式;
( 5)16位計數器發(fā)生;
(6)16位捕捉方式;
(7)16位比較輸出方式。
另外,除了T0、T1、T2、T3四個(gè)定時(shí)器以外,GMS87C1404還有一個(gè)時(shí)間間隔定時(shí)器BITR,該時(shí)間間隔定時(shí)器只要一上電就一直運行而不能停止。它的時(shí)鐘源可以是RC振蕩器也可以是主振經(jīng)分頻后的信號。只要對CKCTLR寄存器中的BTCL位進(jìn)行置1操作,就可以使BITR清零并重新向上計數,當計數計到FF并溢出后,芯片中的計數器/定時(shí)器便產(chǎn)生 BIT中斷。因此,它可以作為在STOP方式下的片內喚醒定時(shí)器使用,同時(shí)也可以作為WATCHDOG定時(shí)器使用或其它定時(shí)器使用。
GMS87C1404中共有12個(gè)中斷,分別為4個(gè)外部中斷、4個(gè)定時(shí)中斷、ADC中斷、WDT中斷、BIT中斷和SPI中斷。這些中斷中的每一個(gè)都具有各自的優(yōu)先級,并且中斷可以嵌套。
GMS87C1404的蜂鳴器輸出功能使得用戶(hù)可以方便地選用無(wú)源蜂鳴器,該器件通過(guò)RBFUN和BUR寄存器的設置可以使RB1腳輸出交替變化的方波以用于驅動(dòng)蜂鳴器。其方波的頻率為:
f(Hz)=fxin/[2分頻系數(BUR+1)]
其中的分頻系數和BUR的值均可以由BUR寄存器來(lái)確定。
除了片內所具有的WATCHDOG電路外,電源跌落檢測(PFD)電路是GMS87C1404的又一個(gè)獨特之處。對PFDR寄存器進(jìn)行適當的設置可以使其在Vdd上的電壓下降到2.5~3.5V的范圍內,或使用2.0~3.0V電壓范圍內的保持時(shí)間超過(guò)50ns。通過(guò)該電源跌落檢測電路還可以使MCU復位。跌落的電壓是在OTP編程時(shí)由CONFIG寄存器的PFD位決定的。正是這一特點(diǎn)提高了GMS87C1404的抗干擾和抗死機的能力。
GMS87C1404的指令系統共有202條指令,其功能極為豐富。它不但包括了乘法和除法指令,同時(shí)還具有7條16位運算操作比較指令,這七條比較指令分別為ADDWdp、CMPWdp、DECWdp、INCWdp、LDYAdp、STYAdp和SUBWdp。通過(guò)這些指令可大大簡(jiǎn)化復雜和多字節的運算編程操作,提高編程的效率。
3 干洗機自動(dòng)控制系統的設計
干洗機是通過(guò)液泵將洗滌劑加入到內桶中的衣物里并通過(guò)內桶或外桶之間低速交替的正反轉動(dòng)使洗滌劑與衣物上的油漬污漬充分作用、分解后再經(jīng)過(guò)高速旋轉甩掉被分解和多余的洗滌劑,然后通過(guò)蒸餾烘干來(lái)完成衣物的干洗過(guò)程。其中低速轉換的時(shí)間、高速甩干的時(shí)間和烘干的時(shí)間及烘干的溫度對被洗衣物的干洗效果至關(guān)重要,因此,這些環(huán)節不但要給予控制,而且要能預置、調節和存儲記憶。圖2是干洗機自動(dòng)控制系統的電原理框圖。
該干洗機自動(dòng)控制系統以GMS87C1404為核心元件,通過(guò)鍵盤(pán)和VFD(熒光數碼顯示)屏來(lái)實(shí)現人機交互。其外部輸入信號包括溫度、門(mén)控和過(guò)載信號。其中溫度信號直接經(jīng)GMS87C1404中的A/D轉換處理后可在VFD屏上顯示出來(lái);而門(mén)控和過(guò)載信號實(shí)際上是開(kāi)關(guān)量信號,這些信號經(jīng)兩路光耦隔離后進(jìn)入GMS87C1404。GMS87C1404根據用戶(hù)設定的參數和外部輸入的信號再經(jīng)程序處理后由驅動(dòng)電路驅動(dòng)9只繼電器,進(jìn)而實(shí)現對干洗機低速電機的正反轉動(dòng)、液泵電機、高速電機(高速1、高速2)、加熱烘干電熱器、風(fēng)機電機、蒸餾閥門(mén)以及冷卻水閥門(mén)的控制,并對各執行部件之間復雜的邏輯關(guān)系和相互制約關(guān)系進(jìn)行協(xié)調控制。同時(shí),在運行過(guò)程中,還需要對低速轉動(dòng)時(shí)間、高速甩干時(shí)間和烘干時(shí)間采用倒計時(shí)方式進(jìn)行顯示,當烘干的溫度超過(guò)35度時(shí)自動(dòng)打開(kāi)冷卻水,以減緩烘干溫度的上升速度,當烘干溫度超過(guò)設定溫度時(shí)則關(guān)閉電加熱器。電路中的 EEPROM選用24C01并通過(guò)二線(xiàn)I2C協(xié)議和GMS87C1404進(jìn)行通信,以實(shí)現對設置參數的存儲記憶。本干洗機自動(dòng)控制系統設有全自動(dòng)和半自動(dòng)兩種工作方式。
由于GMS87C1404的I/O口數量有限,因此要實(shí)現5個(gè)端口對11個(gè)鍵信號的采集,就需采用鍵盤(pán)來(lái)完成設計。本系統采用雙向鍵盤(pán)方案。圖3所示是該方案的鍵盤(pán)電路原理圖。在該電路的5個(gè)口中,先將RC4、RC3作為輸出,RC5、RC6、RD2作為輸入,通過(guò)RC3、RC4進(jìn)行掃描來(lái)讀入RC5、 RC6、RD2口的值,從而獲得K1、K2、K3、K5、K7、K9、K11的鍵值;然后再反過(guò)來(lái)將RC3、RC4作為輸入,RC5、RC6、RD2口設為輸出,并對RC5、RC6、RD2進(jìn)行掃描以讀入RC3、RC4口的值,從而得到K2、K4、K6、K8、K10的健值。這樣就可有效地利用較少的 I/O口來(lái)實(shí)現對較多的鍵信號的采集。
因為VFD屏具有高亮度,可設置簡(jiǎn)單圖形和動(dòng)態(tài)顯示的特點(diǎn),因而很適合用在干洗機中。本系統采用靜態(tài)VFD屏,該屏具有6位數碼和19個(gè)圖形文字符號共61個(gè)筆段。驅動(dòng)電路采用四片CS6210串聯(lián)來(lái)完成,每片CS6210可驅動(dòng)16個(gè)筆段。 GMS87C1404可通過(guò)3線(xiàn)串行接口將要顯示的數據送往CS6210。然后由CS6210根據所輸入的數據在相應的引腳輸出對應的VFD屏所需的- 24V電壓以點(diǎn)亮相應的筆劃。
干洗機自動(dòng)控制系統的主程序圖如圖4所示,其中的安全備份程序用于提高該系統的可靠性。雖然GMS87C1404已經(jīng)提供了性能良好的WATCHDOG電路和PFD功能,但二者僅能在干擾信號達到一定程度時(shí)給出復位信號以保證不死機。而斷點(diǎn)的現場(chǎng)恢復以及機器的不間斷運行還需要通過(guò)軟件來(lái)加以實(shí)現。因此,設計時(shí)可通過(guò)軟件將數據備份程序運行過(guò)程中那些關(guān)鍵的數據拷貝在RAM區域中一些未使用的區域。下面是數據備份程序BACKUP和數據恢復程序 RESTORE的程序清單。
BACKUP: LDX#01H;備份數據的起始地址
在初始化程序中,系統首先通過(guò)CHECK(自定義)寄存器與某一個(gè)定值(如 01010101B)進(jìn)行比較來(lái)判斷本次復位是上電復位還是因干擾后的WATCH-DOG或PFD復位,如果是上電復位,系統則正常初始化,并置 CHECK為設定值,否則系統將通過(guò)RE-STORE程序將原先的BACKUP數據進(jìn)行恢復,然后再部分初始化并進(jìn)入主程序直接運行,從而實(shí)現程序斷點(diǎn)的現場(chǎng)恢復和整機無(wú)異常感覺(jué)的連續運行,另外,也可以在程序中的一些關(guān)鍵處設置軟件陷阱,這樣,一旦程序因干擾而沒(méi)有按正常的運行途徑運行而進(jìn)入陷阱時(shí),系統就會(huì )跳到RESTORE進(jìn)行數據恢復并使運行程序恢復到正常的運行次序,從而確保系統的可靠運行。
參考文獻1.GMS87C1404 User's Manual.HYUNDAI MicroElectronics
評論