基于單片機(jī)的16 16LED點(diǎn)陣顯示屏的設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的16 16LED點(diǎn)陣顯示屏的設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的16 16LED點(diǎn)陣顯示屏的設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的16 16LED點(diǎn)陣顯示屏的設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的16 16LED點(diǎn)陣顯示屏的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于單片機(jī)的16*16LED點(diǎn)陣顯示屏的設(shè)計(jì) 隨著單片機(jī)在各個(gè)領(lǐng)域的廣泛應(yīng)用,許多用單片機(jī)作控制驅(qū)動(dòng)LED顯示屏也應(yīng)運(yùn)產(chǎn)生。本系統(tǒng)設(shè)計(jì)使用單片機(jī)MCS-51控制掃描方法實(shí)現(xiàn)LED點(diǎn)陣顯示器的字符的顯示,介紹了用單片機(jī)進(jìn)行顯示系統(tǒng)開(kāi)發(fā)的方法,單片機(jī)軟件、硬件調(diào)試技術(shù),還有點(diǎn)陣顯示驅(qū)動(dòng)擴(kuò)展的一般方法。1.引言1.1 研究的目的、意義LED因其體積小,耗電量低,亮度及環(huán)保等優(yōu)點(diǎn)而被廣泛應(yīng)用于公共場(chǎng)所的大屏顯示上,LED點(diǎn)陣大屏可應(yīng)用于戶外廣告,交通導(dǎo)航,大廳公告,比賽的多媒體實(shí)時(shí)顯示等領(lǐng)域。本設(shè)計(jì)作品的用途正是在于實(shí)現(xiàn)大屏顯示的核心功能,即漢字的顯示,可實(shí)際應(yīng)用于簡(jiǎn)單的顯示系統(tǒng)中,如簡(jiǎn)單的排隊(duì)叫號(hào)顯

2、示屏,電梯顯示屏等。通過(guò)此次設(shè)計(jì)將單片機(jī)軟硬件結(jié)合起來(lái)對(duì)程序進(jìn)行編輯,校驗(yàn),鍛煉實(shí)踐能力和理論聯(lián)系實(shí)際的能力。 1.2 本設(shè)計(jì)所要做的工作為了完成該設(shè)計(jì)實(shí)現(xiàn),經(jīng)過(guò)考慮論證,決定分為以下幾個(gè)階段進(jìn)行:(1)對(duì)課題進(jìn)行全面的分析,明確系統(tǒng)要實(shí)現(xiàn)的功能,大致了解要解決的問(wèn)題,制定總的設(shè)計(jì)方案;(2)根據(jù)論證設(shè)計(jì)硬件系統(tǒng)并畫(huà)出電路圖,并根據(jù)電路圖制電路板;(3)在硬件的根底上設(shè)計(jì)軟件程序;(4)利用仿真器編譯軟件程序,進(jìn)行調(diào)試仿真;(5)把調(diào)試成功的程序利用燒入器燒入到芯片中去;(6)把固化好程序的芯片插入到實(shí)際應(yīng)用系統(tǒng),投入到實(shí)際使用。2系統(tǒng)設(shè)計(jì)方案2.1系統(tǒng)構(gòu)成框圖1 3 硬件電路設(shè)計(jì)3.1 主要

3、器件介紹3.1.1 LED點(diǎn)陣LED點(diǎn)陣顯示屏采用4個(gè)8*8共256個(gè)象素的點(diǎn)陣,通過(guò)萬(wàn)用表檢測(cè)發(fā)光二極管的方法測(cè)試判斷出該點(diǎn)陣的引腳分布,如圖3.1所示。8*8的LED點(diǎn)陣為雙色共陽(yáng)模塊,單點(diǎn)的工作電壓為正向(Vf)=1.8v,正向電流(if)=8-10MA。靜態(tài)點(diǎn)亮器件時(shí)(64點(diǎn)全亮)總電流為640mA。總電壓為1.8v,總功率為1.15w.動(dòng)態(tài)時(shí)取決于掃描頻率(1/8或1/16秒),單點(diǎn)瞬間電流可達(dá)80-160mA。2 圖3.1點(diǎn)陣LED掃描法介紹點(diǎn)陣LED一般采用掃描式顯示,實(shí)際運(yùn)用分為三種方式:(1) 點(diǎn)掃描(2) 行掃描(3) 列掃描假設(shè)使用第一種方式,其掃描頻率必須大于16*64

