久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

基于單片機的Led點陣lunwen(xiexiebang推薦)

時間:2019-05-14 02:51:22下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《基于單片機的Led點陣lunwen(xiexiebang推薦)》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《基于單片機的Led點陣lunwen(xiexiebang推薦)》。

第一篇:基于單片機的Led點陣lunwen(xiexiebang推薦)

基于單片機的Led點陣廣告牌設計

【摘要】本設計使用AT89C51系列高速單片機作為主控制模塊,利用簡單的外圍電路來驅動64×16的點陣LED顯示屏。利用AT89C51系列高速單片機本身強大的功能,可以很方便的實現單片機與PC機間的數據傳輸及存儲,并能利用軟件方便的進行顯示內容的多樣變化,另一方面點陣顯示屏廣泛的應用于醫院、機場、銀行等公共場所,所以本設計具有很強的現實應用性。

本LED顯示屏能夠以動態掃描的方式同時顯示4個16×16點陣漢字,并能通過上位機軟件修改顯示內容和顯示效果等等。把字符內碼存儲在空閑的單片機程序存儲器空間,使本LED顯示系統能掉電存儲1024個字符。設計中采用了SPI接口的GB2312標準字庫,支持所有的國標字符和ASCII標準字符的顯示。因為采用串行傳輸方式,使本系統的可擴展性得到提升,便于多個顯示單元的級聯。

本文從LED的顯示原理入手,詳細闡述了LED動態顯示的過程,以及硬件電路的設計、計算和軟件的算法。

【關鍵詞】 動態顯示;單片機;點陣字庫

目錄 1 LED概述...........................................................................4 1.1 LED電子顯示屏概述.......................................................4 1.2 LED電子顯示屏的分類....................................................4 2 顯示原理及控制方式分析...................................................5 2.1 LED點陣模塊結構..........................................................5 2.2 LED 動態顯示原理.........................................................5 2.3 LED常見的控制方式......................................................6 3 硬件電路設計...................................................................8 3.1 系統硬件概述................................................................8 3.2 16×16LED點陣顯示制作................................................9 3.2.1 16×16LED點陣的內部結構及工作原理.......................9 3.2.2 用8×8LED點陣構成16×16LED點陣..........................10 3.3主控單片機的接口說明...................................................12 3.4 LED顯示驅動電路........................................................12 4 字模生成.........................................................................14 4.1 字模簡介.....................................................................14 4.1.1 LED顯示屏領域字模實現技術....................................14 4.1.2 軟件控制系統字模提取的分析與設計..........................14 4.2 字模存儲技術...............................................................15 4.3 字庫生成.....................................................................15 5軟件設計..........................................................................17 5.1 程序設計總體思路和結構...............................................17 5.1.1 程序設計總體思路...................................................17 5.1.2 程序流程圖............................................................17 5.2 各模塊程序設計............................................................18 5.2.1 系統初始化............................................................18 5.2.2 LED動態顯示..........................................................18 5.2.3 漢字顯示的原理......................................................18 6系統功能測試...................................................................20 6.1 單元模塊電路測試........................................................20 6.2 系統整體功能測試........................................................20 總結...................................................................................21 致謝...................................................................................22 參考文獻............................................................................23 附錄...................................................................................24 引 言

LED(Light Emitting Diode),發光二極管,簡稱LED,是一種能夠將電能轉化為可見光的固態的半導體器件,它可以直接把電轉化為光。LED的心臟是一個半導體的晶片,晶片的一端附在一個支架上,一端是負極,另一端連接電源的正極使整個晶片被環氧樹脂封裝起來。半導體晶片由兩部分組成,一部分是P型半導體,在它里面空穴占主導地位,另一端是N型半導體,在這邊主要是電子。但這兩種半導體連接起來的時候,它們之間就形成一個“P-N結”。當電流通過導線作用于這個晶片的時候,電子就會被推向P區,在P區里電子跟空穴復合,然后就會以光子的形式發出能量,這就是LED發光的原理。

多個 LED發光燈組成固定的字符或圖形進行顯示,即形成LED點陣圖文顯示屏。其主要特征是只控制LED點陣中各發光器件的通斷(發光或熄滅),而不控制LED的發光強弱。LED點陣的漢字顯示方式是先根據所需要的漢字提取漢字點陣(如16×16 點陣),將點陣文件存入ROM,形成新的漢字編碼;而在使用時則需要先根據新的漢字編碼組成語句,再由MCU根據新編碼提取相應的點陣進行漢字顯示。

LED點陣顯示具有如下特點:

(1)電壓:LED使用低壓電源,供電電壓在6-24V之間,根據產品不同而異,所以它是一種比使用高壓電源更安全的電源。

(2)效能:消耗能量比同光效的白熾燈減少80%。(3)適用性:每個單元LED小片是3-5mm的正方形,所以可以制備成各種形狀的器件,并且適合于易變的環境。

(4)穩定性:10萬小時,光衰為初始的50%。

(5)響應時間:其白熾燈的響應時間為毫秒級,LED燈的響應時間為納秒級。(6)對環境污染:無有害金屬汞。

(7)顏色:改變電流可以變色,發光二極管方便地通過化學修飾方法,調整材料的能帶結構和帶隙,實現紅黃綠蘭橙多色發光。

由于LED的眾多優勢,在市場中得到了廣泛的應用,主要應用領域有:(1)、信號指示應用:信號照明是LED單色光應用比較廣泛也是比較早的一個領域,約占LED應用市場的4%左右。

(2)、顯示應用:指示牌、廣告牌、大屏幕顯示等,LED用于顯示屏幕的應用約占LED應用的20%—25%,顯示屏幕可分為單色和彩色。

(3)、照明應用:便攜燈具,汽車用燈,特殊照明。由于LED尺寸小,便于動態的亮度和顏色控制,因此比較適合用于建筑裝飾照明。背光照明:普通電子設備功能顯示背光源、筆記本電腦背光源、大尺寸超大尺寸LCD顯示器背光源等。以及投影儀用RGB光源。

LED概述

1.1 LED電子顯示屏概述

LED電子顯示屏(Light Emitting Diode Panel)是由幾百--幾十萬個半導體發光二極管構成的像素點,按矩陣均勻排列組成。利用不同的半導體材料可以制造不同色彩的LED像素點。目前應用最廣的是紅色、綠色、黃色。而藍色和純綠色LED的開發已經達到了實用階段。LED顯示屏是一種通過控制半導體發光二極管的亮度的方式,來顯示文字、圖形、圖像、動畫、行情、視頻、錄像信號等各種信息的顯示屏幕。

LED顯示屏分為圖文顯示屏和條幅顯示屏,均由LED矩陣塊組成。圖文顯示屏可與計算機同步顯示漢字、英文文本和圖形;而條幅顯示屏則適用于小容量的字符信息顯示。LED顯示屏因為其像素單元是主動發光的,具有亮度高,視角廣、工作電壓低、功耗小、壽命長、耐沖擊和性能穩定等優點。因而被廣泛應用于車站、碼頭、機場、商場、醫院、賓館、銀行、證券市場、建筑市場、拍賣行、工業企業管理和其它公共場所。

LED顯示屏的發展前景極為廣闊,目前正朝著更高亮度、更高氣候耐受性、更高的發光密度、更高的發光均勻性,可靠性、全色化方向發展。1.2 LED電子顯示屏的分類

按顏色分類:

單基色顯示屏:單一顏色(紅色或綠色)。

雙基色顯示屏:紅和綠雙基色,256級灰度、可以顯示65536種顏色。

全彩色顯示屏:紅、綠、藍三基色,256級灰度的全彩色顯示屏可以顯示一千六百多萬種顏色。

按顯示器件分類:

LED數碼顯示屏:顯示器件為7段碼數碼管,適于制作時鐘屏、利率屏等,顯示數字的電子顯示屏。

LED點陣圖文顯示屏:顯示器件是由許多均勻排列的發光二極管組成的點陣顯示模塊,適于播放文字、圖像信息。按使用場合分類:

室內顯示屏:發光點較小,一般Φ3mm--Φ8mm,顯示面積一般零點幾至十幾平方米。室外顯示屏:面積一般幾十平方米至幾百平方米,亮度高,可在陽光下工作,具有防風、防雨、防水功能。按發光點直徑分類:

室內屏:Φ3mm、Φ3.75mm、Φ5mm、室外屏:Φ10mm、Φ12mm、Φ16mm、Φ19mm、Φ21mm、Φ26mm 室外屏發光的基本單元為發光筒,發光筒的原理是將一組紅、綠、藍發光二極管封在一個塑料筒內共同發光增強亮度。

顯示原理及控制方式分析

2.1 LED點陣模塊結構

八十年代以來出現了組合型LED點陣顯示器模塊,以發光二極管為像素,它用高亮度發光二極管芯陣列組合后,環氧樹脂和塑模封裝而成。這種一體化封裝的點陣LED模塊,具有高亮度、引腳少、視角大、壽命長、耐濕、耐冷熱、耐腐蝕等特點。LED點陣規模常見的有4×4、4×8、5×7、5×8、8×8、16×16等等。

根據像素顏色的數目可分為單色、雙基色、三基色等。像素顏色不同,所顯示的文字、圖象等內容的顏色也不同。單色點陣只能顯示固定色彩如紅、綠、黃等單色,雙基色和三基色點陣顯示內容的顏色由像素內不同顏色發光二極管點亮組合方式決定,如紅綠都亮時可顯示黃色,如果按照脈沖方式控制二極管的點亮時間,則可實現256或更高級灰度顯示,即可實現真彩色顯示。

圖2.1示出最常見的8×8單色LED點陣顯示器的內部電路結構和外型規格,其它型號點陣的結構與引腳可試驗獲得。

圖2.1 8×8單色LED模塊內部電路

LED點陣顯示器單塊使用時,既可代替數碼管顯示數字,也可顯示各種中西文字及符號.如5x7點陣顯示器用于顯示西文字母.5×8點陣顯示器用于顯示中西文,8x8點陣可以用于顯示簡單的中文文字,也可用于簡單圖形顯示。用多塊點陣顯示器組合則可構成大屏幕顯示器,但這類實用裝置常通過PC機或單片機控制驅動。2.2 LED 動態顯示原理

LED點陣顯示系統中各模塊的顯示方式: 有靜態和動態顯示兩種。靜態顯示原理簡單、控制方便,但硬件接線復雜,在實際應用中一般采用動態顯示方式,動態顯示采用掃描的方式工作,由峰值較大的窄脈沖電壓驅動,從上到下逐次不斷地對顯示屏的各行進行選通,同時又向各列送出表示圖形或文字信息的列數據信號,反復循環以上操作,就可顯示各種圖形或文字信息。

點陣式LED漢字廣告屏絕大部分是采用動態掃描顯示方式,這種顯示方式巧妙地利用了人眼的視覺暫留特性。將連續的幾幀畫面高速的循環顯示,只要幀速率高于24幀/秒,人眼看起來就是一個完整的,相對靜止的畫面。最典型的例子就是電影放映機。在電子領域中,因為這種動態掃描顯示方式極大的縮減了發光單元的信號線數量,因此在LED顯示技術中被廣泛使用。

以8×8點陣模塊為例,說明一下其使用方法及控制過程。圖2.1中,紅色水平線Y0、Y1……Y7叫做行線,接內部發光二極管的陽極,每一行8個LED的陽極都接在本行的行線上。相鄰兩行線間絕緣。同樣,藍色豎直線X0、X1……X7叫做列線,接內部每列8個LED的陰極,相鄰兩列線間絕緣。

在這種形式的LED點陣模塊中,若在某行線上施加高電平(用“1”表示),在某列線上施加低電平(用“0”表示)。則行線和列線的交叉點處的LED就會有電流流過而發光。比如,Y7為1,X0為0,則右下角的LED點亮。再如Y0為1,X0到X7均為0,則最上面一行8個LED全點亮。

現描述一下用動態掃描顯示的方式,顯示字符“B”的過程。其過程如圖2.2

圖2.2 用動態掃描顯示字符“B”的過程

2.3 LED常見的控制方式

目前常見的是并行傳輸方式(見附錄1.1),通過8位鎖存器將8位總線上的列數據進行鎖存顯示,各8位鎖存器的片選信號由譯碼器提供。此種方式的優點是傳輸速度快,對微控制器(MCU)的通信速度要求較低。但是這種方案最大的缺點是不便于隨意擴展顯示單元的數目。每增加一個16×16點陣的全角漢字顯示單元,就需要在之前的電路上多增加兩根地址線,這就要求在PCB布線的時候要留有充足的地址線冗余量。再一個缺點是,每個單元的PCB隨著安放位置的不同,布線結構也不相同,不利于廠家批量生產。并行傳輸需要的芯片較多,因此市場上已經出現用FPGA,CPLD等高密度可編程邏輯器件(PLD)來取代傳統鎖存器IC的方案。成本有所下降,但可擴展性仍舊較差。因此,并行傳輸方式適用于顯示單元數目確定的條屏。

隨著廣告屏顯示內容的多媒體化,對控制器傳輸速度,運算能力的要求越來越高。因此控制器的種類也在不斷發展以適應要求,從最初的8051單片機,到PIC單片機,又到FPGA,直到現在的ARM處理器。不同功能檔次的廣告屏對應著不同的處理器。

一.以傳統8051單片機為控制器的LED顯示屏。因受到單片機運算速度及通信速率的限制,LED動態顯示的刷新率不可能做得太高。對顯示效果和移動算法的處理也比較吃力,在實際顯示效果上有比較明顯的閃爍感。除此之外,傳統8051單片機的內部資源貧乏,僅128字節的數據存儲器,幾K字節的程序存儲器,無E2PROM,SPI。這就需要對單片機擴展外設,無疑增加了硬件成本。因此,8051控制的條屏只能用于顯示內容及其簡單,不需要經常更改顯示內容的場合。

二.以PIC單片機為控制器的LED顯示屏。因PIC單片機是RISC架構的工業專用單片機,處理指令的速度有所增加,抗干擾能力優秀,型號種類繁多。作為條屏的控制器,可以明顯的改善顯示效果,同時PIC單片機內部的資源較豐富,可節省外部電路設計難度,同時降低了硬件成本。因此,以PIC單片機為控制器的條屏目前仍是單色條屏市場的主流。

三.以FPGA(復雜可編程邏輯門陣列)為控制器的LED顯示屏。FPGA以高速、并行著稱。是近年來新興的可編程邏輯器件。用他作為LED顯示屏的控制器,能夠高速的處理色階PWM信號、高速的完成動態掃描邏輯、高速的完成字符移動算法。因此被運用于雙基色、三基色的顯示系統。但是其成本較高,開發難度較大。

四.以ARM(32位RISC架構高性能微處理器)為控制器的LED顯示屏。ARM有著極高的指令效率,極高的時鐘頻率。因此其運算能力非常強大,內部資源也十分豐富,極大的簡化了硬件設計的難度,縮短了開發周期。在條屏的運用中,能用ARM來實現花樣繁多的顯示方式,以及高色階,多像素的全彩屏驅動。ARM與FPGA的組合更是功能強大,除了海量存儲技術,無線更新技術外,還能實時地顯示視頻信號。因此,以ARM為控制器的顯示屏常為視頻全彩屏。

硬件電路設計

3.1 系統硬件概述

整個電路由單片機89C51,8個74LS373,1個74HC154,1個74LS138,4個16×16的LED。該電路所設計的電子屏可顯示多個漢字,需要4個16×16 LED點陣模塊,可組成16×64的條形點陣。

AT89C51是一種帶4KB可編程可擦除只讀存儲器的低電壓,高性能微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。AT89C51引腳即外觀如圖3.1所示。

圖3.1 AT89C51的管腳圖

譯碼器是組合邏輯電路的一個重要的器件,74LS138的輸出是低電平有效,故實現邏輯功能時,輸出端不可接或門及或非門,74LS138與前面不同,其有使能端,故使能端必須加以處理,否則無法實現需要的邏輯功能。發光二極管點亮只須使其正向導通即可,根據LED的公共極是陽極還是陰極分為兩類譯碼器,即針對共陽極的低電平有效的譯碼器;針對共陰極LED的高電平輸出有效的譯碼器。

74LS373是低功耗肖特基TTL8D鎖存器,內有8個相同的D型(三態同相)鎖存器,由兩個控制端(11腳G或EN;1腳OUT、CONT、OE)控制。當OE接地時,若G為高電平,74LS373接收由PPU輸出的地址信號;如果G為低電平,則將地址信號鎖存。工作原理:74LS373的輸出端O0—O7可直接與總線相連。當三態允許控制端OE為低電平時,O0—O7為正常邏輯狀態,可用來驅動負載或總線。當OE為高電平時,O0—O7呈高阻態,即不驅動總線,也不為總線的負載,但鎖存器內部的邏輯操作不受影響。當鎖存允許端LE為高電平時,O隨數據D而變。當LE為低電平時,O被鎖存在已建立的數據電平。74LS373引腳即外觀如圖3.2所示

