O 引言
近年來(lái),LED顯示屏由于具有亮度高,,壽命長(zhǎng),,功耗小,性能穩(wěn)定,,驅(qū)動(dòng)簡(jiǎn)單以及可視距離遠(yuǎn)等優(yōu)點(diǎn),,已經(jīng)成為新一代的信息傳播媒體工具。目前,,LED顯示屏應(yīng)用十分廣泛,,如證券交易顯示、金融信息顯示,、體育場(chǎng)館顯示比賽信息,、廣告,,城市廣場(chǎng)群顯示、道路交通信息顯示等領(lǐng)域,。顯示漢字信息時(shí),,一般需要多個(gè)LED點(diǎn)陣顯示組合,最常見(jiàn)的組合方式有8x8,,16×16,,32×16等。由于顯示屏的顯示信息有限,,當(dāng)顯示信息較多時(shí),,一般需要進(jìn)行分批顯示或者滾動(dòng)顯示。
Proteus是目前最先進(jìn),、最完整的多種型號(hào)微處理器系統(tǒng)的仿真設(shè)計(jì)平臺(tái),,由ISIS和ARES兩個(gè)構(gòu)成,其中ISIS是一款智能電路原理圖輸入系統(tǒng)軟件,,可作為電子系統(tǒng)仿真平臺(tái),,ARES是一款高級(jí)布線編輯軟件,用于制作PCB印制電路板,。開(kāi)發(fā)者可以在無(wú)硬件條件下直接使用Pro-teus進(jìn)行電路設(shè)計(jì)和仿真調(diào)試,,真正實(shí)現(xiàn)了在計(jì)算機(jī)中完成電路原理圖設(shè)計(jì)、電路分析與仿真,、系統(tǒng)測(cè)試到形成印制電路板的完整電子設(shè)計(jì),、研發(fā)過(guò)程。因此,,本課題利用AT89C5l單片機(jī)作為主控制器,,采用Proteus軟件實(shí)現(xiàn)對(duì)16×16 LED點(diǎn)陣漢字的分批顯示.仿真運(yùn)行通過(guò)后再進(jìn)行點(diǎn)陣顯示電路制作,大大縮減實(shí)際開(kāi)發(fā)周期,,節(jié)約了開(kāi)發(fā)成本,。
1 硬件電路設(shè)計(jì)
在很多LED顯示的場(chǎng)合,需要實(shí)現(xiàn)一系列LED點(diǎn)陣漢字的分批顯示,,為簡(jiǎn)化設(shè)計(jì),,每批只顯示2個(gè)漢字,分若干次完成全部顯示,。利用Proteus ISIS平臺(tái)畫(huà)出的硬件電路如圖l所示,。
該硬件電路的核心是利用單片機(jī)讀取顯示字型碼,通過(guò)驅(qū)動(dòng)電路對(duì)16×16共陰極LED點(diǎn)陣進(jìn)行動(dòng)態(tài)列掃描,,以實(shí)現(xiàn)點(diǎn)陣漢字的分批顯示,。設(shè)計(jì)選用的單片機(jī)為Atrnel公司的AT89C51,它是一種低功耗,,高性能CMOS 8位單片機(jī),,片內(nèi)含4 KB可反復(fù)擦寫(xiě)的FLASH ROM,,采用Atmel公司的高密度、非易失性存儲(chǔ)技術(shù)制造,,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及8051引腳結(jié)構(gòu),,內(nèi)置看門(mén)狗電路。功能強(qiáng)大的AT89C5l可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案,。時(shí)鐘電路用于產(chǎn)生單片機(jī)工作時(shí)所必需的時(shí)鐘信號(hào),,其中晶振頻率為12 MHz。上電復(fù)位電路可保證單片機(jī)的在程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),,重啟運(yùn)行,。
顯示單元是LED漢字顯示屏,由2片16×16 LED點(diǎn)陣模塊組成,。但由于Proteus軟件目前版本中還沒(méi)有16×16點(diǎn)陣模塊,,設(shè)計(jì)中采用Pro-teus軟件中的4個(gè)8×8點(diǎn)陣模塊組合成1個(gè)16×16點(diǎn)陣模塊。點(diǎn)陣漢字的陽(yáng)極驅(qū)動(dòng)是由單片機(jī)的PO口和P2口各自經(jīng)過(guò)一片輸出緩沖器74LS273向4個(gè)8×8 LED點(diǎn)陣輸出字型碼作為行驅(qū)動(dòng)信號(hào),;點(diǎn)陣的陰極驅(qū)動(dòng)由P1.0~P1.3經(jīng)過(guò)4-16線譯碼器74HCl54譯碼后輸出列選信號(hào),,對(duì)4個(gè)8×8點(diǎn)陣進(jìn)行列掃描,從而控制LED點(diǎn)陣的相應(yīng)像素點(diǎn)亮,。2個(gè)LED點(diǎn)陣漢字中的列選信號(hào)則分別由P3.O和P3.1控制來(lái)選擇相應(yīng)的74HCl54,,因此需要兩片74HCl54譯碼器。RP1為排阻,,含有8個(gè)電阻,,作為PO口各位的上拉電阻,以保證PO口能夠輸出高電平,。
2 點(diǎn)陣漢字分批顯示原理與軟件設(shè)計(jì)
16×16共陰極LED點(diǎn)陣由4個(gè)8×8點(diǎn)陣構(gòu)成,,需要顯示漢字字符串“單片機(jī)仿真!”,可通過(guò)建立數(shù)據(jù)表格的形式進(jìn)行,。通過(guò)16×16點(diǎn)陣漢字字模提取軟件,,可提取各顯示漢字的字模數(shù)據(jù),詳見(jiàn)程序設(shè)計(jì)中的顯示字符代碼表1,。
在進(jìn)行漢字分批輸出顯示時(shí)采用動(dòng)態(tài)掃描驅(qū)動(dòng)方式,可按行或列進(jìn)行掃描,。當(dāng)按“列”掃描時(shí),,需要建立列的掃描代碼表如下:
現(xiàn)以列掃描為例,闡述16×16 LED點(diǎn)陣漢字分批顯示原理,。在初始化設(shè)置(關(guān)顯示)后,,首先,P1送出第1列掃描代碼,,同時(shí)使P3=0xFD選中U2的74HCl54和U4,,對(duì)P0輸出段碼給左邊漢字上半部的第1列以驅(qū)動(dòng)相應(yīng)段點(diǎn)亮,;接著,使P3=OxFA選中U2的74HCl54和U5,,對(duì)P2輸出段碼值給左邊漢字下半部的第1列以驅(qū)動(dòng)相應(yīng)段點(diǎn)亮,,即送出了第一個(gè)漢字“單”的第1列的字模數(shù)據(jù)(16位段碼值);再設(shè)置P3=0xF5選中U3的74HC-l54和U4,,對(duì)P0輸出段碼給右邊漢字的上半部的第1列以驅(qū)動(dòng)相應(yīng)段點(diǎn)亮,。接著,使P3=OxF9亦選中U3的74HCl54和U5,,對(duì)P2輸出段碼值給由邊漢字下半部的第1列以驅(qū)動(dòng)相應(yīng)段點(diǎn)亮,,即送出了第2個(gè)漢字“片”的第1列的字模數(shù)據(jù)(16位段碼值)。然后,,給P1送第2列的掃描代碼,,同理再送出第1個(gè)漢字“單”、第2個(gè)漢字“片”的各自第2列的字模數(shù)據(jù),,…如此進(jìn)行,,經(jīng)過(guò)16次列掃描,分時(shí)送完兩個(gè)漢字的各自16個(gè)段碼值,,就可顯示第1批漢字“單”,、“片”;再進(jìn)行第2批漢字“機(jī)”,、“仿”的顯示,;…,直到漢字字符串顯示完成,。若字符顯示完畢,,又從頭開(kāi)始循環(huán)顯示。LED點(diǎn)陣漢字分批顯示的程序流程如2所示,。在某一時(shí)刻,,只有1行或1列發(fā)光二極管被對(duì)應(yīng)的字模數(shù)據(jù)驅(qū)動(dòng)點(diǎn)亮,但只要掃描間隔時(shí)間合適(一般為數(shù)毫秒),,利用人眼的視覺(jué)暫留特性,,看上去整批字符就顯示在LED點(diǎn)陣顯示器上。
主要的C語(yǔ)言源程序如下:
3 程序調(diào)試與仿真
(1)生成目標(biāo)代碼文件,。利用Proteus平臺(tái)在進(jìn)行仿真時(shí),,需要加載程序到單片機(jī)中,加載的程序?yàn)槟繕?biāo)代碼文件.HEX,。方法是:利用單片機(jī)軟件仿真系統(tǒng)Keil UVsion3,,在新建項(xiàng)目中選擇AT89C51單片機(jī)作為CPU,同時(shí)將創(chuàng)建C語(yǔ)言源程序文件并將其加載到新建項(xiàng)目中。在“P-roject”下拉菜單中,,選擇“Options for Target”對(duì)話框,,在對(duì)話框中選中“Output”選項(xiàng)卡中的“Create HEX File”選項(xiàng)。在“Proje-ct”下拉菜單中選擇“RebuiId all Target Files”選項(xiàng),,編譯成功后將生成.HEX目標(biāo)代碼文件,。
(2)調(diào)試與仿真:在Proteus ISIS平臺(tái)中,按圖1畫(huà)出硬件電路,,單擊鼠標(biāo)右鍵將AT89C51單片機(jī)選中并單擊鼠標(biāo)左鍵,,彈出“Edit Comp-onent”對(duì)話框,在其中的“Clock Freqlaency”欄中設(shè)置單片機(jī)晶振頻率為12 MHz,,在“Program File”欄選擇生成的.HEX文件,。保存設(shè)計(jì),生成.DSN文件,。在“Debug”菜單中選擇“Execute”,,可得到仿真運(yùn)行效果。仿真調(diào)試成功后,,可看見(jiàn)“單片機(jī)仿真!”點(diǎn)陣漢字的分批顯示,。顯示次序?yàn)?ldquo;單片-機(jī)仿-真!”,其中“機(jī)仿”如圖3所示,。通過(guò)Keil與Proteus的聯(lián)合調(diào)試取得了良好的效果,。
4 結(jié)語(yǔ)
在嵌入式系統(tǒng)仿真平臺(tái)Proteus的基礎(chǔ)上,實(shí)現(xiàn)對(duì)16×16 LED點(diǎn)陣漢字分批顯示的仿真設(shè)計(jì),,實(shí)現(xiàn)了“單片機(jī)仿真!”六個(gè)漢字的分批顯示,,達(dá)到了良好的設(shè)計(jì)效果。該仿真電路接近于實(shí)際電路,,再使用ProteusARES軟件在仿真原理圖的基礎(chǔ)上直接繪制PCB電路板,,即可以制作出實(shí)際的點(diǎn)陣式LED分批漢字顯示屏。該顯示屏電路結(jié)構(gòu)簡(jiǎn)潔,,可靠性高,,成本低且易于實(shí)現(xiàn),軟件通過(guò)適當(dāng)修改即可實(shí)現(xiàn)其他顯示功能如滾動(dòng)顯示等,,顯示靈活,,適用領(lǐng)域廣泛。通過(guò)Proteus的前期仿真為L(zhǎng)ED顯示屏系統(tǒng)的設(shè)計(jì)開(kāi)發(fā)大大縮短了開(kāi)發(fā)周期,,降低了開(kāi)發(fā)成本,,同時(shí)也為單片機(jī)應(yīng)用系統(tǒng)、電子電路的開(kāi)發(fā)設(shè)計(jì)等提供了一種嶄新的設(shè)計(jì)方法和有效手段,。