4、=1024HZ,周期小于1MS即可。假設(shè)使用第二和第三種方式,那么頻率必須大于16*8=128HZ,周期小于7.8MS即可符合視覺(jué)暫留要求。此外一次驅(qū)動(dòng)一列或一行(8顆LED)時(shí)需外加驅(qū)動(dòng)電路提高電流,否那么LED亮度會(huì)缺乏。我們把行列總線接在單片機(jī)的IO口,然后把上面分析到的掃描代碼送人總線,就可以得到顯示的漢字了。但是假設(shè)將LED點(diǎn)陣的行列端口全部直接接入AT89S52單片機(jī),那么需要使用32條IO口,這樣會(huì)造成IO資源的耗盡,系統(tǒng)也再無(wú)擴(kuò)充的余地。因此,我們?cè)趯?shí)際應(yīng)用中只是將LED點(diǎn)陣的16條行線直接接在P2口,至于列選掃描信號(hào)那么是由4-16線譯碼器74HC154來(lái)選擇控制,這樣一來(lái)列

5、選控制只使用了單片機(jī)的4個(gè)IO口,節(jié)約了很多IO資源,為單片機(jī)系統(tǒng)擴(kuò)充使用功能提供了條件。漢字掃描顯示的根本過(guò)程是這樣的:通電后由于電阻R1,電容C1的作用,使單片機(jī)的RST復(fù)位腳電平先高后低,從而到達(dá)復(fù)位;之后,在C2,C3,X1以及單片機(jī)內(nèi)部時(shí)鐘電路的作用下,單片機(jī)AT89S52按照設(shè)定的程序在接口輸出與內(nèi)部漢字對(duì)應(yīng)的代碼電平送至LED點(diǎn)陣的行選線,同時(shí)在P1.0,P1.1,P1.2,P1.3接口輸出列選掃描信號(hào),從而選中相應(yīng)的象素LED發(fā)光,并利用人眼的視覺(jué)暫留特性合成整個(gè)漢字的顯示。 3.1.2鎖存器74LS37374ls373是常用的地址鎖存器芯片,它實(shí)質(zhì)是一個(gè)是帶三態(tài)緩沖輸出的8D

6、觸發(fā)器,在單片機(jī)系統(tǒng)中為了擴(kuò)展外部存儲(chǔ)器,通常需要一塊74ls373芯片,其內(nèi)部結(jié)構(gòu)圖如圖3.2所示。 3 圖3.2 74ls37374HC154管腳圖 其邏輯圖如圖3.4所示: 4 圖3.4 74HC154邏輯圖其功能表如表3.1所示: 說(shuō)明: H高電平 L低電平 X任意 表3.1 74HC154功能表 53.2硬件設(shè)計(jì)思想及電路圖3.2.1硬件設(shè)計(jì)思想由單片機(jī)進(jìn)行處理,并將行列信號(hào)分別通過(guò)顯示驅(qū)動(dòng)輸入點(diǎn)陣大屏,控制點(diǎn)陣的顯示。1 單片機(jī): 采用AT89S52單片機(jī)芯片作為中控,控制LED點(diǎn)陣顯示。2顯示:考慮到標(biāo)準(zhǔn)地顯示一個(gè)漢字至少需要16*16LED點(diǎn)陣屏,而我們也只需要實(shí)現(xiàn)大屏顯示的根

