Proteus軟件的使用徹底改變了傳統單片機學習和開發方式,初學者可以在沒有實驗硬件條件下進行仿真實驗,開發者可以直接用Proteus進行電路設計和仿真運行程序,運行成功后再制作產品,縮短開發周期,節約開發成本。
0 引言
Proteus ISIS是英國Labcenter公司開發的電路分析與實物仿真軟件。它可以仿真、分析各種模擬器件和集成電路,該軟件的特點是:
a.實現了單片機仿真和 SPICE電路仿真相結合。具有模擬電路、數字電路仿真、單片機及其外圍電路的仿真、各種虛擬儀器,如示波器等功能。
b.支持主流單片機系統的仿真。
c.提供軟件調試功能。在硬件仿真系統中具有全速、單步、設置斷點等調試功能;同時支持第三方的軟件編譯和調試環境,如Keil C51 uVision2等軟件。
d.具有強大的原理圖繪制功能。Proteus軟件的使用徹底改變了傳統單片機學習和開發方式,初學者可以在沒有實驗硬件條件下進行仿真實驗,開發者可以直接用Proteus進行電路設計和仿真運行程序,運行成功后再制作產品,縮短開發周期,節約開發成本。漢字點陣顯示電路設計時,顯示部分應用16×16點陣字模提取軟件,提取“廣東工貿”顯示漢字的字模數據,通過查表取出字模數據送輸出動態顯示。
1 漢字顯示電路設計
漢字點陣的控制電路采用AT89C51單片機,硬件電路由單片機接口電路、LED顯示屏行列驅動電路、LED點陣顯示屏三部分組成,如圖1所示,電路用Proteus軟件畫出,具體畫法參見文獻。
一般情況下要完全顯示出常用漢字至少需要16×16點陣,但由于Proteus元件庫中沒有16×16LED模塊,為了達到顯示要求,每個漢字可由四塊8×8 LED模塊組成。組合方式為先對每個8×8模塊行列引腳連接好總線,然后四個單色模塊組合緊密。
驅動電路采用動態掃描驅動方式,設計中行驅動信號采用了16個同向驅動器7407,并在每根信號線上接上拉電阻;列驅動信號先接-4-16譯碼器74HCl54,然后十六個列驅動信號接16個反向驅動器7406,并每根信號線接上拉電阻。
單片機上電復位后,當按列掃描時,四個漢字的第一個字由Pl口輸出列信號,首先第l列輸出“1”,第l列字模數據由16行輸出(P0、P2口);然后延時一定時間后,第2列輸出“l”,第2列字模數據再由16行輸出;……;如此循環,直至第16列;16列掃描完成后,再進行下一次循環掃描。所以在某一時刻,只有一行或一列LED被對應的字模數據驅動點亮。只要掃描間隔時間合適,利用人眼的視覺暫留特性,看上去整個字符就顯示在LED點陣顯示器上。
2 漢字顯示程序設計
根據以上硬件電路和單片機控制原理,編程思路如圖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 :查表取出字模數據經P0口輸出
MOVC A,@A+DPTR
CPLA
MOVP0,A
INC R1 ;字模數據索引值加1
MOVA,R1 ;查表取出字模數據經P2口輸出
MOVC A,@A+DPTR
CPLA
MOVP2,A
INC R1 ;字模數據索引值加1
MOV P1,R2 ;列控制信號輸出
INC R2 ;列控制寄存器加1
LCALL DELAY;顯示延時
DJNZ R3,LOOP;判斷16列顯示完否
DJNZ R4,K1 ;判斷是否已顯示100次
MOV R4,#100 ;顯示次數寄存器重賦初值
SJMPK2
K1:CLRC ;字模數據索引值減32,列控制寄存器和列數寄存器重賦初值
3 仿真及結果
仿真方法是:
(1)在Keil C51仿真軟件下創建項目,并把上述源程序添加到項目中,通過編譯產生一個“.hex”為后綴的文件,此文件就是用于燒寫到Proteus軟件中AT89C51芯片的文件。
(2)把生成的“.hex”為后綴的文件添加到Proteus軟件中繪制的AT89C51芯片中作為控制程序。
(3)在Proteus軟件仿真電路圖中點擊左下角的運行按鈕,則可在LED顯示點陣中看到“廣東工貿”四個漢字輪流顯示的結果。
從仿真圖中可以看到“東”字在LED顯示點陣中顯示出來,設定每個字顯示1秒,下秒將顯示“工”字,“廣東工貿”四個字循環顯示。四個字顯示出來如圖3所示。
編輯:jq
-
led
+關注
關注
242文章
23398瀏覽量
663999 -
驅動器
+關注
關注
53文章
8302瀏覽量
147221 -
元件
+關注
關注
4文章
955瀏覽量
36854
發布評論請先 登錄
相關推薦
《DNESP32S3使用指南-IDF版_V1.6》第三十九章 漢字顯示實驗
點陣顯示器的控制方法有哪些
RISC-V匯編語言
![](https://file1.elecfans.com/web2/M00/FE/9D/wKgZomajAnaAP7ssAAIDOLbLgcw264.jpg)
CW32數字電壓電流表軟件教程-實驗四:數碼管動態顯示
![CW32數字電壓電流表軟件教程-實驗四:數碼管<b class='flag-5'>動態顯示</b>](https://file1.elecfans.com//web2/M00/EA/A2/wKgZomZZeweAfBHCAAAWnqqL7aI96.webp)
請問UC/GUI中怎么樣動態顯示一個波形?
計算機最核心的——CPU
![計算機最核心的——CPU](https://file1.elecfans.com/web2/M00/C5/0E/wKgaomXxQsuAB8_WAAAQJIlayew132.jpg)
評論