多種串行接口技術(shù)在LED大屏幕顯示系統(tǒng)中應(yīng)用
1 系統(tǒng)總體結(jié)構(gòu)組成
如圖1所示,系統(tǒng)的組成電路由以下4部分組成:LED顯示屏、以P87LPC767單片機(jī)為核心的驅(qū)動(dòng)電路、PC機(jī)與單片機(jī)的通信電路和由24C16器件組成的I2C總線接口電路。為了節(jié)約井口,本系統(tǒng)采用了以下3種串行方式傳遞數(shù)據(jù)。
1.1 I2C串行總線接口
P87LPC767的I2C總線符合標(biāo)準(zhǔn)的I2C總線規(guī)范,總線工作的時(shí)鐘信號可由P87LPC767自動(dòng)產(chǎn)生,但數(shù)據(jù)卻是以位的方式發(fā)送和接受的,因此他的控制軟件較為復(fù)雜,但卻更為靈活。本系統(tǒng)P87LPC767的I2C總線上接24C16存儲(chǔ)器,就構(gòu)成了一個(gè)I2C系統(tǒng),解決了大屏幕顯示屏顯示漢字所需大量數(shù)據(jù)信息的存儲(chǔ)。P87LPC767是主控機(jī)(主機(jī)),串行時(shí)鐘信號由他產(chǎn)生,他將數(shù)據(jù)寫入24C16為主發(fā)送,從24C16中讀取數(shù)據(jù)為主接收,24C16只能是被控機(jī)(從機(jī))。主發(fā)送工作方式是指P87LPC767作為主控機(jī)向被控機(jī)發(fā)送數(shù)據(jù)的傳送過程,發(fā)送和接收各有2種方式:
(1)單純地發(fā)或讀從機(jī)的數(shù)據(jù);
(2)發(fā)或讀從機(jī)指定地址的數(shù)據(jù)。
1.2異步串行通訊接口
上位機(jī)PC用于對顯示信息進(jìn)行編輯和對漢字進(jìn)行提取,讀取漢字字模的基本步驟:
(1)獲取漢字的機(jī)內(nèi)碼;
(2)通過漢字推算區(qū)位碼;
(3)由區(qū)位碼計(jì)算出漢字在字庫中的位置offset:offset=[(區(qū)碼一1)×94+(位碼一1)]32;從該偏移地址讀取32B,就是相關(guān)漢字的點(diǎn)陣字模代碼。通信功能利用VisualC++6.0提供的MSComm通信控件,把字體的字模信息(根據(jù)顯示屏所需格式進(jìn)行重排)通過串行口分段發(fā)送給單片機(jī),單片機(jī)再通過12C總線發(fā)送給串行E2PROM進(jìn)行存儲(chǔ)。
1.3 軟件實(shí)現(xiàn)串行數(shù)據(jù)傳送接口
由軟件實(shí)現(xiàn)2路串行數(shù)據(jù)的輸出以完成顯示屏行和列數(shù)據(jù)的要求,下面是串行輸出1 B數(shù)據(jù)的軟件源代碼:
sbit clk=PO^ 0;
sbit dat=P1^ 7;
unsigned char bdata senddata;
sbit sendbit=senddata^7;
vid sendbyte(void)
{
int i;
POMl=0x00;
POM2=0x41;
P1M1=0x00;
P1M2=0X80;
elk=0;
for(=1;i=8;i++)
{
clk=0;
dat=sendbitl;
clk=1;
senddata=senddata1;
}
clk=0;}
可以看出,只要給出senddata數(shù)據(jù)就可以在P1^7腳串行輸出該數(shù)據(jù)。通過改變elk,dat腳及輸出模式選擇可方便實(shí)現(xiàn)在其他管腳的串行數(shù)據(jù)輸出功能。
2 結(jié) 語
采用多種串行接口技術(shù),使新型的單片機(jī)P87LPC767能在大屏幕顯示中應(yīng)用。P87LPC767可工作在20MHz時(shí)鐘頻率,避免了顯示屏越大,其他單片機(jī)頻率底而出現(xiàn)的閃爍現(xiàn)象。經(jīng)過調(diào)試,顯示屏工作穩(wěn)定,已用于一些商場及公共場所,效果良好。
評論