LED點陣廣告牌設計_第1頁
LED點陣廣告牌設計_第2頁
LED點陣廣告牌設計_第3頁
LED點陣廣告牌設計_第4頁
LED點陣廣告牌設計_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于單片機的Led點陣廣告牌設計【摘要】本設計使用AT89C51系列高速單片機作為主控制模塊,利用簡單的外圍電路來驅動64×16的點陣LED顯示屏。利用AT89C51系列高速單片機本身強大的功能,可以很方便的實現(xiàn)單片機與PC機間的數(shù)據(jù)傳輸及存儲,并能利用軟件方便的進行顯示內容的多樣變化,另一方面點陣顯示屏廣泛的應用于醫(yī)院、機場、銀行等公共場所,所以本設計具有很強的現(xiàn)實應用性。本LED顯示屏能夠以動態(tài)掃描的方式同時顯示4個16×16點陣漢字,并能通過上位機軟件修改顯示內容和顯示效果等等。把字符內碼存儲在空閑的單片機程序存儲器空間,使本LED顯示系統(tǒng)能掉電存儲1024個字符。設計中采用了SPI接口的GB2312標準字庫,支持所有的國標字符和ASC=2\*ROMANII標準字符的顯示。因為采用串行傳輸方式,使本系統(tǒng)的可擴展性得到提升,便于多個顯示單元的級聯(lián)。本文從LED的顯示原理入手,詳細闡述了LED動態(tài)顯示的過程,以及硬件電路的設計、計算和軟件的算法?!娟P鍵詞】動態(tài)顯示;單片機;點陣字庫目錄1LED概述 61.1LED電子顯示屏概述 61.2LED電子顯示屏的分類 62顯示原理及控制方式分析 72.1LED點陣模塊結構 72.2LED動態(tài)顯示原理 72.3LED常見的控制方式 83硬件電路設計 103.1系統(tǒng)硬件概述 103.216×16LED點陣顯示制作 113.2.116×16LED點陣的內部結構及工作原理 113.2.2用8×8LED點陣構成16×16LED點陣 123.3主控單片機的接口說明 143.4LED顯示驅動電路 144字模生成 164.1字模簡介 164.1.1LED顯示屏領域字模實現(xiàn)技術 164.1.2軟件控制系統(tǒng)字模提取的分析與設計 164.2字模存儲技術 174.3字庫生成 175軟件設計 195.1程序設計總體思路和結構 195.1.1程序設計總體思路 195.1.2程序流程圖 195.2各模塊程序設計 205.2.1系統(tǒng)初始化 205.2.2LED動態(tài)顯示 205.2.3漢字顯示的原理 206系統(tǒng)功能測試 226.1單元模塊電路測試 226.2系統(tǒng)整體功能測試 22總結 23致謝 24參考文獻 25附錄 26

引言LED(LightEmittingDiode),發(fā)光二極管,簡稱LED,是一種能夠將電能轉化為可見光的固態(tài)的半導體器件,它可以直接把電轉化為光。LED的心臟是一個半導體的晶片,晶片的一端附在一個支架上,一端是負極,另一端連接電源的正極使整個晶片被環(huán)氧樹脂封裝起來。半導體晶片由兩部分組成,一部分是P型半導體,在它里面空穴占主導地位,另一端是N型半導體,在這邊主要是電子。但這兩種半導體連接起來的時候,它們之間就形成一個“P-N結”。當電流通過導線作用于這個晶片的時候,電子就會被推向P區(qū),在P區(qū)里電子跟空穴復合,然后就會以光子的形式發(fā)出能量,這就是LED發(fā)光的原理。多個LED發(fā)光燈組成固定的字符或圖形進行顯示,即形成LED點陣圖文顯示屏。其主要特征是只控制LED點陣中各發(fā)光器件的通斷(發(fā)光或熄滅),而不控制LED的發(fā)光強弱。LED點陣的漢字顯示方式是先根據(jù)所需要的漢字提取漢字點陣(如16×16點陣),將點陣文件存入ROM,形成新的漢字編碼;而在使用時則需要先根據(jù)新的漢字編碼組成語句,再由MCU根據(jù)新編碼提取相應的點陣進行漢字顯示。LED點陣顯示具有如下特點:(1)電壓:LED使用低壓電源,供電電壓在6-24V之間,根據(jù)產(chǎn)品不同而異,所以它是一種比使用高壓電源更安全的電源。(2)效能:消耗能量比同光效的白熾燈減少80%。(3)適用性:每個單元LED小片是3-5mm的正方形,所以可以制備成各種形狀的器件,并且適合于易變的環(huán)境。(4)穩(wěn)定性:10萬小時,光衰為初始的50%。(5)響應時間:其白熾燈的響應時間為毫秒級,LED燈的響應時間為納秒級。(6)對環(huán)境污染:無有害金屬汞。(7)顏色:改變電流可以變色,發(fā)光二極管方便地通過化學修飾方法,調整材料的能帶結構和帶隙,實現(xiàn)紅黃綠蘭橙多色發(fā)光。由于LED的眾多優(yōu)勢,在市場中得到了廣泛的應用,主要應用領域有:(1)、信號指示應用:信號照明是LED單色光應用比較廣泛也是比較早的一個領域,約占LED應用市場的4%左右。(2)、顯示應用:指示牌、廣告牌、大屏幕顯示等,LED用于顯示屏幕的應用約占LED應用的20%—25%,顯示屏幕可分為單色和彩色。(3)、照明應用:便攜燈具,汽車用燈,特殊照明。由于LED尺寸小,便于動態(tài)的亮度和顏色控制,因此比較適合用于建筑裝飾照明。背光照明:普通電子設備功能顯示背光源、筆記本電腦背光源、大尺寸超大尺寸LCD顯示器背光源等。以及投影儀用RGB光源。

