銷售電話:18822807658
售后服務:0755-36958123
銷售傳真:0755-28159698
公司郵箱:weinixun@126.com
辦公地址:深圳市光明區(qū)光明街道白花社區(qū)第一工業(yè)區(qū)一號路洽豐工業(yè)園廠房A座三層
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ā)生產和維護帶來方便??刹翆?0萬次的E2PROM,為掉電后數(shù)據的保存帶來方便。AVR單片機有豐富的片內資源,如RTC,WATCHDOG,AD轉換器,PWM,USART,SPI,TWI接口等,I/O口功能強、驅動能力強。
2 系統(tǒng)整體設計方案
LED顯示系統(tǒng)主要由3部分構成:PC上位機圖像文字轉換與數(shù)據發(fā)送單元、主控單元以及顯示子模塊。
上位機完成把圖像和文字轉換成為顯示屏的顯示碼,并且把顯示信息發(fā)送到主控單元上。主控單元選用具有32kB片內FLASHROM和2kB 片內RAM的AT-mega32單片機,沒有外掛存儲器。如果要存儲更多的顯示信息,可以選用具有64kB片內FLASHROM的AT-mega64或者具有128kB片內FLASHROM的AT-megal28,也可以外掛存儲器來增大存儲能力。主控單元主要完成對顯示數(shù)據的滾動和分割處理,然后通過異步串行口發(fā)送到每個子模塊中。每個顯示子模塊用4片8×8單色點陣塊拼成1個16×16的點陣屏,用一片ATmega8完成掃描動態(tài)顯示。
主控單元與顯示子模塊的數(shù)據通信采用標準的異步串口格式,每幀數(shù)據包括1個起始位,8個數(shù)據位,1個地址/數(shù)據標示位,1個停止位共11 位。數(shù)據傳輸碼率為625kb/s,字節(jié)傳輸速率為56.8kB/s。每個子模塊由256個LED構成,實現(xiàn)16階灰度每個LED需要4b空間,因此每個顯示子模塊全屏數(shù)據量為128B,外加1B的尋址字節(jié)共129B。主控單元更新顯示子模塊的顯示內容時,對所有子模塊按地址逐個發(fā)送顯示數(shù)據,更新完所有子模塊數(shù)據后,再發(fā)送一個特殊的地址字0xFF作為控制字,使所有子模塊同時更新顯示數(shù)據,這樣可以避免當屏幕較大,顯示子模塊數(shù)量較多時各子模塊畫面更新不同步的問題。對本設計中完成的6×4個顯示子模塊而言,由于通訊速率限制,畫面更新速度高可達56800/(129×24+1)=18.34幀/s,由于主控單元還要完成全屏數(shù)據的分割和顯示內容的移動控制,所以其實際幀數(shù)低于上述值,不過用于普通的圖片顯示已經可以達到要求。
現(xiàn)場應用中,可以不需要PC上位機,只需把要顯示的信息存儲在主控單元,即可通過主控單元中的按鍵來選擇顯示的內容及方式,可循環(huán)顯示,文字信息還可以上下左右滾屏顯示。
3 系統(tǒng)硬件設計
該系統(tǒng)由兩部分硬件電路組成:主機板電路和子模塊顯示驅動電路。
3.1 主機板電路
主機板電路十分簡潔,由ATmega32組成的小系統(tǒng)和RS232,RS485接口電路組成。
主機板上的數(shù)據由異步串行口發(fā)送到各個子模塊中,為了在提高傳輸速度和距離的情況下仍能夠保證數(shù)據傳輸?shù)目煽啃?,主機板上發(fā)出的信息轉換成為RS485信號,采用帶屏蔽層的同軸電纜傳輸?shù)絃ED子模塊上。轉換所用接口芯片為MAX485,該芯片工作于5V電壓下,高傳輸速度可達到 2.5Mb/s,傳輸距離可達l200m。采用帶屏蔽層的同軸電纜可以降低傳輸過程中產生的信號干擾。
在需要從PC上位機下載數(shù)據到FLASHROM時,通過MAX232芯片實現(xiàn)ATmega32和PC機的通信。
3.2 子模塊顯示驅動電路
子模塊顯示驅動電路由RS485轉換電路、子模塊地址標識電路和點陣驅動電路組成。RS485轉換電路和主機板中一樣,同樣采用MAX485作電平轉換。
由于采用單片機的異步串行口進行多機通信進行數(shù)據傳輸,每個子模塊應該有和其位置相對應的地址標識。地址標識電路采用8位并進串出芯片 74HCl65和8位撥碼開關組成,因此本系統(tǒng)多可以容納255個子模塊(地址OxFF作為更新子模塊顯示的控制字)。如果簡單地通過軟件內部的設定來決定各個子模塊的地址,每個AT-mega8所對應的程序會有差別,這樣會給程序的燒寫帶來不便,因此采用外部硬件電路對子模塊的地址進行標識。采用 74HC165作串并行轉換是為了節(jié)省單片機的引腳資源。
LED點陣采用動態(tài)掃描法進行驅動,并且實現(xiàn)16階灰度顯示,為了節(jié)省單片機程序中掃描程序的時間消耗,提高掃描速度,顯示數(shù)據采用并行輸出的方法。驅動電路采用4-16譯碼器74HC154譯碼后驅動16個中功率三極管8550作為行選,2個8位數(shù)據鎖存器74LS373作為行數(shù)據鎖存。
4 系統(tǒng)軟件設計
系統(tǒng)軟件設計包括上位機軟件的設計、主機板AT-mega32程序設計、顯示子模塊ATmega8程序設計3部分。
上位機軟件完成圖像和文字的編輯,通過計算機串行接口把顯示數(shù)據傳送到主機板上。主機板接收上位機的數(shù)據并通過內部BootLoader區(qū)的程序進行FLASHROM內顯示數(shù)據的自更新。主機板把顯示數(shù)據進行分割處理后發(fā)送給每個子模塊,并且完成顯示數(shù)據的上下、左右滾屏處理。子模塊通過軟件調制脈沖占空比的方法,實現(xiàn)16階灰度圖像顯示。
4.1 上位機軟件設計
上位機軟件使用VB開發(fā),主要完成圖像的取點、線性補償和點陣數(shù)據生成。首先將圖像文件轉換為96×64分辨率、256階色深的單色灰度圖像,由于使用占空比驅動的LED其占空比/亮度為對數(shù)特性,所以需加入指數(shù)特性調整為線性之后才能交付顯示系統(tǒng)進行顯示。其計算公式為Dout=15× (Din/255)n。n為比例系數(shù),經實際顯示校對后確定為1.35,同時通過該公式完成從256階灰度到16階灰度的轉換。通過MSComm控件實現(xiàn) PC機與主機板的通信。
4.2 主機板ATmega32程序設計
主機部分軟件主要分為按鍵響應處理,顯示數(shù)據分割和分割后的數(shù)據發(fā)送3部分。其中顯示數(shù)據的分割占主要的地位,同時顯示內容的滾屏移動也包括在這部分中。按鍵響應使用外中斷響應,配合定時器TO進行去抖處理后置位按鍵有效標志,在主程序中檢查該按鍵有效標志并進行響應處理。
4.3 顯示子模塊程序設計
顯示子模塊的軟件分為數(shù)據接收和動態(tài)刷新顯示2部分。由于子模塊要實現(xiàn)16階灰度的表現(xiàn),而且還需要實現(xiàn)足夠高的刷新速率以避免產生閃爍現(xiàn)象,所以對刷新顯示部分的速度要求較高。本設計采用的方案為:全屏(每個子模塊為16行×16點/行)刷新分為16份時間片,每份時間片實現(xiàn)一行的掃描。而每行的時間片又分為15個子時間片,其中灰度為暗的點點亮0個子時間片,灰度為亮的點點亮15個時間片,由此實現(xiàn)占空比為0/15~15/15共 16個級別的平均電流控制,從而實現(xiàn)16階的灰度顯示。通過:MEGA8片內定時器T2,每個子時間片取得52μs的掃描時間,15個子時間片構成一個單行掃描的時間片(52μs×15=780μs),16個單行掃描時間片又構成一次全屏的掃描(780μs×16=12.48ms),則刷新頻率約為 80Hz,在高亮度下也可以保證不出現(xiàn)行閃的現(xiàn)象。
5 結語
本文提出的基于AVR單片機的LED顯示屏已應用于現(xiàn)場,AVR單片機的看門狗功能使得系統(tǒng)穩(wěn)定可靠。由于本設計是主從式的解決方案,具有可擴展性,并且采用ISP功能給電路板的調試和系統(tǒng)的維護帶來了很大的方便。實踐證明,本系統(tǒng)可以方便地顯示各種字體的文字信息及16階灰度的圖像,畫面清晰、性能穩(wěn)定、操作簡便,具有很好的應用價值。