基于Proteus與匯編語言的漢字點陣動態(tài)顯示
0 引言
Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它可以仿真、分析各種模擬器件和集成電路,該軟件的特點是:a.實現(xiàn)了單片機仿真和SPICE電路仿真相結(jié)合。具有模擬電路、數(shù)字電路仿真、單片機及其外圍電路的仿真、各種虛擬儀器,如示波器等功能。b.支持主流單片機系統(tǒng)的仿真。c.提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點等調(diào)試功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。d.具有強大的原理圖繪制功能。Proteus軟件的使用徹底改變了傳統(tǒng)單片機學(xué)習(xí)和開發(fā)方式,初學(xué)者可以在沒有實驗硬件條件下進(jìn)行仿真實驗,開發(fā)者可以直接用Proteus進(jìn)行電路設(shè)計和仿真運行程序,運行成功后再制作產(chǎn)品,縮短開發(fā)周期,節(jié)約開發(fā)成本。漢字點陣顯示電路設(shè)計時,顯示部分應(yīng)用16×16點陣字模提取軟件,提取“廣東工貿(mào)”顯示漢字的字模數(shù)據(jù),通過查表取出字模數(shù)據(jù)送輸出動態(tài)顯示。
1 漢字顯示電路設(shè)計
漢字點陣的控制電路采用AT89C51單片機,硬件電路由單片機接口電路、LED顯示屏行列驅(qū)動電路、LED點陣顯示屏三部分組成,如圖1所示,電路用Proteus軟件畫出,具體畫法參見文獻(xiàn)。
一般情況下要完全顯示出常用漢字至少需要16×16點陣,但由于Proteus元件庫中沒有16×16LED模塊,為了達(dá)到顯示要求,每個漢字可由四塊8×8 LED模塊組成。組合方式為先對每個8×8模塊行列引腳連接好總線,然后四個單色模塊組合緊密。
驅(qū)動電路采用動態(tài)掃描驅(qū)動方式,設(shè)計中行驅(qū)動信號采用了16個同向驅(qū)動器7407,并在每根信號線上接上拉電阻;列驅(qū)動信號先接-4-16譯碼器74HCl54,然后十六個列驅(qū)動信號接16個反向驅(qū)動器7406,并每根信號線接上拉電阻。
單片機上電復(fù)位后,當(dāng)按列掃描時,四個漢字的第一個字由Pl口輸出列信號,首先第l列輸出“1”,第l列字模數(shù)據(jù)由16行輸出(P0、P2口);然后延時一定時間后,第2列輸出“l”,第2列字模數(shù)據(jù)再由16行輸出;……;如此循環(huán),直至第16列;16列掃描完成后,再進(jìn)行下一次循環(huán)掃描。所以在某一時刻,只有一行或一列LED被對應(yīng)的字模數(shù)據(jù)驅(qū)動點亮。只要掃描間隔時間合適,利用人眼的視覺暫留特性,看上去整個字符就顯示在LED點陣顯示器上。[!--empirenews.page--]
2 漢字顯示程序設(shè)計
根據(jù)以上硬件電路和單片機控制原理,編程思路如圖2所示。
完整的程序代碼如下:
MOV DPTR,#WORDTAB;初始化
MOV Rl,#0
MOV R2,#0
MOV R3,#16
MOV R4,#100
MOV R5,#4
LOOP:SETB P1.4
MOV A,R1 :查表取出字模數(shù)據(jù)經(jīng)P0口輸出
MOVC A,@A+DPTR
CPLA
MOVP0,A
INC R1 ;字模數(shù)據(jù)索引值加1
MOVA,R1 ;查表取出字模數(shù)據(jù)經(jīng)P2口輸出
MOVC A,@A+DPTR
CPLA
MOVP2,A
INC R1 ;字模數(shù)據(jù)索引值加1
MOV P1,R2 ;列控制信號輸出
INC R2 ;列控制寄存器加1
LCALL DELAY;顯示延時
DJNZ R3,LOOP;判斷16列顯示完否
DJNZ R4,K1 ;判斷是否已顯示100次
MOV R4,#100 ;顯示次數(shù)寄存器重賦初值
SJMPK2
K1:CLRC ;字模數(shù)據(jù)索引值減32,列控制寄存器和列數(shù)寄存器重賦初值[!--empirenews.page--]
3 仿真及結(jié)果
仿真方法是:
(1)在Keil C51仿真軟件下創(chuàng)建項目,并把上述源程序添加到項目中,通過編譯產(chǎn)生一個“.hex”為后綴的文件,此文件就是用于燒寫到Proteus軟件中AT89C51芯片的文件。
(2)把生成的“.hex”為后綴的文件添加到Proteus軟件中繪制的AT89C51芯片中作為控制程序。
(3)在Proteus軟件仿真電路圖中點擊左下角的運行按鈕,則可在LED顯示點陣中看到“廣東工貿(mào)”四個漢字輪流顯示的結(jié)果。
從仿真圖中可以看到“東”字在LED顯示點陣中顯示出來,設(shè)定每個字顯示1秒,下秒將顯示“工”字,“廣東工貿(mào)”四個字循環(huán)顯示。四個字顯示出來如圖3所示。