久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2924|回復: 0
打印 上一主題 下一主題
收起左側

單片機led燈設計

[復制鏈接]
跳轉到指定樓層
樓主
ID:108295 發表于 2016-3-10 22:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
引 言
LED點陣顯示屏作為一種新興的顯示器件,是由多個獨立的LED發光二極管封裝而成. LED點陣顯示屏可以顯示數字或符號, 通常用來顯示時間、速度、系統狀態等。
本設計是4個16×16點陣LED電子顯示屏的設計。整機以美國ATMEL公司生產的40腳單片機AT89C51為核心,介紹了以它為控制系統的LED點陣電子顯示屏的動態設計和開發過程。通過該芯片控制一個行驅動器74LS154和八個列驅動器74HC595來驅動顯示屏顯示。該電子顯示屏可以顯示各種文字或單色圖像,全屏能顯示4個漢字,采用16塊8 x 8點陣LED顯示模塊來組成4個16x16點陣顯示模式。顯示采用動態顯示,使得圖形或文字能夠實現靜止、移入移出等多種顯示方式。文中詳細介紹了LED點陣顯示的硬件設計思路、硬件電路各個部分的功能及原理、相應軟件的程序設計,以及使用說明等。
目  錄







第一章 16*16點陣LED電子顯示屏設計功能要求
設計一個能顯示4個16*16點陣圖文LED顯示屏,要求能顯示圖形或文字,顯示圖形或文字應穩定、清晰,圖形或文字顯示有靜止、左移或右移等顯示方式。
從理論上說,不論顯示圖形還是文字,只要控制與組成這些圖形或文字的各個點所在的位置相對應的LED器件發光,就可以得到我們想要的顯示結果,這種同時控制各個發光點亮滅的方法稱為靜態驅動顯示方式。16x16的點陣共有256個發光二極管,顯然單片機沒有這么多的端口,如果我采用鎖存器來擴展端口,按8位的鎖存器來計算,16x16的點陣需要256/8=32個鎖存器。這個數字很龐大,因為我們僅僅是16x16的點陣,在實際應用中的顯示屏往往要大得多,這樣在鎖存器上花的成本將是一個很龐大的數字。因此在實際應用中的顯示屏幾乎都不采用這種設計,而采用另外一種稱為動態掃描的顯示方法。
動態掃描的意思簡單地說就是逐行輪流點亮,這樣掃描驅動電路就可以實現多行(比如16行)的同名列共用一套驅動器。具體就16x16的點陣來說,把所有同1行的發光管的陽極連在一起,把所有同1列的發光管的陰極連在一起(共陽極的接法),先送出對應第一行發光管亮滅的數據并鎖存,然后選通第1行使其燃亮一定時間,然后熄滅;再送出第二行的數據并鎖存,然后選通第2行使其燃亮相同的時間,然后熄滅;以此類推,第16行之后,又重新燃亮第1行,反復輪回。當這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現象,就能夠看到顯示屏上穩定的圖形了。


