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