滾動文字與圖像兼得的AVR單片機LED顯示屏設計
3.2 子模塊顯示驅動電路
子模塊顯示驅動電路由RS 485轉換電路、子模塊地址標識電路和點陣驅動電路組成。RS 485轉換電路和主機板中一樣,同樣采用MAX485作電平轉換。
由于采用單片機的異步串行口進行多機通信進行數據傳輸,每個子模塊應該有和其位置相對應的地址標識。地址標識電路采用8位并進串出芯片74HCl65和8位撥碼開關組成,因此本系統最多可以容納255個子模塊(地址OxFF作為更新子模塊顯示的控制字)。如果簡單地通過軟件內部的設定來決定各個子模塊的地址,每個AT-mega8所對應的程序會有差別,這樣會給程序的燒寫帶來不便,因此采用外部硬件電路對子模塊的地址進行標識。采用74HC165作串并行轉換是為了節省單片機的引腳資源。LED點陣采用動態掃描法進行驅動,并且實現16階灰度顯示,為了節省單片機程序中掃描程序的時間消耗,提高掃描速度,顯示數據采用并行輸出的方法。驅動電路采用4-16譯碼器74HC154譯碼后驅動16個中功率三極管8550作為行選,2個8位數據鎖存器74LS373作為行數據鎖存。
4 系統軟件設計
系統軟件設計包括上位機軟件的設計、主機板AT-mega32程序設計、顯示子模塊ATmega8程序設計3部分。
上位機軟件完成圖像和文字的編輯,通過計算機串行接口把顯示數據傳送到主機板上。主機板接收上位機的數據并通過內部Boot Loader區的程序進行FLASH ROM內顯示數據的自更新。主機板把顯示數據進行分割處理后發送給每個子模塊,并且完成顯示數據的上下、左右滾屏處理。子模塊通過軟件調制脈沖占空比的方法,實現16階灰度圖像顯示。
4.1 上位機軟件設計
上位機軟件使用VB開發,主要完成圖像的取點、線性補償和點陣數據生成。首先將圖像文件轉換為96×64分辨率、256階色深的單色灰度圖像,由于使用占空比驅動的LED其占空比/亮度為對數特性,所以需加入指數特性調整為線性之后才能交付顯示系統進行顯示。其計算公式為Dout=15×(Din/255)n。n為比例系數,經實際顯示校對后確定為1.35,同時通過該公式完成從256階灰度到16階灰度的轉換。通過MSComm控件實現PC機與主機板的通信。
4.2 主機板ATmega32程序設計
主機部分軟件主要分為按鍵響應處理,顯示數據分割和分割后的數據發送3部分。其中顯示數據的分割占最主要的地位,同時顯示內容的滾屏移動也包括在這部分中。按鍵響應使用外中斷響應,配合定時器TO進行去抖處理后置位按鍵有效標志,在主程序中檢查該按鍵有效標志并進行響應處理。4.3 顯示子模塊程序設計
顯示子模塊的軟件分為數據接收和動態刷新顯示2部分。由于子模塊要實現16階灰度的表現,而且還需要實現足夠高的刷新速率以避免產生閃爍現象,所以對刷新顯示部分的速度要求較高。本設計采用的方案為:全屏(每個子模塊為16行×16點/行)刷新分為16份時間片,每份時間片實現一行的掃描。而每行的時間片又分為15個子時間片,其中灰度為最暗的點點亮0個子時間片,灰度為最亮的點點亮15個時間片,由此實現占空比為0/15~15/15共16個級別的平均電流控制,從而實現16階的灰度顯示。通過:MEGA8片內定時器T2,每個子時間片取得52μs的掃描時間,15個子時間片構成一個單行掃描的時間片(52 μs×15=780μs),16個單行掃描時間片又構成一次全屏的掃描(780 μs×16=12.48 ms),則刷新頻率約為80 Hz,在最高亮度下也可以保證不出現行閃的現象。
5 結語
本文提出的基于AVR單片機的LED顯示屏已應用于現場,AVR單片機的看門狗功能使得系統穩定可靠。由于本設計是主從式的解決方案,具有可擴展性,并且采用ISP功能給電路板的調試和系統的維護帶來了很大的方便。實踐證明,本系統可以方便地顯示各種字體的文字信息及16階灰度的圖像,畫面清晰、性能穩定、操作簡便,具有很好的應用價值。
評論