7、本功能,并不需要太大的顯示屏,因此決定采用16x16 LED點(diǎn)陣屏顯示漢字。3顯示驅(qū)動(dòng):考慮到設(shè)計(jì)所需端口較多的問(wèn)題,為減少資源占用,使用74HC154 416譯碼器作為列驅(qū)動(dòng)芯片,采用74HC373串入并出8位鎖存器作行驅(qū)動(dòng)芯片。但由于兩種芯片的最大輸出電流均不夠大雖然74HC373輸出電流已經(jīng)較大了,為讓LED顯示亮度夠強(qiáng),采用PNP型三極管來(lái)進(jìn)行電流的放大,同時(shí)為保護(hù)芯片,我們又采用1K電阻來(lái)進(jìn)行限流。3.2.2硬件電路圖本設(shè)計(jì)16X16系統(tǒng)的制作主要在于擴(kuò)展用戶I/O口,最終系統(tǒng)實(shí)現(xiàn)的關(guān)鍵在于掃描電路的擴(kuò)展及程序的編寫(xiě)。系統(tǒng)I/O口的擴(kuò)展是采用了4-16譯碼器74HC154來(lái)實(shí)現(xiàn)的,7

8、4HC154作為16*16系統(tǒng)的列掃描脈沖產(chǎn)生電路,其地址線連接到AT89S52的P1口的低4位上。利用P2口為8個(gè)行數(shù)據(jù)端口傳送數(shù)據(jù)。由于P口的驅(qū)動(dòng)力不強(qiáng),因此在P2的每個(gè)輸出端都加上三極管,以加大驅(qū)動(dòng)電流,提高點(diǎn)陣的顯示亮度。設(shè)計(jì)原理圖如圖3.5所示:6 AT89S52單片機(jī)P1口與74HC154的輸入端A,B,C,D連接,74HC154的16個(gè)輸出端與16×16LED的列線相連,P2口與行線相連。由于單片機(jī)端口輸出的電流較小,缺乏以驅(qū)動(dòng)LED。故在LED的每個(gè)列線上加上一個(gè)三極管,對(duì)電流進(jìn)行放大,如圖3.6。通過(guò)74HC154對(duì)16×16LED進(jìn)行逐列掃描,選中一列時(shí)

9、通過(guò)P2口選中列即點(diǎn)亮行上的LED,快速的逐列掃描即可實(shí)現(xiàn)文字信息顯示。由上可知,可采用逐列掃描的方法實(shí)現(xiàn)LED的字符顯示。圖3.8列驅(qū)動(dòng)電路與行驅(qū)動(dòng)電路圖 圖3.9 點(diǎn)陣顯示電路圖4.軟件設(shè)計(jì)4.1漢字的點(diǎn)陣顯示原理及字庫(kù)代碼獲取方法我們先以簡(jiǎn)單的漢字顯示為例,每一個(gè)字由16行16列的點(diǎn)陣組成顯示。即國(guó)標(biāo)漢字庫(kù)中的每一個(gè)字均由256點(diǎn)陣來(lái)表示。我們可以把每一個(gè)點(diǎn)理解為一個(gè)象素,而把每一個(gè)字的字形理解為一幅圖像。事實(shí)上這個(gè)漢字屏不僅可以顯示漢字,也可以顯示在256象素范圍內(nèi)的任何圖形。如用8位的AT89S52單片機(jī)控制,由于單片機(jī)的總線為8位,一個(gè)字需要拆分為2個(gè)局部,如圖4.1所示。 9 為

