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所示。 |