圖3.2 74LS373引腳圖

74HC154為 4 線-12 線譯碼器,當選通端(G1、G2)均為低電平時,可將地址端(ABCD)的二進制 編碼在一個對應的輸出端,以低電平譯出。若將 G1 和 G2 中的一個作為數據輸入端,由 ABCD 對輸出尋址,還可作 1 線-16 線數據分配器。工作環境溫度為0~70℃,對社會的要求非常適合。

LED,50年前人們已經了解半導體材料可產生光

線的基本知識,第一個商用二極管產生于1960年。LED是英文light emitting diode(發光二極管)的縮寫,它的基本結構是一塊電致發光的半導體材料,置于一個有引線的架子上,然后四周用環氧7樹脂密封,即固體封裝,所以能起到保護內部芯線的

作用,所以LED的抗震性能好該電路的顯示采用逐行掃描方式。工作時,由單片機取出第一行需要顯示的內容經延時一段時間后再進行下一行點陣數據的顯示。需要注意的是,每次只能選通一行數據,即要通過不斷的逐行掃描來實現漢字或字符的顯示。3.2 16×16LED點陣顯示制作

3.2.1 16×16LED點陣的內部結構及工作原理

以UCDOS中文宋體字庫為例,每一個字由16行16列的點陣組成顯示。即國家標準漢字庫中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內的任何圖形。這里我們以“高”字說明,如圖3.3所示。

圖3.3 16*16LED漢字顯示

用8位的AT89C51單片機控制,由于單片機的總線為8位,一個字需要拆分為2個部分。一般把它拆分為上部和下部,上部由8×16點陣組成,下部也由8×16點陣組成。在本例中單片機首先顯示的是左上角的第一列的上半部分,即第0列的p00—p07口。方向為p00到p07 ,顯示漢字“高”時,p02點亮,由上往下排列,為p0.0 滅,p0.1 滅, p0.2 滅, p0.3 滅, p0.4 滅, p0.5 亮,p0.6滅,p0.7 滅。即二進制00000100,轉換為16進制為 04h。上半部第一列完成后,繼續掃描下半部的第一列,為了接線的方 便,我們仍設計成由上往下掃描,即從p27向p20方向掃

描,從上圖可以看到,這一列全部為不亮,即為00000000,16進制則為00h。然后單片機轉向上半部第二列,仍為p01點亮,為00000100,即16進制04h.這一列完成后繼續進行下半部分的掃描,p20點亮,為二進制00000010,即16進制02h.依照這個方法,繼續進行下面的掃描,一共掃描32個8位,可以得出漢字“高”的掃描代碼為:02h,00h,01h, 04h,0FFh,0FEh, 00h, 00h,1Fh,0F0h, 10h, 10h, 10h, 10h, 1Fh,0F0h,00h, 04h, 7Fh,0FEh, 40h, 04h, 4Fh,0E4h,48h, 24h, 48h, 24h, 4Fh,0E4h, 40h, 0Ch。

由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出它的掃描代碼從而顯示在屏幕上。不過現在有很多現成的漢字字模生成軟件,就不必自己去畫表格算代碼了。

3.2.2 用8×8LED點陣構成16×16LED點陣

Proteus中只有5×7和8×8等LED點陣,并沒有16×16LED點陣,而在實際應用中,要良好地顯示一個漢字,則至少需要16×16點陣。下面我們就首先介紹使用8×8點陣構建16×16點陣的方法,并構建一塊16×16LED點陣,用于本例的顯示任務。

首先,從Proteus7.1的元件庫中找到“MATRIX-8X8-RED”元器件,并將四塊該元器件放入Proteus文檔區編輯窗口中。此時需要注意,如果該元器件保持初始的位置(沒有轉動方向),我們要首先將其左轉90°,使其水平放置,那么此時它的左面8個引腳是其行線,右邊8個引腳是其列線(當然,如果你是將右轉,則右邊8個引腳是行線)。然后我們將四個元器件對應的行線和列線分別進行連接,使每一條行線引腳接一行16個LED,列線也相同。并注意要將行線和列線引出一定長度的引腳,以便下面我們使用。連接好的16×16點陣如圖3.4所示。

成如上圖的16×16點陣只是第一步,這樣分開的數塊并不能達到好的顯示效果,下面我們要將其進一步組合。組合實際上很簡單,首先選中如上圖中右側的兩塊8×8點陣,然后拖動并使其與左側的兩塊相并攏,如圖3.5所示。

圖3.4 點陣模塊組合

圖3.5

可以看到原來的連線已經自動隱藏了,至于線上的交點,我們不要去動。然后,我們再來最后一步,選中下側的兩塊點陣,并拖動使其與上側的兩塊并攏,最后的效果如圖3.6所示。看到,原來雜亂的連線現在已經幾乎全部隱藏了,一塊16×16的LED點陣做成了。需要注意,做成的LED點陣的行線為左側的16個引腳,下側的16個引腳為其列線,而且其行線為高電平有效,列線為低電平有效。然后,我們將其保存,以便以后使用。

圖3.6 3.3主控單片機的接口說明

P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數據總線復制用口,作為輸入口時,每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口寫入“1可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期激活內部上拉電阻。在Flash編程時,PO口接收指令節,而在程序校檢時,輸出指令字節,校檢時,要求外接上拉電阻。

P1口:P1口是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流I。Flash編程和程序校檢期間,P1接收低8位地址。

P2口:P2口是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流I。在訪問外部數據存儲器或16位地址的外部數據存儲(例如執行MOVX@DPTR指令)時,P2口送出高8位地址數據。在訪問8位地址的外部數據存儲器(如執行MOVX@RI指令)時,P2口線上的內容(也即特殊功能寄存器(SFR)區中R2寄存器的內容),在整個訪問期間不改變。Flash編程和校檢時,P2亦接收高位地址和其他控制信號。

P3口:P3口是一個帶內部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內部上拉電阻拉高并可作輸入端口,作輸入端時,被外部拉低的P3口將用上拉電阻,輸出電流I。P3口還接收一些用于Flash閃速存儲器編程和程序校檢的控制信號。

RST:復位輸入,當震蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。

ALE/PROG:當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于所存地址的低8位字節。即使不訪問外部存儲器,ALE乃以時鐘振動頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。

3.4 LED顯示驅動電路 LED顯示驅動電路如圖3.7所示。

圖3.7 顯示驅動電路圖

字模生成

4.1 字模簡介

文字的字模是一組數字,但它的意義卻與數字的意義有著根本的變化,它是用數字的各位信息來記載英文或漢字的形狀[1]。

在電腦硬件中,根本沒有漢字這個概念,也沒有英文的概念,其認識的概念只有——內碼(將ASCII表的高128個很少用到的數值以兩個為一組來表示漢字,即漢字的內碼。而剩下的低128位則留給英文字符使用,即英文的內碼)。如果你用啟動盤啟動系統后用DIR命令可能得到一串串莫名其妙的字符,但那確確實實是漢字,如果你啟動UCDOS或其他的漢字系統后,就會看到那是一個個熟悉的漢字。在硬件系統內,英文的字模信息一般固化在ROM里,即使在沒有進入系統的CMOS里,也可以讓你看到英文字符。而在DOS下,中文的字模信息一般記錄在漢字庫文件里(將制作好的字模放到一個個標準的庫中,這就是點陣字庫文件)。

4.1.1 LED顯示屏領域字模實現技術

在通過軟件實現的技術中,目前有許多字模生成軟件,軟件打開后輸入漢字,點“檢取”,十六進制數據的漢字代碼即可自動生成,把我們所需要的豎排數據復制到我們的程序中即可。在通過硬件實現字模提取的技術中,有在單片機系統中增加硬漢字庫的方法,主控器發送的漢字是其機內碼,用兩個字節來表示一個漢字。根據機內碼,顯示單元控制模塊從漢字庫中查取顯示字模,實現漢字顯示。由于帶有硬漢字庫,進行動態文字顯示時,通用智能顯示單元僅接受漢字的機內碼即可,這樣數據通訊量大大減少。因此,“動態文字顯示速度快”。4.1.2 軟件控制系統字模提取的分析與設計

而在LED顯示屏控制系統具體應用的Windows操作系統下如何提取字模信息是設計的核心。軟件控制系統在實際編輯過程中,要求各種字體、字號的文字都能被編輯、保存。所以系統在設計時,把文本區理解為由眾多的象素點構成,而把不同字體、字號的文字理解為一幅圖像。因為所開啟的文本區大小與LED顯示屏的大小對應,所以采用16×16點陣為單位,把文本區內的每個像素點都看成一個二維數組,由于系統中各種顏色都有對應的值,賦予每個不同顏色的像素點不同的對應值,再把每個點賦予一個int型的值,這樣保存下來的信息就是二進制數據。通過這樣的設計,我們不僅可以把任何字型,任何大小的文字保存下來,還可以顯示以256個像素點陣為單位的任何圖形。在軟件控制系統中實現字模的提取,也就避免了在單片機中加載硬漢字庫模塊,從而簡化了硬件模塊的設計。以下以單色屏為例,介紹系統采用字模保存的算法設計:

定義COLORREF zimo_ color為像素點的顏色,判斷某個點的顏色值。如果值為Oxffffff,說明此點為白色,賦予此點值0。由于單色屏只有紅色和不顯色兩種,所以可以簡單賦值為除白色外其余點賦值為1 CClientDC

dc(this);

CFile myfile;unsigned int zimo[192] [384]={0};unsigned char zimo_data[192][48]={0};

COLORREF zimo_color;

int row, col;

this->HideCaret();

for(row=0;row<192;row++){

for(col=0;col<384;col++){

zimo_color=do.GetPixel(col, row);

if(zimo color = =Oxffffff)

{zimo [row] [col]=0;}else

{zimo [row] [col]=1;}}} 定義unsigned int zimo[192][384]={0};//文本區像素點

以8位為一字節(因為在隨后的串行通訊中,傳輸的數據是8位的二進制數據)定義

unsigned char zimo_data[192][48]={0} 4.2 字模存儲技術

目前使用最廣泛的技術是,通過上位機軟件將待顯示的字符串轉換為對應的點陣字模數據,通過燒寫的方式將這些字模數據按一定的順序編址后存儲在E2PROM中。在條屏顯示的過程中按規定的方式取出E2PROM中的字模數據進行處理。對于一個16×16點陣的漢字字模數據,需要連續32字節的E2PROM空間來存儲。照此計算,若有256個需要顯示的字符,則至少需要32B×256=8192字節(8KB)的E2PROM存儲空間。通常的單片機內部沒有集成這么22大容量的EPROM。因此這種方案,需要在單片機外部擴展大容量的EPROM,增加硬件成本。上位機程序設計由于涉及到漢字取模,取模算法的難度較大。在多字下載的時候傳輸時間也較長。諸多弊端使本設計放棄了傳統方案。而本設計創新使用了專用的點陣字庫芯片,成本僅為8元,內含各種點陣規格的GB2312、ASCII等標準字庫。專用字庫芯片采用微型SO-8封裝,使用高速同步串行SPI接口進行讀寫操作,節省了控制器的I/O。在本設計中,單片機內部的小容量E2PROM,用于存儲待顯示漢字的GB2312標準機內碼,每個全角字符的內碼占2字節,則在同樣需要顯示256個漢字的情況下,這種方案僅占用512字節的E2PROM空間

4.3 字庫生成

因為本設計中為行掃描,列輸入,所以“魏”的自摸代碼為:

DB 49H,40H,4AH,51H,4CH,6AH,7FH,0C4H,4CH,4AH,8AH,71H,88H,42H,3FH,84H DB64H,98H,0A5H,0E0H,3EH,0BEH,24H,81H,24H,89H,7FH,81H,20H,07H,00H,00

“佳”字代碼為:

DB 01H,00H,02H,00H,04H,00H,1FH,0FFH,0E2H,02H,12H,22H,12H,22H,12H,22H DB 12H,22H,0FFH,0FEH,12H,22H,12H,22H,32H,62H,16H,26H,02H,02H,00H,00H

“鋒”字代碼為:

DB 01H,40H,02H,40H,0EH,40H,0F3H,0FEH,12H,44H,12H,48H,09H,00H,11H,28H DB 0F2H,0A8H,2AH,0A8H,25H,0FFH,2AH,0A8H,32H,0A8H,23H,28H,02H,00H,00H,00H 5軟件設計

5.1 程序設計總體思路和結構 5.1.1 程序設計總體思路

用簡短的匯編程序設計,實現LED點陣顯示內容,并使顯示的內容在屏幕上從左到右的滾動顯示。系統采用模塊化結構,包括主程序、延時程序、顯示子程序和串行口中斷程序。用AT89C51、74LS373、74LS138、74HC154芯片和4個16×16LED點陣顯示器構成一個完整的16位點陣LED顯示系統。5.1.2 程序流程圖

程序主要由開始、初始化、主程序、字庫組成。其中主程序和子程序的流程圖如圖5.1所示。

圖5.1 單片機漢字顯示程序流程圖

5.2 各模塊程序設計 5.2.1 系統初始化 ORG 0000H AJMP START ORG 000BH LJMP TIME0 ORG 0030H START:MOV R1,#00H MOV R2,#00H MOV R3,#00H MOV R4,#00H MOV R5,#00H 5.2.2 LED動態顯示

顯示要求漢字在顯示屏上按從左到右的順序一個個的出現。設計時可采用如下方法:首先將LED顯示屏對應的顯示緩沖區全部清零,即 LED顯示空白,然后每間隔一個“軟定時器”設定的動態顯示時間,顯示緩沖區依次加入一個漢字點陣數據并進行掃描顯示,這樣就可達到動態顯示的效果。實現LED從左向右移動顯示程序: TIME0:INC R5 CJNE R5,#3,NEXT MOV R5,#0 INC DPTR INC DPTR INC R1 CJNE R1,#144,NEXT MOV R1,#0 MOV DPTR,#TAB NEXT: MOV TH0,#3CH MOV TL0,#0B0H RETI 5.2.3 漢字顯示的原理

我們以中文宋體字庫為例,每一個字由16行16列的點陣組成顯示。即國標漢字庫中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內的任何圖形。LED點陣漢字顯示程序: MAIN: MOV P1,R2 MOV A,R3 MOVC A,@A+DPTR MOV P2,A INC R3 MOV A,R3 MOVC A,@A+DPTR MOV P0,A INC R3 MOV P3,R4 LCALL DELAY1MS INC R2 CJNE R2,#16,MAIN MOV R2,#0 INC R4 CJNE R4,#3,MAIN MOV R3,#0 MOV R4,#0 LJMP MAIN

6系統功能測試

6.1 單元模塊電路測試

在proteus仿真軟件中運行測試AT89C51、74LS373、74LS138、74HC154等芯片和LED顯示器均能正常運行并完整的顯示出了我所要的效果。所以各個模塊功能正常。6.2 系統整體功能測試

在仿真軟件proteus中運行測試系統整體功能,一切正常。實現了漢字的左移滾動顯示,完整的顯示出了“陜西理工學院”浮動漢字。

圖6.1 單片機漢字顯示系統測試圖

總結

在本設計中我用簡短的匯編程序在LED顯示屏實現了漢字的左移滾動顯示。在設計中采用的芯片有AT89C51、74LS373、74LS138、74HC154和4個16×16LED點陣顯示器。其特點:1.內容能從右向左浮動顯示。2.硬件結構簡單,應用廣泛。3.LED數碼管動態掃描顯示,工作效率高,價格低廉等。

通過本次(64×16位點陣LED)的設計,理論知識學習和實際設計的結合鍛煉了我的綜合運用所學的專業基礎知識解決實際工程問題的能力,同時也提高我查閱文獻資料、設計手冊、設計規范以及電腦制圖等其他專業能力水平,而且通過對整體的掌控,對局部的取舍,以及對細節的斟酌處理,都使我的能力得到了鍛煉,經驗得到了豐富。為后繼的學習和工作奠定的基礎。

致謝

在完成此設計過程中,我曾多次去找我的指導老師,李建忠老師,每次在遇到實驗中遇到困難或者程序看不懂的時候,我都去找李老師,不管上班下班時間,李老師每次都不厭其煩,不辭辛苦的給我細心講解指導,我才能在實驗室完成實驗,在寫論文過程中老師也給了我很大幫助,在此,我由衷的對李老師對我的指導和教育。

參考文獻

