用AT90S1200代換顯示驅(qū)動(dòng)芯片MC14499的應(yīng)用電路
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 MC14499簡介
MC14499 是Motorola公司生產(chǎn)的串行輸入BCD十進(jìn)制輸出的CMOS集成塊,它內(nèi)含BCD譯碼器和串行接口,可以與任何CPU接口連接,在比較復(fù)雜的單片機(jī)控制系統(tǒng)中,MC14499具有占用I/O少、控制顯示器多、功耗低、使用方便等優(yōu)點(diǎn),因而得到廣泛的應(yīng)用。但其缺點(diǎn)是用它來實(shí)現(xiàn)顯示系統(tǒng)比較復(fù)雜,并且成本太高。隨著技術(shù)的飛速發(fā)展和微處理性能價(jià)格比的較高,人們可以采用高性價(jià)比的MCU來代換它,這也許是一個(gè)趨勢(shì),如用力源PS7219代換 MAX7219等。筆者用AT90S1200來代換CM14499,取得了非常好的效果。AT90S1200是一種性能非常優(yōu)異的RISC單片機(jī),它可以與主CPU并行工作,而且功耗也特別你,在性能上完全與MC14499兼容,由其組成的顯示系統(tǒng)非常簡單。另外,它的一個(gè)最突出的優(yōu)點(diǎn)是操作靈活,并可在 MC14499接口的基礎(chǔ)上增加SPI接口、I2C及單線傳輸?shù)裙δ堋?/p>
MC14499片內(nèi)主要包括移位寄存器、鎖存器、多路輸出、譯碼驅(qū)動(dòng)器及振蕩器,由多路輸出從鎖存器中取出的BCD碼數(shù)據(jù)經(jīng)段譯碼器譯碼后送至八段輸出腳,片內(nèi)振蕩信號(hào)經(jīng)四分頻后接至I~I(xiàn)V四條位控制線對(duì)顯示器進(jìn)行輪流掃描,以實(shí)現(xiàn)動(dòng)態(tài)掃描顯示。
MC14499一次可接收20位串行輸入數(shù)據(jù),MC14499的前四位為4個(gè)LED顯示器的小數(shù)點(diǎn)選擇位,后16位是4個(gè)LED顯示器的BCD碼輸入數(shù)據(jù),高位在前,低位在后,當(dāng)EN由高變低時(shí),MC14499的寄存器開始接收串行數(shù)據(jù)。
MC14499采用雙列直播式18腳DIP封裝形式。圖1所示是它的引腳排列示意圖。
2 AT90S1200的主要特點(diǎn)
AT90S1200單片機(jī)是由ATMEL公司推出的RISC(reduced Instruction Set cpu)單片機(jī),它充分吸取了PIC及8051的優(yōu)點(diǎn),并發(fā)揮了其自身Flash存儲(chǔ)器技術(shù)特長。從而使AT90S1200具有非常優(yōu)異的性能。其特點(diǎn)如下:
●具有大電流(10~20mA)輸出特性,可直接驅(qū)動(dòng)LED顯示、繼電器、SSR固態(tài)繼電器等。片內(nèi)看門狗定時(shí)器具有安全保護(hù)功能,可防止程序走飛,從而提高了產(chǎn)品的抗干擾能力。
● 內(nèi)部帶有價(jià)格低廉的可擦寫1000次以上的1k字節(jié)FLASH,速度高,功耗低,并具有sleep功能,可分別在空閑、掉電及省電模式下實(shí)現(xiàn)低功耗。在 1MHz時(shí)呆實(shí)現(xiàn)1MIPS的處理能力,AT90S1200采用單周期執(zhí)行指令,耗電在1mA~3mA之間。(睡眠時(shí)的典型損耗電流≤1μA)。
●帶有高度保密但可多次燒寫的FLASH,具有多重保密保護(hù)鎖死功能,可低價(jià)快速完成產(chǎn)品商品化生產(chǎn)。
●有串行異步通訊UART口,不占用定時(shí)器和SCI傳輸功能,其高速性能可使其工作在一般標(biāo)準(zhǔn)整數(shù)頻率,它的波特率可達(dá)576k,并帶有系統(tǒng)可編程SPI接口。
●采用超功能簡精指令:具有32個(gè)通用工作寄存器,可靈活使用指令運(yùn)算,并支持功能強(qiáng)大C語言編程,易學(xué)易用。
●AT90S1200內(nèi)置比較器,I/O口可作A/D轉(zhuǎn)換用,內(nèi)含一個(gè)8位定時(shí)器/計(jì)時(shí)器。
●具有三個(gè)固定中斷向量地址,分別為:外部中斷、內(nèi)部定時(shí)器中斷、片內(nèi)模擬比較器輸出中斷,可實(shí)時(shí)快速響應(yīng),適用于實(shí)時(shí)控制系統(tǒng)。
●是一種可重設(shè)啟動(dòng)復(fù)位器件,具有內(nèi)部電源開關(guān)啟動(dòng)計(jì)數(shù)器,可將低電平復(fù)位(RESET)直接接到Vcc端。當(dāng)電源打開時(shí),利用內(nèi)部的RC看門狗定時(shí)器可延遲MCU啟動(dòng)執(zhí)行程序,這種延時(shí)可以使I/O在穩(wěn)定后執(zhí)行程序,以提高單片機(jī)的工作可靠性。
●AT90S1200器件內(nèi)置1MHz工作頻率RC振蕩器,這使得單片機(jī)無需外加振蕩元器件即可工作,因而設(shè)計(jì)使用簡單方便。
●具有可描寫100000次的EEPROM(64個(gè)字節(jié)),為掉電后的數(shù)據(jù)保存提供方便。
●工作電壓范圍為2.7V~6.0V,具有較強(qiáng)的電源抗干擾能力。
3 代換電路
用AT90S1200代換KMC14499的電路連接如圖2所示,其中AT90S1200的RST為復(fù)位引腳,可直接接至高電平,并在內(nèi)部復(fù)位,A~G為7段,DP為小數(shù)點(diǎn),Ⅰ~Ⅳ為四位位選信號(hào)輸出,可用于從顯示器吸收電源。
可以看出,圖2所示電路非常簡單,只需外接8只電阻即可驅(qū)動(dòng)四位動(dòng)態(tài)顯示,阻值可根據(jù)LED數(shù)碼管的性能在200~500Ω之間選擇,筆者使用200Ω,亮度很高,且功耗很低,這一些需24小時(shí)工作的場(chǎng)合很適用,可直接代換MC14499.和主EN為使能信號(hào),只有EN為低時(shí)才接收數(shù)據(jù),CLK為時(shí)鐘信號(hào),使用AT90S1200的中斷口pd2,可快速反應(yīng)實(shí)時(shí)接收,data為串行數(shù)據(jù)輸入端,在CLK的下降沿,data線上的數(shù)據(jù)被移入到內(nèi)部20位移位寄存器中。
[!--empirenews.page--]
4 軟件設(shè)計(jì)
使用AT90S1200直接代換MC14499完成顯示功能時(shí),系統(tǒng)軟件可采和AVR精簡指令的匯編語言編寫,并可采用模塊化結(jié)構(gòu)設(shè)計(jì)。為達(dá)到 MC14499的通訊速度,對(duì)串行數(shù)據(jù)的接收采用中斷方式處理,使用內(nèi)置振蕩器,WDT可使用外部中斷接收CLK信號(hào),AT90S1200具有89條指令代碼,且全部為單字節(jié)指令,可進(jìn)行十位數(shù)字運(yùn)算,在32個(gè)工作寄存器中只有16~31個(gè)寄存器可執(zhí)行立即數(shù)據(jù)的操作,并支持C語言編程,而且靈活方便,下面給出用AT90S1200代換MC1449的顯示數(shù)據(jù)轉(zhuǎn)換子程序和接收數(shù)據(jù)子程序。
4.1 驅(qū)動(dòng)顯示子程序
由于AT90S1200不能查表。故在顯示子程序中應(yīng)分別進(jìn)行處理,主程序內(nèi)使用了通用寄存器R26中帶為的接收BCD碼,并通過本子程序轉(zhuǎn)換為段碼,仍由R26帶出并返回到調(diào)用程序處,本示例為0、1、2、3、4五個(gè)字段碼的轉(zhuǎn)換:
Data:CPI R26,$00 ;數(shù)據(jù)0的轉(zhuǎn)換
BRNE Data0
LDI R26,$7B
RJMP DataD
Data0:CPI R26,$01 ;數(shù)據(jù)1由BCD轉(zhuǎn)換為段碼
BRNE Datal
LDI R26,$48
RJMP DataD
Datal:CPI R26,$02 ;數(shù)據(jù)2的轉(zhuǎn)換
BRNE Data2
LDI R26,$D3
RJMP DataD
Data2:CPI R26,$03 ;數(shù)據(jù)3的轉(zhuǎn)換
BRNE Data3
LDI R26,$D9
RJMP DataD
Data CPI R26,$04 ;數(shù)據(jù)4的轉(zhuǎn)換
BREN Data4
LDI R26,$E8
RJMP DataD
…
DataD:RET
[!--empirenews.page--]
4.2 數(shù)據(jù)接收子程序
首先把狀態(tài)寄存器的數(shù)據(jù)送到R18暫存,然后分別接收小數(shù)點(diǎn)及四位BCD碼,并將數(shù)據(jù)寄存在R20、R21、R22、R23、R24中,程序如下:
PROG:IN R18,SREG ;狀態(tài)標(biāo)志寄存
CLC
SBIC PIND,0
SEC
ROL R29
ROL R28
ROL R27
INC R16
CPI R16,$14
BRNE PROGD
MOV R20,R27;小數(shù)點(diǎn)位置位的接收,寄存在R20
ANDI R20,$0F
MOV R21,R28 ;顯示首位數(shù)據(jù)接收
SWAP R21
ANDI R21,$0F
MOV R22,R28 ;第二位接收
ANDI R22,$0F
MOV R23,R29 ;第三位接收
SWAP R23
ANDI R23,$0F
MOV R24,R29 ;第四位接收
ANDI R24,$0F
CLR R16
CLR R27
CLR R38
CLR R29
CPI R24,$0A
BRL0 RPOGD
CLR R20
LDI R21,$0F
LDI R22,$0F
LDI R23,$0F
LDI R24,$00
PROGD RETI
5 結(jié)束語
文中所述的方案已被成功應(yīng)用于無功補(bǔ)償控制器的顯示系統(tǒng)中,經(jīng)使用表明:AT90S1200不僅可以完全取代MC14499進(jìn)行驅(qū)動(dòng)顯示,而且還具有功耗低、使用方便的特獨(dú)性能,僅用8只外接電阻即可驅(qū)動(dòng)四位動(dòng)態(tài)顯示系統(tǒng),且接口非常靈活,可方便地與任何單片機(jī)接口,并可編程為串行同步接口、I2C接口、 SPI接口等,更重要的是提出了一種用MCU代換ADIC設(shè)計(jì)方案和實(shí)現(xiàn)思路,并經(jīng)過實(shí)用表明完全可行,也比較有實(shí)用價(jià)值。