10、了弄清楚漢字的點(diǎn)陣組成規(guī)律,首先通過(guò)列掃描方法獲取漢字的代碼。漢字可拆分為上部和下部,上部由8×16點(diǎn)陣組成,下部也由8×16點(diǎn)陣組成。通過(guò)列掃描方法首先顯示左上角的第1列的上半局部,顯示漢字“龍時(shí),P2.4點(diǎn)亮,由上往下排列,為:P2.0滅,P2.1滅,P2.2滅P2.3滅,P2.4亮,P2.5滅,P2.6滅,P2.7滅。即二進(jìn)制00001000,轉(zhuǎn)換為十六進(jìn)制為08h。上半部一列完成后,繼續(xù)掃描下半部的一列,為了方便,我們?nèi)栽O(shè)計(jì)成由上往下掃描,從圖4.1可以看到,這一列全部為不亮,即為00000000,十六進(jìn)制那么為00h。依照這個(gè)方法掃描16列,一共掃描32個(gè)8位,可

11、以得出漢字“龍的掃描代碼為:00H,08H,08H,08H,08H,08H,0FFH,08H0FH,48H,28H,08H,08H,18H,08H,00H00H,00H,02H,06H,30H,0C4H,04H,08H0FCH,24H,44H,84H,04H,04H,3CH,00H由這個(gè)原理可以看出,無(wú)論顯示何種字體或圖像,都可以用這個(gè)方法來(lái)分析出他的掃描代碼從而顯示在屏幕上。本系統(tǒng)是設(shè)計(jì)龍巖學(xué)院字體的顯示,使用這個(gè)方法可以分析出龍巖學(xué)院這幾個(gè)字的代碼。4.2 程序流程圖軟件程序主要由開(kāi)始、初始化、主程序、字庫(kù)組成。其中主程序和子程序的流程圖如圖4-2和圖4-3所示。10 圖4-2 主程序流程

12、圖11 12 4.3程序清單:COLUMN EQU P1 ;列掃描信號(hào)輸出端口ROW EQU P2 ;顯示信號(hào)輸出端口LATCH_H EQU P3.0 ;上鎖存信號(hào)輸出端口LATCH_L EQU P3.1 ;下鎖存信號(hào)輸出端口SCANCODE EQU 0 ;掃描信號(hào)SPEED EQU 10 ;0.5s延遲S_TIME_H EQU 0FDH ;2.5ms掃描時(shí)間S_TIME_L EQU 0D0H ;2.5ms掃描時(shí)間ORG 00H ;程序從0地址開(kāi)始JMP START ;跳至STARTORG 0BH ;TIMER0中斷向量JMP TIMER0 ;跳至TIMER0中斷子程序;= START:MOV

13、 IE,#10000010B ;設(shè)定TIMER0中斷MOV TMOD,#1 ;設(shè)定TIMER0為MODE1MOV SP,#60H ;移開(kāi)堆棧指針SETB RS0 ;切換到RB1MOV R0,#20H ;上面局部開(kāi)始存放地址MOV R1,#30H ;下面局部開(kāi)始存放地址MOV R2,#16 ; 掃描16列MOV R3,#SCANCODE ;載入掃描碼CLR RS0 ;切換回RS0MOV TH0,#S_TIME_H ;設(shè)定每列掃描時(shí)間MOV TL0,#S_TIME_L ;設(shè)定每列掃描時(shí)間SETB TR0 ;啟動(dòng)TIMER0MOV DPTR,#TABLE ;將常數(shù)指針指向TABLE地址MOV 41H

14、,#4 ;4次加載字型MOV R0,#20H ; 上面局部開(kāi)始存放地址MOV R1,#30H ;下面局部開(kāi)始存放地址;= LOOP: CALL LOADING ;加載字型CALL DELAY ;稍等一下CLR CMOV A,DPLADD A,#32MOV DPL,AMOV A,DPHADDC A,#0MOV DPH,AMOV R0,#20H ; 上面局部開(kāi)始存放地址MOV R1,#30H13DJNZ 41H,LOOP ;跳至LOOP形成一個(gè)循環(huán)一次寫(xiě)1字 JMP START ;跳至START形成一個(gè)循環(huán);= LOADING: PUSH ACC ;存儲(chǔ)ACCPUSH PSW ;存儲(chǔ)PSWMOV

