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