資料包:
點陣_看圖王.jpg (88.67 KB, 下載次數: 106)
下載附件
2018-4-20 08:26 上傳
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
0.jpg (52.64 KB, 下載次數: 99)
下載附件
2018-4-20 15:15 上傳
0.png (171.27 KB, 下載次數: 78)
下載附件
2018-4-20 15:15 上傳
0.jpg (12.66 KB, 下載次數: 81)
下載附件
2018-4-20 15:15 上傳
1 緒論 1.1 前言 LED點陣顯示屏是集微電子技術、計算機技術、信息處理技術于一體的大型顯示屏系統。它以其色彩鮮艷,動態范圍廣,亮度高,壽命長,工作穩定可靠等優點而成為眾多顯示媒體以及戶外作業顯示的理想選擇。同時也可廣泛應用到軍事、車站、賓館、體育、新聞、金融、證券、廣告以及交通運輸等許多行業。目前大多數的LED點陣顯示系統自帶字庫。其顯示和動態效果(主要是顯示內容的滾動)的實現主要依靠硬件掃描驅動,該方法雖然比較方便,但顯示只能按照預先的設計進行。而實際上經常會遇到一些特殊要求的動態顯示,比如電梯運行中指示箭頭的上下移動、某些智能儀表幅值的條形顯示、廣告中廠家的商標顯示等。這時一般的顯示系統就很難達到要求。另外,由于受到存儲器本身的局限,其特殊字符往往難以顯示,同時顯示內容也不能隨意更改。 因此就提出了一種利用PC機和單片機控制的LED顯示系統通信方法。該方法可以對顯示內容進行實時控制,從而實現諸如動態顯示效果。同時用戶也可以在PC機上進行顯示效果的預覽,顯示內容亦可以即時修改。同時它具有發光率高、使用壽命長、組態靈活、色彩豐富以及對室內外環境適應能力強等優點。并廣泛的用于公交汽車、商店、體育場館、車站、學校、銀行、高速公路等公共場所的信息發布和廣告宣傳。LED 顯示屏發展較快,本文講述了基于89C51單片機8×8 LED漢字點陣滾動顯示的基本原理、硬件組成與設計、程序編寫與調試、Proteus軟件仿真等基本環節和相關技術。 1.2 選題背景 LED電子顯示屏是隨著計算機及相關的微電子﹑光電子技術的迅猛發展而形成的一種新型信息顯示媒體。它利用發光二極管構成的點陣模塊或像素單元組成可變面積的顯示屏幕,以可靠性高、使用壽命長、環境適應能力強、性能價格比高、使用成本低等特點,在短短的十來年中,迅速成長為平板顯示的主流產品,在信息顯示領域得到了廣泛的應用。LED 點陣電子顯示屏是集微電子技術、計算機技術、信息處理技術于一體的大型顯示屏系統。它以其色彩鮮艷,動態范圍廣,亮度高,壽命長,工作穩定可靠等優點而成 為眾多顯示媒體以及戶外作業顯示的理想選擇。同時也可廣泛應用到軍事、車站、賓館、體育、新聞、金融、證券、廣告以及交通運輸等許多行業。 1.3設計要求 利用一塊點陣數碼板,按編程者要求實現任意符號的顯示。 1.4 國內外的研究概況 目前大多數的LED點陣顯示系統自帶字庫。其顯示和動態效果(主要是顯示內容的滾動)的實現主要依靠硬件掃描驅動,該方法雖然比較方便,但顯示只能按照預先的設計進行。而實際上經常會遇到一些特殊要求的動態顯示,比如電梯運行中指示箭頭的上下移動、某些智能儀表幅值的條形顯示、廣告中廠家的商標顯示等。這時一般的顯示系統就很難達到要求。另外,由于受到存儲器本身的局限,其特殊字符或圖案也往往難以顯示,同時顯示內容也不能隨意更改。本文提出一種利用PC機和單片機控制的LED顯示系統通訊方法。該方法可以對顯示內容(包括漢字和特殊圖符)進行實時控制,從而實現諸如閃動、滾動、打字等多種動態顯示效果。該方法同時還可以調節動態顯示的速度,同時用戶也可以在PC機上進行顯示效果的預覽,顯示內容亦可以即時修改。在我國改革開放之后,特別是進入90年代國民經濟高速增長,對公眾場合發布信息的需求日益強烈,LED顯示屏的出現正好適應了這一市場形勢,因而在LED顯示屏的設計制造技術與應用水平上都得到了迅速的提高,生產也得到了迅速的發展,并逐步形成產業,成為光電子行業的新興產業領域。 1.5此次設計研究的主要內容應解決的問題此次設計研究的主要內容是設計一個符號顯示牌:通過程序控制符號顯示牌,使符號顯示牌,在無按鍵按下時,顯示數字“0-9”,當第一次按下按鍵時,顯示字母“μ”,當第二次按下按鍵時顯示漢字“公”。 應解決的問題:單片機P1口的輸出電流不足以驅動二極管,需要加驅動,本次研究中以S8050作為驅動,同時在S8050NPN晶體管基極加4.7K的電阻。實驗前要弄清晶體管三個引腳代表的極性,以免符號顯示牌不亮導致而設計失敗。
2 總體設計方案 2.1 硬件電路組成 本產品采用以89C51單片機為核心芯片的電路來實現,主要由89C51芯片、晶振電路、三極管驅動電路、按鍵控制電路、8×8 LED點陣5部分組成,電路框圖如圖1所示。其中,89C51是一種帶4kB閃爍可編程可擦除只讀存儲器(Falsh Programmable and Erasable Read OnlyMemory,FPEROM)的低電壓、高性能CMOS型8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,工業標準的MCS一51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,能夠進行1 000次寫/擦循環,數據保留時間為10年。他是一種高效微控制器,為很多嵌人式控制系統提供了一種靈活性高且價廉的方案。因此,在智能化電子設計與制作過程中經常用到89C51芯片。時鐘電路由89C51的18,19腳的時鐘端(XTAI 1及XTAL2)以及12 MHz晶振X 、電容C2、C3組成,采用片內振蕩方式。復位電路采用簡易的上電復位電路,主要由電阻R ,R2,電容C ,開關K 組成,分別接至89C51的RST復位輸人端。LED點陣顯示屏采用8x8共64個象素的點陣,可通過萬用表檢測發光二極管的方法測試判斷出該點陣的引腳分布。 我們把行列總線接在單片機的I/O口,然后把上面分析到的掃描代碼送入總線,就可以得到顯示的字符了。我們在實際應用中是將LED點陣的8條列線通過驅動電路接在P1口,8條行線通過限流電阻接在P0口。單片機89C51按照設定的程序在P1和P0接口輸出與內部字符對應的代碼電平送至LED點陣的行列線(高電平驅動),從而選中相應的象素LED發光,并利用人眼的視覺暫留特性合成整個字符的顯示。再改變取表地址實現字符的滾動顯示。硬件電路組成框圖如圖5所示。 圖2-1 硬件電路組成框圖 2.2 系統各單元電路設計 2.2.1 89C51單片機最小系統 最小系統包括晶體振蕩電路、復位開關和電源部分。圖2-2為89C51單片機的最小系統。 圖2-2 單片機最小系統 2.2.2 按鍵控制電路 單片機開始工作時,P2.0是高電平。當按鍵按下時,檢測到一個低電平信號,改變P0口輸出信號,控制8×8 LED點陣顯示屏顯示不同字符。
圖2-3 按鍵控制電路 2.2.3 三極管驅動電路 掃描驅動電路的功能主要是有P1口輸出高電平使三極管發射結導通,發射結輸出足夠大的電流使二極管導通。 圖2-4 三極管驅動電路 2.2.4 8×8 LED點陣介紹 圖(4)為8×8點陣LED外觀及引腳圖,,只要其對應的X、Y軸順向偏壓,即可使LED發亮。例如如果想使左上角LED點亮,則電子模塊中的0口為1,A口為0即可。應用時限流電阻可以放在橫軸或列軸。 圖2-5 8×8點陣LED外觀及引腳 (1)把“單片機系統”區域中的P0端口用8芯排芯連接到“點陣模塊”區域中的“A~H”端口上; (2)把“單片機系統”區域中的P1端口用8芯排芯連接到“點陣模塊”區域中的“0~7”端口上; 為了方便于單片機連接,我們在焊接的過程中特意將0~7接口排列出來作為列,將A~H接口作為行,這樣我們就可以直接將P89C51單片機的P0口與0~7接口一次連接,將P89C51單片機的P1口與A~H接口一次連接。要使LED發亮即使給予數字端高電平,字母端給予低電平,就能使二極管發亮。 2.3 字符的點陣顯示原理及字庫代碼獲取方法 我們以UCDOS中文宋體字庫為例,每一個字由8行8列的點陣組成顯示。我們可以把每一個點理解為一個象素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在64象素范圍內的任何圖形。如查用8位的P89C51單片機控制,如圖所示 
圖2-6 8×8點陣等效電路 為了弄清楚漢字的點陣組成規律,首先通過列掃描方法獲取漢字的代碼。首先將8行分成4位的上、下兩部分,把發光的象素位編為0不發光的象素位為1的十六進制代碼。這樣就把要顯示的“公”字編為如下代碼: 0x7f,0xbf,0xc1,0xdf,0xdf,0xdf,0xc1,0xdf 由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出他的掃描代碼從而顯示在屏幕上。上述方法雖然能夠讓我們弄清楚字符點陣代碼的獲取過程。字符點陣顯示一般有點掃描、行掃描和列掃描3種。為了符合視覺暫留要求,點掃描方法的掃描頻率必須大于16×64—1024 Hz,周期小于1 ms即可。行掃描和列掃描方法的掃描頻率必須大于16×8—128 Hz,周期小于7.8 ms即可。
3 程序設計
3.1程序流程圖 圖3-1 主程序流程圖 3.2程序設計 根據上述所說的程序流程圖,設計程序如附錄3。
4 調試及性能分析
4.1系統調試 4.1.1軟件調試 首先根據各單元電路模塊,利用Proteus軟件將總的硬件原理圖繪制好,設計好各模塊要使用的I/O口,如:8×8點陣LED顯示屏時候插反,先檢測下,無硬件錯誤后,再進行程序編程。 利用C語言的編程方式,將系統要求的基本功能,以及創新功能根據程序流程圖編寫出來,用Keil軟件調試無誤后,生成Hex文件。 雙擊Proteus中的P89C51芯片,將Keil生成的Hex加載到芯片內,進行仿真,經調試后所編寫的程序能夠完美實現系統所需的各種功能。 4.1.2硬件調試 硬件調試主要是檢測硬件電路是否有短路、斷路、虛焊等。具體步驟及測試結果如下: (1) 檢查電源與地線是否全部連接上,用萬用表對照電路原理圖測試各導線是否完全連接,對未連接的進行修復。 (2) 參照原理圖,檢查各個器件之間的連接是否連接正確,是否存在虛焊,經測試,各連接不存在問題。 (3) 以上兩項檢查并修復完后,給該硬件電路上電,電源指示燈點亮。 (4) 將燒錄好程序的最小單片機系統接入各模塊后,各模塊能過正常工作,如:數碼管正常發光。 4.2設計分析 將燒錄好程序的最小單片機系統與各模塊連接好后,8×8點陣LED顯示屏顯示初始值。按鍵一次之后,顯示屏顯示滾動字符μ,再按鍵一次,顯示屏顯示漢字“公”。 經軟件調試和硬件調試后,所設計的系統完美實現了所需的控制要求和創新要求。
總結
本文設計一個8×8點陣LED圖文顯示屏。經過測試,LED各點亮度均勻,可顯示圖形和文字,且穩定清晰無串擾。本系統具有硬件少、結構簡單、容易實現,性能穩定可靠等特點。通過查閱資料,了解了LED發光原理和LED顯示技術的原理和現狀。在 LED點陣顯示屏的設計過程中,學到了很多東西,復習了Protel、Proteus、Keil等軟件的基礎應用。基本了解了整個嵌入式開發的流程。例如,在進行整個設計之前,應該先根據需求分析,對單片機進行選型,然后對各個硬件模塊進行搭試。在畫PCB電路板的時候,要注意基本的布板原則。在焊接電路板的時候,應該從最基本的最小系統開始,分模塊,逐個進行焊接測試。在對各個硬件模塊進行測試時,要保證軟件正確的情況下去測試硬件,要不然發生錯誤時,不知道到底是哪一方出錯了。總之,這次設計開發,本人受益非淺,在以后的開發過程中一定總結經驗,吸取教訓,為以后的學習工作打好基礎。 附錄1 原件清單
附錄2硬件原理圖 附錄3系統PCB圖 附錄4點陣的放置與接線方法:  
附錄5程序清單
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar i,j,k,scan,num,count;
- sbit key=P2^0;
- uchar code table1[]=
- {0x7f,0xbf,0xc1,0xdf,0xdf,0xdf,0xc1,0xdf}; //μ
- uchar code table2[]=
- {0xf7,0xdb,0xad,0xb7,0xbe,0xdd,0xbb,0xf7}; //公
- uchar code table[][8]=
- {{0xff,0xff,0xc3,0xbd,0xbd,0xc3,0xff,0xff}, //0
- {0xff,0xbf,0xbb,0x81,0x80,0xbf,0xbf,0xff}, //1
- {0xff,0xff,0xbb,0x9d,0xad,0xb3,0xff,0xff}, //2
- {0xff,0xff,0xdd,0xbe,0xb6,0xc9,0xff,0xff}, //3
- {0xff,0xef,0xe7,0xeb,0x81,0xef,0xef,0xff}, //4
- {0xff,0xff,0xd1,0xb5,0xb5,0xcd,0xff,0xff}, //5
- {0xff,0xff,0xc1,0xb6,0xb6,0xcd,0xff,0xff}, //6
- {0xff,0xff,0xfd,0xfd,0x8d,0xf5,0xf9,0xff}, //7
- {0xff,0xff,0xc9,0xb6,0xb6,0xc9,0xff,0xff}, //8
- {0xff,0xff,0xd9,0xb6,0xb6,0xc1,0xff,0xff}, //9
- {0xff,0x83,0xed,0xee,0xed,0x83,0xff,0xff}, //A
- {0xff,0xff,0x80,0xb6,0xb6,0xc9,0xff,0xff}, //B
- {0xff,0xc3,0xbd,0xbd,0xbd,0xdb,0xff,0xff}, //C
- {0xff,0xff,0x81,0xbd,0xbd,0xc3,0xff,0xff}, //D
- {0xff,0xff,0x80,0xb6,0xb6,0xb6,0xff,0xff}, //E
- {0xff,0xff,0x80,0xf6,0xf6,0xf6,0xff,0xff} //F
- };
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- void main()
- {
- key=1;
- num=0;
- while(1)
- {
- if(num==0)
- {
- for(j=0;j<16;j++)
- {
- if(key==0)
- {
- delay(10);
- if(key==0)
- {
- num=1;
- while(!key);
- }
- }
- if(num!=0)
- break;
- for(k=0;k<30;k++)
- {
- scan=0x01;
- for(i=0;i<8;i++)
- {
- P0=table[j][i];
- P1=scan;
- delay(2);
- scan<<=1;
- }
- }
- }
- }
- if(num==1)
- {
- for(j=0;j<8;j++) //8組數據
- {
- if(key==0)
- {
- delay(10);
- if(key==0)
- {
- num=2;
- while(!key);
- }
- }
- if(num!=1)
- break;
- for(k=0;k<10;k++)
- {
- scan=0x01; //初始掃描信號
- for(i=8;i>0;i--) //掃描周期
- {
- if(i>j)P0=table1[8+(j-i)];
- else P0=table1[j-i];
- P1=scan;
- delay(2);
- scan<<=1;
- }
- }
- }
- }
- if(num==2)
- {
- if(key==0)
- {
- delay(10);
- if(key==0)
- {
- num=0;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
全部資料51hei下載地址(含word格式的設計報告):
14.點陣8x8.rar
(889.47 KB, 下載次數: 285)
2018-4-20 08:21 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|