基于單片機的LED點陣顯示課程設計_第1頁
基于單片機的LED點陣顯示課程設計_第2頁
基于單片機的LED點陣顯示課程設計_第3頁
基于單片機的LED點陣顯示課程設計_第4頁
基于單片機的LED點陣顯示課程設計_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1 LED電子顯示屏原理1.1 L ED電子顯示屏概述 LED電子顯示屏(Light Emitting Diode Panel)是由幾百-幾十萬個半導體發光二極管構成的像素點,按矩陣均勻排列組成。利用不同的半導體材料可以制造不同色彩的LED像素點。目前應用最廣的是紅色、綠色、黃色。而藍色和純綠色LED的開發已經達到了實用階段。 LED顯示屏是一種通過控制半導體發光二極管的亮度的方式,來顯示文字、圖形、圖像、動畫、行情、視頻、錄像信號等各種信息的顯示屏幕。 LED顯示屏分為圖文顯示屏和條幅顯示屏,均由LED矩陣塊組成。圖文顯示屏可與計算機同步顯示漢字、英文文本和圖形;而條幅顯示屏則適用于小容量的

2、字符信息顯示。LED顯示屏因為其像素單元是主動發光的,具有亮度高,視角廣、工作電壓低、功耗小、壽命長、耐沖擊和性能穩定等優點。因而被廣泛應用于車站、碼頭、機場、商場、醫院、賓館、銀行、證券市場、建筑市場、拍賣行、工業企業管理和其它公共場所。 LED顯示屏的發展前景極為廣闊,目前正朝著更高亮度、更高氣候耐受性、更高的發光密度、更高的發光均勻性,可靠性、全色化方向發展。 1.2 LED顯示屏動態顯示原理 LED點陣顯示系統中各模塊的顯示方式: 有靜態和動態顯示兩種。靜態顯示原理簡單、控制方便,但硬件接線復雜,在實際應用中一般采用動態顯示方式,動態顯示采用掃描的方式工作,由峰值較大的窄脈沖電壓驅動,

3、從上到下逐次不斷地對顯示屏的各行進行選通,同時又向各列送出表示圖形或文字信息的列數據信號,反復循環以上操作,就可顯示各種圖形或文字信息。 點陣式LED漢字廣告屏絕大部分是采用動態掃描顯示方式,這種顯示方式巧妙地利用了人眼的視覺暫留特性。將連續的幾幀畫面高速的循環顯示,只要幀速率高于24幀/秒,人眼看起來就是一個完整的,相對靜止的畫面。最典型的例子就是電影放映機。在電子領域中,因為這種動態掃描顯示方式極大的縮減了發光單元的信號線數量,因此在LED顯示技術中被廣泛使用。 以88點陣模塊為例,說明一下其使用方法及控制過程。圖1中,水平線Y0、Y1Y7叫做行線,接內部發光二極管的陽極,每一行8個LED

4、的陽極都接在本行的行線上。相鄰兩行線間絕緣。同樣,豎直線X0、X1X7叫做列線,接內部每列8個LED的陰極,相鄰兩列線間絕緣。 在這種形式的LED點陣模塊中,若在某行線上施加高電平(用“1”表示),在某列線上施加低電平(用“0”表示)。則行線和列線的交叉點處的LED就會有電流流過而發光。比如,Y7為1,X0為0,則右下角的LED點亮。再如Y0為1,X0到X7均為0,則最上面一行8個LED全點亮。 圖1: (88)點陣LED顯示模塊結構原理及引腳圖 LED點陣顯示器單塊使用時,既可代替數碼管顯示數字,也可顯示各種中西文字及符號如5x7點陣顯示器用于顯示西文字母58點陣顯示器用于顯示中西文,8x8

5、點陣可以用于顯示簡單的中文文字,也可用于簡單圖形顯示。用多塊點陣顯示器組合則可構成大屏幕顯示器,但這類實用裝置常通過PC機或單片機控制驅動。 1.3 Proteus簡介 Proteus軟件是英國Labcenter electronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到

