基于AVR單片機的LED顯示屏應(yīng)用設(shè)計
4 系統(tǒng)軟件設(shè)計本文引用地址:http://m.butianyuan.cn/article/171618.htm
系統(tǒng)軟件設(shè)計包括上位機軟件的設(shè)計、主機板AT-mega32程序設(shè)計、顯示子模塊ATmega8程序設(shè)計3部分。
上位機軟件完成圖像和文字的編輯,通過計算機串行接口把顯示數(shù)據(jù)傳送到主機板上。主機板接收上位機的數(shù)據(jù)并通過內(nèi)部Boot Loader區(qū)的程序進行FLASH ROM內(nèi)顯示數(shù)據(jù)的自更新。主機板把顯示數(shù)據(jù)進行分割處理后發(fā)送給每個子模塊,并且完成顯示數(shù)據(jù)的上下、左右滾屏處理。子模塊通過軟件調(diào)制脈沖占空比的方法,實現(xiàn)16階灰度圖像顯示。
4.1 上位機軟件設(shè)計
上位機軟件使用VB開發(fā),主要完成圖像的取點、線性補償和點陣數(shù)據(jù)生成。首先將圖像文件轉(zhuǎn)換為96×64分辨率、256階色深的單色灰度圖像,由于使用占空比驅(qū)動的LED其占空比/亮度為對數(shù)特性,所以需加入指數(shù)特性調(diào)整為線性之后才能交付顯示系統(tǒng)進行顯示。其計算公式為Dout=15×(Din/255)n。n為比例系數(shù),經(jīng)實際顯示校對后確定為1.35,同時通過該公式完成從256階灰度到16階灰度的轉(zhuǎn)換。通過MSComm控件實現(xiàn)PC機與主機板的通信。
4.2 主機板ATmega32程序設(shè)計
主機部分軟件主要分為按鍵響應(yīng)處理,顯示數(shù)據(jù)分割和分割后的數(shù)據(jù)發(fā)送3部分。其中顯示數(shù)據(jù)的分割占最主要的地位,同時顯示內(nèi)容的滾屏移動也包括在這部分中。按鍵響應(yīng)使用外中斷響應(yīng),配合定時器TO進行去抖處理后置位按鍵有效標(biāo)志,在主程序中檢查該按鍵有效標(biāo)志并進行響應(yīng)處理。
4.3 顯示子模塊程序設(shè)計
顯示子模塊的軟件分為數(shù)據(jù)接收和動態(tài)刷新顯示2部分。由于子模塊要實現(xiàn)16階灰度的表現(xiàn),而且還需要實現(xiàn)足夠高的刷新速率以避免產(chǎn)生閃爍現(xiàn)象,所以對刷新顯示部分的速度要求較高。本設(shè)計采用的方案為:全屏(每個子模塊為16行×16點/行)刷新分為16份時間片,每份時間片實現(xiàn)一行的掃描。而每行的時間片又分為15個子時間片,其中灰度為最暗的點點亮0個子時間片,灰度為最亮的點點亮15個時間片,由此實現(xiàn)占空比為0/15~15/15共16個級別的平均電流控制,從而實現(xiàn)16階的灰度顯示。通過:MEGA8片內(nèi)定時器T2,每個子時間片取得52μs的掃描時間,15個子時間片構(gòu)成一個單行掃描的時間片(52 μs×15=780μs),16個單行掃描時間片又構(gòu)成一次全屏的掃描(780 μs×16=12.48 ms),則刷新頻率約為80 Hz,在最高亮度下也可以保證不出現(xiàn)行閃的現(xiàn)象。
5 結(jié) 語
本文提出的基于AVR單片機的LED顯示屏已應(yīng)用于現(xiàn)場,AVR單片機的看門狗功能使得系統(tǒng)穩(wěn)定可靠。由于本設(shè)計是主從式的解決方案,具有可擴展性,并且采用ISP功能給電路板的調(diào)試和系統(tǒng)的維護帶來了很大的方便。實踐證明,本系統(tǒng)可以方便地顯示各種字體的文字信息及16階灰度的圖像,畫面清晰、性能穩(wěn)定、操作簡便,具有很好的應(yīng)用價值。
評論