二章16*16點陣LED電子顯示屏的設計方案2.1  顯示模塊方案論證
四個8×8的點陣構成一個16×16的點陣。行和列的交叉處有一個LED,共由256個LED構成,如果LED的陽極與行相連,而陰極與列相連,那么只要給該LED對應的行以高電平,列以低電平,那么對應的LED就發光。
2.2  數據傳輸方案論證
采用掃描方式進行顯示時,每行有一個行驅動器,各行的同名列共用一個行驅動器。顯示數據通常儲存在單片機的儲存器中,按8位一個字節的形式順序排放。顯示時,要把一行中各列的數據都傳送到相應列的驅動器上去,這就存在一個顯示數據傳輸的問題。從控制電路到列驅動器的數據傳輸可以采用并行方式或串行方式。顯然,采用并行方式時,從控制電路到列驅動器的線路數量大,相應的硬件file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image001.giffile:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image003.jpg數目多。當列數很多時,并列傳輸的方案是不可取的。
采用串行傳輸的方法,控制電路可以只用一根信號線,將列數據一位一位傳往列驅動器,在硬件方面無疑是十分經濟的。但是,串行傳輸過程較長,數據按順序一位一位地輸出給列驅動器,只有當一行的各列數據都以傳輸到位之后,這一行的各列才能并行地進行顯示。這樣,對于一行的顯示過程就可以分解成列數據準備(傳輸)和列數據顯示兩部分。對于串行傳輸方式來說,列數據準備時間可能相當長,在行掃描周期確定的情況下留給行顯示的時間就太少了,以致影響到LED的亮度。
解決串行傳輸中列數據準備和列數據顯示的時間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數據的同時,傳送下一列數據。為了達到重疊處理的目的,列數據的顯示就需要具有所存功能。經過上述分析,就可以歸納出列驅動器電路應具有的功能。對于列數據準備來說,它應能實現串入并處的移位功能;對于列數據顯示來說,應具有并行鎖存的功能。這樣,本行已準備好的數據打入并行鎖存器進行顯示時,串并移位寄存器就可以準備下一行的列數據,而不會影響本行的顯示。圖2-2為顯示屏電路實現的結構框圖。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image004.jpg
2-2  顯示屏電路結構框圖
第三章16*16點陣LED電子顯示屏軟硬件的設計3.1 單片機系統及外圍電路
高的刷新頻率,時期顯示更穩定。單片機的串口與列驅動器相連,用來顯示數據。P1口低4位與行驅動器相連,送出行選信號;P1.5~P1.7口則用來發送控制信號。P0口和P2口空著,在有必要的時候可以擴展系統的ROM和RAM。16×16點陣顯示屏的硬件原理圖如圖3-1。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image006.jpg
                   3-1  1616的點陣顯示屏的硬件原理圖3.2  行驅動器
由于4點陣顯示器有16行,為充分利用單片機的接口,本電路中加入了一個4-16線譯碼器74LS154,其輸入是一個16進制碼,解碼輸出為低態掃描信號,單片機P1口第四位輸出的行號經4/6線譯碼器74LS154譯碼器后生產16條行選通訊信號線,再經過驅動器驅動對應的線。一條行線上要帶動16列*4的LED器件5mA電流計算,128個LED同時發光時,需要640mA的電流,選用三極管8550作為驅動管可滿足要求。
3.3  列驅動器
列驅動電路由集成電路74HC595構成。它具有一個8位串入并出的移位寄存器和一個8位輸出鎖存器的結構,而且移位寄存器和輸出鎖存器的控制是各自獨立的,可以實現在顯示本行列數據的同時,傳送下一行的列數據,既達到重疊處理的目的。如圖3-3是集成電路74HC595的結構圖。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image007.gif
3-3 74HC595結構圖
將8片74HC595進行級連,可共用一個移位時鐘SCK及數據鎖存信號RCK。這樣,當第一行需要顯示的數據經過8x8=64個SCK時鐘后便可將其全 部移入74HC595中,此時還將產生一個數據鎖存信號RCK將數據鎖存在74HC595中,并在使能信號G的作用下,使串入數據并行輸出,從而使與各輸出位對應的場驅動管處于放大或截止狀態;同時由行掃描控制電路產生信號使第一行掃描管導通,相當于第一行LED的正端都接高,顯然,第一行LED管的亮滅就取決于74HC595中的鎖存信號;此外,在第一行LED管點亮的同時,再在74HC595中移入第二行需要顯示的數據,隨后將其鎖存,同時由行掃描控制電路將第一行掃描管關閉而接通第二行,使第二行LED管點亮,以此類推,當第十六行掃描過后再回到第一行,這樣,只要掃描速度足夠高,就可形成一幅完整的文字或圖像。