1LED概述1.1LED電子顯示屏概述LED電子顯示屏(LightEmittingDiodePanel)是由幾百--幾十萬個半導體發(fā)光二極管構成的像素點,按矩陣均勻排列組成。利用不同的半導體材料可以制造不同色彩的LED像素點。目前應用最廣的是紅色、綠色、黃色。而藍色和純綠色LED的開發(fā)已經(jīng)達到了實用階段。LED顯示屏是一種通過控制半導體發(fā)光二極管的亮度的方式,來顯示文字、圖形、圖像、動畫、行情、視頻、錄像信號等各種信息的顯示屏幕。LED顯示屏分為圖文顯示屏和條幅顯示屏,均由LED矩陣塊組成。圖文顯示屏可與計算機同步顯示漢字、英文文本和圖形;而條幅顯示屏則適用于小容量的字符信息顯示。LED顯示屏因為其像素單元是主動發(fā)光的,具有亮度高,視角廣、工作電壓低、功耗小、壽命長、耐沖擊和性能穩(wěn)定等優(yōu)點。因而被廣泛應用于車站、碼頭、機場、商場、醫(yī)院、賓館、銀行、證券市場、建筑市場、拍賣行、工業(yè)企業(yè)管理和其它公共場所。LED顯示屏的發(fā)展前景極為廣闊,目前正朝著更高亮度、更高氣候耐受性、更高的發(fā)光密度、更高的發(fā)光均勻性,可靠性、全色化方向發(fā)展。1.2LED電子顯示屏的分類按顏色分類:單基色顯示屏:單一顏色(紅色或綠色)。

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

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

按顯示器件分類:

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

LED點陣圖文顯示屏:顯示器件是由許多均勻排列的發(fā)光二極管組成的點陣顯示模塊,適于播放文字、圖像信息。

按使用場合分類:

室內顯示屏:發(fā)光點較小,一般Φ3mm--Φ8mm,顯示面積一般零點幾至十幾平方米。

室外顯示屏:面積一般幾十平方米至幾百平方米,亮度高,可在陽光下工作,具有防風、防雨、防水功能。

按發(fā)光點直徑分類:

室內屏:Φ3mm、Φ3.75mm、Φ5mm、

室外屏:Φ10mm、Φ12mm、Φ16mm、Φ19mm、Φ21mm、Φ26mm

