高速SoC在雙基色LED屏中的應(yīng)用
1 高速SoC單片機(jī)C8051F040特征
C8051F040系列器件是完全集成的混合信號(hào)片上系統(tǒng)型MCU,具有64個(gè)數(shù)字I/O 引腳,片內(nèi)集成了1個(gè)CAN2.0B控制器。其主要特性有: (1)高速流水線(xiàn)結(jié)構(gòu)的8051兼容的CIP-51內(nèi)核(可達(dá)25 MIPS);(2)全速非侵入式的在系統(tǒng)調(diào)試接口(片內(nèi)) 64 KB(C8051F040/1/2/3/4/5)可在系統(tǒng)編程的Flash存儲(chǔ)器,(4K+256)B的片內(nèi)RAM,尋址空間為64 KB的外部數(shù)據(jù)存儲(chǔ)器接口和硬件實(shí)現(xiàn)的SPI、SMBus/I2C和兩個(gè)UART串行通信接口,片內(nèi)集成看門(mén)狗定時(shí)器和VDD監(jiān)視器和溫度傳感器,具有時(shí)鐘振蕩器的C8051F04x系列器件,是真正能獨(dú)立工作的片上系統(tǒng)。所有模擬和數(shù)字外設(shè)均可由用戶(hù)固件使能/禁止和配置。Flash存儲(chǔ)器還具有在系統(tǒng)重新編程能力,可用于非易失性數(shù)據(jù)存儲(chǔ),并允許現(xiàn)場(chǎng)更新8051固件。每個(gè)MCU都可在工業(yè)溫度范圍(-45℃~+85℃)工作, 工作電壓為2.7 V~3.6 V。端口I/O、RST和JTAG 引腳都允許5 V 的輸入信號(hào)電壓。
2 LED硬件電路及顯示工作原理
2.1 驅(qū)動(dòng)方式
當(dāng)向LED器件施加正向電壓時(shí),流過(guò)的電流使其發(fā)光。因此,LED的驅(qū)動(dòng)問(wèn)題就轉(zhuǎn)化為如何使PN結(jié)處于正向偏置的問(wèn)題。為了控制它的發(fā)光強(qiáng)度,還要解決其正向電流的調(diào)節(jié)問(wèn)題。驅(qū)動(dòng)方法分為直流驅(qū)動(dòng)、恒流驅(qū)動(dòng)和脈沖驅(qū)動(dòng)。
2.1.1直流驅(qū)動(dòng)
直流驅(qū)動(dòng)是最簡(jiǎn)單的驅(qū)動(dòng)方法。LED的工作點(diǎn)由電源電壓、串聯(lián)電阻和LED器件的伏安特性共同決定。這種驅(qū)動(dòng)方式適合LED器件較少、發(fā)光強(qiáng)度恒定的情況。
2.1.2 恒流驅(qū)動(dòng)
LED器件的正向特性較陡,加上器件的分散性,使得在同樣電源電壓和同樣限流電阻的情況下,各器件的正向電流并不相同,從而引起發(fā)光強(qiáng)度的差異。若對(duì)LED器件進(jìn)行恒流驅(qū)動(dòng),只要恒流值相同,發(fā)光強(qiáng)度就比較接近。晶體管的輸出特性具有恒流特性,因此可用晶體管驅(qū)動(dòng)LED。
2.1.3 脈沖驅(qū)動(dòng)
利用人眼的視覺(jué)惰性,采用LED器件重復(fù)通斷電的方式使之點(diǎn)亮,就是脈沖驅(qū)動(dòng)方式。脈沖驅(qū)動(dòng)主要應(yīng)用于掃描驅(qū)動(dòng)和占空比驅(qū)動(dòng)兩個(gè)方面。掃描驅(qū)動(dòng)主要目的是節(jié)約驅(qū)動(dòng),簡(jiǎn)化電路。占空比控制的目的是調(diào)節(jié)器件的發(fā)光強(qiáng)度,用于圖像顯示中的灰度控制。在實(shí)際應(yīng)用中往往是兩方面組合在一起使用。
2.1.4常用LED顯示屏驅(qū)動(dòng)
目前普遍采用的是串行控制驅(qū)動(dòng)方式,就是將顯示的數(shù)據(jù)通過(guò)串行方式送入點(diǎn)驅(qū)動(dòng)電路,多采用4953+74HC595作為驅(qū)動(dòng)。
2.2 LED硬件電路介紹
256 B雙色LED屏主要由32塊8×8 LED模塊、32片74HC595、8片4953、2片74HC245和2片74HC138組成。LED屏按其電路分為接口電路、驅(qū)動(dòng)電路、譯碼電路和列數(shù)據(jù)電路?,F(xiàn)對(duì)接口電路數(shù)據(jù)線(xiàn)作介紹。
A、B、C、D:行掃描信號(hào)線(xiàn),決定16行中的哪一行點(diǎn)亮;
R1、R2:紅色LED列數(shù)據(jù);
G1、G2:綠色LED列數(shù)據(jù);
CK:74HC595串行數(shù)據(jù)移位信號(hào),上升沿將數(shù)據(jù)存入驅(qū)動(dòng)模塊中的串行寄存器;
ST:74HC595數(shù)據(jù)鎖存信號(hào),上升沿將串行數(shù)據(jù)存入并行數(shù)據(jù)寄存器,同時(shí)屏體顯示更新;
EN:74HC138片選信號(hào),有效時(shí)屏體點(diǎn)亮。
2.3 LED工作原理介紹
2.3.1 LED列數(shù)據(jù)電路分析
LED屏主要由顯示點(diǎn)陣以及行列驅(qū)動(dòng)電路組成,顯示點(diǎn)陣多采用64×32板組成。由于LED發(fā)光器件數(shù)目較多,通常采用掃描驅(qū)動(dòng)方式。掃描驅(qū)動(dòng)電路通常采用多行的同名列共用一套列驅(qū)動(dòng)器。行驅(qū)動(dòng)器的行連到電源的一端,列驅(qū)動(dòng)器的列連到電源的另外一端,當(dāng)行驅(qū)動(dòng)選擇第i行,列驅(qū)動(dòng)器選擇第j列時(shí),相應(yīng)的LED就點(diǎn)亮??刂齐娐分饕?fù)責(zé)有序地選通各行,在選通每一行之前還要把該行各列的數(shù)據(jù)準(zhǔn)備好。采用掃描方式進(jìn)行顯示時(shí),每行有一個(gè)行驅(qū)動(dòng)器,各行的同名列共用一個(gè)列驅(qū)動(dòng)器。行譯碼器給出行有效信號(hào),從第一行開(kāi)始,按順序依次對(duì)各行進(jìn)行掃描。根據(jù)列鎖存器的數(shù)據(jù)確定該列是否接通,接通的列就在該行點(diǎn)亮。當(dāng)一行的持續(xù)掃描時(shí)間結(jié)束后,下一行又以同樣的方法進(jìn)行顯示。每行都掃描一遍后,又從第一行開(kāi)始下一個(gè)周期的掃描。只要掃描周期的時(shí)間比人眼閃爍臨界時(shí)間短,就感覺(jué)不出數(shù)據(jù)的更替,這是編寫(xiě)軟件的重要思想步驟。
LED顯示屏采用74HC595作為列驅(qū)動(dòng)電路,該芯片具備以下功能:具有8 bit的串入并出的移位寄存器和一個(gè)8 bit輸出鎖存器,移位寄存器和輸出鎖存器的控制各自獨(dú)立,因此當(dāng)?shù)谝恍袛?shù)據(jù)鎖存到行線(xiàn)上時(shí),其內(nèi)部同時(shí)通過(guò)移位寄存器組織第二行數(shù)據(jù),這使得行數(shù)據(jù)準(zhǔn)備與顯示可以同時(shí)進(jìn)行。對(duì)于列準(zhǔn)備數(shù)據(jù),它具有串入并出的移位功能,對(duì)于列顯示數(shù)據(jù)具有并行鎖存的功能。
2.3.2 LED行掃描電路分析
行掃描電路選用74HC138譯碼器,但由于該芯片驅(qū)動(dòng)能力有限,因此在它的輸出端再接上8片4953(每片可以驅(qū)動(dòng)兩行)以增強(qiáng)行驅(qū)動(dòng)能力。138譯碼器ABC 3條信號(hào)線(xiàn)可產(chǎn)生8 bit輸出信號(hào),每次選通一片4953即可對(duì)應(yīng)其中一行,如果此時(shí)對(duì)應(yīng)列鎖存輸出數(shù)據(jù)到線(xiàn)上,則該行二極管導(dǎo)通,顯示數(shù)據(jù)。
本文LED雙色板采用16線(xiàn)掃描方式,用ABCD 4條掃描線(xiàn)結(jié)合2片74HC138產(chǎn)生16線(xiàn)掃描信號(hào)。
3 LED顯示屏對(duì)單片機(jī)控制系統(tǒng)的要求
對(duì)于一個(gè)可正常顯示且不閃爍的LED顯示屏,其正常刷新頻率理論上至少不能少于50場(chǎng)/s。但實(shí)測(cè)表明只有大于55場(chǎng)/s(一場(chǎng)掃描時(shí)間大約18 ms)時(shí),人眼才不會(huì)感覺(jué)到閃爍。對(duì)于64×32 LED來(lái)說(shuō),處理1 B的時(shí)間為70.3 ?滋s,平均指令條數(shù)為T(mén)b/1.5=70.3/1.5=47條。C8051F040晶振頻率為22.118 4 MHz,時(shí)鐘周期為0.045 ?滋s,C8051F040 70%的指令執(zhí)行周期為1~2個(gè)時(shí)鐘周期,故平均指令執(zhí)行時(shí)間為2×0.045 ?滋s=0.9 ?滋s,滿(mǎn)足LED顯示控制要求。
4 C8051F040與LED硬件電路
C8051F040與LED連接圖如圖1所示。
本電路采用C8051F040的P2口和P3口的高3位控制LED顯示,其中P2口的高4位連接138譯碼器的4根地址信號(hào)線(xiàn)(ABCD),分別是P2.7接A、P2.6接B、P2.5接C、P2.4接D、P2.3接G1、P2.2接G2、P2.1接CK、 P2.0接ST、P3.7接EN、 P3.6接R1、P3.5接R2。時(shí)鐘顯示電路選用PCF8563P芯片,采用I2C總線(xiàn)控制方式,SDA和SCL分別接P1.3、P1.2。溫度電路采用18B20芯片,采用單總線(xiàn)控制方式,SDA接P0.3。
5 C8051F040控制LED軟件介紹
(1) 功能介紹
這顯主要介紹C8051F040控制LED分屏顯示日期、時(shí)間和溫度。按照?qǐng)D1所示的硬件連接,行掃描軟件地址可分配為0x00、0x80、0x40、0xc0、0x20、0xa0、0x60、0xe0、0x10、0x20、0x90、0x50、0xd0、0x30、0xb0、0x70、0xf0,編寫(xiě)程序時(shí)將根據(jù)以上地址進(jìn)行行掃描。
(2) 軟件流程圖
C8051F040控制LED的主程序流程圖如圖2所示,顯示程序流程圖如圖3所示。
(3) C8051F040源程序
C8051F040的源程序如下。
(1)系統(tǒng)時(shí)鐘配置
void SYSCLK_Init (void)
{ int i = 0;
SFRPAGE = CONFIG_PAGE;
OSCXCN = 0x67;
for (i = 0; i 3000; i++);
// Wait 1ms for initialization
while ((OSCXCN 0x80) == 0);
CLKSEL = 0x01;
OSCICN = 0x00; }
(2)系統(tǒng)端口配置
void PORT_Init()
{ SFRPAGE = CONFIG_PAGE;
//st SFR page before writing to XBR0 = 0x04
//允許UART0、RX、TX連到2個(gè)端口引腳XBR0=00000100 P1MDOUT = 0xf0; //推挽輸出
P2MDOUT = 0xff;
P3MDOUT=0xff;
P4MDOUT=0x00; //漏極開(kāi)漏輸出
P4 |= 0xff; //寫(xiě)1禁止低端輸出驅(qū)動(dòng)器
P0MDOUT |= 0x01; //使能TX0作為推挽輸出
XBR2 = 0x42;
}
(4) PCF8563與C8051F040的連接
PCF8563與C8051F040之間的硬件連接圖如圖4所示。
(5) PCF8563初始化流程
PCF8563初始化流程圖如圖5所示。
(6) DS18B20與C8051F040的連接
DS18B20與C8051F040之間的硬件連接圖如圖6所示。
(7) DS18B20測(cè)溫系統(tǒng)
DS18B20測(cè)溫系統(tǒng)流程圖7所示。
本文主要介紹了LED顯示的工作原理、硬件電路組成以及對(duì)單片機(jī)控制系統(tǒng)的要求等,利用C8051F040的特有優(yōu)勢(shì)實(shí)現(xiàn)對(duì)LED的有效控制,可以直接驅(qū)動(dòng)LED,不需要在控制板上再加一級(jí)總線(xiàn)驅(qū)動(dòng)器,節(jié)約系統(tǒng)資源。本文還給出了具體部分軟件流程圖和源程序代碼,可根據(jù)硬件連接圖連接后正常顯示運(yùn)行。本文在LED顯示屏的應(yīng)用中具有一定的參考和應(yīng)用價(jià)值。
評(píng)論