6、單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,它也支持IAR、Keil和MPLAB等多種編譯器。 Proteus軟件具有其它EDA工具軟件(例:multisim)的功能。這些功能是: (1)智能原理圖設計(ISIS) (2)完善的電路仿真功能(Prospice) (3)獨特的單片機協同仿真功能(VSM)(4)實用的PCB設計平臺 2 硬件設計2

7、.1 總體設計思路設計思路如圖2: 圖2: 總體思路框圖2.2 設計論證 圖文顯示一般有靜態和動態顯示兩種方案,靜態方案雖然設計簡單,但其使用的管腳太多,如本設計中1616的點陣共有256個發光二極管,顯然單片機沒有這么多的端口,如果我采用鎖存器來擴展端口,按8位的鎖存器來計算,1616的點陣需要256/8=32個鎖存器。這個數字很龐大,因為我們僅僅是1616的點陣,在實際應用中的顯示屏往往要大得多,這樣在鎖存器上花的成本將是一個很龐大的數字。因此在實際應用中的顯示屏幾乎都不采用這種設計,而采用另外一種稱為動態掃描的顯示方法。 動態掃描的意思簡單地說就是逐行輪流點亮,這樣掃描驅動電路就可以實現

8、多行(比如16行)的同名列共用一套驅動器。具體就1616的點陣來說,把所有同1行的發光管的陽極連在一起,把所有同1列的發光管的陰極連在一起(共陽極的接法),先送出對應第一行發光管亮滅的數據并鎖存,然后選通第1行使其燃亮一定時間,然后熄滅;再送出第二行的數據并鎖存,然后選通第2行使其燃亮相同的時間,然后熄滅;以此類推,第16行之后,又重新燃亮第1行,反復輪回。當這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現象,就能夠看到顯示屏上穩定的圖形了。 采用掃描方式進行顯示時,每一行有一個行驅動器,各行的同名列共用一個驅動器。顯示數據通常存儲在單片機的存儲器中,按8位一個字節的形式順序排放。

9、顯示時要把一行中各列的數據都傳送到相應的列驅動器上去,這就存在一個顯示數據傳輸的問題。從控制電路到列驅動器的數據傳輸可以采用并列方式或串行方式。顯然,采用并行方式時,從控制電路到列驅動器的線路數量大,相應的硬件數目多。當列數很多時,并列傳輸的方案是不可取的。 采用串行傳輸的方法,控制電路可以只用一根信號線,將列數據一位一位傳往列驅動器,在硬件方面無疑是十分經濟的。但是,串行傳輸過程較長,數據按順序一位一位地輸出給列驅動器,只有當一行的各列數據都以傳輸到位之后,這一行的各列才能并行地進行顯示。這樣,對于一行的顯示過程就可以分解成列數據準備(傳輸)和列數據顯示兩部分。對于串行傳輸方式來說,列數據準

10、備時間可能相當長,在行掃描周期確定的情況下留給行顯示的時間就太少了,以致影響到LED的亮度。 解決串行傳輸中列數據準備和列數據顯示的時間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數據的同時,傳送下一列數據。為了達到重疊處理的目的,列數據的顯示就需要具有所存功能。經過上述分析,就可以歸納出列驅動器電路應具有的功能。對于列數據準備來說,它應能實現串入并處的移位功能;對于列數據顯示來說,應具有并行鎖存的功能。這樣,本行已準備好的數據打入并行鎖存器進行顯示時,串并移位寄存器就可以準備下一行的列數據,而不會影響本行的顯示。2.3系統硬件選擇 由圖2可知此次設計的硬件選擇如下: AT89C52單片

11、機1個, 鎖存器74LS373芯片1片,非門74LS04芯片1片,4線-16線譯碼器741454芯片2片,移位寄存器74LS595芯片2片,最后需要構成16*32點陣的MATRIX-8X8-RED芯片4片以及電源和地。2.4 電路設計原理圖 本設計的電路設計原理圖如圖3所示:圖3:16*32 LED點陣設計電路原理圖 由于proteus里沒有現成的16*32的點陣芯片,所以我選擇4片MATRIX-8X8-RED芯片拼成一塊16*32的點陣芯片。3 軟件設計 顯示屏軟件模塊包括:初始化程序、主程序、多字滾動、顯示程序、掃描程序。顯示程序的主要功能是向屏體提供顯示數據,并產生各種控制信號,使屏幕按