室外屏發(fā)光的基本單元為發(fā)光筒,發(fā)光筒的原理是將一組紅、綠、藍發(fā)光二極管封在一個塑料筒內共同發(fā)光增強亮度。2顯示原理及控制方式分析2.1LED點陣模塊結構八十年代以來出現(xiàn)了組合型LED點陣顯示器模塊,以發(fā)光二極管為像素,它用高亮度發(fā)光二極管芯陣列組合后,環(huán)氧樹脂和塑模封裝而成。這種一體化封裝的點陣LED模塊,具有高亮度、引腳少、視角大、壽命長、耐濕、耐冷熱、耐腐蝕等特點。LED點陣規(guī)模常見的有4×4、4×8、5×7、5×8、8×8、16×16等等。根據(jù)像素顏色的數(shù)目可分為單色、雙基色、三基色等。像素顏色不同,所顯示的文字、圖象等內容的顏色也不同。單色點陣只能顯示固定色彩如紅、綠、黃等單色,雙基色和三基色點陣顯示內容的顏色由像素內不同顏色發(fā)光二極管點亮組合方式?jīng)Q定,如紅綠都亮時可顯示黃色,如果按照脈沖方式控制二極管的點亮時間,則可實現(xiàn)256或更高級灰度顯示,即可實現(xiàn)真彩色顯示。圖2.1示出最常見的8×8單色LED點陣顯示器的內部電路結構和外型規(guī)格,其它型號點陣的結構與引腳可試驗獲得。圖2.18×8單色LED模塊內部電路LED點陣顯示器單塊使用時,既可代替數(shù)碼管顯示數(shù)字,也可顯示各種中西文字及符號.如5x7點陣顯示器用于顯示西文字母.5×8點陣顯示器用于顯示中西文,8x8點陣可以用于顯示簡單的中文文字,也可用于簡單圖形顯示。用多塊點陣顯示器組合則可構成大屏幕顯示器,但這類實用裝置常通過PC機或單片機控制驅動。2.2LED動態(tài)顯示原理LED點陣顯示系統(tǒng)中各模塊的顯示方式:有靜態(tài)和動態(tài)顯示兩種。靜態(tài)顯示原理簡單、控制方便,但硬件接線復雜,在實際應用中一般采用動態(tài)顯示方式,動態(tài)顯示采用掃描的方式工作,由峰值較大的窄脈沖電壓驅動,從上到下逐次不斷地對顯示屏的各行進行選通,同時又向各列送出表示圖形或文字信息的列數(shù)據(jù)信號,反復循環(huán)以上操作,就可顯示各種圖形或文字信息。點陣式LED漢字廣告屏絕大部分是采用動態(tài)掃描顯示方式,這種顯示方式巧妙地利用了人眼的視覺暫留特性。將連續(xù)的幾幀畫面高速的循環(huán)顯示,只要幀速率高于24幀/秒,人眼看起來就是一個完整的,相對靜止的畫面。最典型的例子就是電影放映機。在電子領域中,因為這種動態(tài)掃描顯示方式極大的縮減了發(fā)光單元的信號線數(shù)量,因此在LED顯示技術中被廣泛使用。以8×8點陣模塊為例,說明一下其使用方法及控制過程。圖2.1中,紅色水平線Y0、Y1……Y7叫做行線,接內部發(fā)光二極管的陽極,每一行8個LED的陽極都接在本行的行線上。相鄰兩行線間絕緣。同樣,藍色豎直線X0、X1……X7叫做列線,接內部每列8個LED的陰極,相鄰兩列線間絕緣。在這種形式的LED點陣模塊中,若在某行線上施加高電平(用“1”表示),在某列線上施加低電平(用“0”表示)。則行線和列線的交叉點處的LED就會有電流流過而發(fā)光。比如,Y7為1,X0為0,則右下角的LED點亮。再如Y0為1,X0到X7均為0,則最上面一行8個LED全點亮?,F(xiàn)描述一下用動態(tài)掃描顯示的方式,顯示字符“B”的過程。其過程如圖2.2圖2.2用動態(tài)掃描顯示字符“B”的過程2.3LED常見的控制方式目前常見的是并行傳輸方式(見附錄1.1),通過8位鎖存器將8位總線上的列數(shù)據(jù)進行鎖存顯示,各8位鎖存器的片選信號由譯碼器提供。此種方式的優(yōu)點是傳輸速度快,對微控制器(MCU)的通信速度要求較低。但是這種方案最大的缺點是不便于隨意擴展顯示單元的數(shù)目。每增加一個16×16點陣的全角漢字顯示單元,就需要在之前的電路上多增加兩根地址線,這就要求在PCB布線的時候要留有充足的地址線冗余量。再一個缺點是,每個單元的PCB隨著安放位置的不同,布線結構也不相同,不利于廠家批量生產(chǎn)。并行傳輸需要的芯片較多,因此市場上已經(jīng)出現(xiàn)用FPGA,CPLD等高密度可編程邏輯器件(PLD)來取代傳統(tǒng)鎖存器IC的方案。成本有所下降,但可擴展性仍舊較差。因此,并行傳輸方式適用于顯示單元數(shù)目確定的條屏。隨著廣告屏顯示內容的多媒體化,對控制器傳輸速度,運算能力的要求越來越高。因此控制器的種類也在不斷發(fā)展以適應要求,從最初的8051單片機,到PIC單片機,又到FPGA,直到現(xiàn)在的ARM處理器。不同功能檔次的廣告屏對應著不同的處理器。一.以傳統(tǒng)8051單片機為控制器的LED顯示屏。因受到單片機運算速度及通信速率的限制,LED動態(tài)顯示的刷新率不可能做得太高。對顯示效果和移動算法的處理也比較吃力,在實際顯示效果上有比較明顯的閃爍感。除此之外,傳統(tǒng)8051單片機的內部資源貧乏,僅128字節(jié)的數(shù)據(jù)存儲器,幾K字節(jié)的程序存儲器,無E2PROM,SPI。這就需要對單片機擴展外設,無疑增加了硬件成本。因此,8051控制的條屏只能用于顯示內容及其簡單,不需要經(jīng)常更改顯示內容的場合。二.以PIC單片機為控制器的LED顯示屏。因PIC單片機是RISC架構的工業(yè)專用單片機,處理指令的速度有所增加,抗干擾能力優(yōu)秀,型號種類繁多。作為條屏的控制器,可以明顯的改善顯示效果,同時PIC單片機內部的資源較豐富,可節(jié)省外部電路設計難度,同時降低了硬件成本。因此,以PIC單片機為控制器的條屏目前仍是單色條屏市場的主流。三.以FPGA(復雜可編程邏輯門陣列)為控制器的LED顯示屏。FPGA以高速、并行著稱。是近年來新興的可編程邏輯器件。用他作為LED顯示屏的控制器,能夠高速的處理色階PWM信號、高速的完成動態(tài)掃描邏輯、高速的完成字符移動算法。因此被運用于雙基色、三基色的顯示系統(tǒng)。但是其成本較高,開發(fā)難度較大。四.以ARM(32位RISC架構高性能微處理器)為控制器的LED顯示屏。ARM有著極高的指令效率,極高的時鐘頻率。因此其運算能力非常強大,內部資源也十分豐富,極大的簡化了硬件設計的難度,縮短了開發(fā)周期。在條屏的運用中,能用ARM來實現(xiàn)花樣繁多的顯示方式,以及高色階,多像素的全彩屏驅動。ARM與FPGA的組合更是功能強大,除了海量存儲技術,無線更新技術外,還能實時地顯示視頻信號。因此,以ARM為控制器的顯示屏常為視頻全彩屏。3硬件電路設計3.1系統(tǒng)硬件概述整個電路由單片機89C51,8個74LS373,1個74HC154,1個74LS138,4個16×16的LED。該電路所設計的電子屏可顯示多個漢字,需要4個16×16LED點陣模塊,可組成16×64的條形點陣。AT89C51是一種帶4KB可編程可擦除只讀存儲器的低電壓,高性能微處理器,俗稱單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。AT89C51引腳即外觀如圖3.1所示。圖3.1AT89C51的管腳圖譯碼器是組合邏輯電路的一個重要的器件,74LS138的輸出是低電平有效,故實現(xiàn)邏輯功能時,輸出端不可接或門及或非門,74LS138與前面不同,其有使能端,故使能端必須加以處理,否則無法實現(xiàn)需要的邏輯功能。發(fā)光二極管點亮只須使其正向導通即可,根據(jù)LED的公共極是陽極還是陰極分為兩類譯碼器,即針對共陽極的低電平有效的譯碼器;針對共陰極LED的高電平輸出有效的譯碼器。74LS373是低功耗肖特基TTL8D鎖存器,內有8個相同的D型(三態(tài)同相)鎖存器,由兩個控制端(11腳G或EN;1腳OUT、CONT、OE)控制。當OE接地時,若G為高電平,74LS373接收由PPU輸出的地址信號;如果G為低電平,則將地址信號鎖存。工作原理:74LS373的輸出端O0—O7可直接與總線相連。當三態(tài)允許控制端OE為低電平時,O0—O7為正常邏輯狀態(tài),可用來驅動負載或總線。當OE為高電平時,O0—O7呈高阻態(tài),即不驅動總線,也不為總線的負載,但鎖存器內部的邏輯操作不受影響。當鎖存允許端LE為高電平時,O隨數(shù)據(jù)D而變。當LE為低電平時,O被鎖存在已建立的數(shù)據(jù)電平。74LS373引腳即外觀如圖3.2所示圖3.274LS373引腳圖74HC154為4線-12線譯碼器,當選通端(G1、G2)均為低電平時,可將地址端(ABCD)的二進制編碼在一個對應的輸出端,以低電平譯出。若將G1和G2中的一個作為數(shù)據(jù)輸入端,由ABCD對輸出尋址,還可作1線-16線數(shù)據(jù)分配器。工作環(huán)境溫度為0~70℃,對社會的要求非常適合。LED,50年前人們已經(jīng)了解半導體材料可產(chǎn)生光線的基本知識,第一個商用二極管產(chǎn)生于1960年。LED是英文lightemittingdiode(發(fā)光二極管)的縮寫,它的基本結構是一塊電致發(fā)光的半導體材料,置于一個有引線的架子上,然后四周用環(huán)氧7樹脂密封,即固體封裝,所以能起到保護內部芯線的作用,所以LED的抗震性能好該電路的顯示采用逐行掃描方式。工作時,由單片機取出第一行需要顯示的內容經(jīng)延時一段時間后再進行下一行點陣數(shù)據(jù)的顯示。需要注意的是,每次只能選通一行數(shù)據(jù),即要通過不斷的逐行掃描來實現(xiàn)漢字或字符的顯示。3.216×16LED點陣顯示制作3.2.116×16LED點陣的內部結構及工作原理以UCDOS中文宋體字庫為例,每一個字由16行16列的點陣組成顯示。即國家標準漢字庫中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內的任何圖形。這里我們以“高”字說明,如圖3.3所示。圖3.316*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。上半部第一列完成后,繼續(xù)掃描下半部的第一列,為了接線的方便,我們仍設計成由上往下掃描,即從p27向p20方向掃描,從上圖可以看到,這一列全部為不亮,即為00000000,16進制則為00h。然后單片機轉向上半部第二列,仍為p01點亮,為00000100,即16進制04h.這一列完成后繼續(xù)進行下半部分的掃描,p20點亮,為二進制00000010,即16進制02h.依照這個方法,繼續(xù)進行下面的掃描,一共掃描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。由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出它的掃描代碼從而顯示在屏幕上。不過現(xiàn)在有很多現(xiàn)成的漢字字模生成軟件,就不必自己去畫表格算代碼了。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文檔區(qū)編輯窗口中。此時需要注意,如果該元器件保持初始的位置(沒有轉動方向),我們要首先將其左轉90°,使其水平放置,那么此時它的左面8個引腳是其行線,右邊8個引腳是其列線(當然,如果你是將右轉,則右邊8個引腳是行線)。然后我們將四個元器件對應的行線和列線分別進行連接,使每一條行線引腳接一行16個LED,列線也相同。并注意要將行線和列線引出一定長度的引腳,以便下面我們使用。連接好的16×16點陣如圖3.4所示。成如上圖的16×16點陣只是第一步,這樣分開的數(shù)塊并不能達到好的顯示效果,下面我們要將其進一步組合。組合實際上很簡單,首先選中如上圖中右側的兩塊8×8點陣,然后拖動并使其與左側的兩塊相并攏,如圖3.5所示。圖3.4點陣模塊組合圖3.5圖3.4點陣模塊組合可以看到原來的連線已經(jīng)自動隱藏了,至于線上的交點,我們不要去動。然后,我們再來最后一步,選中下側的兩塊點陣,并拖動使其與上側的兩塊并攏,最后的效果如圖3.6所示。看到,原來雜亂的連線現(xiàn)在已經(jīng)幾乎全部隱藏了,一塊16×16的LED點陣做成了。需要注意,做成的LED點陣的行線為左側的16個引腳,下側的16個引腳為其列線,而且其行線為高電平有效,列線為低電平有效。然后,我們將其保存,以便以后使用。圖3.63.3主控單片機的接口說明P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復制用口,作為輸入口時,每位能吸收電流的方式驅動8個TTL邏輯門電路,對端口寫入“1可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉換地址(低8位)和數(shù)據(jù)總線復用,在訪問期激活內部上拉電阻。在Flash編程時,PO口接收指令節(jié),而在程序校檢時,輸出指令字節(jié),校檢時,要求外接上拉電阻。P1口:P1口是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流I。Flash編程和程序校檢期間,P1接收低8位地址。P2口:P2口是一個帶內部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流I。在訪問外部數(shù)據(jù)存儲器或16位地址的外部數(shù)據(jù)存儲(例如執(zhí)行MOVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVX@RI指令)時,P2口線上的內容(也即特殊功能寄存器(SFR)區(qū)中R2寄存器的內容),在整個訪問期間不改變。Flash編程和校檢時,P2亦接收高位地址和其他控制信號。P3口:P3口是一個帶內部上拉電阻的8位雙向I/O口。P3口輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內部上拉電阻拉高并可作輸入端口,作輸入端時,被外部拉低的P3口將用上拉電阻,輸出電流I。P3口還接收一些用于Flash閃速存儲器編程和程序校檢的控制信號。RST:復位輸入,當震蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復位。ALE/PROG:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于所存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE乃以時鐘振動頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。3.4LED顯示驅動電路LED顯示驅動電路如圖3.7所示。圖3.7顯示驅動電路圖

