1 引 言
在大型商場,、車站、碼頭,、地鐵站以及各類辦事窗口等越來越多的場所需要用LED點陣顯示圖形和漢字,。LED行業(yè)已成為一個快速發(fā)展的新興產業(yè),市場空間巨大,,前景廣闊,。隨著信息產業(yè)的高速發(fā)展,LED顯示作為信息傳播的一種重要手段,,已廣泛應用于室內外需要進行服務內容和服務宗旨宣傳的公眾場所,,例如戶內外公共場所廣告宣傳,、機場車站旅客引導信息,、公交車輛報站系統(tǒng),、證券與銀行信息顯示,、餐館報價信息豆示,、高速公路可變情報板,、體育場館比賽轉播、樓宇燈飾,、交通信號燈,、景觀照明等。顯然,,LED顯示已成為城市亮化、現(xiàn)代化和信息化社會的一個重要標志。
2 硬件電路組成及工作原理
本產品擬采用以AT89C51單片機為核心芯片的電路來實現(xiàn),,主要由AT89C51芯片、時鐘電路,、復位電路、列掃描驅動電路(74HC154)、16×16 LED點陣5部分組成,,如圖1所示,。
其中,AT89C51是一種帶4 kB閃爍可編程可擦除只讀存儲器(Falsh Programmable and Erasable Read OnlyMemory,,F(xiàn)PEROM)的低電壓,、高性能CMOS型8位微處理器,,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容,。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,,能夠進行1 000次寫/擦循環(huán),數(shù)據(jù)保留時間為10年,。他是一種高效微控制器,,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。因此,,在智能化電子設計與制作過程中經常用到AT89C51芯片,。
時鐘電路由AT89C51的18,,19腳的時鐘端(XTALl及XTAL2)以及12 MHz晶振X1、電容C2,,C3組成,,采用片內振蕩方式。
復位電路采用簡易的上電復位電路,,主要由電阻R1,,R2,電容C1,,開關K1組成,,分別接至AT89C51的RST復位輸入端。
LED點陣顯示屏采用16×16共256個象素的點陣,,通過萬用表檢測發(fā)光二極管的方法測試判斷出該點陣的引腳分布,,如圖2所示。
我們把行列總線接在單片機的IO口,,然后把上面分析到的掃描代碼送人總線,,就可以得到顯示的漢字了。但是若將LED點陣的行列端口全部直接接入89S51單片機,,則需要使用32條IO口,,這樣會造成IO資源的耗盡,系統(tǒng)也再無擴充的余地,。因此,,我們在實際應用中只是將LED點陣的16條行線直接接在P0口和P2口,至于列選掃描信號則是由4-16線譯碼器74HC154來選擇控制,,這樣一來列選控制只使用了單片機的4個IO口,,節(jié)約了很多IO資源,為單片機系統(tǒng)擴充使用功能提供了條件,??紤]到P0口必需設置上拉電阻,我們采用4.7 kΩ排電阻作為上拉電阻,。
漢字掃描顯示的基本過程是這樣的:通電后由于電阻R1,,電容C1的作用,使單片機的RST復位腳電平先高后低,,從而達到復位;之后,,在C2,,C3,X1以及單片機內部時鐘電路的作用下,,單片機89C51按照設定的程序在P0和P2接口輸出與內部漢字對應的代碼電平送至LED點陣的行選線(高電平驅動),,同時在P1.1,,P1.2,P1.3,,P1.4接口輸出列選掃描信號(低電平驅動),,從而選中相應的象素LCD發(fā)光,并利用人眼的視覺暫留特性合成整個漢字的顯示,。
3 漢字的點陣顯示原理及字庫代碼獲取方法
我們以UCDOS中文宋體字庫為例,,每一個字由16行16列的點陣組成顯示。即國標漢字庫中的每一個字均由256點陣來表示,。我們可以把每一個點理解為一個象素,,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,,也可以顯示在256象素范圍內的任何圖形,。如查用8位的AT89C51單片機控制,由于單片機的總線為8位,,一個字需要拆分為2個部分,,如圖3所示。
為了弄清楚漢字的點陣組成規(guī)律,,首先通過列掃描方法獲取漢字的代碼,。漢字可拆分為上部和下部,上部由8×16點陣組成,,下部也由8×16點陣組成,。本例通過列掃描方法首先顯示左上角的第一列的上半部分,即第0列的P00~P07口,,方向為P00到P07,,顯示漢字“大”時,P05點亮,,由上往下排列,,為:P0.0滅,P0.1滅,,P0.2滅P0.3滅,,P0.4滅,P0.5亮,,P0.6滅,,P0.7滅。即二進制00000100,,轉換為十六進制為04h,。上半部第一列完成后,繼續(xù)掃描下半部的第一列,,為了接線的方便,,我們仍設計成由上往下掃描,,即從P27向P20方向掃描,從圖3可以看到,,這一列全部為不亮,,即為00000000,十六進制則為00h,。依照這個方法轉向第二列,、第三列,…,,直至第十六列的掃描,,一共掃描32個8位,可以得出漢字“大”的掃描代碼為:
由這個原理可以看出,,無論顯示何種字體或圖像,,都可以用這個方法來分析出他的掃描代碼從而顯示在屏幕上。
上述方法雖然能夠讓我們弄清楚漢字點陣代碼的獲取過程,,但是依靠人工方法獲取漢字代碼是一件非常繁瑣的事情,。為此,我們經常采用字庫軟件查找字符代碼,,軟件打開后輸入漢字,,點“檢取”,十六進制數(shù)據(jù)的漢字代碼即可自動生成,,把我們所需要的豎排數(shù)據(jù)復制到程序中即可,,如圖4所示。
可見,,漢字點陣顯示一般有點掃描,、行掃描和列掃描3種。為了符合視覺暫留要求,,點掃描方法的掃描頻率必須大于16×64=1 024 Hz,,周期小于1 ms即可。行掃描和列掃描方法的掃描頻率必須大于16×8=128 Hz,,周期小于7.8 ms即可,,但是一次驅動一列或一行(8顆LED)時需外加驅動電路提高電流,否則LED亮度會不足,。
4 元器件選擇
本設計所需元器件如表1所示,。
5 PCB設計與元件裝配
本作品采用通用的Protel 99SE板級EDA軟件完成PCB圖的設計,詳細設計過程略,??紤]到本設計用到的元件數(shù)量不多,我們基本采用單面布線策略,只使用了少量的頂層跨接導線,,以便于業(yè)余設計制作。已設計好的PCB圖見圖5所示,。
本電路對元件參數(shù)沒有苛刻要求,,只要元器件選擇正確,無損壞,,電路板制作工藝良好,,把所有電子元件正確焊接裝配后即可進入程序下載和調試工作階段。制作與調試時,,在AT89C2051的位置應安裝20腳的IC座,,以便使單片機可以從電路板中拿下去燒寫程序。
6 程序設計,、燒錄與調試
軟件程序主要由開始,、初始化、主程序,、字庫組成,。其中主程序和子程序的流程圖如圖6和圖7所示。
下面的程序能夠用來實現(xiàn)“為中華之崛起而學習”等漢字的顯示,。程序清單如下:
在完成編寫程序的編譯和仿真之后,,準備一臺可以燒寫AT89C51的編程器并與電腦主機硬件連接后即可對AT89C51芯片進行程序燒錄下載,然后,,將燒錄好程序的AT89C51單片機裝入到40腳的IC座上,,通電即可調試和運行,由于本例電路對元件參數(shù)的要求不是很高,,只要元件較好,,參數(shù)基本符合要求,焊接裝配后即可正常工作,。
7 結 語
雖然本設計只使用了一塊16×16 LED點陣,,電路簡單,但是已經包涵了LED顯示屏的電路基本原理和基本程序,,只要擴展單片機的IO接口,,并增加一些LED點陣和相關芯片,就能設計出更大面積,、更多花樣的LED顯示屏,。因此本文對同類設計具有一定的理論和實踐參考價值。
參考文獻:[1]. AT89C51 datasheet http://www.dzsc.com/datasheet/AT89C51_810155.html [2]. MCS-51 datasheet http://www.dzsc.com/datasheet/MCS-51_477840.html [3]. 89S51 datasheet http://www.dzsc.com/datasheet/89S51_1135673.html [4]. 74HC154 datasheet http://www.dzsc.com/datasheet/74HC154_99218.html [5]. Protel99SE datasheet http://www.dzsc.com/datasheet/Protel99SE_1136674.html [6]. AT89C2051 datasheet http://www.dzsc.com/datasheet/AT89C2051_810086.html
|