【摘要】LED顯示作為一種重要的數(shù)字化顯示方式,從起初的純數(shù)字顯示功能發(fā)展到目前的圖像、視頻等多種媒體顯示功能,給人們帶來了完美的視覺享受。本文在對(duì)單片機(jī)選型的基礎(chǔ)上,闡述了LED顯示的原理,并且針對(duì)LED點(diǎn)陣顯示屏,設(shè)計(jì)了以ATmega16單片機(jī)為核心的LED顯示控制系統(tǒng)。該系統(tǒng)主要的優(yōu)點(diǎn)是功耗小、成本低且工作速率快,非常適合室外多媒體和產(chǎn)業(yè)化的要求。
【關(guān)鍵詞】LED顯示;ATmega16;單片機(jī)
引言
隨著社會(huì)的發(fā)展,LED顯示戶外廣告是目前一種重要的廣告形式。LED顯示具有功耗低、壽命長、清晰度高的特點(diǎn),隨著廣告內(nèi)容的多樣化,對(duì)LED顯示的要求也越來越高。數(shù)碼管顯示是LED顯示的最基本功能,但是其只能通過各個(gè)段位來實(shí)現(xiàn)10位數(shù)字和少量字母的顯示,一般適用于純數(shù)字顯示領(lǐng)域。LED顯示屏是由多個(gè)發(fā)光二極管組成顯示屏幕,通過控制二極管的亮滅來對(duì)內(nèi)容進(jìn)行顯示,能夠?qū)崿F(xiàn)對(duì)圖形、文字、視頻等多種信息的顯示。
一、單片機(jī)的選擇
單片機(jī)又被稱作單片微控制器,它是系統(tǒng)控制和設(shè)計(jì)的核心。單片機(jī)的選擇非常重要,選擇合適的單片機(jī)不僅能夠提高所設(shè)計(jì)系統(tǒng)的性能、簡(jiǎn)化外圍電路和程序的設(shè)計(jì),而且能夠降低設(shè)計(jì)的成本,使所設(shè)計(jì)的系統(tǒng)更具有實(shí)際意義。本文采用功耗低、I/O口資源豐富、價(jià)格便宜的AVR系列單片機(jī)中的ATmega16作為顯示系統(tǒng)控制的核心。針對(duì)LED顯示系統(tǒng)的特點(diǎn),本文選擇ATmega16單片機(jī)的原因主要有:
(1)性能高,功耗低。ATmega16的高速數(shù)據(jù)吞吐率很好的解決了功耗和處理速度之間的矛盾,對(duì)于太陽能光伏系統(tǒng)來說,因?yàn)楫a(chǎn)生的電能非常寶貴,因此功耗小的控制器能為系統(tǒng)節(jié)省更多的能源。
(2)I/O口資源豐富,且功能多樣。ATmega16具有三十二個(gè)I/O口,在這些I/O口中,PA口具有10位精度的ADC,可對(duì)單端輸入電壓進(jìn)行采集。本系統(tǒng)需要對(duì)多路模擬信號(hào)進(jìn)行采集,利用ATmega16可以方便的進(jìn)行數(shù)據(jù)采集,不必再進(jìn)行另外的電路設(shè)計(jì),簡(jiǎn)化了電路。
(3)能夠通過對(duì)相關(guān)定時(shí)器的簡(jiǎn)便的設(shè)置實(shí)現(xiàn)PWM波信號(hào)的產(chǎn)生和調(diào)節(jié)。ATmega16有兩個(gè)8位和一個(gè)16位的定時(shí)計(jì)數(shù)器,可以通過簡(jiǎn)單的指令產(chǎn)生頻率、相位和占空比可調(diào)的PWM信號(hào),且具有多種PWM信號(hào)模式,能夠滿足不同的需求。
(4)與Protues硬件仿真軟件具有很好的兼容性。通過Code Vision AVR編譯的應(yīng)用在Protues中的程序,能夠通過編譯器直接下載的單片機(jī)中使用,方便了系統(tǒng)的調(diào)試。
二、LED顯示原理
LED數(shù)碼管和點(diǎn)陣顯示屏顯示的基本原理都是通過控制發(fā)光二極管的亮滅,來形成不同的字形或者圖案。對(duì)于點(diǎn)陣顯示屏來說,因?yàn)槠洳噬@示的需要,有時(shí)候需要對(duì)發(fā)光二極管的顏色進(jìn)行控制。點(diǎn)陣顯示屏的發(fā)光二極管數(shù)量較多,因此顯示原理也比較復(fù)雜,如圖1所示是共陽極LED顯示屏的內(nèi)部結(jié)構(gòu)圖。點(diǎn)陣顯示屏一般具有多個(gè)LED發(fā)光二極管,不能直接通過單片機(jī)的I/O口來控制其亮滅,一般都采用動(dòng)態(tài)掃描的方法,對(duì)點(diǎn)陣進(jìn)行逐行或者逐列的控制。對(duì)于共陽型的點(diǎn)陣來說,根據(jù)要顯示的字形,設(shè)置每一行和每一列的數(shù)據(jù),從第一行第一列開始,先對(duì)應(yīng)第一行二極管的亮滅送出列數(shù)據(jù)并鎖存,然后選通第一行,送行數(shù)據(jù),延遲一段時(shí)間后送行數(shù)據(jù)00H;然后選通第二行,采取相同的方法來控制二極管亮滅,直至8行掃描結(jié)束,然后重復(fù)掃描。因?yàn)閽呙璧乃俣确浅??,由于人眼的余輝效應(yīng),就可以再顯示屏上看到穩(wěn)定顯示的字形。
三、系統(tǒng)硬件電路設(shè)計(jì)
本系統(tǒng)采用ATmega16單片機(jī)作為顯示控制的核心,采用8×8點(diǎn)陣單色點(diǎn)陣顯示屏來進(jìn)行顯示,同時(shí)系統(tǒng)還包括行驅(qū)動(dòng)器、列驅(qū)動(dòng)器以及相關(guān)電源電路。系統(tǒng)的整體框圖如圖2所示。
1.ATmega16單片機(jī)最小系統(tǒng)設(shè)計(jì)
單獨(dú)的一個(gè)單片機(jī)是不能發(fā)揮其控制作用的,只有通過相關(guān)輔助電路的設(shè)計(jì),使其構(gòu)成一個(gè)最小系統(tǒng),才能發(fā)揮其強(qiáng)大的微控制器功能。
(1)晶振電路的設(shè)計(jì)
ATmega16單片機(jī)內(nèi)部具有RC振蕩電路,可實(shí)現(xiàn)四種振蕩頻率。但是內(nèi)置振蕩電路產(chǎn)生的振蕩信號(hào)不是很準(zhǔn)確,因此在某些對(duì)振蕩頻率要求比較高的情況下,例如定時(shí)器準(zhǔn)確定時(shí)等情況,一般都采用外部振蕩電路為單片機(jī)提供振蕩頻率。一般在外部晶振電路設(shè)計(jì)中,都要求接22pF左右的電容。其電路圖如圖3所示。
(2)復(fù)位電路設(shè)計(jì)
對(duì)于ATmega16單片機(jī)來說,其內(nèi)部已經(jīng)設(shè)置了上電復(fù)位,通過對(duì)相應(yīng)熔絲位的控制,可以實(shí)現(xiàn)對(duì)復(fù)位時(shí)間長短的控制,因此單片機(jī)外部的復(fù)位電路設(shè)計(jì)就簡(jiǎn)化了許多,具體做法是在外部接一個(gè)上拉電阻R0到VCC,本文選擇10K的上拉電阻。
本文設(shè)計(jì)的復(fù)位電路圖如圖4,在設(shè)計(jì)的過程中,為了增加電路的可靠性,一般會(huì)增加一個(gè)濾波電容來實(shí)現(xiàn)消除雜波和干擾的功能,本文采用增加一個(gè)0.1uF的電容。電路中的二極管D3(1N4148)的主要有兩個(gè)主要功能:功能一是當(dāng)系統(tǒng)突然斷電后,將上拉電阻短路,同時(shí)使濾波電容C0實(shí)現(xiàn)快速放電,當(dāng)系統(tǒng)再次通電時(shí),保證復(fù)位的有效性;功能二是系統(tǒng)在復(fù)位時(shí)將其輸入電壓限制在VCC±0.5V之間。本課題采用按鍵方式進(jìn)行復(fù)位,當(dāng)單片機(jī)正常工作時(shí),按下復(fù)位開關(guān),由于電路的設(shè)計(jì)復(fù)位腳輸入相應(yīng)的低電平信號(hào),對(duì)系統(tǒng)進(jìn)行復(fù)位。
(3)電源電路設(shè)計(jì)
AVR單片機(jī)最常用的是5V與3.3V兩種電壓。本線路以開關(guān)切換兩種電壓,并且以雙色二極管指示(5V時(shí)為綠燈,3.3V時(shí)為紅燈)。二極管D1防止用戶插錯(cuò)電源極性。D2可以允許用戶將電壓倒灌入此電路內(nèi),不會(huì)損壞1117-ADJ,系統(tǒng)電源電路如圖5所示。
1117-ADJ的特性為1腳會(huì)有50uA的電流輸出,1-2腳會(huì)有1.25V電壓。利用這個(gè)特點(diǎn),可以計(jì)算出要求得出輸出電壓:
當(dāng)SW開關(guān)打向左邊時(shí),R6上的電流為1.25/0.33=3.78ma。R8上的電流為1117-ADJ1腳電流加上R6上的電流,即0.05+3.78=3.83ma。可以計(jì)算得R8上的電壓為3.84V。于是得出VCC=1.25+3.83=5.08V。誤差在2%以內(nèi)。
當(dāng)SW開關(guān)打向右邊時(shí),R6上的電流為1.25/0.62=2.02ma。R8上的電流為1117-ADJ1腳電流加上R6上的電流,即0.05+2.02=2.07ma。可以計(jì)算得R8上的電壓為2.07V。于是得出VCC=1.25+2.07=3.32V。誤差在1%以內(nèi)。
使用1%精度的電阻,可以控制整個(gè)輸出電壓誤差在3%以內(nèi)。
2.LED顯示硬件設(shè)計(jì)
本系統(tǒng)采用單色的共陽型8×8點(diǎn)陣顯示模塊,一共有16個(gè)引腳,通過74HC138譯碼器對(duì)LED顯示模塊的進(jìn)行控制,使其采用共陽極掃描。在74HC138芯片和LED顯示模塊之間接入8個(gè)PNP三極管來達(dá)到擴(kuò)流的目的。在設(shè)計(jì)的過程中通過S8550的放大,增強(qiáng)了輸出電流的驅(qū)動(dòng)能力,使LED的亮度得到了提高,電路設(shè)計(jì)圖如圖6所示。
本設(shè)計(jì)列驅(qū)動(dòng)由74HC595來實(shí)現(xiàn)。每個(gè)74HC595能驅(qū)動(dòng)8列,所以控制64列的LED點(diǎn)陣需要8個(gè)595。8個(gè)74HC595通過級(jí)聯(lián)方式來對(duì)列進(jìn)行驅(qū)動(dòng)。74HC595是串入并出的移位寄存器,單片機(jī)采用串口傳輸數(shù)據(jù),由RXD 輸出數(shù)據(jù)到SER,由TXD 輸出同步數(shù)據(jù)移位脈沖到SRCK,由單片機(jī)的PA7口輸出74HC595的數(shù)據(jù)鎖存信號(hào)。只有當(dāng)鎖存信號(hào)有效,即鎖存信號(hào)的時(shí)鐘上升沿到來時(shí),595才輸出列控制的數(shù)據(jù)。由于發(fā)送的是8位數(shù)據(jù),則可以利用單片機(jī)的串口進(jìn)行數(shù)據(jù)發(fā)送。讓串口工作在方式0,在方式0下,8位數(shù)據(jù)通過RXD輸出,低位在前高位在后。同時(shí)在RXD輸出數(shù)據(jù)時(shí),TXD輸出同步的移位時(shí)鐘脈沖。
列信號(hào)是由74HC595產(chǎn)生的,數(shù)據(jù)由單片機(jī)的串口產(chǎn)生,從74HC595的串行數(shù)據(jù)輸入端SER輸入,由QA~QH并行輸出。需要注意的是,74HC595的數(shù)據(jù)是從低位向高位移位的,而單片機(jī)串口發(fā)送數(shù)據(jù)是先發(fā)低位,再發(fā)高位。所以要注意數(shù)據(jù)的對(duì)應(yīng),使74HC595輸出的數(shù)據(jù)與相應(yīng)的列對(duì)應(yīng)正確,這樣方便軟件的調(diào)試。
四、系統(tǒng)軟件部分設(shè)計(jì)
本系統(tǒng)主要是通過單片機(jī)的控制,來實(shí)現(xiàn)LED點(diǎn)陣顯示屏的顯示。采用共陽極逐行動(dòng)態(tài)掃描的方法,行控制信號(hào)由74HC138為主的驅(qū)動(dòng)電路產(chǎn)生,列驅(qū)動(dòng)信號(hào)由74HC595通過級(jí)聯(lián)方式來對(duì)列進(jìn)行驅(qū)動(dòng)。
系統(tǒng)軟件設(shè)計(jì)的主要目的是點(diǎn)陣顯示屏能夠根據(jù)需要,通過產(chǎn)生相應(yīng)的控制信號(hào)來使屏幕按照設(shè)計(jì)的要求進(jìn)行顯示。顯示驅(qū)動(dòng)程序負(fù)責(zé)向點(diǎn)陣屏傳送特定組合的顯示數(shù)據(jù),并負(fù)責(zé)產(chǎn)生行掃描信號(hào)和其它控制信號(hào),配合完成LED顯示屏的掃描顯示工作。顯示驅(qū)動(dòng)程序由顯示子程序?qū)崿F(xiàn);系統(tǒng)環(huán)境設(shè)置(初始化)由系統(tǒng)初始化程序完成;顯示效果處理等工作,則由主程序通過調(diào)用子程序來實(shí)現(xiàn)。
然后顯示驅(qū)動(dòng)程序查詢當(dāng)前燃亮的行號(hào),從顯示緩存區(qū)內(nèi)讀取下一行的顯示數(shù)據(jù),并通過串口發(fā)送給移位寄存器。為消除在切換行顯示數(shù)據(jù)的時(shí)候產(chǎn)生拖尾現(xiàn)象,驅(qū)動(dòng)程序先要關(guān)閉顯示屏,即消隱,等數(shù)據(jù)發(fā)送完畢后輸出74HC595的鎖存信號(hào),將顯示數(shù)據(jù)打入輸出鎖存器并鎖存,然后再輸出新的行號(hào),并打開顯示。如圖7所示為顯示驅(qū)動(dòng)程序流程圖。
五、結(jié)語
通過設(shè)計(jì)系統(tǒng)能夠根據(jù)用戶的需求,通過單片機(jī)的控制在8×8點(diǎn)陣顯示屏上顯示文字、圖形、數(shù)字等信息,且系統(tǒng)單片機(jī)采用功耗低的AVR單片機(jī),不僅提高了系統(tǒng)整體運(yùn)行速率,而且非常適合對(duì)功耗要求高的室外顯示系統(tǒng)使用。
參考文獻(xiàn)
[1]張明波.基于單片機(jī)的點(diǎn)陣LED顯示系統(tǒng)的設(shè)計(jì)[J].單片機(jī)開發(fā)與應(yīng)用,2007(02):85-86.
[2]景向偉,李娣娜,邵思飛.基于單片機(jī)的LED點(diǎn)陣顯示系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2011,3420):153-155.
作者簡(jiǎn)介:李威(1975—),男,廣東中山人,中山市技師學(xué)院電氣應(yīng)用系講師,研究方向:電子技術(shù)。