[1]李建忠編著.單片機原理及應用.西安:西安電子科技大學出版社,2002 [2]李群芳,肖看編著.單片機原理、接口及應用.北京:清華大學出版社,2005 [3]于海生編著.微型計算機控制技術.北京:清華大學出版社,2008 [4]戴梅萼,史嘉權編著.微型計算機技術及應用(第3版).北京:清華大學出版社,2008 [5]江曉安,董秀峰編著.數字電子技術(第二版).西安:西安電子科技大學出版社,2005

附錄

附錄:源程序代碼 ORG 0000H;初始化

AJMP START

ORG 000BH

LJMP TIME0

ORG 0030H START:MOV R1,#00H

MOV R2,#00H

MOV R3,#00H

MOV R4,#00H

MOV R5,#00H

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

MOV IE,#82H

SETB TR0

MOV DPTR,#TAB;================ MAIN: MOV P1,R2;單片機輸出

MOV A,R3

MOVC A,@A+DPTR

MOV P2,A

INC R3

MOV A,R3

MOVC A,@A+DPTR

MOV P0,A

INC R3

MOV P3,R4

LCALL DELAY1MS

INC R2

CJNE R2,#16,MAIN

MOV R2,#0

INC R4

CJNE R4,#4,MAIN

MOV R3,#0

MOV R4,#0

LJMP MAIN;=============== TIME0:INC R5;移動顯示

CJNE R5,#3,NEXT

MOV R5,#0

INC DPTR

INC DPTR

INC R1

CJNE R1,#144,NEXT

MOV R1,#0

MOV DPTR,#TAB NEXT: MOV TH0,#3CH

MOV TL0,#0B0H

RETI;================ DELAY1MS:MOV R7,#2;延時 DEL: MOV R6,#250

DJNZ R6,$

DJNZ R7,DEL

RET;================ TAB:;DB 000H,000H,01FH,0FCH,010H,000H,025H,000H,03BH,004H,000H,048H,00AH,050H,009H,060H;陜

;DB 07FH,0C0H,010H,0A0H,012H,090H,014H,088H,000H,08CH,000H,004H,000H,004H,000H,000H

DB 00H,00H,7FH,0FFH,44H,20H,5AH,10H,61H,0E1H,10H,82H,14H,84H,12H,88H

DB 10H,0B0H,0FFH,0C0H,10H,0B0H,12H,88H,34H,86H,11H,83H,00H,82H,00H,00H

DB 000H,000H,003H,000H,002H,0F8H,022H,010H,022H,050H,03FH,090H,022H,010H,022H,010H

DB 07FH,090H,044H,090H,044H,090H,004H,00CH,004H,030H,007H,0C0H,000H,000H,000H,000H

DB 000H,010H,011H,010H,011H,020H,01FH,0E0H,022H,048H,000H,048H,038H,008H,027H,048H

DB 025H,048H,03FH,0F0H,04AH,090H,042H,090H,07EH,010H,000H,010H,000H,000H,000H,000H

DB 000H,000H,000H,010H,000H,010H,000H,010H,008H,010H,008H,010H,008H,010H,00FH,0E0H

DB 010H,020H,010H,020H,010H,020H,000H,020H,000H,020H,000H,020H,000H,000H,000H,000H

DB 000H,000H,003H,020H,00EH,020H,044H,020H,024H,020H,005H,020H,04AH,024H,02AH,0C2H

DB 00BH,07CH,01AH,040H,0E8H,040H,008H,040H,00CH,040H,008H,000H,000H,000H,000H,000H

DB 000H,000H,03FH,0FCH,022H,000H,02DH,004H,033H,008H,004H,010H,018H,0A0H,00AH,0C0H

DB 052H,080H,035H,0F8H,015H,004H,011H,004H,018H,004H,000H,038H,000H,000H,000H,000H

DB 02H,00H,02H,00H,42H,00H,33H,0FEH,00H,04H,02H,08H,02H,10H,02H,00H

DB 02H,00H,0FFH,0FFH,02H,00H,02H,00H,02H,00H,06H,00H,02H,00H,00H,00H

DB 10H,10H,20H,10H,0C0H,11H,5FH,0D2H,75H,7CH,55H,50H,55H,50H,35H,50H

DB 0D5H,50H,55H,50H,75H,7FH,5FH,0D0H,40H,10H,40H,30H,00H,10H,00H,00H

DB 08H,20H,08H,0C0H,0BH,00H,0FFH,0FFH,09H,01H,08H,82H,00H,04H,3FH,0F8H

DB 20H,00H,20H,00H,20H,00H,7FH,0FCH,20H,02H,00H,02H,00H,0EH,00H,00H

DB 24H,08H,24H,10H,24H,60H,25H,80H,7FH,0FFH,0C5H,00H,44H,80H,00H,40H

DB 24H,40H,12H,40H,00H,40H,0FFH,0FFH,00H,80H,01H,80H,00H,80H,00H,00H

DB 02H,20H,0CH,20H,88H,20H,69H,20H,09H,20H,09H,22H,89H,21H,69H,7EH

DB 09H,60H,09H,0A0H,19H,20H,28H,20H,0C8H,20H,0AH,60H,0CH,20H,00H,00H

DB 00H,10H,00H,10H,00H,10H,0FFH,10H,11H,10H,11H,10H,11H,10H,11H,10H

DB 11H,10H,11H,32H,11H,11H,11H,02H,33H,0FCH,11H,00H,00H,00H,00H,00H

DB 08H,20H,08H,22H,08H,41H,0FFH,0FEH,08H,80H,08H,01H,11H,81H,11H,62H

DB 11H,14H,0FFH,08H,11H,14H,11H,64H,31H,82H,10H,03H,00H,02H,00H,00H

DB 04H,08H,04H,08H,04H,10H,04H,20H,04H,40H,04H,80H,05H,00H,0FFH,0FFH

DB 05H,00H,44H,80H,24H,40H,34H,20H,04H,10H,0CH,18H,04H,10H,00H,00H

DB 49H,40H,4AH,51H,4CH,6AH,7FH,0C4H,4CH,4AH,8AH,71H,88H,42H,3FH,84H

DB 64H,98H,0A5H,0E0H,3EH,0BEH,24H,81H,24H,89H,7FH,81H,20H,07H,00H,00H

DB 01H,00H,02H,00H,04H,00H,1FH,0FFH,0E2H,02H,12H,22H,12H,22H,12H,22H

DB 12H,22H,0FFH,0FEH,12H,22H,12H,22H,32H,62H,16H,26H,02H,02H,00H,00H

DB 01H,40H,02H,40H,0EH,40H,0F3H,0FEH,12H,44H,12H,48H,09H,00H,11H,28H

DB 0F2H,0A8H,2AH,0A8H,25H,0FFH,2AH,0A8H,32H,0A8H,23H,28H,02H,00H,00H,00H

END

第二篇:基于單片機的LED點陣廣告牌設計

基于單片機的LED點陣廣告牌設計

摘要:單片機作為LED主控制模塊,利用簡單的外圍電路來驅動64×16的點陣LED顯示屏。利用多個系列高速單片機本身強大的功能,可以很方便的實現單片機與PC機間的數據傳輸及存儲,并能利用軟件方便的進行顯示內容的多樣變化,點陣顯示屏廣泛的應用于醫院、機場、銀行等公共場所,所以LED顯示屏具有很強的現實應用性。

關鍵詞:動態顯示;單片機;點陣字庫

中圖分類號:TN312.8;TP368.1文獻標識碼:A文章編號:1674-7712(2014)08-0000-01

LED(Light Emitting Diode),發光二極管,簡稱LED,是一種能夠將電能轉化為可見光的固態的半導體器件,它可以直接把電轉化為光。LED的心臟是一個半導體的晶片,晶片的一端附在一個支架上,一端是負極,另一端連接電源的正極使整個晶片被環氧樹脂封裝起來。半導體晶片由兩部分組成,一部分是P型半導體,在它里面空穴占主導地位,另一端是N型半導體,在這邊主要是電子。但這兩種半導體連接起來的時候,它們之間就形成一個“P-N結”。當電流通過導線作用于這個晶片的時候,電子就會被推向P區,在P區里電子跟空穴復合,然后就會以光子的形式發出能量,這就是LED發光的原理。多個LED發光燈組成固定的字符或圖形進行顯示,即形成LED點陣圖文顯示屏。其主要特征是只控制LED點陣中各發光器件的通斷(發光或熄滅),而不控制LED的發光強弱。LED點陣的漢字顯示方式是先根據所需要的漢字提取漢字點陣(如16×16點陣),將點陣文件存入ROM,形成新的漢字編碼;而在使用時則需要先根據新的漢字編碼組成語句,再由MCU根據新編碼提取相應的點陣進行漢字顯示。

一、LED電子顯示屏概況

LED電子顯示屏是由幾百到幾十萬個半導體發光二極管構成的像素點,按矩陣均勻排列組成。利用不同的半導體材料可以制造不同色彩的LED像素點。目前應用最廣的是紅色、綠色、黃色。而藍色和純綠色LED的開發已經達到了實用階段。LED顯示屏是一種通過控制半導體發光二極管的亮度的方式,來顯示文字、圖形、圖像、動畫、行情、視頻、錄像信號等各種信息的顯示屏幕。

LED顯示屏分為圖文顯示屏和條幅顯示屏,均由LED矩陣塊組成。圖文顯示屏可與計算機同步顯示漢字、英文文本和圖形,而條幅顯示屏則適用于小容量的字符信息顯示。LED顯示屏因為其像素單元是主動發光的,具有亮度高,視角廣、工作電壓低、功耗小、壽命長、耐沖擊和性能穩定等優點。因而被廣泛應用于車站、碼頭、機場、商場、醫院、賓館、銀行、證券市場、建筑市場、拍賣行、工業企業管理和其它公共場所。LED顯示屏的發展前景極為廣闊,目前正朝著更高亮度、更高氣候耐受性、更高的發光密度、更高的發光均勻性,可靠性、全色化方向發展。

二、點陣式LED漢字廣告屏顯示原理及單片機應用

點陣式LED漢字廣告屏絕大部分是采用動態掃描顯示方式,這種顯示方式巧妙地利用了人眼的視覺暫留特性。將連續的幾幀畫面高速的循環顯示,只要幀速率高于24幀/秒,人眼看起來就是一個完整的,相對靜止的畫面。最典型的例子就是電影放映機。在電子領域中,因為這種動態掃描顯示方式極大的縮減了發光單元的信號線數量,因此在LED顯示技術中被廣泛使用。以8×8點陣模塊為例,說明一下其使用方法及控制過程。廣告牌設計過程中使用的紅色水平線Y0、Y1??Y7叫做行線,接內部發光二極管的陽極,每一行8個LED的陽極都接在本行的行線上。相鄰兩行線間絕緣。同樣,藍色豎直線X0、X1??X7叫做列線,接內部每列8個LED的陰極,相鄰兩列線間絕緣。

在這種形式的LED點陣模塊中,若在某行線上施加高電平(用“1”表示),在某列線上施加低電平(用“0”表示)。則行線和列線的交叉點處的LED就會有電流流過而發光。比如,Y7為1,X0為0,則右下角的LED點亮。再如Y0為1,X0到X7均為0,則最上面一行8個LED全點亮。隨著廣告屏顯示內容的多媒體化,對控制器傳輸速度,運算能力的要求越來越高。因此控制器的種類也在不斷發展以適應要求,從最初的8051單片機,到PIC單片機,又到FPGA,直到現在的ARM處理器。不同功能檔次的廣告屏對應著不同的處理器。

單片機運算速度及通信速率的限制,LED動態顯示的刷新率不可能做得太高。對顯示效果和移動算法的處理也比較吃力,在實際顯示效果上有比較明顯的閃爍感。除此之外,傳統8051單片機的內部資源貧乏,僅128字節的數據存儲器,幾K字節的程序存儲器,無E2PROM,SPI。這就需要對單片機擴展外設,無疑增加了硬件成本。因此,8051控制的條屏只能用于顯示內容及其簡單,不需要經常更改顯示內容的場合。

因為PIC單片機是RISC架構的工業專用單片機,處理指令的速度有所增加,抗干擾能力優秀,型號種類繁多。作為條屏的控制器,可以明顯的改善顯示效果,同時PIC單片機內部的資源較豐富,可節省外部電路設計難度,同時降低了硬件成本。因此,以PIC單片機為控制器的條屏目前仍是單色條屏市場的主流。

參考文獻:

[1]李建忠.單片機原理及應用[M].西安:西安電子科技大學出版社,2002.[2]李群芳,肖看.單片機原理?接口及應用[M].北京:清華大學出版社,2005.[3]于海生.微型計算機控制技術[M].北京:清華大學出版社,2008.[4]戴梅萼,史嘉權.微型計算機技術及應用(第3版)[M].北京:清華大學出版社,2008.[5]江曉安,董秀峰.數字電子技術(第二版)[M].西安:西安電子科技大學出版社,2005.[作者簡介]周麗萍(1979.09-),女,學士學位,科員,工程師,研究方向:電子通信技術、led顯示屏研發。

第三篇:單片機實習報告 LED點陣漢字顯示

廣東紡織職業技術學院

廣東紡織職業技術學院 單片機與接口技術實習報告

題目 16*16 LED點陣漢字顯示

院(系)

機電工程系

學生姓名

指導教師

起始日期: 2009年12月16日

廣東紡織職業技術學院

單片機與接口技術實習計劃及任務書

一、實習任務

《單片機與接口技術》實訓課是理論課程的實踐教學環節,它是機電技術專業的主要實踐技能課程。課程內容包括單片機軟件編程與仿真和調試。單片機硬件設計安裝與調試,單片機應用系統綜合設計,安裝與調試等。實訓課程的基本任務是:使學生在掌握單片機基礎知識的基礎上,掌握單片機軟硬件的設計、開發、調試能力。具有較好的單片機實際應用能力。為今后從事生產一線的技術工作以及進一步提高科學技術水平打下堅實的基礎。同時,結合本課程的特點,逐步培養學生觀察分析問題和動手解決問題的能力。

二、項目設計

漢字顯示屏廣泛應用于汽車報站器,廣告屏等。在本實訓中,漢字顯示屏采用了16*16的點陣模塊;漢字顯示的原理以在UCDOS中文宋體字庫為例,每一字由16行16列的點陣組成顯示。即國際漢字庫中的每一字均由256點陣來表示。我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。所以在這個漢字屏上不僅可以顯示漢字,也可以顯示在256像素范圍內的任何圖形。

項目要求在16*16的點陣模塊上實現一組可移動的漢字或一副簡圖。

三、報告及方案

1、了解、熟悉單片機開發的特點、方法及趨勢。

2、熟悉軟件編制、調試的方法、流程。

3、理解單片機控制的原理和特點。

4、養成良好的設計習慣、培養正確的思路和工作態度。

5、熟練運用單片機開發軟件——Keill。

四、原理介紹

廣東紡織職業技術學院

1、電路原理圖如圖所示

廣東紡織職業技術學院

2、電路工作原理分析:

漢字顯示在UCDOS中文宋體字庫中,每一個字由16行16列的點陣組成顯示。即國標漢字庫中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一副圖像。所以在這個漢字屏上不僅可以顯示漢字,也可以顯示在256像素范圍內的任何圖形。我是顯示漢字“施”,掃描原理如下:在UCDOS中文宋體字庫中,每一個字由16行16列的點陣組成顯示。如果用8位的AT89C51單片機控制,由于單片機的總線為8位,一個字需要拆分為2個部分,一般我們拆分為上部和下部,上部由8*16點陣組成,下部也由8*16點陣組成。

單片機首先顯的是左上角的的第一列的上列的上半部分,即第0 列的p00---p07口。方向為p00到p07,顯示漢字“施”時,由上而下排列,為P0.0滅,P0.1滅,P0.3亮,P0.4滅,P0.5滅,P0.6滅,P0.7亮。即二進關系00100011, 轉換為16進制國23H。上半部第一列完成后,繼續掃描下半部的第一列,為了接線方便,我們使用仍設計成由上往下掃描,即從p27向p20方向掃描,從右圖可以看到,這一列為,P2.7亮,P2.6亮,P2.5滅,P2.4滅,P2.3滅,P2.4滅,P2.3亮,P2.2亮,即為1100001,16進制為0C3H.然后單片機轉向上半部每二列,仍為00100010,即22H,16進制為22H,這一列完成后繼續進行下半部分,二進制為01000001,即16進制41H。依照這個方法,繼續進行下面的掃描,一共掃描32個8位,可以得出漢字“施”。

3、顯示原理圖

1)靜態顯示原理圖 2)靜態顯示程序編寫

3)靜態顯示工作原理分析

