肖娟
摘要:LED點(diǎn)陣電子顯示屏有色彩鮮艷、亮度高、工作穩(wěn)定、功耗低、安裝方便等優(yōu)點(diǎn),廣泛應(yīng)用于各種公共場(chǎng)合,如廣告屏、宣傳欄、銀行叫號(hào)器等。本文主要討論使用8×8LED點(diǎn)陣模塊組成的16×16發(fā)光點(diǎn)陣,由實(shí)現(xiàn)單個(gè)漢字的顯示原理過(guò)渡到多個(gè)漢字的動(dòng)態(tài)循環(huán)顯示。通過(guò)掌握單片機(jī)控制16×16LED點(diǎn)陣屏的漢字顯示方法,能夠設(shè)計(jì)并制作基于16×16LED點(diǎn)陣屏的漢字顯示系統(tǒng)。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);LED點(diǎn)陣;漢字顯示;驅(qū)動(dòng)電路
LED點(diǎn)陣顯示器一般由基本點(diǎn)陣單元組成,它的屏體部分由微處理器(主要是單片機(jī))和驅(qū)動(dòng)電路控制運(yùn)行,能夠顯示圖像或文字。本文通過(guò)單片機(jī)來(lái)控制16X16點(diǎn)陣漢字系統(tǒng)的運(yùn)行,采用逐行掃描的方式實(shí)現(xiàn)漢字的顯示,主要分為兩大部分:控制部分和LED點(diǎn)陣顯示屏??刂撇糠值男酒茿T89S51單片機(jī),利用c語(yǔ)言編程并下載程序,從而實(shí)現(xiàn)對(duì)單片機(jī)各個(gè)引腳的控制;LED點(diǎn)陣顯示屏包括驅(qū)動(dòng)電路和4個(gè)8X8點(diǎn)陣模塊,74LSl38譯碼器輸出控制顯示屏的行掃描,單片機(jī)端口直接驅(qū)動(dòng)列,通過(guò)對(duì)行列驅(qū)動(dòng)電路的動(dòng)態(tài)控制來(lái)實(shí)現(xiàn)漢字的顯示。用點(diǎn)陣LED實(shí)現(xiàn)漢字顯示,將從以下幾個(gè)方面進(jìn)行討論。
一、LED點(diǎn)陣基礎(chǔ)知識(shí)
單色LED點(diǎn)陣,是將很多單個(gè)LED按照矩陣的形式排列,通過(guò)控制每一個(gè)LED發(fā)光或熄滅,來(lái)顯示各種復(fù)雜字符或圖形。圖像由很多“像素”組成,通過(guò)LED點(diǎn)陣來(lái)顯示,就構(gòu)成了整個(gè)圖像。為節(jié)約成本,點(diǎn)陣顯示往往采用動(dòng)態(tài)掃描的方式顯示。單色8X8點(diǎn)陣實(shí)物圖和結(jié)構(gòu)圖如下圖a,b所示,從圖中可以看出,8X8點(diǎn)陣共由64個(gè)發(fā)光二極管組成,每個(gè)發(fā)光二極管放在行線和列線的交叉點(diǎn)上,當(dāng)對(duì)應(yīng)的某一行(H端)置1,某一列(L端)置0,則行列交叉位置的發(fā)光二極管被點(diǎn)亮。
二、LED點(diǎn)陣顯示原理
簡(jiǎn)單的漢字顯示屏的制作,由單片機(jī)控制漢字的顯示內(nèi)容,為了降低成本,16X16點(diǎn)陣使用了四塊8X8模塊,下面介紹16X 16點(diǎn)陣顯示原理。如下圖顯示漢字“無(wú)”。
我們把要顯示的點(diǎn)用二進(jìn)制1表示,不顯示的點(diǎn)用0表示。將字型數(shù)據(jù)分成上下兩個(gè)8行,共16行,每行各占16列,如果每列分別用一位二進(jìn)制數(shù)表示,這樣每行將占用兩個(gè)字節(jié)。因此,一個(gè)漢字可以用32個(gè)字節(jié)的點(diǎn)陣碼來(lái)表示。如果采用逐行掃描方式,要在16X 16點(diǎn)陣上顯示一個(gè)字符,則要把需要用到的漢字的字模以表格形式存儲(chǔ)到單片機(jī)中,每一行以適當(dāng)?shù)乃俣确謨纱蝹魉蛿?shù)據(jù)(左右兩部分),16行全部送完后,就可顯示出一幀漢字。LED有一定的響應(yīng)時(shí)間和余輝效應(yīng),如果給它的電平持續(xù)時(shí)間很短,如1us將不能充分點(diǎn)亮,一般要求電平持續(xù)時(shí)間是1ms左右。當(dāng)一個(gè)LED點(diǎn)亮后撤掉電平,它不會(huì)立即熄滅,這樣從左到右掃描完一幀,看起來(lái)就是同時(shí)亮的。了解漢字的顯示原理之后,如何得到漢字的字模信息呢?可以先描點(diǎn)畫圖像再轉(zhuǎn)換,也可以利用漢字字模生成軟件,來(lái)獲取字符的點(diǎn)陣字模。
三、LED點(diǎn)陣驅(qū)動(dòng)電路
如果僅使用一只8X8LED點(diǎn)陣作為顯示器件,可以采用8只數(shù)碼管動(dòng)態(tài)顯示的驅(qū)動(dòng)電路,如果要顯示更多像素點(diǎn),則需要將多個(gè)8X8點(diǎn)陣組合使用,用四塊8X8點(diǎn)陣可以組成16X16點(diǎn)陣,需要行線和列線各16根來(lái)驅(qū)動(dòng)電路,可以采用鎖存器和譯碼器等電路來(lái)驅(qū)動(dòng)。如果要顯示更多點(diǎn),則需要更多LED點(diǎn)陣模塊組合,更多顯示驅(qū)動(dòng)電路。下面的點(diǎn)陣編程應(yīng)用中使用74LSl38譯碼器來(lái)作為行驅(qū)動(dòng)。
四、LED點(diǎn)陣編程應(yīng)用
基于以上LED點(diǎn)陣的基本知識(shí)和漢字顯示原理,可以編程實(shí)現(xiàn)16X16漢字點(diǎn)陣上輪流顯示“新年快樂(lè)”。原理圖如下.
16X16漢字點(diǎn)陣由4個(gè)8X8點(diǎn)陣組成,將一個(gè)漢字點(diǎn)陣分成16行16列,橫向逐行掃描、取模,字節(jié)倒序。四個(gè)74LSl38譯碼器作為行驅(qū)動(dòng),片選信號(hào)分別受P23,P24,P25,P26引腳電平控制。我們將一個(gè)漢字分成上下兩部分,每部分有8行16列,每一行又分成左右兩部分,每個(gè)數(shù)據(jù)占一個(gè)字節(jié)。點(diǎn)陣上半部分,首先輸出第一行左邊一個(gè)字節(jié)的數(shù)據(jù),再輸出右邊的數(shù)據(jù),二至八行同理,直到輸出完上半部分所有數(shù)據(jù);下半部分和上半部分類似,逐行輸出每行從左到右,這樣,從P1口總共輸出32個(gè)字節(jié),即構(gòu)成一個(gè)漢字。當(dāng)一個(gè)漢字顯示完一段時(shí)間,則取下一個(gè)漢字的32個(gè)字節(jié)輸送,如此顯示完四個(gè)漢字,又從第一個(gè)漢字開(kāi)始循環(huán)。關(guān)鍵是要找出每一個(gè)漢字起始字節(jié)在數(shù)組中的位置,從起始位置開(kāi)始取連續(xù)32個(gè)字節(jié)。指向每個(gè)漢字點(diǎn)陣開(kāi)始位置,用k=32*m表示,m從0開(kāi)始取0到3。源程序如下:
五、結(jié)論
總之,學(xué)習(xí)用點(diǎn)陣LED實(shí)現(xiàn)漢字顯示,要掌握LED點(diǎn)陣顯示原理,能夠理解驅(qū)動(dòng)電路原理圖,選擇漢字橫向還是縱向取模,根據(jù)電路圖找到顯示漢字的合適方法。理解漢字之間怎么過(guò)渡,找到每一個(gè)漢字點(diǎn)陣的32個(gè)字節(jié)第一個(gè)字節(jié)在數(shù)組當(dāng)中的位置,思路要清晰,編好程序并且反復(fù)調(diào)試。