第四章16*16點陣LED電子顯示屏系統程序設計
顯示屏軟件的主要功能是向屏體提供顯示數據,并產生各種控制信號,使屏幕按設計的要求顯示。根據軟件分層次設計的原理,可以把顯示屏的軟件系統分為兩層;第一層是底層的顯示驅動程序,第二層是上層的系統應用程序。顯示驅動程序負責向屏體送顯示數據,并負責產生行掃描信號和其他控制信號,配合完成LED顯示屏的掃描顯示工作。顯示驅動器程序由定時T0中斷程序實現。系統應用程序完成系統環境設置(初始化)、顯示效果處理等工作,由主程序來實現。
從有利于實現較復雜的算法(顯示效果處理)和有利于程序結構化考慮,顯示屏程序適宜采用C語言編寫。
4.1  顯示驅動程序
顯示驅動程序在進入中斷后首先要對定時器T0重新賦初值,以保證顯示屏刷新率的穩定,1/16掃描顯示屏的刷新率(幀頻)計算公式如下:
       刷頻率(幀頻)=file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image009.gif×file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image011.gif溢出率=file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image009.gif×file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image014.gif        (4-1)
其中f位晶振頻率,t為定時器T0初值(工作在16位定時器模式)。
然后顯示驅動程序查詢當前燃亮的行號,從顯示緩存區內讀取下一行的顯示數據,并通過串口發送給移位寄存器。為消除在切換行顯示數據的時候產生拖尾現象,驅動程序先要關閉顯示屏,即消隱,等顯示數據打入輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯示。圖4-1為顯示驅動程序流程圖。
                              



file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image015.gif


4-1 顯示驅動程序流程圖4.2  系統主程序
本文設計的系統軟件能使系統在目測條件下LED顯示屏各點亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字應穩定、清晰無串擾。圖形或文字顯示有靜止、移入移出等顯示方式。
系統主程序開始以后,首先是對系統環境初始化,包括設置串口、定時器、中斷和端口;然后以“卷簾出”效果顯示圖形,停留約3s;接著向上滾動顯示“上天下地”這4個漢字及一個圖形,然后以“卷簾入”效果隱去圖形。由于單片機沒有停機指令,所以可以設置系統程序不斷的循環執行上述顯示效果。
單元顯示屏可以接收來自控制器(主控制電路板)或上一級顯示單元模塊傳輸下來的數據信息和命令信息,并可將這些數據信息和命令信息不經任何變化地再傳送到下一級顯示模塊單元中,因此顯示板可擴展至更多的顯示單元,用于顯示更多的顯示內容。圖4-2系統主程序流程圖。
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image016.gif
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtml1/01/clip_image017.gif

        4-2 系統主程序流程圖

4.3  單片機匯編程序
             ORG    0000H
               LJMP   START
               ORG    0003H
               RETI
               ORG     000BH
               LJMP    INTT0
               ORG     0013H
               RETI
               ORG    001BH
               RETI
               ORG    0023H
               RETI
               ORG    002BH
               RETI
START:           MOV     20H,#00H
              MOV    A,#0FFH
               MOV    P1,A
               MOV    P2,A
               MOV    P3,A
               MOV    P0,A
               CLR    P1.6
               MOV    TMOD,#01H
               MOV    TH0,#0FCH
               MOV    TL0,#18H
               MOV    SCON,#00H
               MOV    IE,#82H
               MOV    SP,#70H
               LCALL  DIS1
MAIN:  MOV    DPTR,#TAB
               LCALL  MOVDISP
               MOV    DPTR,#TAB
               LCALL  MOVDISP1
               AJMP    MAIN
MOVDISP:MOV     R1,#6
DISLOOP:MOV     R3,#100
DISMOV:MOV     R2,#00H
        SETB   TR0
WAITMOV:JBC     00H,DISMOV1
               AJMP   WAITMOV
DISMOV1:DJNZ    R3,DISMOV
               MOV    A,#128
               ADD    A,DPL
               MOV    DPL,A
               MOV    A,#0
               ADDC   A,DPH
               MOV    DPH,A
              DEC    R1
               MOV    A,R1
               JZ     MOVOUT
               AJMP   DISLOOP