靜態顯示方式下,所有LED顯示器的COM公共極接地(共陰極顯示器)或接電源(共陽極顯示器),顯示器的8個段與并行輸出端口的輸出端相連。所謂靜態顯示,就是每一個顯示器各筆畫段都要獨占具有鎖存功能的輸出口線,CPU把欲顯示的字形代碼送到輸出口上,就可以使顯示屏顯示出所需的數字或符號。此后,即使CPU不再去訪問它,顯示的內容也不會消失(因為各筆畫段接口具有鎖存功能)。

靜態顯示法的優點是,顯示程序十分簡單,顯示亮度大,由于CPU不必經常掃描顯示器,所以節約了CPU的工作時間。但靜態顯示也有其缺點,主要是占用的I/O口線較多,硬件成本也較高。所以,靜態顯示法常用在顯示器數目較少的應用系統中。

五、心得體會

時間如白駒過隙,一晃一個星期就過去了,在這個星期里,我們迎來了單片機與接口技術的實習。此次我們實習的內容是了解矩陣LED顯示的基本原理和功能,掌握16*16矩陣LED和單片機的硬件和軟件接口設計方法以及完成驅動程序的編程。

這次實習的要求是在16*16的點陣模塊上實現一組可移動的漢字或一幅簡圖,因為這前我們在課堂上還沒有學習到這個程度,所以在開始實習的時候老師就為我們講解了一下,在顯示一個點的基礎上顯示不同的點,從而組成漢字或簡圖。在認真聽了老師對實驗的講解后,廣東紡織職業技術學院

我們就開始畫點陣圖,編寫自己的程序。

這次實習,我們是以小組為單位的。在編寫程序時,我卻忘了點陣圖里面每個點的表示方法,后來通過同學的幫忙,我終于編寫出靜態“施”的程序。

在實驗室中,老師先教我們接線,怎樣檢查線的好壞,因為這關系到后面編寫的程序能否顯示。當這些準備工作都做好時,我就把我要顯示的“施”字的程序打到電腦上,但卻發現程序有錯誤,經過反復的檢查才發現原來有一步程序中的00H,打成了ooH。程序沒問題時,就操作保存——復位——顯示,在顯示屏上,清晰鮮艷的“施”字宣告我靜態顯示實驗成功了。接下來,就開始我們的動態顯示的編程,這就需要我們去查找相關的資料了。經過了我們的努力和請教老師,我們終于把動態的程序編出來了,看著顯示屏上從左到右,不斷循環走過的“施”字,一種成就感油然而生。

在這次實習過程中,我發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。但我們通過查閱大量有關資料,并在小組中互相討論,交流經驗和自學,若遇到實在搞不明白的問題就會及時請教老師,使自己學到了不少知識,也經歷了不少艱辛,但收獲同樣巨大。其次,在這次實習中,我們運用到了其它所學的專業課知識,如:電子CAD,這讓我明白各個學科都不可能獨立的,知識是相通的,這是我這次實習的又一收獲。

另外,這次實習讓我感到了團隊合作的重要性。在團隊中,我們互幫互助,對整個實習來說,這是至關重要的。還有要感謝指導老師在我們遇到困難時,給予我們的建議與鼓勵。

一個星期的實習雖然結束了,但是從中學到的知識會讓我受益終身。發現、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學習、工作和生活中。

附件一:動態點陣信息圖 2

5

廣東紡織職業技術學院 8 1113 14

6

廣東紡織職業技術學院

附件二:動態顯示程序編寫

ORG 0000H AJMP START ORG 0030H START: MOV P0,#00H MOV P3,#00H L1: MOV P1,#00H MOV R4,#250 MOV R5,#13 MOV DPTR,#TAB1 L2: LCALL DISPLAY MOV A,DPL ADD A,#32 MOV DPL,A MOV A,DPH ADDC A,#0 MOV DPH,A DJNZ R5,L2 AJMP L1 DISPLAY: MOV R3,#16 MOV R1,#00H MOV R2,#00H L3: MOV A,R1 MOV P1,A MOV A,R2 MOVC A,@A+DPTR MOV P0,A INC R2 MOV A,R2 MOVC A,@A+DPTR MOV P3,A INC R1 INC R2 DJNZ R3,L3 DJNZ R4,DISPLAY

廣東紡織職業技術學院

RET TAB1: DB 22H,41H,23H,0C3H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H TAB2: DB 2FH,0C1H,22H,01H,22H,41H,23H,0C3H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H TAB3: DB 22H,01H,22H,01H,2FH,0C1H,22H,01H DB 22H,41H,23H,0C3H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H TAB4 : DB F2H,00H,27H,FFH,22H,01H,22H,01H DB 2FH,0C1H,22H,01H,22H,41H,23H,0C3H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H TAB5: DB 25H,0FFH,08H,00H,F2H,00H,27H,0FFH DB 22H,01H,22H,01H,2FH,0C1H,22H,01H DB 22H,41H,23H,0C3H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H TAB6: DB 21H,03H,21H,01H,25H,0FFH,08H,00H DB F2H,00H,27H,0FFH,22H,01H,22H,01H DB 2FH,0C1H,22H,01H,22H,41H,23H,0C3H DB 00H,00H,00H,00H,00H,00H,00H,00H TAB7: DB 0AFH,00H,79H,00H,21H,03H,21H,01H DB 25H,0FFH,08H,00H,F2H,00H,27H,0FFH DB 22H,01H,22H,01H,2FH,0C1H,22H,01H DB 22H,41H,23H,0C3H,00H,00H,00H,00H TAB8: DB 20H,0FH,20H,F0H,0AFH,00H,79H,00H DB 21H,03H,21H,01H,25H,0FFH,08H,00H DB F2H,00H,27H,0FFH,22H,01H,22H,01H DB 2FH,0C1H,22H,01H,22H,41H,23H,0C3H TAB9: DB 00H,00H,00H,00H,20H,0FH,20H,F0H, DB 0AFH,00H,79H,00H,21H,03H,21H,01H DB 25H,0FFH,08H,00H,F2H,00H,27H,0FFH DB 22H,01H,22H,01H,2FH,0C1H,22H,01H TAB10: DB 00H,00H,00H,00H,00H,00H,00H,00H DB 20H,0FH,20H,F0H,0AFH,00H,79H,00H DB 21H,03H,21H,01H,25H,0FFH,08H,00H DB F2H,00H,27H,0FFH,22H,01H,22H,01H TAB11: DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,20H,0FH,20H,F0H DB 0AFH,00H,79H,00H,21H,03H,21H,01H

廣東紡織職業技術學院

DB 25H,0FFH,08H,00H,F2H,00H,27H,0FFH TAB12: DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 20H,0FH,20H,F0H, 0AFH,00H,79H,00H DB 21H,03H,21H,01H,25H,0FFH,08H,00H TAB13: DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,20H,0FH,20H,F0H DB 0AFH,00H,79H,00H,21H,03H,21H,01H TAB14: DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 20H,0FH,20H,F0H,0AFH,00H,79H,00H TAB15: DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,0AFH,00H,79H,00H TAB16: DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H DB 00H,00H,00H,00H,00H,00H,00H,00H

END

第四篇:基于單片機的16×16點陣LED電子顯示屏的設計報告

單片機原理及應用

課程設計報告書

目:16×16點陣LED電子顯示屏的設計 姓

名:蔡臣 學

號:083521041 專

業:電氣工程及其自動化 指導老師:徐武雄 設計時間:2011年 5月

1.引言...............................................1 1.1 設計意義......................................1 1.2 系統功能要求..................................1 2.方案設計..........................................1 3.硬件設計..........................................3 4.軟件設計.........................................10 5.系統調試.........................................13 6.設計總結.........................................14 7.附錄A源程序.....................................15 8.附錄B作品實物圖片...............................35 9.參考文獻.........................................36

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

16×16點陣LED電子顯示屏的設計

1.引 言

LED點陣顯示屏是一種簡單的漢字顯示器,具有價廉、易于控制、使用壽命長等特點,可廣泛應用于各種公共場合,如車站、碼頭、銀行、學校、火車、公共汽車顯示等。本文詳細介紹了一種低廉的16x64陣LED顯示屏的設計過程。

1.1.設計意義

1、實現LED點陣屏核心功能即漢字及字母的多樣化顯示。

2、通過本次課程設計加深對單片機課程的全面認識和掌握,對單片機課程的應用進一步的了解。

3、掌握SPI串口進行數據傳輸的應用,并學會使用外部芯片輔助項目設計。

4、鍛煉通過自學與自己探索的方式解決問題的能力。

5、通過此次課程設計將單片機軟硬件結合起來對程序進行編輯,校驗,鍛煉實踐能力和理論聯系實際的能力。

1.2.系統功能要求

設計一個室內用16×16點陣LED圖文顯示屏,要求在目測條件下LED顯示屏各點亮度均勻、充足,可顯示圖形和文字,顯示圖形或文字應穩定、清晰無串擾。圖形或文字顯示有靜止、移入移出等顯示方式。

2.方案設計

從理論上說,不論顯示圖形還是文字,只要控制與組成這些圖形或文字的各個點所在位置相對應的LED器件發光,就可以得到我們想要的顯示結果,這種同時控制各個發光點亮滅的方法稱為靜態驅動顯

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

示方式。16×16的點陣共有256個發光二極管,顯然單片機沒有這么多端口,如果我們采用鎖存器來擴展端口,按8位的鎖存器來計算,16×16的點陣需要256/8=32個鎖存器。這個數字很龐大,因為我們僅僅是16×16的點陣,在實際應用中的顯示屏往往要大的多,這樣在鎖存器上花的成本將是一個很龐大的數字。因此在實際應用中的顯示屏幾乎都不采用這種設計,而采用另一種稱為動態掃描的顯示方法。

動態掃描的意思簡單地說就是逐行輪流點亮,這樣掃描驅動電路就可以實現多行(比如16行)的同名列共用一套列驅動器。具體就16×16的點陣來說,我們把所有同一行的發光管的陽極連在一起,把所有同一列的發光管的陰極連在一起(共陽的接法),先送出對應第一行發光管亮滅的數據并鎖存,然后選通第一行使其燃亮一定的時間,然后熄滅;再送出第二行的數據并鎖存,然后選通第二行使其燃亮相同的時間,然后熄滅;?? 第十六行之后又重新燃亮第一行,這樣反復輪回。當這樣輪回的速度足夠快(每秒24次以上),由于人眼的視覺暫留現象,我們就能看到顯示屏上穩定的圖形了。

采用掃描方式進行顯示時,每行有一個行驅動器,各行的同名列共用一個列驅動器。顯示數據通常存儲在單片機的存儲器中,按8位一個字節的形式順序排放。顯示時要把一行中各列的數據都傳送到相應的列驅動器上去,這就存在一個顯示數據傳輸的問題。從控制電路到列驅動器的數據傳輸可以采用并行方式或串行方式。顯然,采用并 2

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

行方式時,從控制電路到列驅動器的線路數量大,相應的硬件數目多。當列數很多時,并行傳輸的方案是不可取的。

采用串行傳輸的方法,控制電路可以只用一根信號線,將列數據一位一位傳往列驅動器,在硬件方面無疑是十分經濟的。但是,串行傳輸過程較長,數據按順序一位一位地輸出給列驅動器,只有當一行的各列數據都已傳輸到位之后,這一行的各列才能并行地進行顯示。這樣,對于一行的顯示過程就可以分解成列數據準備(傳輸)和列數據顯示兩個部分。對于串行傳輸方式來說,列數據準備時間可能相當長,在行掃描周期確定的情況下,留給行顯示的時間就太少了,以至影響到LED的亮度。

解決串行傳輸中列數據準備和列數據顯示的時間矛盾問題,可以采用重疊處理的方法。即在顯示本行各列數據的同時,傳送下一行的列數據。為了達到重疊處理的目的,列數據的顯示就需要具有鎖存功能。經過上述分析,可以歸納出列驅動器電路應具備的主要功能。對于列數據準備來說,它應能實現串入并出的移位功能;對于列數據顯示來說,應具有并行鎖存的功能。這樣,本行已準備好的數據打入并行鎖存器進行顯示時,串并移位寄存器就可以準備下一行的列數據而不影響本行的顯示。硬件系統設計

本系統采用AT89C52單片機作控制器,整個電路主要由單片機控制及其接口電路、驅動顯示電路、電源電路等部分組成。為了簡化顯

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

示屏電路,降低成本,本系統在單片機部分不加字庫存儲器。而在PC機上編輯漢字和字符顯示信息,并將其轉換為相應的點陣顯示數據,然后通過串口(采用RS-232通信標準)送給單片機存儲并進行顯示處理。圖1所示為其硬件系統原理圖。

3.1 單片機控制電路

本系統由AT89C52構成單片機最小應用系統.同時配有11.0592 MHz晶振和按鍵復位電路等。系統外擴的一片Flash存儲器29F040為數據存儲器,可用來存儲由PC機串口送來的點陣信息(通過軟件將 4

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

圖像或文字轉換成與LED顯示屏的像素相對應的點陣信息)。該Flash存儲器是一種非易失性存儲器,它在供電電源關閉后仍能保持片內信息。由于29F040的容量為512 KB(該芯片內部由8個64 Kbyte的讀寫塊組成,可分塊進行讀、寫和擦除等操作),而AT89C52只能管理64KB的數據空間,所以,需將29F040分成8頁,每頁64KB。其頁碼可由單片機的P3.2~P3.4來選擇。另外,采用MAX232可完成RS232與TTL電平的轉換,以便使PC機與單片機交換信息。3.2 16x16點陣顯示器的設計

(a)圖2是一種8x8的LED點陣單色行共陽模塊的內部結構圖,其單點工作電壓Uf為1.8 V,正向電流IF為8~10 mA。當某一行線為高電平而某一列線為低時,其行列交叉的點就被點亮;而當其某一列線為高時,其行列交叉的點為暗;當某一行線為低電平時,無論列線如何,對應這一行的點全部為暗。

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

用四個8x8點陣顯示可構成16x16點陣顯示器,其連接方法如圖3所示。圖中,將(A)和(B)的8列、(C)和(D)的8列分別對應相連,同時將(A)和(C)的8行、(B)和(D)的8行分別對應相連。即可形成一個16行(每一行有16個LED)、16列(每一列也有16個LED)的16x16點陣顯示器,可將這256個點稱為一頁,這樣,顯示字符時。只要對一頁中對應的亮滅進行控制即可。

(b)LED點陣顯示器的掃描驅動

LED顯示屏驅動電路的設計應與所用控制系統相配合。驅動通常分為動態掃描型及靜態鎖存型驅動二大類。本文以動態掃描型驅動電

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

路的設計為例來進行分析。動態掃描型驅動方式是指顯示屏上的16行發光二極管共用一組列驅動寄存器,然后通過行驅動管的分時工作,來使每行LED的點亮時間占總時間的1/16。只要每行的刷新速率大于50 Hz,利用人眼的視覺暫留效應,人們就可以看到一幅完整的文字或畫面。

AT89S52單片機有四個I/O口(P0、P1、P2、P3),每個I/O口有8位,如果都采用并行輸出,顯然不能滿足要求,因此,本設計中的行掃描驅動采用并口輸出,而場掃描驅動采用串口輸出。

(1)行掃描驅動

由于16x64點陣顯示器有16行,為充分利用單片機的接口,本電路中加入了一個4-16線譯碼器74LS154,其輸入是一個16進制碼,解碼輸出為低態掃描信號,它們的管腳示意圖如圖4所示。把74LS154的G1和G2引腳接地,然后以A、B、C、D四腳為輸入端。就會形成16種不同的輸入狀態,分別為0000~1111,然后使每種狀態只控制一路輸出,即會有16路輸出。

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

如果一行64點全部點亮,則通過74LS154的電流將達640 mA,而實際上,74LS154譯碼器提供不了足夠的吸收電流來同時驅動64個LED同時點亮,因此,應在74LS154每一路輸出端與16x64點陣顯示器對應的每一行之間用一個三極管來將電流信號放大,本文選用的是達林頓三極管TIP127。這樣,74LS154某一輸出腳為低電平時,對應的三極管發射極為高電平,從而使點陣顯示器的對應行也為高電平。

(b)場掃描驅動

本系統場掃描驅動電路的設計可用串入并出的通用集成電路74HC595來作為數據鎖存。74HC595是一個八位串行輸入三態并行輸

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

