兩種LED顯示方式應(yīng)用對比
SCN:掃描使能控制。當(dāng)SCN=0 時,掃描被禁止,包括顯示掃描和鍵盤掃描;當(dāng)SCN=1 時,掃描被使能。 2.2 系統(tǒng)硬件連接 BC7281 在顯示時采用高速二線接口與MCU 進(jìn)行通訊,只占用很少的I/O 口資源和主機(jī)時間,兩根線分別為數(shù)據(jù)線DAT 和同步時鐘線CLK。DAT:與MCU 串行通訊數(shù)據(jù)端,為雙向數(shù)據(jù)傳輸口,作為輸出時為漏極開路輸出,需要外接上拉電阻;CLK:與MCU 通訊時鐘端,下降沿有效。 接口空閑時,BC7281 的DAT 引腳處于高阻輸入狀態(tài),上拉電阻使得DAT 線上為高電平。開始傳送數(shù)據(jù)時,MCU 必須先與BC7281 建立握手信號,MCU 先向BC7281 發(fā)送若干CLK 時鐘脈沖, 同時檢測DAT 線,而BC7281 收到握手脈沖后會在DAT 線上輸出一低電平, 表示準(zhǔn)備好接收MCU 數(shù)據(jù),MCU 檢測到DAT 低電平后,在規(guī)定時間內(nèi)繼續(xù)發(fā)送一個CLK 脈沖,提示BC7281 將DAT 引腳恢復(fù)高阻輸入狀態(tài),使得DAT 線恢復(fù)成高電平,MCU 在檢測該高電平后, 可以開始發(fā)送數(shù)據(jù)。在每個CLK 的下降沿,數(shù)據(jù)移入存儲器。 串行接口數(shù)據(jù)寬度為8 位, 兩個字節(jié)一組構(gòu)成一條完整指令。指令格式如下: 顯示電路連接如下(僅畫出主要引腳): 2.3 程序部分代碼 顯示部分代碼如下: 3.兩種顯示方式應(yīng)用對比 系統(tǒng)最早采用的是MAX7219 的顯示方式。 MAX7219 在硬件連接上要比BC7281 簡單很多, 但是在使用中偶發(fā)不穩(wěn)定現(xiàn)象, 特別是級聯(lián)多片(>=3)MAX7219 使用的情況下, 發(fā)生死機(jī)狀況; 后來換成BC7281 的顯示方式,系統(tǒng)整體穩(wěn)定性大幅提高。而且使用BC7281 芯片, 系統(tǒng)初始化比MAX7219 簡單,其多數(shù)寄存器可以缺省值設(shè)置,占用的I/O 資源較少,且成本相對具備優(yōu)勢。
引言
本文研究采用了MAX7219 和BC7281 控制芯片來實現(xiàn)對LED的顯示和控制的不同。
1.MAX7219 顯示方式應(yīng)用
1.1 MAX7219 簡介
MAX7219 是MAXIM 公司生產(chǎn)的8 位7 段LED串行輸入/ 輸出共陰顯示驅(qū)動芯片,目前針對它的應(yīng)用介紹較多[1,2]。MAX7219 提供了諸多寄存器,允許使用者對譯碼顯示、顯示亮度、掃描限制等諸多方面進(jìn)行控制。
1.2 系統(tǒng)硬件連接
MAX7219 與單片機(jī)有三根引線連接:DIN、CLK 和LOAD。DIN 是串行數(shù)據(jù)輸入端,CLK 為時鐘頻率,LOAD 用來鎖存信號。
單片機(jī)以16 位數(shù)據(jù)包的形式將二進(jìn)制數(shù)逐位發(fā)送到DIN 端,在CLK 的每一個上升沿將一位數(shù)據(jù)移入MAX7219 的移位寄存器。在16 位數(shù)據(jù)傳送過程中,LOAD 一定要維持低電平,當(dāng)16 位數(shù)據(jù)移入完,LOAD必須在第16 個CLK 上升沿同時或之后, 但在下一個CLK 上升沿之前變高,將數(shù)據(jù)裝入內(nèi)部相應(yīng)寄存器,否則數(shù)據(jù)將丟失。在多片MAX7219 級聯(lián)使用時,還需要將上一片的DOUT 引腳連接到下一片的DIN,CLK 與LOAD 引腳公用。
16 位數(shù)據(jù)格式如下:
顯示電路連接如下(僅畫出主要引腳):
1.3 程序部分代碼
顯示部分代碼如下:
2.BC7281 顯示方式應(yīng)用
2.1 BC7281 簡介
BC7281 是16 位LED 數(shù)碼管顯示及鍵盤接口專用芯片,其各位可獨立按不同的譯碼或不譯碼顯示,可獨立控制閃爍屬性及顯示亮度,并可隨時改變閃爍頻率。
BC7281 內(nèi)部包括16 個顯示寄存器和15 個控制寄存器,地址范圍從00H-1FH;其中顯示寄存器的地址為00H-0FH, 而最為常用的控制寄存器是工作模式寄存器,地址12H,其各數(shù)據(jù)位意義如下:
MOD:移位寄存器模式控制。當(dāng)MOD=0,適用于一般移位寄存器,如74HC164 等;當(dāng)MOD=1,適用于帶有二級鎖存的移位寄存器,如74HC595 等。
INV:段驅(qū)動數(shù)據(jù)輸出極性控制。當(dāng)INV=0 時,各位顯示寄存器的數(shù)據(jù)直接通過移位寄存器輸出作為段驅(qū)動數(shù)據(jù);當(dāng)INV=1 時,顯示寄存器的內(nèi)容經(jīng)過反相后才從移位寄存器輸出。
KMS:鍵盤工作模式選擇。
BMS:閃爍控制模式選擇。當(dāng)BMS=0 時,采用一個閃爍開關(guān)控制寄存器(10H) 控制各顯示位的閃爍屬性,第8-15 個顯示位不能單獨控制;當(dāng)BMS=1 時,工作于擴(kuò)展模式,由10H 控制0-7 位的閃爍屬性,由擴(kuò)展控制寄存器19H 控制8-15 位的閃爍屬性。
ES:節(jié)能模式。該位置為1 時,有效驅(qū)動電流減小為正常狀態(tài)的一半(顯示亮度隨之降低)。
KO:顯示關(guān)閉模式。該位置為1 時,顯示掃描關(guān)閉,但鍵盤仍保持工作。(顯示寄存器內(nèi)容不被刪除,并可以更新)。
RP:寄存器保護(hù)模式。當(dāng)RP=1 時,BC7281 內(nèi)部的寄存器不能夠直接改寫。