本文基于單片機(jī)(AT89C51)講述了16×16 LED漢字點陣顯示的基本原理、硬件組成與設(shè)計、程序編譯與下載等基本環(huán)節(jié)和相關(guān)技術(shù)。
2 硬件電路組成及工作原理
本產(chǎn)品擬采用以AT89C51單片機(jī)為核心芯片的電路來實現(xiàn),主要由AT89C51芯片、時鐘電路、復(fù)位電路、列掃描驅(qū)動電路(74HC154)、16×16 LED點陣5部分組成,如圖1所示。
其中,AT89C51是一種帶4 kB閃爍可編程可擦除只讀存儲器(Falsh Programmable and Erasable Read OnlyMemory,F(xiàn)PEROM)的低電壓、高性能CMOS型8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,能夠進(jìn)行1 000次寫/擦循環(huán),數(shù)據(jù)保留時間為10年。他是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。因此,在智能化電子設(shè)計與制作過程中經(jīng)常用到AT89C51芯片。
時鐘電路由AT89C51的18,19腳的時鐘端(XTALl及XTAL2)以及12 MHz晶振X1、電容C2,C3組成,采用片內(nèi)振蕩方式。
復(fù)位電路采用簡易的上電復(fù)位電路,主要由電阻R1,R2,電容C1,開關(guān)K1組成,分別接至AT89C51的RST復(fù)位輸入端。
LED點陣顯示屏采用16×16共256個象素的點陣,通過萬用表檢測發(fā)光二極管的方法測試判斷出該點陣的引腳分布,如圖2所示。
我們把行列總線接在單片機(jī)的IO口,然后把上面分析到的掃描代碼送人總線,就可以得到顯示的漢字了。但是若將LED點陣的行列端口全部直接接入89S51單片機(jī),則需要使用32條IO口,這樣會造成IO資源的耗盡,系統(tǒng)也再無擴(kuò)充的余地。因此,我們在實際應(yīng)用中只是將LED點陣的16條行線直接接在P0口和P2口,至于列選掃描信號則是由4-16線譯碼器74HC154來選擇控制,這樣一來列選控制只使用了單片機(jī)的4個IO口,節(jié)約了很多IO資源,為單片機(jī)系統(tǒng)擴(kuò)充使用功能提供了條件??紤]到P0口必需設(shè)置上拉電阻,我們采用4.7 kΩ排電阻作為上拉電阻。
漢字掃描顯示的基本過程是這樣的:通電后由于電阻R1,電容C1的作用,使單片機(jī)的RST復(fù)位腳電平先高后低,從而達(dá)到復(fù)位;之后,在C2,C3,X1以及單片機(jī)內(nèi)部時鐘電路的作用下,單片機(jī)89C51按照設(shè)定的程序在P0和P2接口輸出與內(nèi)部漢字對應(yīng)的代碼電平送至LED點陣的行選線(高電平驅(qū)動),同時在P1.1,P1.2,P1.3,P1.4接口輸出列選掃描信號(低電平驅(qū)動),從而選中相應(yīng)的象素LCD發(fā)光,并利用人眼的視覺暫留特性合成整個漢字的顯示。
3 漢字的點陣顯示原理及字庫代碼獲取方法
我們以UCDOS中文宋體字庫為例,每一個字由16行16列的點陣組成顯示。即國標(biāo)漢字庫中的每一個字均由256點陣來表示。我們可以把每一個點理解為一個象素,而把每一個字的字形理解為一幅圖像。事實上這個漢字屏不僅可以顯示漢字,也可以顯示在256象素范圍內(nèi)的任何圖形。如查用8位的AT89C51單片機(jī)控制,由于單片機(jī)的總線為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滅。即二進(jìn)制00000100,轉(zhuǎn)換為十六進(jìn)制為04h。上半部第一列完成后,繼續(xù)掃描下半部的第一列,為了接線的方便,我們?nèi)栽O(shè)計成由上往下掃描,即從P27向P20方向掃描,從圖3可以看到,這一列全部為不亮,即為00000000,十六進(jìn)制則為00h。依照這個方法轉(zhuǎn)向第二列、第三列,…,直至第十六列的掃描,一共掃描32個8位,可以得出漢字“大”的掃描代碼為:
由這個原理可以看出,無論顯示何種字體或圖像,都可以用這個方法來分析出他的掃描代碼從而顯示在屏幕上。
上述方法雖然能夠讓我們弄清楚漢字點陣代碼的獲取過程,但是依靠人工方法獲取漢字代碼是一件非常繁瑣的事情。為此,我們經(jīng)常采用字庫軟件查找字符代碼,軟件打開后輸入漢字,點“檢取”,十六進(jìn)制數(shù)據(jù)的漢字代碼即可自動生成,把我們所需要的豎排數(shù)據(jù)復(fù)制到程序中即可,如圖4所示。
可見,漢字點陣顯示一般有點掃描、行掃描和列掃描3種。為了符合視覺暫留要求,點掃描方法的掃描頻率必須大于16×64=1 024 Hz,周期小于1 ms即可。行掃描和列掃描方法的掃描頻率必須大于16×8=128 Hz,周期小于7.8 ms即可,但是一次驅(qū)動一列或一行(8顆LED)時需外加驅(qū)動電路提高電流,否則LED亮度會不足。
4 元器件選擇
本設(shè)計所需元器件如表1所示。
5 PCB設(shè)計與元件裝配
本作品采用通用的Protel 99SE板級EDA軟件完成PCB圖的設(shè)計,詳細(xì)設(shè)計過程略??紤]到本設(shè)計用到的元件數(shù)量不多,我們基本采用單面布線策略,只使用了少量的頂層跨接導(dǎo)線,以便于業(yè)余設(shè)計制作。已設(shè)計好的PCB圖見圖5所示。
本電路對元件參數(shù)沒有苛刻要求,只要元器件選擇正確,無損壞,電路板制作工藝良好,把所有電子元件正確焊接裝配后即可進(jìn)入程序下載和調(diào)試工作階段。制作與調(diào)試時,在AT89C2051的位置應(yīng)安裝20腳的IC座,以便使單片機(jī)可以從電路板中拿下去燒寫程序。
6 程序設(shè)計、燒錄與調(diào)試
軟件程序主要由開始、初始化、主程序、字庫組成。其中主程序和子程序的流程圖如圖6和圖7所示。
下面的程序能夠用來實現(xiàn)“為中華之崛起而學(xué)習(xí)”等漢字的顯示。程序清單如下:
在完成編寫程序的編譯和仿真之后,準(zhǔn)備一臺可以燒寫AT89C51的編程器并與電腦主機(jī)硬件連接后即可對AT89C51芯片進(jìn)行程序燒錄下載,然后,將燒錄好程序的AT89C51單片機(jī)裝入到40腳的IC座上,通電即可調(diào)試和運行,由于本例電路對元件參數(shù)的要求不是很高,只要元件較好,參數(shù)基本符合要求,焊接裝配后即可正常工作。
7 結(jié) 語
雖然本設(shè)計只使用了一塊16×16 LED點陣,電路簡單,但是已經(jīng)包涵了LED顯示屏的電路基本原理和基本程序,只要擴(kuò)展單片機(jī)的IO接口,并增加一些LED點陣和相關(guān)芯片,就能設(shè)計出更大面積、更多花樣的LED顯示屏。因此本文對同類設(shè)計具有一定的理論和實踐參考價值。
香港2022年10月18日 /美通社/ -- 淘屏有限公司(納斯達(dá)克:TAOP,簡稱"淘屏"或"公司"),今日宣布與江蘇蘇立信文化創(chuàng)意...
關(guān)鍵字: 數(shù)字多媒體 大屏 LCD LED實際上函數(shù)指針本質(zhì)也是一個指針,只不過這個指針指向的不是內(nèi)存中的一段數(shù)據(jù)而是內(nèi)存中的一段代碼
關(guān)鍵字: 指針 數(shù)據(jù) 代碼魁北克市, Sept. 27, 2022 (GLOBE NEWSWIRE) -- 提供最靈活、最強(qiáng)大和最準(zhǔn)確ADAS和AD傳感技術(shù)的全球領(lǐng)先企業(yè)LeddarTech?欣然宣布,其獲《環(huán)球郵報》評選為2022年加拿大增長最...
關(guān)鍵字: LED ADAS AD傳感技術(shù)