版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于單片機的16*16LED點陣顯示屏的設(shè)計 隨著單片機在各個領(lǐng)域的廣泛應用,許多用單片機作控制驅(qū)動LED顯示屏也應運產(chǎn)生。本系統(tǒng)設(shè)計使用單片機MCS-51控制掃描方法實現(xiàn)LED點陣顯示器的字符的顯示,介紹了用單片機進行顯示系統(tǒng)開發(fā)的方法,單片機軟件、硬件調(diào)試技術(shù),還有點陣顯示驅(qū)動擴展的一般方法。1.引言1.1 研究的目的、意義LED因其體積小,耗電量低,亮度及環(huán)保等優(yōu)點而被廣泛應用于公共場所的大屏顯示上,LED點陣大屏可應用于戶外廣告,交通導航,大廳公告,比賽的多媒體實時顯示等領(lǐng)域。本設(shè)計作品的用途正是在于實現(xiàn)大屏顯示的核心功能,即漢字的顯示,可實際應用于簡單的顯示系統(tǒng)中,如簡單的排隊叫號顯
2、示屏,電梯顯示屏等。通過此次設(shè)計將單片機軟硬件結(jié)合起來對程序進行編輯,校驗,鍛煉實踐能力和理論聯(lián)系實際的能力。 1.2 本設(shè)計所要做的工作為了完成該設(shè)計實現(xiàn),經(jīng)過考慮論證,決定分為以下幾個階段進行:(1)對課題進行全面的分析,明確系統(tǒng)要實現(xiàn)的功能,大致了解要解決的問題,制定總的設(shè)計方案;(2)根據(jù)論證設(shè)計硬件系統(tǒng)并畫出電路圖,并根據(jù)電路圖制電路板;(3)在硬件的根底上設(shè)計軟件程序;(4)利用仿真器編譯軟件程序,進行調(diào)試仿真;(5)把調(diào)試成功的程序利用燒入器燒入到芯片中去;(6)把固化好程序的芯片插入到實際應用系統(tǒng),投入到實際使用。2系統(tǒng)設(shè)計方案2.1系統(tǒng)構(gòu)成框圖1 3 硬件電路設(shè)計3.1 主要
3、器件介紹3.1.1 LED點陣LED點陣顯示屏采用4個8*8共256個象素的點陣,通過萬用表檢測發(fā)光二極管的方法測試判斷出該點陣的引腳分布,如圖3.1所示。8*8的LED點陣為雙色共陽模塊,單點的工作電壓為正向(Vf)=1.8v,正向電流(if)=8-10MA。靜態(tài)點亮器件時(64點全亮)總電流為640mA??傠妷簽?.8v,總功率為1.15w.動態(tài)時取決于掃描頻率(1/8或1/16秒),單點瞬間電流可達80-160mA。2 圖3.1點陣LED掃描法介紹點陣LED一般采用掃描式顯示,實際運用分為三種方式:(1) 點掃描(2) 行掃描(3) 列掃描假設(shè)使用第一種方式,其掃描頻率必須大于16*64
4、=1024HZ,周期小于1MS即可。假設(shè)使用第二和第三種方式,那么頻率必須大于16*8=128HZ,周期小于7.8MS即可符合視覺暫留要求。此外一次驅(qū)動一列或一行(8顆LED)時需外加驅(qū)動電路提高電流,否那么LED亮度會缺乏。我們把行列總線接在單片機的IO口,然后把上面分析到的掃描代碼送人總線,就可以得到顯示的漢字了。但是假設(shè)將LED點陣的行列端口全部直接接入AT89S52單片機,那么需要使用32條IO口,這樣會造成IO資源的耗盡,系統(tǒng)也再無擴充的余地。因此,我們在實際應用中只是將LED點陣的16條行線直接接在P2口,至于列選掃描信號那么是由4-16線譯碼器74HC154來選擇控制,這樣一來列
5、選控制只使用了單片機的4個IO口,節(jié)約了很多IO資源,為單片機系統(tǒng)擴充使用功能提供了條件。漢字掃描顯示的根本過程是這樣的:通電后由于電阻R1,電容C1的作用,使單片機的RST復位腳電平先高后低,從而到達復位;之后,在C2,C3,X1以及單片機內(nèi)部時鐘電路的作用下,單片機AT89S52按照設(shè)定的程序在接口輸出與內(nèi)部漢字對應的代碼電平送至LED點陣的行選線,同時在P1.0,P1.1,P1.2,P1.3接口輸出列選掃描信號,從而選中相應的象素LED發(fā)光,并利用人眼的視覺暫留特性合成整個漢字的顯示。 3.1.2鎖存器74LS37374ls373是常用的地址鎖存器芯片,它實質(zhì)是一個是帶三態(tài)緩沖輸出的8D
6、觸發(fā)器,在單片機系統(tǒng)中為了擴展外部存儲器,通常需要一塊74ls373芯片,其內(nèi)部結(jié)構(gòu)圖如圖3.2所示。 3 圖3.2 74ls37374HC154管腳圖 其邏輯圖如圖3.4所示: 4 圖3.4 74HC154邏輯圖其功能表如表3.1所示: 說明: H高電平 L低電平 X任意 表3.1 74HC154功能表 53.2硬件設(shè)計思想及電路圖3.2.1硬件設(shè)計思想由單片機進行處理,并將行列信號分別通過顯示驅(qū)動輸入點陣大屏,控制點陣的顯示。1 單片機: 采用AT89S52單片機芯片作為中控,控制LED點陣顯示。2顯示:考慮到標準地顯示一個漢字至少需要16*16LED點陣屏,而我們也只需要實現(xiàn)大屏顯示的根
7、本功能,并不需要太大的顯示屏,因此決定采用16x16 LED點陣屏顯示漢字。3顯示驅(qū)動:考慮到設(shè)計所需端口較多的問題,為減少資源占用,使用74HC154 416譯碼器作為列驅(qū)動芯片,采用74HC373串入并出8位鎖存器作行驅(qū)動芯片。但由于兩種芯片的最大輸出電流均不夠大雖然74HC373輸出電流已經(jīng)較大了,為讓LED顯示亮度夠強,采用PNP型三極管來進行電流的放大,同時為保護芯片,我們又采用1K電阻來進行限流。3.2.2硬件電路圖本設(shè)計16X16系統(tǒng)的制作主要在于擴展用戶I/O口,最終系統(tǒng)實現(xiàn)的關(guān)鍵在于掃描電路的擴展及程序的編寫。系統(tǒng)I/O口的擴展是采用了4-16譯碼器74HC154來實現(xiàn)的,7
8、4HC154作為16*16系統(tǒng)的列掃描脈沖產(chǎn)生電路,其地址線連接到AT89S52的P1口的低4位上。利用P2口為8個行數(shù)據(jù)端口傳送數(shù)據(jù)。由于P口的驅(qū)動力不強,因此在P2的每個輸出端都加上三極管,以加大驅(qū)動電流,提高點陣的顯示亮度。設(shè)計原理圖如圖3.5所示:6 AT89S52單片機P1口與74HC154的輸入端A,B,C,D連接,74HC154的16個輸出端與16×16LED的列線相連,P2口與行線相連。由于單片機端口輸出的電流較小,缺乏以驅(qū)動LED。故在LED的每個列線上加上一個三極管,對電流進行放大,如圖3.6。通過74HC154對16×16LED進行逐列掃描,選中一列時
9、通過P2口選中列即點亮行上的LED,快速的逐列掃描即可實現(xiàn)文字信息顯示。由上可知,可采用逐列掃描的方法實現(xiàn)LED的字符顯示。圖3.8列驅(qū)動電路與行驅(qū)動電路圖 圖3.9 點陣顯示電路圖4.軟件設(shè)計4.1漢字的點陣顯示原理及字庫代碼獲取方法我們先以簡單的漢字顯示為例,每一個字由16行16列的點陣組成顯示。即國標漢字庫中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個象素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在256象素范圍內(nèi)的任何圖形。如用8位的AT89S52單片機控制,由于單片機的總線為8位,一個字需要拆分為2個局部,如圖4.1所示。 9 為
10、了弄清楚漢字的點陣組成規(guī)律,首先通過列掃描方法獲取漢字的代碼。漢字可拆分為上部和下部,上部由8×16點陣組成,下部也由8×16點陣組成。通過列掃描方法首先顯示左上角的第1列的上半局部,顯示漢字“龍時,P2.4點亮,由上往下排列,為:P2.0滅,P2.1滅,P2.2滅P2.3滅,P2.4亮,P2.5滅,P2.6滅,P2.7滅。即二進制00001000,轉(zhuǎn)換為十六進制為08h。上半部一列完成后,繼續(xù)掃描下半部的一列,為了方便,我們?nèi)栽O(shè)計成由上往下掃描,從圖4.1可以看到,這一列全部為不亮,即為00000000,十六進制那么為00h。依照這個方法掃描16列,一共掃描32個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由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出他的掃描代碼從而顯示在屏幕上。本系統(tǒng)是設(shè)計龍巖學院字體的顯示,使用這個方法可以分析出龍巖學院這幾個字的代碼。4.2 程序流程圖軟件程序主要由開始、初始化、主程序、字庫組成。其中主程序和子程序的流程圖如圖4-2和圖4-3所示。10 圖4-2 主程序流程
12、圖11 12 4.3程序清單:COLUMN EQU P1 ;列掃描信號輸出端口ROW EQU P2 ;顯示信號輸出端口LATCH_H EQU P3.0 ;上鎖存信號輸出端口LATCH_L EQU P3.1 ;下鎖存信號輸出端口SCANCODE EQU 0 ;掃描信號SPEED EQU 10 ;0.5s延遲S_TIME_H EQU 0FDH ;2.5ms掃描時間S_TIME_L EQU 0D0H ;2.5ms掃描時間ORG 00H ;程序從0地址開始JMP START ;跳至STARTORG 0BH ;TIMER0中斷向量JMP TIMER0 ;跳至TIMER0中斷子程序;= START:MOV
13、 IE,#10000010B ;設(shè)定TIMER0中斷MOV TMOD,#1 ;設(shè)定TIMER0為MODE1MOV SP,#60H ;移開堆棧指針SETB RS0 ;切換到RB1MOV R0,#20H ;上面局部開始存放地址MOV R1,#30H ;下面局部開始存放地址MOV R2,#16 ; 掃描16列MOV R3,#SCANCODE ;載入掃描碼CLR RS0 ;切換回RS0MOV TH0,#S_TIME_H ;設(shè)定每列掃描時間MOV TL0,#S_TIME_L ;設(shè)定每列掃描時間SETB TR0 ;啟動TIMER0MOV DPTR,#TABLE ;將常數(shù)指針指向TABLE地址MOV 41H
14、,#4 ;4次加載字型MOV R0,#20H ; 上面局部開始存放地址MOV R1,#30H ;下面局部開始存放地址;= LOOP: CALL LOADING ;加載字型CALL DELAY ;稍等一下CLR CMOV A,DPLADD A,#32MOV DPL,AMOV A,DPHADDC A,#0MOV DPH,AMOV R0,#20H ; 上面局部開始存放地址MOV R1,#30H13DJNZ 41H,LOOP ;跳至LOOP形成一個循環(huán)一次寫1字 JMP START ;跳至START形成一個循環(huán);= LOADING: PUSH ACC ;存儲ACCPUSH PSW ;存儲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ù)存入存儲器INC R0 ;指向下一個地址INC R3 ;指向下一個地址,相對DPTR地址加1、 MOV A,R4 ;將間距放入ACCMOVC A,A+DPTR ;讀入數(shù)據(jù)MOV R1,A ;將上面局部數(shù)據(jù)存入存儲器INC R1 ;指向下一個地址INC R4 ;指向下一個地址DJNZ R2,LOAD_1 ;跳至LOAD_1形成一個循環(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 ;存儲ACCSETB RS0 ;切換到RB1MOV A,R3 ;載入掃描碼MOV COLUMN,A ;輸出掃描碼顯示一列INC R3 ;下一個掃描碼MOV A,R0
17、 ;取出顯示信號;= 14;使用共陽極式LED陣列,那么參加下一行指令;= CPL AMOV ROW,A ;輸出顯示信號SETB LATCH_H ;翻開鎖存器NOPCLR LATCH_H ;關(guān)閉鎖存器INC R0MOV A,R1 ;取出顯示信號;= ;使用共陽極式LED陣列,那么參加下一行指令;=CPL AMOV ROW,A ;輸出顯示信號SETB LATCH_L ;翻開鎖存器NOPCLR LATCH_L ;關(guān)閉鎖存器INC R1CALL DELAY1MOV A,#0FFHMOV P2,ADJNZ R2,NEXT_C ;未超過16行那么跳至NEXT_CMOV R2,#16 ;從新開始掃描MOV
18、 R0,#20H ;從第一列開始MOV R1,#30H ;從第一列開始NEXT_C: MOV TH0,#S_TIME_H ;設(shè)定每列掃描時間MOV TL0,#S_TIME_L ;設(shè)定每列掃描時間SETB TR0 ;啟動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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科技助力小學教師職業(yè)進階
- 2025年度數(shù)據(jù)中心電纜鋪設(shè)與維護承包合同
- 二零二五年度紙勞動合同企業(yè)內(nèi)部審計服務合同
- 安全文化在商業(yè)環(huán)境中的價值與影響研究
- 綠植裝飾教育空間的環(huán)境優(yōu)化之道
- 2024年原木加工投資申請報告代可行性研究報告
- 將日常知識與學習熱情相連接的教育方式探索
- 2025年貴州職業(yè)技術(shù)學院高職單招高職單招英語2016-2024歷年頻考點試題含答案解析
- 高尿酸背后的高風險解讀血壓問題的另一面教學與實踐方法分析講座開場
- 2025年蘇州工業(yè)園區(qū)職業(yè)技術(shù)學院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 極簡統(tǒng)計學(中文版)
- 2024年資格考試-對外漢語教師資格證筆試參考題庫含答案
- 2024年4月自考02382管理信息系統(tǒng)答案及評分參考
- (蘇版)初三化學上冊:第2單元課題1空氣
- 2023年12月廣東珠海市軌道交通局公開招聘工作人員1人筆試近6年高頻考題難、易錯點薈萃答案帶詳解附后
- 腹腔鏡腎上腺腫瘤切除術(shù)查房護理課件
- 燃氣罩式爐應急預案
- 專題23平拋運動臨界問題相遇問題類平拋運和斜拋運動
- 超聲科醫(yī)德醫(yī)風制度內(nèi)容
- 高三開學收心班會課件
- 蒸汽換算計算表
評論
0/150
提交評論