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