15、R2,#16 ;加載各16筆數(shù)據(jù)MOV R3,#0 ;間距MOV R4,#10H ;間距LOAD_1: MOV A,R3 ;將間距放入ACCMOVC A,A+DPTR ;讀入數(shù)據(jù)MOV R0,A ;將上面局部數(shù)據(jù)存入存儲(chǔ)器INC R0 ;指向下一個(gè)地址INC R3 ;指向下一個(gè)地址,相對(duì)DPTR地址加1、 MOV A,R4 ;將間距放入ACCMOVC A,A+DPTR ;讀入數(shù)據(jù)MOV R1,A ;將上面局部數(shù)據(jù)存入存儲(chǔ)器INC R1 ;指向下一個(gè)地址INC R4 ;指向下一個(gè)地址DJNZ R2,LOAD_1 ;跳至LOAD_1形成一個(gè)循環(huán)1上字節(jié)1下字節(jié) POP PSW ;取回PSWPOP

16、ACC ;取回ACC資料RET;= DELAY: MOV R7,#SPEEDD2: MOV R6,#200D1: MOV R5,#250DJNZ R5,$DJNZ R6,D1DJNZ R7,D2RET;= DELAY1: MOV R7,#1D22: MOV R6,#1D11: MOV R5,#100DJNZ R5,$DJNZ R6,D11DJNZ R7,D22RETTIMER0: CLR TR0 ;關(guān)閉TIMER0PUSH ACC ;存儲(chǔ)ACCSETB RS0 ;切換到RB1MOV A,R3 ;載入掃描碼MOV COLUMN,A ;輸出掃描碼顯示一列INC R3 ;下一個(gè)掃描碼MOV A,R0

17、 ;取出顯示信號(hào);= 14;使用共陽(yáng)極式LED陣列,那么參加下一行指令;= CPL AMOV ROW,A ;輸出顯示信號(hào)SETB LATCH_H ;翻開(kāi)鎖存器NOPCLR LATCH_H ;關(guān)閉鎖存器INC R0MOV A,R1 ;取出顯示信號(hào);= ;使用共陽(yáng)極式LED陣列,那么參加下一行指令;=CPL AMOV ROW,A ;輸出顯示信號(hào)SETB LATCH_L ;翻開(kāi)鎖存器NOPCLR LATCH_L ;關(guān)閉鎖存器INC R1CALL DELAY1MOV A,#0FFHMOV P2,ADJNZ R2,NEXT_C ;未超過(guò)16行那么跳至NEXT_CMOV R2,#16 ;從新開(kāi)始掃描MOV

18、 R0,#20H ;從第一列開(kāi)始MOV R1,#30H ;從第一列開(kāi)始NEXT_C: MOV TH0,#S_TIME_H ;設(shè)定每列掃描時(shí)間MOV TL0,#S_TIME_L ;設(shè)定每列掃描時(shí)間SETB TR0 ;啟動(dòng)TIMER0CLR RS0 ;切換回RB0POP ACC ;取回ACCRETITABLE: DB 00H,10H,10H,10H,10H,10H,0FFH,10HDB 0F0H,12H,1CH,0D0H,10H,10H,10H,00HDB 00H,40H,20H,10H,0CH,03H,10H,08HDB 3FH,42H,41H,40H,40H,40H,70H,00H DB 00H,40H,5EH,50H,50H,0D0H,50H,5FHDB 50H,50H,50H,50H,5EH,40H,40H,00HDB 10H,08H,04H,02H,7FH,22H,22H,22HDB 22H,22H,22H,22H,7EH,00H,00H,00H 15DB 40H,30H,10H,12H,5CH,54H,50H,51HDB 5EH,0D4H,50H,18H,57H,32H,10H,00HDB 00H,02H,02H,02H,02H,02H,42H,82HDB 7FH,02H,02H,02H,02H,02H,02H,00

溫馨提示

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

評(píng)論

0/150

提交評(píng)論