基于A(yíng)VR的LED顯示屏的灰度設計與實(shí)現
LED點(diǎn)陣塊具有亮度高、發(fā)光均勻、可靠性好、拼裝方便等優(yōu)點(diǎn),能構成各種尺寸的顯示屏。目前,LED顯示屏已被廣泛應用于文字顯示并取得了很好的效果,但是大部分僅能顯示滾動(dòng)的文字信息而不能顯示圖像,并且還存在系統復雜等缺點(diǎn)。本文提出了一種主從式單片機的LED顯示屏解決方案,該設計方案利用AVR單片機自身的FLASH ROM和RAM,外部無(wú)需任何存儲電路,電路結構簡(jiǎn)單。該系統實(shí)現了圖像的16階灰度顯示,可廣泛用于商場(chǎng)、車(chē)站等公共場(chǎng)合。
1 AVR單片機簡(jiǎn)介
AVR單片機是增強型內置FLASH的RISC(ReducedInstruction Set CPU)精簡(jiǎn)指令集高速8位單片機,硬件采用哈佛(Harward)結構,達到一個(gè)時(shí)鐘周期可以執行一條指令,絕大部分指令都為單周期指令。支持在系統編程ISP,其中MEGA系列還支持在應用編程IAP。內置的FLASH程序存儲器可擦寫(xiě)1 000次以上,給用戶(hù)的開(kāi)發(fā)生產(chǎn)和維護帶來(lái)方便??刹翆?xiě)10萬(wàn)次的E2PROM,為掉電后數據的保存帶來(lái)方便。AVR單片機有豐富的片內資源,如RTC,WATCHDOG,AD轉換器,PWM,USART,SPI,TWI接口等,I/O口功能強、驅動(dòng)能力強。
2 系統整體設計方案
LED顯示系統主要由3部分構成:PC上位機圖像文字轉換與數據發(fā)送單元、主控單元以及顯示子模塊。
上位機完成把圖像和文字轉換成為顯示屏的顯示碼,并且把顯示信息發(fā)送到主控單元上。主控單元選用具有32 kB片內FLASH ROM和2 kB片內RAM的AT-mega32單片機,沒(méi)有外掛存儲器。如果要存儲更多的顯示信息,可以選用具有64 kB片內FLASH ROM的AT-mega64或者具有128 kB片內FLASH ROM的AT-megal28,也可以外掛存儲器來(lái)增大存儲能力。主控單元主要完成對顯示數據的滾動(dòng)和分割處理,然后通過(guò)異步串行口發(fā)送到每個(gè)子模塊中。每個(gè)顯示子模塊用4片8×8單色點(diǎn)陣塊拼成1個(gè)16×16的點(diǎn)陣屏,用一片ATmega8完成掃描動(dòng)態(tài)顯示。
主控單元與顯示子模塊的數據通信采用標準的異步串口格式,每幀數據包括1個(gè)起始位,8個(gè)數據位,1個(gè)地址/數據標示位,1個(gè)停止位共11位。數據傳輸碼率為625 kb/s,字節傳輸速率為56.8 kB/s。每個(gè)子模塊由256個(gè)LED構成,實(shí)現16階灰度每個(gè)LED需要4 b空間,因此每個(gè)顯示子模塊全屏數據量為128 B,外加1 B的尋址字節共129 B。主控單元更新顯示子模塊的顯示內容時(shí),對所有子模塊按地址逐個(gè)發(fā)送顯示數據,更新完所有子模塊數據后,再發(fā)送一個(gè)特殊的地址字0xFF作為控制字,使所有子模塊同時(shí)更新顯示數據,這樣可以避免當屏幕較大,顯示子模塊數量較多時(shí)各子模塊畫(huà)面更新不同步的問(wèn)題。對本設計中完成的6×4個(gè)顯示子模塊而言,由于通訊速率限制,畫(huà)面更新速度最高可達56 800/(129×24+1)=18.34幀/s,由于主控單元還要完成全屏數據的分割和顯示內容的移動(dòng)控制,所以其實(shí)際幀數低于上述值,不過(guò)用于普通的圖片顯示已經(jīng)可以達到要求。
現場(chǎng)應用中,可以不需要PC上位機,只需把要顯示的信息存儲在主控單元,即可通過(guò)主控單元中的按鍵來(lái)選擇顯示的內容及方式,可循環(huán)顯示,文字信息還可以上下左右滾屏顯示。
3 系統硬件設計
該系統由兩部分硬件電路組成:主機板電路和子模塊顯示驅動(dòng)電路。
3.1 主機板電路
主機板電路十分簡(jiǎn)潔,由ATmega32組成的最小系統和RS 232,RS 485接口電路組成。
主機板上的數據由異步串行口發(fā)送到各個(gè)子模塊中,為了在提高傳輸速度和距離的情況下仍能夠保證數據傳輸的可靠性,主機板上發(fā)出的信息轉換成為RS 485信號,采用帶屏蔽層的同軸電纜傳輸到LED子模塊上。轉換所用接口芯片為MAX485,該芯片工作于5 V電壓下,最高傳輸速度可達到2.5 Mb/s,傳輸距離可達l 200 m。采用帶屏蔽層的同軸電纜可以降低傳輸過(guò)程中產(chǎn)生的信號干擾。
在需要從PC上位機下載數據到FLASH ROM時(shí),通過(guò)MAX232芯片實(shí)現ATmega32和PC機的通信。
3.2 子模塊顯示驅動(dòng)電路
子模塊顯示驅動(dòng)電路由RS 485轉換電路、子模塊地址標識電路和點(diǎn)陣驅動(dòng)電路組成。RS 485轉換電路和主機板中一樣,同樣采用MAX485作電平轉換。
由于采用單片機的異步串行口進(jìn)行多機通信進(jìn)行數據傳輸,每個(gè)子模塊應該有和其位置相對應的地址標識。地址標識電路采用8位并進(jìn)串出芯片74HCl65和8位撥碼開(kāi)關(guān)組成,因此本系統最多可以容納255個(gè)子模塊(地址OxFF作為更新子模塊顯示的控制字)。如果簡(jiǎn)單地通過(guò)軟件內部的設定來(lái)決定各個(gè)子模塊的地址,每個(gè)AT-mega8所對應的程序會(huì )有差別,這樣會(huì )給程序的燒寫(xiě)帶來(lái)不便,因此采用外部硬件電路對子模塊的地址進(jìn)行標識。采用74HC165作串并行轉換是為了節省單片機的引腳資源。
LED點(diǎn)陣采用動(dòng)態(tài)掃描法進(jìn)行驅動(dòng),并且實(shí)現16階灰度顯示,為了節省單片機程序中掃描程序的時(shí)間消耗,提高掃描速度,顯示數據采用并行輸出的方法。驅動(dòng)電路采用4-16譯碼器74HC154譯碼后驅動(dòng)16個(gè)中功率三極管8550作為行選,2個(gè)8位數據鎖存器74LS373作為行數據鎖存。
評論