出的移位寄存器,其管腳見圖4所示,其中SI是串行數據的輸入端,RCK是存儲寄存器的輸入時鐘,SCK是移位寄存器的輸入時鐘,Q'H是串人數據的輸出,G是對輸人數據的輸出使能控制,QA~QH為串入數據的并行輸出。從SI口輸入的數據可在移位寄存器的SCK腳上升沿的作用下輸入到74HC595中。并在RCK腳的上升沿作用下將輸入的數據鎖存在74HC595中,這樣,當G為低電平時,數據便可并行輸出。為了避免與PC機串口輸入的數據相互干擾,也可使用模擬串口P1.4~P1.7來分別輸出串行數據、移位時鐘SCK、存儲信號RCK和并行輸出的使能信號G。

為了消除電源電壓的波動及行掃描管壓降(第一行點亮的點數不同,將引起管壓降的變化,從而影響通過LED管的電流)的變化對LED顯示屏亮度的影響,設計時可采用列恒流驅動電路,可選用三極管8550和外圍元件構成列恒流驅動電路,并通過調整100 kΩ可調電阻使三極管處于放大狀態,同時將集電極電流調整為10 mA,從而使點亮對應點陣時通過LED的電流不變。

(c)掃描顯示工作過程

將8片74HC595進行級連,可共用一個移位時鐘SCK及數據鎖存信號RCK。這樣,當第一行需要顯示的數據經過8x8=64個SCK時鐘后便可將其全部移入74HC595中,此時還將產生一個數據鎖存信號RCK將數據鎖存在74HC595中,并在使能信號G的作用下,使串入數據并行輸出,從而使與各輸出位對應的場驅動管處于放大或截止狀

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

態;同時由行掃描控制電路產生信號使第一行掃描管導通,相當于第一行LED的正端都接高,顯然,第一行LED管的亮滅就取決于74HC595中的鎖存信號;此外,在第一行LED管點亮的同時,再在74HC595中移入第二行需要顯示的數據,隨后將其鎖存,同時由行掃描控制電路將第一行掃描管關閉而接通第二行,使第二行LED管點亮,以此類推,當第十六行掃描過后再回到第一行,這樣,只要掃描速度足夠高,就可形成一幅完整的文字或圖像。

4軟件設計

顯示屏軟件的主要功能是向屏體提供顯示數據,并產生各種控制信號,使屏幕按設計的要求顯示。根據軟件分層次設計的原理,我們可把顯示屏的軟件系統分成兩大層:第一層是底層的顯示驅動程序,第二層是上層的系統應用程序。顯示驅動程序負責向屏體送顯示數據,并負責產生行掃描信號和其它控制信號,配合完成LED顯示屏的掃描顯示工作。顯示驅動程序由定時器T0中斷程序實現。系統應用程序完成系統環境設置(初始化)、顯示效果處理等工作,由主程序來實現。

從有利于實現較復雜的算法(顯示效果處理)和有利于程序結構化考慮,顯示屏程序適宜采用C語言編寫。(1).顯示驅動程序

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

顯示驅動程序在進入中斷后首先要對定時器T0重新賦初值以保證顯示屏刷新率的穩定,1/16掃描的顯示屏的刷新率(幀頻)的計算公式如下:

刷新率(幀頻)?fosc11 式1 ?T0溢出率??161612(65536?t0)其中fosc為晶振頻率,t0為定時器T0初值(工作在16位定時器模式)。

然后顯示驅動程序查詢當前燃亮的行號,從顯示緩存區內讀取下一行的顯示數據,并通過串口發送給移位寄存器。為消除在切換行顯示數據的時候產生拖尾現象,驅動程序先要關閉顯示屏,即消隱,等顯示數據打入輸出鎖存器并鎖存,然后再輸出新的行號,重新打開顯示。圖5為顯示程序流程圖。

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

(2).系統主程序

系統主程序開始以后首先是對系統環境初始化,包括設置串口、定時器、中斷和端口。先是顯示屏中所有的燈全亮用以驗證實驗線路的正確,然后以“卷簾出”效果向上滾動顯示“咸寧學院電子與信息工程學院零八級電氣工程及其自動化一班周俊龍!指導老師:徐武雄”的字樣,由于單片機沒有停機指令,所以我們可以設置系統程序不斷地循環執行上述顯示效果。

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

5系統調試

介紹所設計的系統調試過程、在調試中遇到的問題及解決的辦法。

LED顯示屏硬件電路只要器件質量可靠,管腳焊接正確,一般無需調試即可正常工作。軟件部分需要調試的主要有顯示屏刷新頻率及顯示效果兩部分。顯示屏刷新率由定時器T0的溢出率和單片機的晶振頻率決定,1.測試儀器:

AVR Studio軟件、仿真器、萬用表 2.測試與分析:

(1)測試點陣:系統上電后,全屏點亮時無暗點,表明點陣正常,可使用。

(2)測試鍵盤:直接連接鍵盤到單個可用LED發光二極管(這里采用實驗板上發光二極管),按下每個按鍵看LED是否可亮,若亮,說明鍵盤可用。

(3)程序調試:通過AVR Studio下載程序到單片機上,逐步運行程序,并Watch相關變量的值的改變,以確定各部分程序是否正常運行并可用,直到檢測完畢。

(4)實時操作:運行已通過調試的程序,這時點陣屏自左往右滾動顯示“我愛學習零八級電氣一班蔡臣:學號083521041,指導老師:徐武雄”

至此,調試徹底通過!

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

整個課程大體操作如上所述,但實際在細節上遇到較多問題,因為所做為點陣,相關實驗數據沒有,遇到的問題主要有因存在虛焊點而導致有灰點;因程序問題而導致的重影;還有一個問題是因單片機端口輸出的低電平不夠低,使得我們不能用使能端控制74HC154。詳細實驗遇到的問題及解決將在總結報告中指出。顯示效果處理程序的內容及方法非常廣泛,其調試過程在此不作具體討論,讀者可對照源程序自行分析。這個方案設計的16×16點陣LED圖文顯示屏,電路簡單,成本較低,且較容易擴展成更大的顯示屏;顯示屏各點亮度均勻、充足;顯示圖形或文字穩定、清晰無串擾;可用靜止、移入移出等多種顯示方式顯示圖形或文字。

6設計總結

本文所討論的點陣顯示屏的設計采用了單片機AT89S52作為系統的中央控制單元,并結合軟件編程,實現的點陣顯示屏靜態顯示、動態顯示,簡化了系統操作,豐富了系統功能,符合未來交通智能化、網絡化的發展方向。經過實際應用證明,本顯示屏可以作為信息顯示裝置。用于公共場所來進行信息顯示,而且具有工作穩定、字符清晰、亮度適中等特點。若所顯示的信息較為簡單,也可直接將信息代碼拷入單片機中,還可以通過外擴儲存器的方式來增加顯示的信息量。

在本次課程設計過程當中,指導老師徐武雄老師和其他老師以及同學們都給予了很大的幫助支持,徐老師嚴謹的治學態度和務實的 14

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

求知精神給我留下了很深的印象,他鼓勵我孜孜不倦,銳意進取,特別是在困難的時候,他有意識地培養我獨立思考和解決問題的能力。徐老師的嚴格要求,令我以后的工作和生活當中受益匪淺。在此,對他們所給予的指導和幫助表示最衷心的感謝。

7附 錄A;源程序

源程序代碼(主要語句要有注釋)。;

;***********************************;*

*;* 咸寧學院 單片機課程設計

*;* 單個16*16點陣電子屏字符顯示器 *;* AT89S52 12MHz晶振 *;

*

2011.5.8 *;************************************* 15

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

;顯示字用查字法,不占內存,字符用16*16共陽極LED點陣,;效果:向上滾動顯示19個字,再重復循環。

;R1:查表偏址寄存器,B:查表首址,R2:掃描地址(從00H~0FH)。;R3:滾動顯示時控制移動速度,單字顯示可控制靜止顯示時間。;*****************;中斷入口程序;;*****************;ORG 0000H LJMP START ORG 0003H RETI ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ORG 002BH RETI;

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

;**********;初始化程序;**********;**********;主程序;**********;START: MOV 20H,#00H;始掃描標志,;01 MOV A,#0FFH;MOV P1,A MOV P2,A MOV P3,A MOV P0,A CLR P1.6;控制位

MOV TMOD,#01H;掃描用

MOV TH0,#0FCH;1ms MOV TL0,#18H MOV SCON,#00H;MOV IE,#82H;T0

清標志,00H為第16行開為一幀掃描結束標志 端口初始化 串行寄存器輸入打入輸出使用T0作16位定時器,行初值(12MHz)

串口0方式傳送顯示字節 中斷允許,總中斷允許

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

MOV SP,#70H MAIN: LCALL DIS1;顯示準備,黑屏,1.5s MOV DPTR,#TAB LCALL MOVDISP;向上滾動顯示一頁(8個字)INC DPH LCALL MOVDISP;向上滾動顯示一頁(8個字)INC DPH LCALL MOVDISP;向上滾動顯示一頁(8個字)INC DPH LCALL MOVDISP;向上滾動顯示一頁(8個字)INC DPH LCALL MOVDISP;向上滾動顯示一頁(8個字)AJMP MAI;;******************;多字滾動顯示子程序;******************;每次8個字,入口時定義好DPTR;MOVDISP: MOV B,#00H;向上移動顯示,查表偏址暫存(從00開始)

DISLOOP: MOV R3,#07H;移動速度 DISMOV: MOV R2,#00H;從第0行開始 MOV R1,B

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

SETB TR0;開掃描(每次一幀)WAITMOV:JBC 01H,DISMOV1;標志為1掃描一幀結束(16ms為一幀,每行1ms)

AJMP WAITMOV DISMOV1:DJNZ R3,DISMOV;一幀重復顯示(控制移動速度)

INC B;INC B MOV A,R1;R1 JZ MOVOUT AJMP DISLOOP MOVOUT:RET;;**************;單字顯示子程序;**************;顯示表中的某個字

DIS1: MOV R3,#5AH