12、設計的要求顯示。軟件設計中,顯示屏的軟件系統分為兩層;第一層是底層的顯示驅動程序,第二層是上層的系統應用程序。顯示驅動程序負責向屏體送顯示數據,并負責產生行掃描信號和其他控制信號,配合完成LED顯示屏的掃描顯示工作。顯示驅動器程序由定時器T0中斷程序實現。系統應用程序完成系統環境設置(初始化)、顯示效果處理等工作,由主程序來實現。3.1 顯示驅動程序設計 顯示驅動程序在進入中斷后首先要對定時器T0重新賦初值,以保證顯示屏刷新率的穩定,1/16掃描顯示屏的刷新率(幀頻)計算公式如下: 刷頻率(幀頻)=1/16T0溢=1/16f/12(65536-t) 其中f位晶振頻率,t為定時器T0初值(工作在

13、16位定時器模式)。然后顯示驅動程序查詢當前燃亮的行號,從顯示緩存區內讀取下一行的顯示數據,并通過串口發送給移位寄存器。為消除在切換行顯示數據的時候產生拖尾現象,驅動程序先要關閉顯示屏,即消隱,等顯示數據打入輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯示。顯示驅動程序(顯示屏掃描函數)流程圖如圖4所示: 圖4:顯示驅動程序流程圖 3.2 系統主程序設計 本設計的系統軟件能使系統LED顯示屏各點亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應穩定、清晰無串擾。圖形或文字顯示有靜止、移入移出等顯示方式。 系統主程序開始以后,首先是對系統環境初始化,包括設置串口、定時器、中斷和端口;然后以“卷

14、簾出”效果顯示圖形,停留約幾秒;接著向上滾動顯示“-”這幾個漢字及一個圖形,然后以“卷簾入”效果隱去圖形。由于單片機沒有停機指令,所以可以設置系統程序不斷的循環執行上述顯示效果。 單元顯示屏可以接收來自控制器(主控制電路板)或上一級顯示單元模塊傳輸下來的數據信息和命令信息,并可將這些數據信息和命令信息不經任何變化地再傳送到下一級顯示模塊單元中,因此顯示板可擴展至更多的顯示單元,用于顯示更多的顯示內容。如果想改變些事內容,先用字模產生字代碼,將用這段代碼覆蓋原來的代碼,即可顯示你想要的內容。 系統主程序流程圖如圖5所示:圖5:系統主程序流程圖3.3 源程序 ;主程序如下: ORG 0000H S

15、JMP START ;程序開始從START執行 ORG 0030H ;程序從0030H單元開始存放 START : MOV 60H , #0 ;60H單元清0,60H單元用于軟件延時時的計數 MOV 61H , #0 ;61H單元清0,61H單元用于軟件延時時的計數D0: MOV R0,#165 ;中文字幕往左滾動一次需要讀取數據165次 MOV DPTR,#TABLE1 ;字模表1首址賦指針 ACALL DISPLAY ;調用顯示子程序 MOV R0 , #256 ;英文部分往左滾動顯示完一次需讀取數據256次 MOV DPTR,#TABLE2 ;字模表2首址賦指針 ACALL DISPLA

16、Y ;調用顯示子程序 AJMP D0 ;反復顯示 ;顯示程序如下: DISPLAY: MOV R2 , #10 ;每屏字幕掃描顯示10次LOOP0: MOV R3 , #32 ;總共掃描32列 CLR P3.2 ;移位寄存器74LS595鎖存信號無效(為0) MOV R5,#00H ;列序號送寄存器,從第0列開始顯示SCAN1: MOV R1,#00H ;偏移量初值為0LOOP1: MOV R4,#2 ;每列顯示數據有兩字節,每次發送一字節,發兩次LOOP2: MOV A,R1 ;偏移量寄存器內容送A MOVC A,A+DPTR ;取字模數據送A MOV SBUF,A ;A中內容送串行口輸出