MOVOUT:RET
MOVDISP1:MOV          R1,#255
DISLOOP1:MOV     R3,#10
DISMOV2:MOV     R2,#00H
               SETB   TR0
WAITMOV1:JBC     00H,DISMOV3
               AJMP   WAITMOV1
DISMOV3:DJNZ    R3,DISMOV2
               INC    DPTR
               INC    DPTR
               DEC    R1
               MOV    A,R1
               JZ     MOVOUT1
               AJMP   DISLOOP1
MOVOUT1:RET
DIS1:   MOV    R3,#5AH
DIS11:  MOV    R2,#00H
               MOV    DPTR,#TAB
               SETB   TR0
WAIT11:JBC     00H,DIS111
        AJMP   WAIT11
DIS111: DJNZ   R3,DIS11
               RET
INTT0:  PUSH   ACC
        MOV    TH0,#0FCH
               MOV    TL0,#18H
               MOV    A,#97
               ADD    A,DPL
               MOV    DPL,A
               MOV    A,#0
               ADDC   A,DPH
               MOV    DPH,A
               MOV    A,#0
               MOVC   A,@A+DPTR
               MOV    SBUF,A
WAIT:   JBC    TI,GO
               AJMP   WAIT
GO:     MOV    A,DPL
               SUBB   A,#1
               MOV    DPL,A
               MOV    A,DPH
               SUBB   A,#0
               MOV    DPH,A
               MOV    A,#0
               MOVC   A,@A+DPTR
               MOV    SBUF,A
WAIT1:  JBC    TI,GO1
               AJMP   WAIT1
GO1:    MOV    R0,#03H
MLOOP:MOV     A,DPL
        SUBB   A,#31
               MOV    DPL,A
               MOV    A,DPH
               SUBB   A,#0
               MOV    DPH,A
               MOV    A,#0
               MOVC   A,@A+DPTR
               MOV     SBUF,A
WAIT2: JBC    TI,GO2
        AJMP   WAIT2
GO2:   MOV     A,DPL
               SUBB   A,#1
               MOV    DPL,A
               MOV    A,DPH
               SUBB   A,#0
               MOV    DPH,A
               MOV    A,#0
        MOVC   A,@A+DPTR
               MOV    SBUF,A
WAIT3: JBC    TI,GO3
               AJMP   WAIT3
GO3:   DJNZ    R0,MLOOP
               SETB   P1.7
               NOP
               SETB   P1.6
               NOP
               NOP
               CLR    P1.6
               MOV    A,R2
               ORL    A,#0F0H
               MOV    R2,A
               MOV    A,P1
               ORL    A,#0FH
               ANL    A,R2
               MOV    P1,A
               CLR    P1.7
               INC    R2
               INC    DPTR
               INC    DPTR
               MOV    A,R2
               ANL    A,#0FH
               JNZ    GO4
               SETB   00H
               MOV    A,DPL
               SUBB   A,#32
               MOV    DPL,A
               MOV    A,DPH
               SUBB   A,#0
               MOV    DPH,A
               CLR    TR0
GO4:    POP    ACC
        RETI
TAB:DB  FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF
        DB   FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF
        DB   FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF
        DB   FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF,FFFF
    DB FDFF,FDFF,FDFF,FDFF,FDFF,FDFF,FC07,FDFF,FDFF,FDFF,FDFF,FDFF,FDFF,FDFF,FDFF,0000
       DB   0000,FDFF,FDFF,FDFF,FDFF,FDFF,0000,FDFF,FDFF,FDFF,FBFF,F78F,EFBF,DFDF,BFEF,7FF0
       DB   0000,FDFF,FDFF,FDFF,FDFF,F8FF,FDBF,FDDF,FDCF,FDF8,FDFB,FDFF,FDFF,FDFF,FDFF,FFFF
       DB   EFF7,EFF7,EFB7,EFB7,EFB7,EE00,EFB6,01B6,EFB6,EFB6,EBB4,E7BF,EFBF,DFBF,BFBE,7F80
       END