4字模生成4.1字模簡介文字的字模是一組數(shù)字,但它的意義卻與數(shù)字的意義有著根本的變化,它是用數(shù)字的各位信息來記載英文或漢字的形狀[1]。在電腦硬件中,根本沒有漢字這個概念,也沒有英文的概念,其認識的概念只有——內碼(將ASCII表的高128個很少用到的數(shù)值以兩個為一組來表示漢字,即漢字的內碼。而剩下的低128位則留給英文字符使用,即英文的內碼)。如果你用啟動盤啟動系統(tǒng)后用DIR命令可能得到一串串莫名其妙的字符,但那確確實實是漢字,如果你啟動UCDOS或其他的漢字系統(tǒng)后,就會看到那是一個個熟悉的漢字。在硬件系統(tǒng)內,英文的字模信息一般固化在ROM里,即使在沒有進入系統(tǒng)的CMOS里,也可以讓你看到英文字符。而在DOS下,中文的字模信息一般記錄在漢字庫文件里(將制作好的字模放到一個個標準的庫中,這就是點陣字庫文件)。4.1.1LED顯示屏領域字模實現(xiàn)技術在通過軟件實現(xiàn)的技術中,目前有許多字模生成軟件,軟件打開后輸入漢字,點“檢取”,十六進制數(shù)據(jù)的漢字代碼即可自動生成,把我們所需要的豎排數(shù)據(jù)復制到我們的程序中即可。在通過硬件實現(xiàn)字模提取的技術中,有在單片機系統(tǒng)中增加硬漢字庫的方法,主控器發(fā)送的漢字是其機內碼,用兩個字節(jié)來表示一個漢字。根據(jù)機內碼,顯示單元控制模塊從漢字庫中查取顯示字模,實現(xiàn)漢字顯示。由于帶有硬漢字庫,進行動態(tài)文字顯示時,通用智能顯示單元僅接受漢字的機內碼即可,這樣數(shù)據(jù)通訊量大大減少。因此,“動態(tài)文字顯示速度快”。4.1.2軟件控制系統(tǒng)字模提取的分析與設計而在LED顯示屏控制系統(tǒng)具體應用的Windows操作系統(tǒng)下如何提取字模信息是設計的核心。軟件控制系統(tǒng)在實際編輯過程中,要求各種字體、字號的文字都能被編輯、保存。所以系統(tǒng)在設計時,把文本區(qū)理解為由眾多的象素點構成,而把不同字體、字號的文字理解為一幅圖像。因為所開啟的文本區(qū)大小與LED顯示屏的大小對應,所以采用16×16點陣為單位,把文本區(qū)內的每個像素點都看成一個二維數(shù)組,由于系統(tǒng)中各種顏色都有對應的值,賦予每個不同顏色的像素點不同的對應值,再把每個點賦予一個int型的值,這樣保存下來的信息就是二進制數(shù)據(jù)。通過這樣的設計,我們不僅可以把任何字型,任何大小的文字保存下來,還可以顯示以256個像素點陣為單位的任何圖形。在軟件控制系統(tǒng)中實現(xiàn)字模的提取,也就避免了在單片機中加載硬漢字庫模塊,從而簡化了硬件模塊的設計。以下以單色屏為例,介紹系統(tǒng)采用字模保存的算法設計:定義COLORREFzimo_color為像素點的顏色,判斷某個點的顏色值。如果值為Oxffffff,說明此點為白色,賦予此點值0。由于單色屏只有紅色和不顯色兩種,所以可以簡單賦值為除白色外其余點賦值為1CClientDCdc(this);CFilemyfile;unsignedintzimo[192][384]={0};unsignedcharzimo_data[192][48]={0};COLORREFzimo_color;introw,col;this->HideCaret();for(row=0;row<192;row++){for(col=0;col<384;col++){zimo_color=do.GetPixel(col,row);if(zimocolor==Oxffffff){zimo[row][col]=0;}else{zimo[row][col]=1;}}}定義unsignedintzimo[192][384]={0};//文本區(qū)像素點以8位為一字節(jié)(因為在隨后的串行通訊中,傳輸?shù)臄?shù)據(jù)是8位的二進制數(shù)據(jù))定義unsignedcharzimo_data[192][48]={0}4.2字模存儲技術目前使用最廣泛的技術是,通過上位機軟件將待顯示的字符串轉換為對應的點陣字模數(shù)據(jù),通過燒寫的方式將這些字模數(shù)據(jù)按一定的順序編址后存儲在E2PROM中。在條屏顯示的過程中按規(guī)定的方式取出E2PROM中的字模數(shù)據(jù)進行處理。對于一個16×16點陣的漢字字模數(shù)據(jù),需要連續(xù)32字節(jié)的E2PROM空間來存儲。照此計算,若有256個需要顯示的字符,則至少需要32B×256=8192字節(jié)(8KB)的E2PROM存儲空間。通常的單片機內部沒有集成這么大容量的E2PROM。因此這種方案,需要在單片機外部擴展大容量的E2PROM,增加硬件成本。上位機程序設計由于涉及到漢字取模,取模算法的難度較大。在多字下載的時候傳輸時間也較長。諸多弊端使本設計放棄了傳統(tǒng)方案。而本設計創(chuàng)新使用了專用的點陣字庫芯片,成本僅為8元,內含各種點陣規(guī)格的GB2312、ASCII等標準字庫。專用字庫芯片采用微型SO-8封裝,使用高速同步串行SPI接口進行讀寫操作,節(jié)省了控制器的I/O。在本設計中,單片機內部的小容量E2PROM,用于存儲待顯示漢字的GB2312標準機內碼,每個全角字符的內碼占2字節(jié),則在同樣需要顯示256個漢字的情況下,這種方案僅占用512字節(jié)的E2PROM空間4.3字庫生成因為本設計中為行掃描,列輸入,所以“魏”的自摸代碼為:DB49H,40H,4AH,51H,4CH,6AH,7FH,0C4H,4CH,4AH,8AH,71H,88H,42H,3FH,84HDB64H,98H,0A5H,0E0H,3EH,0BEH,24H,81H,24H,89H,7FH,81H,20H,07H,00H,00“佳”字代碼為:DB01H,00H,02H,00H,04H,00H,1FH,0FFH,0E2H,02H,12H,22H,12H,22H,12H,22HDB12H,22H,0FFH,0FEH,12H,22H,12H,22H,32H,62H,16H,26H,02H,02H,00H,00H“鋒”字代碼為:DB01H,40H,02H,40H,0EH,40H,0F3H,0FEH,12H,44H,12H,48H,09H,00H,11H,28HDB0F2H,0A8H,2AH,0A8H,25H,0FFH,2AH,0A8H,32H,0A8H,23H,28H,02H,00H,00H,00H5軟件設計5.1程序設計總體思路和結構5.1.1程序設計總體思路用簡短的匯編程序設計,實現(xiàn)LED點陣顯示內容,并使顯示的內容在屏幕上從左到右的滾動顯示。系統(tǒng)采用模塊化結構,包括主程序、延時程序、顯示子程序和串行口中斷程序。用AT89C51、74LS373、74LS138、74HC154芯片和4個16×16LED點陣顯示器構成一個完整的16位點陣LED顯示系統(tǒng)。5.1.2程序流程圖程序主要由開始、初始化、主程序、字庫組成。其中主程序和子程序的流程圖如圖5.1所示。圖5.1單片機漢字顯示程序流程圖

