16×16點陣LED顯示器字符滾動顯示課程設計報告
-基于并行端口驅動
目錄 1 選題背景 2 方案論證 2.1 課題要求 2.2 設計方案 3 16×16點陣LED顯示器字符滾動顯示過程設計論述 3.1 系統硬件框圖設計 3.2 單片機AT89C51分析 3.3 系統原理圖設計 3.3.1 外界晶振電路原理圖設計 3.3.2 復位電路 3.3.3 系統原理總圖 3.4 系統軟件設計 3.4.1 程序流程圖 3.4.2 軟件代碼 4 結果分析 4.1 程序調試與仿真 4.2 仿真結果 5 總結 參考文獻 附錄
4 還是先給大家看看我的實驗結果分析吧 4.1 程序調試與仿真 通過keil uvison4編寫程序,編譯后沒有警告和錯誤,然后將其程序文件錄入PROTUES軟件中仿真圖AT89C51單片機中進行仿真,在顯示過程中通過程序調節滾動速度,直至出現預料中的顯示為止。 4.2 仿真結果 本設計最終在Keil C51與Proteus的聯機調試下完成的16×16點陣LED顯示器字符滾動顯示的仿真結果如圖4-1所示。顯示效果不錯,因此可以得出該設計方案的準確性和合理性,更進一步驗證了硬件電路的元器件規格選擇完全符合設計要求。同樣在顯示過程中,0-9數字的滾動沒有出現顯示錯誤的地方,不存在有缺或者多的地方,達到自己預期中的效果,成功實現了所需要的顯示內容,足以驗證該程序的準確性和硬件電路的契合。進而證明這次設計以AT89C51單片機為核心所設計的硬件電路及其軟件程序的編寫的準確性,以及在器件的規格參數選擇中沒有失誤,完美的使電路和程序契合在一起,使其顯示成功。 
圖4-1 仿真結果圖5 總結 本次設計最終仿真結果顯示成功主要在于設計的正確性,其硬件部分器件的規格參數課本已有說明,軟件設計部分書上已經給了參考源程序,但是書上給的是4個16×16 的點陣LED圖文顯示屏的源程序,我的課程設計是1個16×16的點陣LED字符顯示,因此我們需要在課本上給的源程序上進行改動,這樣我們就需要看懂書上的源程序。程序編程時一個最重要的就是字模提取,在字模提取過程中,由于前期沒接觸過這個軟件,在學習過程中耗時很長,延長了一段時間做完方針,在這期間我們需要經歷查閱資料、相互交流來使知識為自己所用才是自己最大的收獲,此次課設雖以完成,但在此過程中提高了我的學習能力。
1 選題背景 當前的LED顯示屏行業,已經發展到了一個異于以往的新高度,呈現出直插屏、表貼屏、COB等多種技術形式的LED顯示市場,甚至是隸屬于LED顯示領域的Microled顯示屏也“呼之欲出”,整個LED顯示行業表現出極大的生機與潛力。不斷發展與壯大的行業規模,以及巨大的發展空間,為這個行業里的每個從業者展示了機遇與挑戰,小間距的強勢應用滲透,創意顯示的如雨后春筍,智能顯示來勢兇猛,LED顯示屏已經迎來了高清以及多元化發展應用的新常態,高品質的LED顯示屏即是市場提出新的要求,也是行業適應社會技術發展的重點話題。從主流的應用層面上來講,當前的LED顯示屏正朝著“精細”化的方向發展,以小間距LED顯示屏為代表的主流市場,已經為我們呈現了LED顯示屏在高清顯示領域的一種可能,并不斷向各個應用市場滲透,且走向戶外,傳統的LED直插屏的一部分市場不斷被擠壓,一部分表貼LED顯示屏憑借自身優異的工藝與色彩特點,不斷在戶外顯示領域擴張,并被市場不斷看好[1]。 2 方案論證 2.1 課題要求 本次設計采用16×16點陣LED顯示器的驅動電路,并編寫程序實現在16×16點陣LED顯示器上的字符滾動顯示。16×16點陣LED顯示器由4塊8×8點陣LED顯示器構成。采用單片機并行端口方式實現對16×16點陣LED顯示器的驅動,實現數字(0—9)或英文字符的滾動顯示。 電路方面主要包括以下部分: (a)設計單片機的最小系統(包括復位電路和外接的晶振電路),并確定相關元器件參數。 (b)采用動態驅動的方式,設計單片機并行端口與16×16點陣LED顯示器的驅動電路,主要包括控制點陣LED行和列的連線。 (c)設計單片機與元器件之間的控制連線。
2.2 設計方案 采用AT89C51單片機采用動態掃描的顯示方法輪流點亮,這樣掃描驅動電路就可以實現多行的同名列共用一套驅動器。把所有同行的發光管的陽極連在一起,把所有同列的發光管的陰極連在一起,先送出對應第一行發光管亮滅的數據,然后選通第1行使其燃亮一定次數,然后熄滅;再送出第二行的數據,然后選通第2行使其燃亮相同次數,然后熄滅;以此類推,第16行之后,又重新燃亮第1行,掃描數據依次類推。當次數足夠多時,由于人眼的視覺暫留現象,就能夠看到顯示屏上穩定的數字。硬件電路由單片機復位電路、電源電路、外界晶振電路和16×16點陣LED顯示電路組成,其中復位電路、電源電路、外界晶振電路是讓單片機工作的正常需求。由于本次設計是16×16點陣LED顯示器并行端口驅動,接線過多因而仿真部分采用網絡端口進行連接。 3 16×16點陣LED顯示器字符滾動顯示過程設計論述 3.1 系統硬件框圖設計 根據設計要求與設計方案,硬件電路的設計框圖如圖3-1所示。硬件電路結構由五部分組成:復位電路、電源電路、外界晶振電路、單片機和16×16點陣LED顯示器。
3.2 單片機AT89C51分析 單片機AT89C51內部結構如圖3-2所示,共有P0~P3四個這樣的并行口,特殊功能寄存器是P0~P3,它們實際上是4個八位鎖存器(每個I/O口一個),每個鎖存器附加有相應的輸出驅動器和輸入緩沖器就構成了一個并行口。這P0~P3四個并行口,可提供32根I/O線直接驅動16×16點陣LED顯示器。
3.3 系統原理圖設計
3.3.1 外界晶振電路原理圖設計 外界晶振電路是單片機的心臟,它控制著單片機的工作節奏,其典型值為12MHZ。XTAL1、XTAL2引腳外界晶振和電容組成振蕩器。振蕩器產生的時鐘頻率主要由晶振頻率決定,C1和C2的作用有兩個:其一是使振蕩器起振,其二是對振蕩器的頻率ƒ起微調作用(C1、C2變大,ƒ變小),其典型值為30pF,振蕩器在加電以后月10ms開始起振,XTAL2輸出3V左右的正弦波,振蕩器產生的時鐘送入單片機內部[2],如圖3-3所示。 
圖3-3 外界晶振電路原理圖 3.3.2 復位電路 本次設計采用上電復位電路,對于AT89C51的上電復位電路,只要在RST復位輸入引腳上接一電容至Vcc端,下接一個電阻到地即可。上電復位的工作過程是在加電時,復位電路通過電容加給RST端一個短暫的高電平信號,此高電平信號隨著Vcc對電容的充電過程而逐漸回落,即RST端的高電平持續時間取決于電容的充電時間。為了保證系統能夠可靠地復位,RST端的高電平信號必須維持足夠長的時間。在圖3-4的復位電路中,隨著Vcc電壓由0V增加到5V,電容C3的上極板電位隨之增加,電容的內電場增強,使C3能吸引更多的電子通過R1到達下極板,從外面看就電流通過C3和R1入地。按電壓在隨著電流方向逐慚降低的原則,電流的出現會在R1端形成一大于0的電位。由于電容的充電逐漸飽和,所以電流會逐漸減小,電位也會逐漸減小。該電位的大小和持續的時間將直接影響到我們的系統能否上電復位。 
圖3-4 復位電路 3.3.3 系統原理總圖 根據設計要求和硬件框圖設計系統原理圖,如圖3-5所示。 
圖3-5 系統原理圖 AT89C51采用P0、P1端口縱向驅動16×16點陣LED顯示器,P2、P3端口橫向驅動16×16點陣LED顯示器,其中P0端口內部沒有上拉電阻,不能輸出高電平,所以要接上拉電阻。由于本次設計為16×16點陣LED顯示器在這里采用4個8×8點陣LED顯示器。硬件系統元器件清單如下表3-1所示。 表3-1 硬件系統元器件清單 3.4 系統軟件設計 3.4.1 程序流程圖 本次設計利用循環語句,外循環每次確定掃描時數組中該顯示的第一個數據且每次移動一位,內循環是在此基礎上的后16位,前8位在P2口輸出,后8位在P3口輸出,隨著每次循環次數增加,從而實現了數字的滾動。程序流程圖如圖3-6所示。 圖3-6 程序流程圖(見附件) 3.4.2 軟件代碼 全部程序見附錄 參 考 文 獻 [1]陳龍.LED顯示行業品質管控才是發展主流 [2]何宏.單片機原理及其應用.清華大學出版社.2012:7-8.
附錄 16×16點陣LED顯示器字符滾動顯示完整程序
單片機源程序如下:- #include <reg51.h>
- #define u8 unsigned char
- #define u16 unsigned int
- #define NUM 100
- u8 code table1[]={
- /*-- 文字: --*/
- /*-- 楷體_GB231212; 此字體下對應的點陣為:寬x高=8x16 --*/
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- …………
- …………限于本文篇幅 字庫代碼請從51黑下載附件…………
- /*-- 文字: --*/
- /*-- 楷體_GB231212; 此字體下對應的點陣為:寬x高=8x16 --*/
- 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
- };
- u8 i=0,j=0,m=0,n=0;
- u16 z;
- void main()
- {
- P0=0x00;
- P3=0x00;
- P1=0x00;
- P2=0x00;
- while(1)
- {
- for(i=0;i<152;i++)
- {
- for(z=NUM;z>0;z--)
- {
- for(j=0;j<16;j++)
- {
- m=i+j;
- n=j-8;
- if(j>7)
- {
- P2=0;
- P3=(0X01<<n);
- }
- else
- {
- P3=0;
- P2=(0x01<<j);
- }
-
-
- P0=table1[m];
- P1=table2[m];
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.jpg (42.63 KB, 下載次數: 32)
下載附件
2018-1-21 23:57 上傳
所有資料51hei提供下載:
http://www.zg4o1577.cn/bbs/dpj-105744-1.html
|