17、JNB TI,$ ;檢查數據是否已發送完,沒發送完,繼續等待 CLR TI ;發送完畢,清串行口中斷標志 INC R1 ;偏移量加1 DJNZ R4,LOOP2 ;還沒發送完兩字節,繼續發送 NOP SETB P3.2 ;移位寄存器74LS595數據鎖存信號有效(為1),鎖存單片機送出的數據 CLR P3.3 ;移位寄存器74LS595輸出允許信號有效,將鎖數 據輸出 NOP NOP MOV P1 , R5 ;列編號送P1口,使該列顯示數據 MOV 60H , #5 ;開始軟件延時,60H單元置初值5DL1: MOV 61H , #20 ;61H單元置初值20DL2: DJNZ 61H , D

18、L2 DJNZ 60H , DL1 ;軟件延時,讓一列數據的顯示維持一點時間 INC R5 ;列編號加1 CLR P3.2 ;移位寄存器74LS595鎖存信號無效(為0) SETB P3.3 ;移位寄存器74LS595輸出允許信號無效(為1) DJNZ R3,LOOP1 ;32列還沒掃完,繼續掃描 DJNZ R2,LOOP0 ;每屏字幕沒掃完10次,繼續 INC DPTR ;指針加1 INC DPTR ;指針加1,使顯示字幕往左移動 DJNZ R0,DISPLAY ;R0不為0,繼續讀取數據掃描顯示 RET ;子程序返回TABLE1:;黑屏DB 00H,00H,00H,00H,00H,00H,

19、00H,00H,00H,00H,DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H ;天DB 02H,01H,42H,01H,42H,02H,42H,04H,42H,08H,42H,30H,42H,0C0H,7FH,00H,DB 42H,0C0H,42H,30H,42H,08H,42H,04H,0C2H,02H,46H,03H,02H,02H,00H,00H;道DB 02H,00H,42H,02H,22H,04H,33H,0FH,00H,04H,20H,02H,0AH,0FDH,6DH,25H,DB 35H,25H,25H,25H,25H,25H,65H,25

20、H,0AFH,0FDH,24H,03H,00H,02H,00H,00H;酬DB 4FH,0FEH,48H,0A4H,7FH,24H,48H,24H,7FH,DB 24H,48H,0A4H,0DFH,0FFH,48H,02H,DB 02H,0CH,0FFH,0F0H,02H,00H,3FH,0FCH,DB 02H,00H,0FFH,0FFH,00H,00H,00H,00H;勤DB 40H,02H,47H,0A2H,0F4H,0AAH,54H,0AAH,DB 5FH,0FEH,54H,0AAH,0F4H,0AAH,47H,0A3H,DB 48H,02H,08H,0CH,0FFH,0F0H,08H,

21、02H,DB 08H,01H,1FH,0FEH,08H,00H,00H,00HTABLE2:;hDB 00H,00H,00H,00H,30H,04H,7FH,0FCH,DB 0FFH,0FCH,03H,04H,03H,00H,03H,00HDB 03H,00H,03H,00H,03H,04H,03H,0FCH,01H,DB 0FCH,00H,04H,00H,00H,00H,00H ;nDB 00H,00H,00H,00H,03H,04H,03H,0FCH,DB 03H,0FCH,03H,04H,03H,00H,03H,00HDB 03H,00H,03H,00H,03H,04H,03H,0FCH

22、,DB 01H,0FCH,00H,04H,00H,00H,00H,00H ;iDB 00H,00H,00H,00H,00H,00H,00H,00H,00H,DB 00H,00H,04H,03H,04H,1BH,0FCHDB 1BH,0FCH,1BH,0FCH,00H,04H,00H,04H,00H,DB 00H,00H,00H,00H,00H,00H,00H ;eDB 00H,00H,00H,00H,01H,0F0H,03H,0F8H,DB 06H,0CCH,0CH,0CCH,0CH,0CCH,0CH,0CCHDB 0CH,0CCH,0CH,0CCH,0CH,0CCH,06H,0CCH,DB 03H,0C8H,01H,0C0H,00H,00H,00H,00H4 Proteus仿真 本課程設計仿真利用proteus仿真步驟如下: (1)選擇設計圖紙的到小 (2)選取仿真所需的元器件 選取元器件的方式是,單擊元器件放置按鈕“P”。 (3)把元器件放到圖紙的合適位置,進行布線。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論