led點陣塊具有亮度高、發(fā)光均勻、可靠性好、拼裝方便等優(yōu)點,能構成各種尺寸的顯示屏。目前,led顯示屏已被廣泛應用于文字顯示并取得了很好的效果,但是大部分僅能顯示滾動的文字信息而不能顯示圖像,并且還存在系統(tǒng)復雜等缺點。本文提出了一種主從式單片機的LED顯示屏解決方案,該設計方案利用AVR單片機自身的FLASHROM和RAM,外部無需任何存儲電路,電路結構簡單。該系統(tǒng)實現(xiàn)了圖像的16階灰度顯示,可廣泛用于商場、車站等公共場合。
1 AVR單片機簡介
AVR單片機是增強型內置FLASH的RISC(ReducedInstructionSetCPU)精簡指令集高速8位單片機,硬件采用哈佛(Harward)結構,達到一個時鐘周期可以執(zhí)行一條指令,絕大部分指令都為單周期指令。支持在系統(tǒng)編程ISP,其中MEGA系列還支持在應用編程IAP。內置的FLASH程序存儲器可擦寫1000次以上,給用戶的開發(fā)生產(chǎn)和維護帶來方便??刹翆?0萬次的E2PROM,為掉電后數(shù)據(jù)的保存帶來方便。AVR單片機有豐富的片內資源,如RTC,WATCHDOG,AD轉換器,PWM,USART,SPI,TWI接口等,I/O口功能強、驅動能力強。
2 系統(tǒng)整體設計方案
LED顯示系統(tǒng)主要由3部分構成:PC上位機圖像文字轉換與數(shù)據(jù)發(fā)送單元、主控單元以及顯示子模塊。
上位機完成把圖像和文字轉換成為顯示屏的顯示碼,并且把顯示信息發(fā)送到主控單元上。主控單元選用具有32kB片內FLASHROM和2kB片內RAM的AT-mega32單片機,沒有外掛存儲器。如果要存儲更多的顯示信息,可以選用具有64kB片內FLASHROM的AT-mega64或者具有128kB片內FLASHROM的AT-megal28,也可以外掛存儲器來增大存儲能力。主控單元主要完成對顯示數(shù)據(jù)的滾動和分割處理,然后通過異步串行口發(fā)送到每個子模塊中。每個顯示子模塊用4片8×8單色點陣塊拼成1個16×16的點陣屏,用一片ATMEGA8完成掃描動態(tài)顯示。
主控單元與顯示子模塊的數(shù)據(jù)通信采用標準的異步串口格式,每幀數(shù)據(jù)包括1個起始位,8個數(shù)據(jù)位,1個地址/數(shù)據(jù)標示位,1個停止位共11位。數(shù)據(jù)傳輸碼率為625kb/s,字節(jié)傳輸速率為56.8kB/s。每個子模塊由256個LED構成,實現(xiàn)16階灰度每個LED需要4b空間,因此每個顯示子模塊全屏數(shù)據(jù)量為128B,外加1B的尋址字節(jié)共129B。主控單元更新顯示子模塊的顯示內容時,對所有子模塊按地址逐個發(fā)送顯示數(shù)據(jù),更新完所有子模塊數(shù)據(jù)后,再發(fā)送一個特殊的地址字0xFF作為控制字,使所有子模塊同時更新顯示數(shù)據(jù),這樣可以避免當屏幕較大,顯示子模塊數(shù)量較多時各子模塊畫面更新不同步的問題。對本設計中完成的6×4個顯示子模塊而言,由于通訊速率限制,畫面更新速度最高可達56800/(129×24+1)=18.34幀/s,由于主控單元還要完成全屏數(shù)據(jù)的分割和顯示內容的移動控制,所以其實際幀數(shù)低于上述值,不過用于普通的圖片顯示已經(jīng)可以達到要求。