(16ms*#=1.6s)DIS11: MOV R2,#00H;00~0Fh)

MOV DPTR,#TAB;MOV R1,#00H;

顯示下一行(每行2字)為0,8個字顯示完 移動顯示結束;

;靜止顯示時間控制一幀掃描初始值(行地址從取表首地址

查表偏址(顯示第一個字)

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

SETB TR0;開掃描(每次一幀)WAIT11:JBC 01H,DIS111;為1,掃描一幀結束 AJMP WAIT11 DIS111:DJNZ R3,DIS11 RET;;*************;掃描程序;*************;1ms刷新一次,每行顯示1ms INTT0: PUSH ACC MOV TH0,#0FCH;1ms MOV TL0,#18H JBC 00H,GOEND;16 INC R1;MOV A,R1 MOVC A,@A+DPTR;CLR TI MOV SBUF,A;WAIT: JBC TI,GO;AJMP WAIT GO: DEC R1;MOV A,R1

初值重裝 行掃描標志為1,結束取行右邊字節偏址 查表 串口0方式發送 等待發送完畢 取左邊字節偏址

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

MOVC A,@A+DPTR CLR TI MOV SBUF,A WAIT1: JBC TI,GO1 AJMP WAIT1 GO1: SETB P1.7;NOP;SETB 出端

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 R1

P1.6;關行顯示,準備刷新 串口寄存器數據穩定 產生上升沿,行數據達入輸恢復低電平修改顯示行地址 修改顯示行地址 修改顯示行地址 修改顯示行地址 修改顯示行地址 修改顯示行地址 修改完成 開行顯示 下一行掃描地址值 21

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

INC R1;下一行數據地址 MOV A,R2 ANL A,#0FH JNZ GO2 SETB 00H;GO2: POP ACC RETI GOEND: CLR TR0 SETB 01H POP ACC RETI TAB: DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H;DB 00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,0FFH,00H;;--文字: 我--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0F9H,0BFH,0C7H,0AFH,0F7H,0B7H,0F7H,0B7H,0F7H,0BFH,00H,01H,0

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

F7H,0BFH,0F7H,0B7H;DB 0F1H,0D7H,0C7H,0CFH,37H,0DFH,0F7H,0AFH,0F6H,6DH,0F7H,0F5H,0D7H,0F9H,0EFH,0FDH;;--文字: 愛--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,07H,0C0H,6FH,0EDH,0EFH,0F6H,0DFH,0C0H,01H,0DDH,0FDH,0BDH,0FFH,0C0H,03H;DB 0FBH,0FFH,0F8H,0FH,0F3H,0DFH,0F4H,0BFH,0EFH,3FH,9CH,0CFH,73H,0F1H,0CFH,0FBH;;--文字: 學--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FEH,0F7H,0EFH,73H,0F3H,37H,0F7H,6FH,80H,01H,0BFH,0FBH,70H,17H,0FFH,0BFH;DB 0FFH,7FH,80H,01H,0FFH,7FH,0FFH,7FH,0FFH,7FH,0FFH,7FH,0FDH,7FH,0FEH,0FFH;;--文字:習--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

DB 0FFH,0FFH,0C0H,03H,0FFH,0FBH,0F7H,0FBH,0FBH,0FBH,0FCH,0FBH,0FEH,0EBH,0FFH,9BH;DB 0FEH,7BH,0F9H,0FBH,0C7H,0FBH,0EFH,0FBH,0FFH,0FBH,0FFH,0DBH,0FFH,0EBH,0FFH,0F7H;;--文字:!--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH;DB 0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,0FFH,0FFH,0EFH,0FFH,0FFH,0FFH;;--文字: 零--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0E0H,07H,0FEH,0FFH,80H,01H,0BEH,0FBH,0E2H,8FH,0FEH,0FFH,0E2H,8FH,0FDH,7FH;DB 0FBH,9FH,0E5H,0E1H,1EH,0F7H,0E0H,1FH,0FFH,0BFH,0FDH,7FH,0FEH,0FFH,0FEH,0FFH;

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

;--文字: 八--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0BFH,0FBH,9FH,0F9H,0BFH,0FBH,0BFH,0FBH,0BFH,0FBH,0BFH,0F7H,0DFH;DB 0F7H,0DFH,0EFH,0EFH,0EFH,0EFH,0DFH,0F7H,0BFH,0F1H,7FH,0FBH,0FFH,0FFH,0FFH,0FFH;;--文字: 電--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16--DB 0FEH,0FFH,0FEH,0FFH,0FEH,0FFH,0C0H,07H,0DEH,0F7H,0DEH,0F7H,0C0H,07H,0DEH,0F7H;DB 0DEH,0F7H,0DEH,0F7H,0C0H,07H,0DEH,0F7H,0FEH,0FDH,0FEH,0FDH,0FFH,01H,0FFH,0FFH;;--文字: 氣--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0F7H,0FFH,0F7H,0FFH,0E0H,01H,0EFH,0FFH,0DFH,0FFH,0B0H,07H,0FFH,0FFH,0E0H,0FH;DB

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,0F5H,0FFH,0F5H,0FFH,0F9H,0FFH,0FDH;;--文字: 一--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FBH,80H,01H;DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;;--文字: 班--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FEH,0FFH,06H,81H,0DEH,0EFH,0DEH,0EFH,0DEH,0EFH,0DAH,0EFH,02H,81H,0DAH,0EFH;DB 0D6H,0EFH,0DEH,0EFH,0DEH,0EFH,0C5H,0EFH,3DH,0EFH,0FBH,01H,0F7H,0FFH,0EFH,0FFH;;--文字: 蔡--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FBH,0BFH,00H,01H,0FBH,0BFH,0EFH,0FFH,0E1H,07H,0DDH,77H,0AB

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

H,0AFH,57H,0DFH;DB 0E8H,27H,0DFH,0F9H,20H,07H,0FEH,0FFH,0EEH,0DFH,0E6H,0E7H,0DAH,0F7H,0BDH,0FFH;;--文字: 臣--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0C0H,03H,0DEH,0FFH,0DEH,0FFH,0DEH,0FFH,0C0H,07H,0DFH,0F7H,0DFH,0F7H;DB 0DFH,0F7H,0C0H,07H,0DEH,0FFH,0DEH,0FFH,0DEH,0FFH,0DEH,0FFH,0C0H,01H,0FFH,0FFH;;--文字:,--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0CFH,0FFH,0CFH,0FFH,0EFH,0FFH,0DFH,0FFH,0FFH,0FFH;;--文字: 學--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

DB 0FEH,0F7H,0EFH,73H,0F3H,37H,0F7H,6FH,80H,01H,0BFH,0FBH,70H,17H,0FFH,0BFH;DB 0FFH,7FH,80H,01H,0FFH,7FH,0FFH,7FH,0FFH,7FH,0FFH,7FH,0FDH,7FH,0FEH,0FFH;;--文字: 號--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0E0H,0FH,0EFH,0EFH,0EFH,0EFH,0EFH,0EFH,0E0H,0FH,0FFH,0FFH,00H,01H,0F7H,0FFH;DB 0F7H,0FFH,0E0H,0FH,0F7H,0EFH,0FFH,0EFH,0FFH,0EFH,0FEH,0EFH,0FFH,5FH,0FFH,0BFH;;--文字: :--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;DB 0FFH,0FFH,0CFH,0FFH,0CFH,0FFH,0FFH,0FFH,0CFH,0FFH,0CFH,0FFH,0FFH,0FFH,0FFH,0FFH;

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

;--文字: 0--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0E7H,0FFH,0DBH,0FFH,0BDH,0FFH,0BDH,0FFH,0BDH,0FFH;DB 0BDH,0FFH,0BDH,0FFH,0BDH,0FFH,0BDH,0FFH,0DBH,0FFH,0E7H,0FFH,0FFH,0FFH,0FFH,0FFH;;--文字: 8--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0C3H,0FFH,0BDH,0FFH,0BDH,0FFH,0BDH,0FFH,0DBH,0FFH;DB 0E7H,0FFH,0DBH,0FFH,0BDH,0FFH,0BDH,0FFH,0BDH,0FFH,0C3H,0FFH,0FFH,0FFH,0FFH,0FFH;;--文字: 3--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0C3H,0FFH,0BDH,0FFH,0BDH,0FFH,0FBH,0FFH,0E7H,0FFH;DB

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

0FBH,0FFH,0FDH,0FFH,0FDH,0FFH,0BDH,0FFH,0BBH,0FFH,0C7H,0FFH,0FFH,0FFH,0FFH,0FFH;;--文字: 5--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,81H,0FFH,0BFH,0FFH,0BFH,0FFH,0BFH,0FFH,0A7H,0FFH;DB 9BH,0FFH,0FDH,0FFH,0FDH,0FFH,0BDH,0FFH,0BBH,0FFH,0C7H,0FFH,0FFH,0FFH,0FFH,0FFH;;--文字: 2--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0C3H,0FFH,0BDH,0FFH,0BDH,0FFH,0BDH,0FFH,0FBH,0FFH;DB 0FBH,0FFH,0F7H,0FFH,0EFH,0FFH,0DFH,0FFH,0BDH,0FFH,81H,0FFH,0FFH,0FFH,0FFH,0FFH;;--文字: 1--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0EFH,0FFH,8FH,0FFH,0EFH,0FFH,16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

0EFH,0FFH,0EFH,0FFH;DB 0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,83H,0FFH,0FFH,0FFH,0FFH,0FFH;;--文字: 0--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0E7H,0FFH,0DBH,0FFH,0BDH,0FFH,0BDH,0FFH,0BDH,0FFH;DB 0BDH,0FFH,0BDH,0FFH,0BDH,0FFH,0BDH,0FFH,0DBH,0FFH,0E7H,0FFH,0FFH,0FFH,0FFH,0FFH;;--文字: 4--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FBH,0FFH,0F3H,0FFH,0EBH,0FFH,0DBH,0FFH,0DBH,0FFH;DB 0BBH,0FFH,0BBH,0FFH,81H,0FFH,0FBH,0FFH,0FBH,0FFH,0E1H,0FFH,0FFH,0FFH,0FFH,0FFH;;--文字: 1--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0EFH,0FFH,8FH,0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH;DB 0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,0EFH,0FFH,83H,0FFH,0FFH,0FFH,0FFH,0FFH;;--文字:,--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0CFH,0FFH,0CFH,0FFH,0EFH,0FFH,0DFH,0FFH,0FFH,0FFH;;--文字: 指--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0EEH,0FFH,0EEH,0C7H,0EEH,3FH,0EEH,0FBH,02H,0FBH,0EEH,03H,0EBH,0FFH,0E6H,03H;DB 0CEH,0FBH,2EH,0FBH,0EEH,03H,0EEH,0FBH,0EEH,0FBH,0EEH,0FBH,0AEH,03H,0DFH,0FFH;

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

;--文字: 導--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16--DB 0FFH,0FFH,0E0H,0FH,0EFH,0EFH,0E0H,0FH,0EFH,0FBH,0EFH,0FBH,0F0H,03H,0FFH,0DFH;DB 0FFH,0DFH,00H,01H,0F7H,0DFH,0FBH,0DFH,0F9H,0DFH,0FBH,0DFH,0FFH,5FH,0FFH,0BFH;;--文字: 老--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FDH,0FFH,0FDH,0F7H,80H,03H,0FDH,0F7H,0FDH,0EFH,0FDH,0DFH,00H,01H,0FEH,7FH;DB 0FDH,0FFH,0F3H,0CFH,0CBH,3FH,38H,0FFH,0FBH,0FBH,0FBH,0FBH,0FCH,03H,0FFH,0FFH;;--文字: 師--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0F7H,0FFH,0F4H,01H,0B7H,0DFH,0B7H,0DFH,0B4H,01H,0B5H,0DDH,0B5H,0DDH,0B5H,0DDH;

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

DB 0B5H,0DDH,0ADH,0DDH,0ADH,0D5H,0EDH,0DBH,0DFH,0DFH,0BFH,0DFH,7FH,0DFH,0FFH,0DFH;;--文字: :--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH;DB 0FFH,0FFH,0CFH,0FFH,0CFH,0FFH,0FFH,0FFH,0CFH,0FFH,0CFH,0FFH,0FFH,0FFH,0FFH,0FFH;;--文字: 徐--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0EFH,0BFH,0E7H,0BFH,0DFH,5FH,0BEH,0E7H,6DH,0F1H,0E2H,0BH,0CFH,0BFH,9FH,0BFH;DB 58H,03H,0DFH,0BFH,0DDH,0AFH,0DCH,0B3H,0DBH,0B9H,0D7H,0BBH,0DEH,0BFH,0DFH,7FH;;--文字: 武--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16--

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

DB 0FFH,0BFH,0FFH,0AFH,0C0H,0B7H,0FFH,0BFH,00H,01H,0FFH,0BFH,0FBH,0BFH,0FBH,0DFH;DB 0D8H,5FH,0DBH,0DFH,0DBH,0DFH,0DBH,0EFH,0D8H,0EDH,0C7H,0F5H,1FH,0F9H,0FFH,0FDH;;--文字: 雄--;--華文行楷12;此字體下對應的點陣為:寬x高=16x16 DB 0EFH,5FH,0EFH,6FH,0EFH,6FH,02H,01H,0DEH,0EFH,0DCH,0EFH,0D6H,03H,0B6H,0EFH;DB 0AEH,0EFH,0AEH,03H,5EH,0EFH,0D6H,0EFH,0BAH,0EFH,02H,01H,0FAH,0FFH,0FEH,0FFH;END

8附 錄B;作品實物圖片

16×16點陣LED電子顯示屏的設計

單片機原理及應用課程設計

9參考文獻

[1] 劉欣銘,張廣斌.LED顯示屏技術綜述[J].黑龍江電力,2003, 25(4):294-296.[2] 陽進.基于單片機的LED顯示屏的漢字顯示[J].中國科技信息,2005,(12):112.[3] Mark Nelson著.瀟湘工作室譯.串行通信開發指南[M].中國水利水電出版社,2002.[4] 王宜懷.單片機原理及其嵌入式應用教程[M].北京希望電子出版社,2002.[5] 韓潤萍,陳小萍.點陣LED顯示屏控制系統[J].微計算機信息,2003,19(10):50-51.[6] http://www.tmdps.cn

第五篇:Led點陣廣告牌設計

基于單片機的Led點陣廣告牌設計

目錄 LED概述.........................................................................3 1.1 LED電子顯示屏概述......................................................3 1.2 LED電子顯示屏的分類...................................................3 2 顯示原理及控制方式分析.................................................4 2.1 LED點陣模塊結構.........................................................4 2.2 LED 動態顯示原理.......................................................4 2.3 LED常見的控制方式.....................................................5 3 硬件電路設計..................................................................7 3.1 系統硬件概述..............................................................7 3.2 16×16LED點陣顯示制作..............................................8 3.2.1 16×16LED點陣的內部結構及工作原理......................8 3.2.2 用8×8LED點陣構成16×16LED點陣..........................9 3.3主控單片機的接口說明.................................................11 3.4 LED顯示驅動電路.......................................................11 4 字模生成.......................................................................13 4.1 字模簡介...................................................................13 4.1.1 LED顯示屏領域字模實現技術...................................13 4.1.2 軟件控制系統字模提取的分析與設計.........................13 4.2 字模存儲技術.............................................................14 4.3 字庫生成...................................................................14 5軟件設計........................................................................16 5.1 程序設計總體思路和結構..............................................16 5.1.1 程序設計總體思路.................................................16 5.1.2 程序流程圖...........................................................16 5.2 各模塊程序設計..........................................................17 5.2.1 系統初始化...........................................................17 5.2.2 LED動態顯示........................................................17 5.2.3 漢字顯示的原理....................................................17 6系統功能測試..................................................................19 6.1 單元模塊電路測試.......................................................19 6.2 系統整體功能測試.......................................................19 總結.................................................................................20 致謝.................................................................................21 參考文獻...........................................................................22 附錄.................................................................................23 引 言

LED(Light Emitting Diode),發光二極管,簡稱LED,是一種能夠將電能轉化為可見光的固態的半導體器件,它可以直接把電轉化為光。LED的心臟是一個半導體的晶片,晶片的一端附在一個支架上,一端是負極,另一端連接電源的正極使整個晶片被環氧樹脂封裝起來。半導體晶片由兩部分組成,一部分是P型半導體,在它里面空穴占主導地位,另一端是N型半導體,在這邊主要是電子。但這兩種半導體連接起來的時候,它們之間就形成一個“P-N結”。當電流通過導線作用于這個晶片的時候,電子就會被推向P區,在P區里電子跟空穴復合,然后就會以光子的形式發出能量,這就是LED發光的原理。

多個 LED發光燈組成固定的字符或圖形進行顯示,即形成LED點陣圖文顯示屏。其主要特征是只控制LED點陣中各發光器件的通斷(發光或熄滅),而不控制LED的發光強弱。LED點陣的漢字顯示方式是先根據所需要的漢字提取漢字點陣(如16×16 點陣),將點陣文件存入ROM,形成新的漢字編碼;而在使用時則需要先根據新的漢字編碼組成語句,再由MCU根據新編碼提取相應的點陣進行漢字顯示。

LED點陣顯示具有如下特點:

(1)電壓:LED使用低壓電源,供電電壓在6-24V之間,根據產品不同而異,所以它是一種比使用高壓電源更安全的電源。

(2)效能:消耗能量比同光效的白熾燈減少80%。(3)適用性:每個單元LED小片是3-5mm的正方形,所以可以制備成各種形狀的器件,并且適合于易變的環境。

(4)穩定性:10萬小時,光衰為初始的50%。

(5)響應時間:其白熾燈的響應時間為毫秒級,LED燈的響應時間為納秒級。(6)對環境污染:無有害金屬汞。

(7)顏色:改變電流可以變色,發光二極管方便地通過化學修飾方法,調整材料的能帶結構和帶隙,實現紅黃綠蘭橙多色發光。

由于LED的眾多優勢,在市場中得到了廣泛的應用,主要應用領域有:(1)、信號指示應用:信號照明是LED單色光應用比較廣泛也是比較早的一個領域,約占LED應用市場的4%左右。

(2)、顯示應用:指示牌、廣告牌、大屏幕顯示等,LED用于顯示屏幕的應用約占LED應用的20%—25%,顯示屏幕可分為單色和彩色。

(3)、照明應用:便攜燈具,汽車用燈,特殊照明。由于LED尺寸小,便于動態的亮度和顏色控制,因此比較適合用于建筑裝飾照明。背光照明:普通電子設備功能顯示背光源、筆記本電腦背光源、大尺寸超大尺寸LCD顯示器背光源等。以及投影儀用RGB光源。

LED概述

1.1 LED電子顯示屏概述

LED電子顯示屏(Light Emitting Diode Panel)是由幾百--幾十萬個半導體發光二極管構成的像素點,按矩陣均勻排列組成。利用不同的半導體材料可以制造不同色彩的LED像素點。目前應用最廣的是紅色、綠色、黃色。而藍色和純綠色LED的開發已經達到了實用階段。LED顯示屏是一種通過控制半導體發光二極管的亮度的方式,來顯示文字、圖形、圖像、動畫、行情、視頻、錄像信號等各種信息的顯示屏幕。

LED顯示屏分為圖文顯示屏和條幅顯示屏,均由LED矩陣塊組成。圖文顯示屏可與計算機同步顯示漢字、英文文本和圖形;而條幅顯示屏則適用于小容量的字符信息顯示。LED顯示屏因為其像素單元是主動發光的,具有亮度高,視角廣、工作電壓低、功耗小、壽命長、耐沖擊和性能穩定等優點。因而被廣泛應用于車站、碼頭、機場、商場、醫院、賓館、銀行、證券市場、建筑市場、拍賣行、工業企業管理和其它公共場所。

LED顯示屏的發展前景極為廣闊,目前正朝著更高亮度、更高氣候耐受性、更高的發光密度、更高的發光均勻性,可靠性、全色化方向發展。1.2 LED電子顯示屏的分類

按顏色分類:

單基色顯示屏:單一顏色(紅色或綠色)。

雙基色顯示屏:紅和綠雙基色,256級灰度、可以顯示65536種顏色。

全彩色顯示屏:紅、綠、藍三基色,256級灰度的全彩色顯示屏可以顯示一千六百多萬種顏色。

按顯示器件分類:

LED數碼顯示屏:顯示器件為7段碼數碼管,適于制作時鐘屏、利率屏等,顯示數字的電子顯示屏。

LED點陣圖文顯示屏:顯示器件是由許多均勻排列的發光二極管組成的點陣顯示模塊,適于播放文字、圖像信息。按使用場合分類:

室內顯示屏:發光點較小,一般Φ3mm--Φ8mm,顯示面積一般零點幾至十幾平方米。室外顯示屏:面積一般幾十平方米至幾百平方米,亮度高,可在陽光下工作,具有防風、防雨、防水功能。按發光點直徑分類:

室內屏:Φ3mm、Φ3.75mm、Φ5mm、室外屏:Φ10mm、Φ12mm、Φ16mm、Φ19mm、Φ21mm、Φ26mm 室外屏發光的基本單元為發光筒,發光筒的原理是將一組紅、綠、藍發光二極管封在一個塑料筒內共同發光增強亮度。

顯示原理及控制方式分析

2.1 LED點陣模塊結構

八十年代以來出現了組合型LED點陣顯示器模塊,以發光二極管為像素,它用高亮度發光二極管芯陣列組合后,環氧樹脂和塑模封裝而成。這種一體化封裝的點陣LED模塊,具有高亮度、引腳少、視角大、壽命長、耐濕、耐冷熱、耐腐蝕等特點。LED點陣規模常見的有4×4、4×8、5×7、5×8、8×8、16×16等等。

根據像素顏色的數目可分為單色、雙基色、三基色等。像素顏色不同,所顯示的文字、圖象等內容的顏色也不同。單色點陣只能顯示固定色彩如紅、綠、黃等單色,雙基色和三基色點陣顯示內容的顏色由像素內不同顏色發光二極管點亮組合方式決定,如紅綠都亮時可顯示黃色,如果按照脈沖方式控制二極管的點亮時間,則可實現256或更高級灰度顯示,即可實現真彩色顯示。

圖2.1示出最常見的8×8單色LED點陣顯示器的內部電路結構和外型規格,其它型號點陣的結構與引腳可試驗獲得。

圖2.1 8×8單色LED模塊內部電路

LED點陣顯示器單塊使用時,既可代替數碼管顯示數字,也可顯示各種中西文字及符號.如5x7點陣顯示器用于顯示西文字母.5×8點陣顯示器用于顯示中西文,8x8點陣可以用于顯示簡單的中文文字,也可用于簡單圖形顯示。用多塊點陣顯示器組合則可構成大屏幕顯示器,但這類實用裝置常通過PC機或單片機控制驅動。2.2 LED 動態顯示原理

LED點陣顯示系統中各模塊的顯示方式: 有靜態和動態顯示兩種。靜態顯示原理簡單、控制方便,但硬件接線復雜,在實際應用中一般采用動態顯示方式,動態顯示采用掃描的方式工作,由峰值較大的窄脈沖電壓驅動,從上到下逐次不斷地對顯示屏的各行進行選通,同時又向各列送出表示圖形或文字信息的列數據信號,反復循環以上操作,就可顯示各種圖形或文字信息。

點陣式LED漢字廣告屏絕大部分是采用動態掃描顯示方式,這種顯示方式巧妙地利用了人眼的視覺暫留特性。將連續的幾幀畫面高速的循環顯示,只要幀速率高于24幀/秒,人眼看起來就是一個完整的,相對靜止的畫面。最典型的例子就是電影放映機。在電子領域中,因為這種動態掃描顯示方式極大的縮減了發光單元的信號線數量,因此在LED顯示技術中被廣泛使用。

以8×8點陣模塊為例,說明一下其使用方法及控制過程。圖2.1中,紅色水平線Y0、Y1……Y7叫做行線,接內部發光二極管的陽極,每一行8個LED的陽極都接在本行的行線上。相鄰兩行線間絕緣。同樣,藍色豎直線X0、X1……X7叫做列線,接內部每列8個LED的陰極,相鄰兩列線間絕緣。

在這種形式的LED點陣模塊中,若在某行線上施加高電平(用“1”表示),在某列線上施加低電平(用“0”表示)。則行線和列線的交叉點處的LED就會有電流流過而發光。比如,Y7為1,X0為0,則右下角的LED點亮。再如Y0為1,X0到X7均為0,則最上面一行8個LED全點亮。

現描述一下用動態掃描顯示的方式,顯示字符“B”的過程。其過程如圖2.2

圖2.2 用動態掃描顯示字符“B”的過程

2.3 LED常見的控制方式

目前常見的是并行傳輸方式(見附錄1.1),通過8位鎖存器將8位總線上的列數據進行鎖存顯示,各8位鎖存器的片選信號由譯碼器提供。此種方式的優點是傳輸速度快,對微控制器(MCU)的通信速度要求較低。但是這種方案最大的缺點是不便于隨意擴展顯示單元的數目。每增加一個16×16點陣的全角漢字顯示單元,就需要在之前的電路上多增加兩根地址線,這就要求在PCB布線的時候要留有充足的地址線冗余量。再一個缺點是,每個單元的PCB隨著安放位置的不同,布線結構也不相同,不利于廠家批量生產。并行傳輸需要的芯片較多,因此市場上已經出現用FPGA,CPLD等高密度可編程邏輯器件(PLD)來取代傳統鎖存器IC的方案。成本有所下降,但可擴展性仍舊較差。因此,并行傳輸方式適用于顯示單元數目確定的條屏。

隨著廣告屏顯示內容的多媒體化,對控制器傳輸速度,運算能力的要求越來越高。因此控制器的種類也在不斷發展以適應要求,從最初的8051單片機,到PIC單片機,又到FPGA,直到現在的ARM處理器。不同功能檔次的廣告屏對應著不同的處理器。

一.以傳統8051單片機為控制器的LED顯示屏。因受到單片機運算速度及通信速率的限制,LED動態顯示的刷新率不可能做得太高。對顯示效果和移動算法的處理也比較吃力,在實際顯示效果上有比較明顯的閃爍感。除此之外,傳統8051單片機的內部資源貧乏,僅128字節的數據存儲器,幾K字節的程序存儲器,無E2PROM,SPI。這就需要對單片機擴展外設,無疑增加了硬件成本。因此,8051控制的條屏只能用于顯示內容及其簡單,不需要經常更改顯示內容的場合。

二.以PIC單片機為控制器的LED顯示屏。因PIC單片機是RISC架構的工業專用單片機,處理指令的速度有所增加,抗干擾能力優秀,型號種類繁多。作為條屏的控制器,可以明顯的改善顯示效果,同時PIC單片機內部的資源較豐富,可節省外部電路設計難度,同時降低了硬件成本。因此,以PIC單片機為控制器的條屏目前仍是單色條屏市場的主流。

三.以FPGA(復雜可編程邏輯門陣列)為控制器的LED顯示屏。FPGA以高速、并行著稱。是近年來新興的可編程邏輯器件。用他作為LED顯示屏的控制器,能夠高速的處理色階PWM信號、高速的完成動態掃描邏輯、高速的完成字符移動算法。因此被運用于雙基色、三基色的顯示系統。但是其成本較高,開發難度較大。

四.以ARM(32位RISC架構高性能微處理器)為控制器的LED顯示屏。ARM有著極高的指令效率,極高的時鐘頻率。因此其運算能力非常強大,內部資源也十分豐富,極大的簡化了硬件設計的難度,縮短了開發周期。在條屏的運用中,能用ARM來實現花樣繁多的顯示方式,以及高色階,多像素的全彩屏驅動。ARM與FPGA的組合更是功能強大,除了海量存儲技術,無線更新技術外,還能實時地顯示視頻信號。因此,以ARM為控制器的顯示屏常為視頻全彩屏。

硬件電路設計

3.1 系統硬件概述

整個電路由單片機89C51,8個74LS373,1個74HC154,1個74LS138,4個16×16的LED。該電路所設計的電子屏可顯示多個漢字,需要4個16×16 LED點陣模塊,可組成16×64的條形點陣。

AT89C51是一種帶4KB可編程可擦除只讀存儲器的低電壓,高性能微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。AT89C51引腳即外觀如圖3.1所示。

圖3.1 AT89C51的管腳圖

譯碼器是組合邏輯電路的一個重要的器件,74LS138的輸出是低電平有效,故實現邏輯功能時,輸出端不可接或門及或非門,74LS138與前面不同,其有使能端,故使能端必須加以處理,否則無法實現需要的邏輯功能。發光二極管點亮只須使其正向導通即可,根據LED的公共極是陽極還是陰極分為兩類譯碼器,即針對共陽極的低電平有效的譯碼器;針對共陰極LED的高電平輸出有效的譯碼器。

74LS373是低功耗肖特基TTL8D鎖存器,內有8個相同的D型(三態同相)鎖存器,由兩個控制端(11腳G或EN;1腳OUT、CONT、OE)控制。當OE接地時,若G為高電平,74LS373接收由PPU輸出的地址信號;如果G為低電平,則將地址信號鎖存。工作原理:74LS373的輸出端O0—O7可直接與總線相連。當三態允許控制端OE為低電平時,O0—O7為正常邏輯狀態,可用來驅動負載或總線。當OE為高電平時,O0—O7呈高阻態,即不驅動總線,也不為總線的負載,但鎖存器內部的邏輯操作不受影響。當鎖存允許端LE為高電平時,O隨數據D而變。當LE為低電平時,O被鎖存在已建立的數據電平。74LS373引腳即外觀如圖3.2所示

圖3.2 74LS373引腳圖

74HC154為 4 線-12 線譯碼器,當選通端(G1、G2)均為低電平時,可將地址端(ABCD)的二進制 編碼在一個對應的輸出端,以低電平譯出。若將 G1 和 G2 中的一個作為數據輸入端,由 ABCD 對輸出尋址,還可作 1 線-16 線數據分配器。工作環境溫度為0~70℃,對社會的要求非常適合。

LED,50年前人們已經了解半導體材料可產生光

線的基本知識,第一個商用二極管產生于1960年。LED是英文light emitting diode(發光二極管)的縮寫,它的基本結構是一塊電致發光的半導體材料,置于一個有引線的架子上,然后四周用環氧7樹脂密封,即固體封裝,所以能起到保護內部芯線的

作用,所以LED的抗震性能好該電路的顯示采用逐行掃描方式。工作時,由單片機取出第一行需要顯示的內容經延時一段時間后再進行下一行點陣數據的顯示。需要注意的是,每次只能選通一行數據,即要通過不斷的逐行掃描來實現漢字或字符的顯示。3.2 16×16LED點陣顯示制作

3.2.1 16×16LED點陣的內部結構及工作原理

以UCDOS中文宋體字庫為例,每一個字由16行16列的點陣組成顯示。即國家標準漢字庫中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內的任何圖形。這里我們以“高”字說明,如圖3.3所示。

圖3.3 16*16LED漢字顯示

用8位的AT89C51單片機控制,由于單片機的總線為8位,一個字需要拆分為2個部分。一般把它拆分為上部和下部,上部由8×16點陣組成,下部也由8×16點陣組成。在本例中單片機首先顯示的是左上角的第一列的上半部分,即第0列的p00—p07口。方向為p00到p07 ,顯示漢字“高”時,p02點亮,由上往下排列,為p0.0 滅,p0.1 滅, p0.2 滅, p0.3 滅, p0.4 滅, p0.5 亮,p0.6滅,p0.7 滅。即二進制00000100,轉換為16進制為 04h。上半部第一列完成后,繼續掃描下半部的第一列,為了接線的方 便,我們仍設計成由上往下掃描,即從p27向p20方向掃

描,從上圖可以看到,這一列全部為不亮,即為00000000,16進制則為00h。然后單片機轉向上半部第二列,仍為p01點亮,為00000100,即16進制04h.這一列完成后繼續進行下半部分的掃描,p20點亮,為二進制00000010,即16進制02h.依照這個方法,繼續進行下面的掃描,一共掃描32個8位,可以得出漢字“高”的掃描代碼為:02h,00h,01h, 04h,0FFh,0FEh, 00h, 00h,1Fh,0F0h, 10h, 10h, 10h, 10h, 1Fh,0F0h,00h, 04h, 7Fh,0FEh, 40h, 04h, 4Fh,0E4h,48h, 24h, 48h, 24h, 4Fh,0E4h, 40h, 0Ch。

由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出它的掃描代碼從而顯示在屏幕上。不過現在有很多現成的漢字字模生成軟件,就不必自己去畫表格算代碼了。

3.2.2 用8×8LED點陣構成16×16LED點陣

Proteus中只有5×7和8×8等LED點陣,并沒有16×16LED點陣,而在實際應用中,要良好地顯示一個漢字,則至少需要16×16點陣。下面我們就首先介紹使用8×8點陣構建16×16點陣的方法,并構建一塊16×16LED點陣,用于本例的顯示任務。

首先,從Proteus7.1的元件庫中找到“MATRIX-8X8-RED”元器件,并將四塊該元器件放入Proteus文檔區編輯窗口中。此時需要注意,如果該元器件保持初始的位置(沒有轉動方向),我們要首先將其左轉90°,使其水平放置,那么此時它的左面8個引腳是其行線,右邊8個引腳是其列線(當然,如果你是將右轉,則右邊8個引腳是行線)。然后我們將四個元器件對應的行線和列線分別進行連接,使每一條行線引腳接一行16個LED,列線也相同。并注意要將行線和列線引出一定長度的引腳,以便下面我們使用。連接好的16×16點陣如圖3.4所示。

成如上圖的16×16點陣只是第一步,這樣分開的數塊并不能達到好的顯示效果,下面我們要將其進一步組合。組合實際上很簡單,首先選中如上圖中右側的兩塊8×8點陣,然后拖動并使其與左側的兩塊相并攏,如圖3.5所示。

圖3.4 點陣模塊組合

圖3.5

可以看到原來的連線已經自動隱藏了,至于線上的交點,我們不要去動。然后,我們再來最后一步,選中下側的兩塊點陣,并拖動使其與上側的兩塊并攏,最后的效果如圖3.6所示。看到,原來雜亂的連線現在已經幾乎全部隱藏了,一塊16×16的LED點陣做成了。需要注意,做成的LED點陣的行線為左側的16個引腳,下側的16個引腳為其列線,而且其行線為高電平有效,列線為低電平有效。然后,我們將其保存,以便以后使用。

圖3.6 3.3主控單片機的接口說明

P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數據總線復制用口,作為輸入口時,每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口寫入“1可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數據總線復用,在訪問期激活內部上拉電阻。在Flash編程時,PO口接收指令節,而在程序校檢時,輸出指令字節,校檢時,要求外接上拉電阻。P1口:P1口是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流I。Flash編程和程序校檢期間,P1接收低8位地址。

P2口:P2口是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流I。在訪問外部數據存儲器或16位地址的外部數據存儲(例如執行MOVX@DPTR指令)時,P2口送出高8位地址數據。在訪問8位地址的外部數據存儲器(如執行MOVX@RI指令)時,P2口線上的內容(也即特殊功能寄存器(SFR)區中R2寄存器的內容),在整個訪問期間不改變。Flash編程和校檢時,P2亦接收高位地址和其他控制信號。

P3口:P3口是一個帶內部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內部上拉電阻拉高并可作輸入端口,作輸入端時,被外部拉低的P3口將用上拉電阻,輸出電流I。P3口還接收一些用于Flash閃速存儲器編程和程序校檢的控制信號。

RST:復位輸入,當震蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。

ALE/PROG:當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存允許)輸出脈沖用于所存地址的低8位字節。即使不訪問外部存儲器,ALE乃以時鐘振動頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。

3.4 LED顯示驅動電路 LED顯示驅動電路如圖3.7所示。

圖3.7 顯示驅動電路圖

字模生成

4.1 字模簡介

文字的字模是一組數字,但它的意義卻與數字的意義有著根本的變化,它是用數字的各

[1]位信息來記載英文或漢字的形狀。

在電腦硬件中,根本沒有漢字這個概念,也沒有英文的概念,其認識的概念只有——內碼(將ASCII表的高128個很少用到的數值以兩個為一組來表示漢字,即漢字的內碼。而剩下的低128位則留給英文字符使用,即英文的內碼)。如果你用啟動盤啟動系統后用DIR命令可能得到一串串莫名其妙的字符,但那確確實實是漢字,如果你啟動UCDOS或其他的漢字系統后,就會看到那是一個個熟悉的漢字。在硬件系統內,英文的字模信息一般固化在ROM里,即使在沒有進入系統的CMOS里,也可以讓你看到英文字符。而在DOS下,中文的字模信息一般記錄在漢字庫文件里(將制作好的字模放到一個個標準的庫中,這就是點陣字庫文件)。

4.1.1 LED顯示屏領域字模實現技術

在通過軟件實現的技術中,目前有許多字模生成軟件,軟件打開后輸入漢字,點“檢取”,十六進制數據的漢字代碼即可自動生成,把我們所需要的豎排數據復制到我們的程序中即可。在通過硬件實現字模提取的技術中,有在單片機系統中增加硬漢字庫的方法,主控器發送的漢字是其機內碼,用兩個字節來表示一個漢字。根據機內碼,顯示單元控制模塊從漢字庫中查取顯示字模,實現漢字顯示。由于帶有硬漢字庫,進行動態文字顯示時,通用智能顯示單元僅接受漢字的機內碼即可,這樣數據通訊量大大減少。因此,“動態文字顯示速度快”。4.1.2 軟件控制系統字模提取的分析與設計

而在LED顯示屏控制系統具體應用的Windows操作系統下如何提取字模信息是設計的核心。軟件控制系統在實際編輯過程中,要求各種字體、字號的文字都能被編輯、保存。所以系統在設計時,把文本區理解為由眾多的象素點構成,而把不同字體、字號的文字理解為一幅圖像。因為所開啟的文本區大小與LED顯示屏的大小對應,所以采用16×16點陣為單位,把文本區內的每個像素點都看成一個二維數組,由于系統中各種顏色都有對應的值,賦予每個不同顏色的像素點不同的對應值,再把每個點賦予一個int型的值,這樣保存下來的信息就是二進制數據。通過這樣的設計,我們不僅可以把任何字型,任何大小的文字保存下來,還可以顯示以256個像素點陣為單位的任何圖形。在軟件控制系統中實現字模的提取,也就避免了在單片機中加載硬漢字庫模塊,從而簡化了硬件模塊的設計。以下以單色屏為例,介紹系統采用字模保存的算法設計:

定義COLORREF zimo_ color為像素點的顏色,判斷某個點的顏色值。如果值為Oxffffff,說明此點為白色,賦予此點值0。由于單色屏只有紅色和不顯色兩種,所以可以簡單賦值為除白色外其余點賦值為1 CClientDC

dc(this);

CFile myfile;unsigned int zimo[192] [384]={0};unsigned char zimo_data[192][48]={0};

COLORREF zimo_color;

int row, col;

this->HideCaret();

for(row=0;row<192;row++){

for(col=0;col<384;col++){

zimo_color=do.GetPixel(col, row);

if(zimo color = =Oxffffff)

{zimo [row] [col]=0;}else

{zimo [row] [col]=1;}}} 定義unsigned int zimo[192][384]={0};//文本區像素點

以8位為一字節(因為在隨后的串行通訊中,傳輸的數據是8位的二進制數據)定義

unsigned char zimo_data[192][48]={0} 4.2 字模存儲技術

目前使用最廣泛的技術是,通過上位機軟件將待顯示的字符串轉換為對應的點陣字模數

2據,通過燒寫的方式將這些字模數據按一定的順序編址后存儲在EPROM中。在條屏顯示的2過程中按規定的方式取出EPROM中的字模數據進行處理。對于一個16×16點陣的漢字字模

2數據,需要連續32字節的EPROM空間來存儲。照此計算,若有256個需要顯示的字符,則

2至少需要32B×256=8192字節(8KB)的EPROM存儲空間。通常的單片機內部沒有集成這么22大容量的EPROM。因此這種方案,需要在單片機外部擴展大容量的EPROM,增加硬件成本。上位機程序設計由于涉及到漢字取模,取模算法的難度較大。在多字下載的時候傳輸時間也較長。諸多弊端使本設計放棄了傳統方案。而本設計創新使用了專用的點陣字庫芯片,成本僅為8元,內含各種點陣規格的GB2312、ASCII等標準字庫。專用字庫芯片采用微型SO-8封裝,使用高速同步串行SPI接口進行讀寫操作,節省了控制器的I/O。在本設計中,單片2機內部的小容量EPROM,用于存儲待顯示漢字的GB2312標準機內碼,每個全角字符的內碼

2占2字節,則在同樣需要顯示256個漢字的情況下,這種方案僅占用512字節的EPROM空間

4.3 字庫生成

因為本設計中為行掃描,列輸入,所以“魏”的自摸代碼為:

DB 49H,40H,4AH,51H,4CH,6AH,7FH,0C4H,4CH,4AH,8AH,71H,88H,42H,3FH,84H DB64H,98H,0A5H,0E0H,3EH,0BEH,24H,81H,24H,89H,7FH,81H,20H,07H,00H,00

“佳”字代碼為:

DB 01H,00H,02H,00H,04H,00H,1FH,0FFH,0E2H,02H,12H,22H,12H,22H,12H,22H DB 12H,22H,0FFH,0FEH,12H,22H,12H,22H,32H,62H,16H,26H,02H,02H,00H,00H

“鋒”字代碼為:

DB 01H,40H,02H,40H,0EH,40H,0F3H,0FEH,12H,44H,12H,48H,09H,00H,11H,28H DB 0F2H,0A8H,2AH,0A8H,25H,0FFH,2AH,0A8H,32H,0A8H,23H,28H,02H,00H,00H,00H 5軟件設計

5.1 程序設計總體思路和結構 5.1.1 程序設計總體思路

用簡短的匯編程序設計,實現LED點陣顯示內容,并使顯示的內容在屏幕上從左到右的滾動顯示。系統采用模塊化結構,包括主程序、延時程序、顯示子程序和串行口中斷程序。用AT89C51、74LS373、74LS138、74HC154芯片和4個16×16LED點陣顯示器構成一個完整的16位點陣LED顯示系統。5.1.2 程序流程圖

程序主要由開始、初始化、主程序、字庫組成。其中主程序和子程序的流程圖如圖5.1所示。

圖5.1 單片機漢字顯示程序流程圖

5.2 各模塊程序設計 5.2.1 系統初始化 ORG 0000H AJMP START ORG 000BH LJMP TIME0 ORG 0030H START:MOV R1,#00H MOV R2,#00H MOV R3,#00H MOV R4,#00H MOV R5,#00H 5.2.2 LED動態顯示

顯示要求漢字在顯示屏上按從左到右的順序一個個的出現。設計時可采用如下方法:首先將LED顯示屏對應的顯示緩沖區全部清零,即 LED顯示空白,然后每間隔一個“軟定時器”設定的動態顯示時間,顯示緩沖區依次加入一個漢字點陣數據并進行掃描顯示,這樣就可達到動態顯示的效果。實現LED從左向右移動顯示程序: TIME0:INC R5 CJNE R5,#3,NEXT MOV R5,#0 INC DPTR INC DPTR INC R1 CJNE R1,#144,NEXT MOV R1,#0 MOV DPTR,#TAB NEXT: MOV TH0,#3CH MOV TL0,#0B0H RETI 5.2.3 漢字顯示的原理

我們以中文宋體字庫為例,每一個字由16行16列的點陣組成顯示。即國標漢字庫中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內的任何圖形。LED點陣漢字顯示程序: MAIN: MOV P1,R2 MOV A,R3 MOVC A,@A+DPTR MOV P2,A INC R3 MOV A,R3 MOVC A,@A+DPTR MOV P0,A INC R3 MOV P3,R4 LCALL DELAY1MS INC R2 CJNE R2,#16,MAIN MOV R2,#0 INC R4 CJNE R4,#3,MAIN MOV R3,#0 MOV R4,#0 LJMP MAIN

6系統功能測試

6.1 單元模塊電路測試

在proteus仿真軟件中運行測試AT89C51、74LS373、74LS138、74HC154等芯片和LED顯示器均能正常運行并完整的顯示出了我所要的效果。所以各個模塊功能正常。6.2 系統整體功能測試

在仿真軟件proteus中運行測試系統整體功能,一切正常。實現了漢字的左移滾動顯示,完整的顯示出了“陜西理工學院”浮動漢字。

圖6.1 單片機漢字顯示系統測試圖

總結

在本設計中我用簡短的匯編程序在LED顯示屏實現了漢字的左移滾動顯示。在設計中采用的芯片有AT89C51、74LS373、74LS138、74HC154和4個16×16LED點陣顯示器。其特點:1.內容能從右向左浮動顯示。2.硬件結構簡單,應用廣泛。3.LED數碼管動態掃描顯示,工作效率高,價格低廉等。

通過本次(64×16位點陣LED)的設計,理論知識學習和實際設計的結合鍛煉了我的綜合運用所學的專業基礎知識解決實際工程問題的能力,同時也提高我查閱文獻資料、設計手冊、設計規范以及電腦制圖等其他專業能力水平,而且通過對整體的掌控,對局部的取舍,以及對細節的斟酌處理,都使我的能力得到了鍛煉,經驗得到了豐富。為后繼的學習和工作奠定的基礎。

致謝

在完成此設計過程中,我曾多次去找我的指導老師,李建忠老師,每次在遇到實驗中遇到困難或者程序看不懂的時候,我都去找李老師,不管上班下班時間,李老師每次都不厭其煩,不辭辛苦的給我細心講解指導,我才能在實驗室完成實驗,在寫論文過程中老師也給了我很大幫助,在此,我由衷的對李老師對我的指導和教育。

參考文獻

[1]李建忠編著.單片機原理及應用.西安:西安電子科技大學出版社,2002 [2]李群芳,肖看編著.單片機原理、接口及應用.北京:清華大學出版社,2005 [3]于海生編著.微型計算機控制技術.北京:清華大學出版社,2008 [4]戴梅萼,史嘉權編著.微型計算機技術及應用(第3版).北京:清華大學出版社,2008 [5]江曉安,董秀峰編著.數字電子技術(第二版).西安:西安電子科技大學出版社,2005

附錄

附錄:源程序代碼 ORG 0000H;初始化

AJMP START

ORG 000BH

LJMP TIME0

ORG 0030H START:MOV R1,#00H

MOV R2,#00H

MOV R3,#00H

MOV R4,#00H

MOV R5,#00H

MOV TMOD,#01H

MOV TH0,#3CH

MOV TL0,#0B0H

MOV IE,#82H

SETB TR0

MOV DPTR,#TAB;================ MAIN: MOV P1,R2;單片機輸出

MOV A,R3

MOVC A,@A+DPTR

MOV P2,A

INC R3

MOV A,R3

MOVC A,@A+DPTR

MOV P0,A

INC R3

MOV P3,R4

LCALL DELAY1MS

INC R2

CJNE R2,#16,MAIN

MOV R2,#0

INC R4

CJNE R4,#4,MAIN

MOV R3,#0

MOV R4,#0

LJMP MAIN;=============== TIME0:INC R5;移動顯示

CJNE R5,#3,NEXT

MOV R5,#0

INC DPTR

INC DPTR

INC R1

CJNE R1,#144,NEXT

MOV R1,#0

MOV DPTR,#TAB NEXT: MOV TH0,#3CH

MOV TL0,#0B0H

RETI;================ DELAY1MS:MOV R7,#2;延時 DEL: MOV R6,#250

DJNZ R6,$

DJNZ R7,DEL

RET;================ TAB:;DB 000H,000H,01FH,0FCH,010H,000H,025H,000H,03BH,004H,000H,048H,00AH,050H,009H,060H;陜

;DB 07FH,0C0H,010H,0A0H,012H,090H,014H,088H,000H,08CH,000H,004H,000H,004H,000H,000H

DB 00H,00H,7FH,0FFH,44H,20H,5AH,10H,61H,0E1H,10H,82H,14H,84H,12H,88H

DB 10H,0B0H,0FFH,0C0H,10H,0B0H,12H,88H,34H,86H,11H,83H,00H,82H,00H,00H

DB 000H,000H,003H,000H,002H,0F8H,022H,010H,022H,050H,03FH,090H,022H,010H,022H,010H

DB 07FH,090H,044H,090H,044H,090H,004H,00CH,004H,030H,007H,0C0H,000H,000H,000H,000H

DB 000H,010H,011H,010H,011H,020H,01FH,0E0H,022H,048H,000H,048H,038H,008H,027H,048H

DB 025H,048H,03FH,0F0H,04AH,090H,042H,090H,07EH,010H,000H,010H,000H,000H,000H,000H

DB 000H,000H,000H,010H,000H,010H,000H,010H,008H,010H,008H,010H,008H,010H,00FH,0E0H

DB 010H,020H,010H,020H,010H,020H,000H,020H,000H,020H,000H,020H,000H,000H,000H,000H

DB 000H,000H,003H,020H,00EH,020H,044H,020H,024H,020H,005H,020H,04AH,024H,02AH,0C2H

DB 00BH,07CH,01AH,040H,0E8H,040H,008H,040H,00CH,040H,008H,000H,000H,000H,000H,000H

DB 000H,000H,03FH,0FCH,022H,000H,02DH,004H,033H,008H,004H,010H,018H,0A0H,00AH,0C0H

DB 052H,080H,035H,0F8H,015H,004H,011H,004H,018H,004H,000H,038H,000H,000H,000H,000H

DB 02H,00H,02H,00H,42H,00H,33H,0FEH,00H,04H,02H,08H,02H,10H,02H,00H

DB 02H,00H,0FFH,0FFH,02H,00H,02H,00H,02H,00H,06H,00H,02H,00H,00H,00H

DB 10H,10H,20H,10H,0C0H,11H,5FH,0D2H,75H,7CH,55H,50H,55H,50H,35H,50H

DB 0D5H,50H,55H,50H,75H,7FH,5FH,0D0H,40H,10H,40H,30H,00H,10H,00H,00H

DB 08H,20H,08H,0C0H,0BH,00H,0FFH,0FFH,09H,01H,08H,82H,00H,04H,3FH,0F8H

DB 20H,00H,20H,00H,20H,00H,7FH,0FCH,20H,02H,00H,02H,00H,0EH,00H,00H

DB 24H,08H,24H,10H,24H,60H,25H,80H,7FH,0FFH,0C5H,00H,44H,80H,00H,40H

DB 24H,40H,12H,40H,00H,40H,0FFH,0FFH,00H,80H,01H,80H,00H,80H,00H,00H

DB 02H,20H,0CH,20H,88H,20H,69H,20H,09H,20H,09H,22H,89H,21H,69H,7EH

DB 09H,60H,09H,0A0H,19H,20H,28H,20H,0C8H,20H,0AH,60H,0CH,20H,00H,00H

DB 00H,10H,00H,10H,00H,10H,0FFH,10H,11H,10H,11H,10H,11H,10H,11H,10H

DB 11H,10H,11H,32H,11H,11H,11H,02H,33H,0FCH,11H,00H,00H,00H,00H,00H

DB 08H,20H,08H,22H,08H,41H,0FFH,0FEH,08H,80H,08H,01H,11H,81H,11H,62H

DB 11H,14H,0FFH,08H,11H,14H,11H,64H,31H,82H,10H,03H,00H,02H,00H,00H

DB 04H,08H,04H,08H,04H,10H,04H,20H,04H,40H,04H,80H,05H,00H,0FFH,0FFH

DB 05H,00H,44H,80H,24H,40H,34H,20H,04H,10H,0CH,18H,04H,10H,00H,00H

DB 49H,40H,4AH,51H,4CH,6AH,7FH,0C4H,4CH,4AH,8AH,71H,88H,42H,3FH,84H

DB 64H,98H,0A5H,0E0H,3EH,0BEH,24H,81H,24H,89H,7FH,81H,20H,07H,00H,00H

DB 01H,00H,02H,00H,04H,00H,1FH,0FFH,0E2H,02H,12H,22H,12H,22H,12H,22H

DB 12H,22H,0FFH,0FEH,12H,22H,12H,22H,32H,62H,16H,26H,02H,02H,00H,00H

DB 01H,40H,02H,40H,0EH,40H,0F3H,0FEH,12H,44H,12H,48H,09H,00H,11H,28H

DB 0F2H,0A8H,2AH,0A8H,25H,0FFH,2AH,0A8H,32H,0A8H,23H,28H,02H,00H,00H,00H

END

下載基于單片機的Led點陣lunwen(xiexiebang推薦)word格式文檔
下載基于單片機的Led點陣lunwen(xiexiebang推薦).doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    LED點陣開題報告

    畢業設計(論文)開題報告題 目 基于單片機的 led點陣顯示系統的設計二〇一二年十二月開題報告填表說明 1.開題報告是畢業設計(論文)過程規范管理的重要環節,是培養學生嚴謹務實......

    LED點陣屏報告

    大作業報告 課程:單片機系統項目設計 題目:16X64LED點陣屏設計與制作 系 別 信息工程系專 業電子應用技術學 號 123242**** 學生姓名 lsxc曉任課教師 完成日期 2014/6/22 目......

    單片機點陣制作心得[范文大全]

    點陣制作心得 本來上學期就準備做點陣的,由于其他事情的耽誤,做到一半就沒做了,最近終于把點陣搞定了,再次和大家分享一下制作點陣的心得,希望對想了解點陣和制作點陣的朋友有點......

    LED點陣顯示屏設計報告

    XX大學開發性實驗結題報告學院:電子工程學院班級:光信姓名:學號:班級:光信姓名:學號:班級:光信姓名:學號:2014年X月X日1632點陣LED電子顯示屏摘要:本設計是一16×32點陣LED電子顯示屏的......

    24. 8X8 LED點陣顯示技術(精選)

    24. 8X8 LED點陣顯示技術 1. 實驗任務 在8X8 LED點陣上顯示柱形,讓其先從左到右平滑移動三次,其次從右到左平滑移動三次,再次從上到下平滑移動三次,最后從下到上平滑移動三次,如此......

    單片機16點陣漢字顯示課程設計

    一、前言 1.1設計制作產品的背景、目的及設計要求 本項目為16x16點陣漢字顯示“新年快樂”的設計,首先將本次實訓的電路圖在仿真軟件上繪制完成,將點陣文件存入ROM,形成漢字編......

    單片機led實習報告

    電氣控制柜安裝實習報告 實習體會: 在學校北苑實訓工廠兩周的控制柜安裝實訓無聲無息的結束了。這兩周的實訓讓我學到了很多東西,不僅使我在理論上對電氣控制技術有了全新的......

    單片機實驗九 LED五篇

    實驗九 LED顯示一、實驗目的 1、熟悉LED數碼管的結構、工作原理、顯示方法和控制方法。 2、掌握單片機與LED數碼管的接口技術。 二、實驗設備 裝有proteus的電腦一臺 三、實......

主站蜘蛛池模板: 亚洲 欧洲 日韩 综合在线| 亚洲中文字幕无码久久2017| 午夜亚洲国产理论片中文飘花| 久久精品国产99国产精2020丨| 好男人在线社区www在线影院| 国产欧美日韩精品专区| 日韩人妻无码精品—专区| 亚洲欧洲av无码电影在线观看| 日韩精品一区二区三区色欲av| 337人体做爰大胆视频| 国产免费福利在线视频| 国产丝袜美女一区二区三区| 欧美亚洲自偷自拍 在线| 一本aⅴ高清一区二区三区| 成人av片在线观看免费| 麻豆av一区二区天美传媒| 国产精品原创av片国产日韩| 亚洲国产精品毛片av不卡在线| 日本乱偷人妻中文字幕在线| 男女爽爽无遮挡午夜视频| 国产成人久久综合第一区| 又色又爽又高潮免费观看| 99久久亚洲综合精品成人| 四虎影视4hu4虎成人| 亚洲一区二区三区成人网站| 精品国产福利久久久| 国产精品无码无在线观看| 99国产欧美精品久久久蜜芽| 亚洲国产精品久久青草无码| 动漫?c?黄扒衣服漫画| 亚洲人成人一区二区三区| 日本精品无码一区二区三区久久久| 久久精品第一国产久精国产宅男66| 野狼av午夜福利在线| 男女啪啪做爰高潮免费网站| 国产精品亚洲а∨天堂2021| av中文字幕潮喷人妻系列| 日韩视频在线观看| 吃奶揉捏奶头高潮视频在线观看| 欧美丰满大乳大屁股流白浆| 亚洲综合图色40p|