5.2各模塊程序設計5.2.1系統(tǒng)初始化ORG0000HAJMPSTARTORG000BHLJMPTIME0ORG0030HSTART:MOVR1,#00HMOVR2,#00HMOVR3,#00HMOVR4,#00HMOVR5,#00H5.2.2LED動態(tài)顯示顯示要求漢字在顯示屏上按從左到右的順序一個個的出現(xiàn)。設計時可采用如下方法:首先將LED顯示屏對應的顯示緩沖區(qū)全部清零,即LED顯示空白,然后每間隔一個“軟定時器”設定的動態(tài)顯示時間,顯示緩沖區(qū)依次加入一個漢字點陣數(shù)據(jù)并進行掃描顯示,這樣就可達到動態(tài)顯示的效果。實現(xiàn)LED從左向右移動顯示程序:TIME0:INCR5CJNER5,#3,NEXTMOVR5,#0INCDPTRINCDPTRINCR1CJNER1,#144,NEXTMOVR1,#0MOVDPTR,#TABNEXT:MOVTH0,#3CHMOVTL0,#0B0HRETI5.2.3漢字顯示的原理我們以中文宋體字庫為例,每一個字由16行16列的點陣組成顯示。即國標漢字庫中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個像素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在256像素范圍內的任何圖形。LED點陣漢字顯示程序:MAIN:MOVP1,R2MOVA,R3MOVCA,@A+DPTRMOVP2,AINCR3MOVA,R3MOVCA,@A+DPTRMOVP0,AINCR3MOVP3,R4LCALLDELAY1MSINCR2CJNER2,#16,MAINMOVR2,#0INCR4CJNER4,#3,MAINMOVR3,#0MOVR4,#0LJMPMAIN