第五章 總結
本文設計的是4個16*16的LED圖文顯示屏,能夠在目測的條件下LED顯示屏各點亮度均勻、充足,可顯示圖形和文字,顯示圖形和文字穩定、清晰無串擾。圖形或文字顯示有靜止、移入移出等顯示方式。本系統具有硬件少,結構簡單,容易實現,性能穩定可靠,成本低等優點。雖然本設計只使用了一塊16*16LED點陣,電路簡單,但是已經包涵了LED顯示屏基本原理個基本程序。
在此次設計中通過查閱大量的相關資料,詳細了解LED的發光原理和LED顯示屏的原理,了解了LED的現狀,清楚的了解LED顯示屏與其他顯示屏相比較的那些優點,明確了研究目標。遺憾的是由于軟件自身的缺陷原因無法完成設計的仿真試驗,無法直觀看到程序的可行性,對于程序中存在的問題無法直接暴露出來。
通過這次課程設計,重新學習并進一步復習了89C51:熟練掌握word軟件的使用。進一步提高了自己在實際設計過程中研究問題、發現問題、解決問題的能力但從中也發現自己存在一些不足之處:對知識的積累還不夠,有些問題自己不能夠獨立解決,對實驗操作還要進一步熟練,只有這樣才能讓自己在在不斷的學習中提高自己。


參考文獻
[1] 郭建江.單片機技術與應用.東南大學出版社.
[2] 諸昌鈐 編著 :《LED顯示屏系統原理及工程技術》.成都:電子科技大學出版社
[3] 張志良 主編 :《單片機原理及控制技術》.北京:機械工業出版社,2005
[4] 李光飛 編著 :《單片機課程設計實例指導》.北京:北京航空航天出版社,
[5] 吳金戍,沈慶陽,郭庭吉編著.8051單片機實踐與應用.北京:清華大學出版社.
[6] 馬忠梅,單片機外圍電路設計 —北京:北京航空航天大學出版社 2005
[7] 胡漢才,單片機原理與接口技術[M] 北京:清華大學出版社,1995,6








  
時間
  
設計任務
完成情況
教師簽名
2011/1/10、11
對設計的課程進行了解查閱資料
2011/1/12、13
掌握基本資料情況下進行步驟分析
2011/1/1415
用proteus軟件畫出課設的原理圖
2011/1/16、17
進行課設程序的編寫與軟件的仿真實驗
2011/1/18、19
進一步查找資料完成word文件
2011/1/2021
修改、整理文檔上交


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费啪啪 | 国产一区二区三区不卡av | 国产伦精品一区二区三区高清 | 久久久久久久一区 | 久久国产精品免费一区二区三区 | 蜜桃av鲁一鲁一鲁一鲁 | 久久久久国产一区二区三区 | 精品国产成人 | 日韩高清国产一区在线 | 欧美专区在线 | 国产免费av在线 | 亚洲人成人网 | 免费观看黄色一级片 | 日韩精品免费一区二区在线观看 | 91精品国产乱码麻豆白嫩 | av免费网站在线观看 | 一区二区三区亚洲 | 亚洲综合在线网 | 日韩精品视频网 | 亚洲免费福利视频 | 欧美婷婷 | 成人高潮片免费视频欧美 | 免费一区二区三区 | 欧美视频福利 | eeuss国产一区二区三区四区 | 日韩精品免费播放 | 欧美成人精品一区二区男人看 | 欧美性另类 | 日本三级线观看 视频 | 久久天堂 | 国产精品久久久久一区二区三区 | 女人av| 亚洲国产片| 欧美精品一二三区 | 99久久夜色精品国产亚洲96 | 91精品久久久久久久久 | 日本一区二区三区四区 | 欧美午夜影院 | 波多野结衣一区二区 | 国产福利91精品 | 九九热精品在线 |