6系統(tǒng)功能測試6.1單元模塊電路測試在proteus仿真軟件中運行測試AT89C51、74LS373、74LS138、74HC154等芯片和LED顯示器均能正常運行并完整的顯示出了我所要的效果。所以各個模塊功能正常。6.2系統(tǒng)整體功能測試在仿真軟件proteus中運行測試系統(tǒng)整體功能,一切正常。實現(xiàn)了漢字的左移滾動顯示,完整的顯示出了“陜西理工學院”浮動漢字。圖6.1單片機漢字顯示系統(tǒng)測試圖

總結在本設計中我用簡短的匯編程序在LED顯示屏實現(xiàn)了漢字的左移滾動顯示。在設計中采用的芯片有AT89C51、74LS373、74LS138、74HC154和4個16×16LED點陣顯示器。其特點:1.內容能從右向左浮動顯示。2.硬件結構簡單,應用廣泛。3.LED數(shù)碼管動態(tài)掃描顯示,工作效率高,價格低廉等。通過本次(64×16位點陣LED)的設計,理論知識學習和實際設計的結合鍛煉了我的綜合運用所學的專業(yè)基礎知識解決實際工程問題的能力,同時也提高我查閱文獻資料、設計手冊、設計規(guī)范以及電腦制圖等其他專業(yè)能力水平,而且通過對整體的掌控,對局部的取舍,以及對細節(jié)的斟酌處理,都使我的能力得到了鍛煉,經(jīng)驗得到了豐富。為后繼的學習和工作奠定的基礎。附錄附錄:源程序代碼ORG0000H;初始化AJMPSTARTORG000BHLJMPTIME0ORG0030HSTART:MOVR1,#00HMOVR2,#00HMOVR3,#00HMOVR4,#00HMOVR5,#00HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HMOVIE,#82HSETBTR0MOVDPTR,#TAB;================MAIN:MOVP1,R2;單片機輸出MOVA,R3MOVCA,@A+DPTRMOVP2,AINCR3MOVA,R3MOVCA,@A+DPTRMOVP0,AINCR3MOVP3,R4LCALLDELAY1MSINCR2CJNER2,#16,MAINMOVR2,#0INCR4CJNER4,#4,MAINMOVR3,#0MOVR4,#0LJMPMAIN;===============TIME0:INCR5;移動顯示CJNER5,#3,NEXTMOVR5,#0INCDPTRINCDPTRINCR1CJNER1,#144,NEXTMOVR1,#0MOVDPTR,#TABNEXT:MOVTH0,#3CHMOVTL0,#0B0HRETI;================DELAY1MS:MOVR7,#2;延時DEL:MOVR6,#250DJNZR6,$DJNZR7,DELRET;================TAB:;DB000H,000H,01FH,0FCH,010H,000H,025H,000H,03BH,004H,000H,048H,00AH,050H,009H,060H;陜;DB07FH,0C0H,010H,0A0H,012H,090H,014H,088H,000H,08CH,000H,004H,000H,004H,000H,000HDB00H,00H,7FH,0FFH,44H,20H,5AH,10H,61H,0E1H,10H,82H,14H,84H,12H,88HDB10H,0B0H,0FFH,0C0H,10H,0B0H,12H,88H,34H,86H,11H,83H,00H,82H,00H,00HDB000H,000H,003H,000H,002H,0F8H,022H,010H,022H,050H,03FH,090H,022H,010H,022H,010HDB07FH,090H,044H,090H,044H,090H,004H,00CH,004H,030H,007H,0C0H,000H,000H,000H,000HDB000H,010H,011H,010H,011H,020H,01FH,0E0H,022H,048H,000H,048H,038H,008H,027H,048HDB025H,048H,03FH,0F0H,04AH,090H,042H,090H,07EH,010H,000H,010H,000H,000H,000H,000HDB000H,000H,000H,010H,000H,010H,000H,010H,008H,010H,008H,010H,008H,010H,00FH,0E0HDB010H,020H,010H,020H,010H,020H,000H,020H,000H,020H,000H,020H,000H,000H,000H,

溫馨提示

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

評論

0/150

提交評論