基于單片機IAP技術(shù)的LED顯示屏控制系統(tǒng)
根據(jù)上述編程步驟,可以很容易編出顯示第i行的子程序l。子程序1的第3行至第9行為循環(huán)體,送1字節(jié)的顯示數(shù)據(jù)共需lO個機器周期,機器碼的字節(jié)數(shù)為11。通過分析74HC595的SCK為上升沿有效,可用單片機的寫信號(WR)來代替,故子程序l中的第5、6、7行3條指令可用“MOVX@R0,A”一條指令來替換,實驗表明這樣的替換是可靠的。顯示第i行的子程序2為替換后的程序,送l字節(jié)的顯示數(shù)據(jù)所需機器周期減為9,機器碼的字節(jié)數(shù)減為6。再對顯示第i行的子程序2仔細(xì)分析后發(fā)現(xiàn),在僅使用SST89E516內(nèi)部64 KB的Flash存儲器作為顯示數(shù)據(jù)存儲且不增加輔助電路的前提下,只有子程序2第7行“DJNZ RO,DP1”這條2個機器周期2字節(jié)指令,可以利用SST89E516內(nèi)部64 KB的Flash存儲器大的特點,直接簡單的重復(fù)256次子程序2中第3、4、5、6行4條單字節(jié)指令,從而可以縮短2個機器周期的時間。這樣送1字節(jié)的機器周期可以減少為7,但程序需要增加l KB。對64 KB的F1ash存儲器來說,程序增加1 KB減少不 了多少顯示數(shù)據(jù)。與子程序1相比,子程序3速度提高了30%。在圖2所示12 MHz晶振并利用SST89E516的倍速功能,其1個機器周期為O.5μs,在忽略其他數(shù)據(jù)處理時間的前提下,顯示l屏完整數(shù)據(jù)所需時間近似為:(7×O.5μs×256列×16行)=14.336 ms(每秒近70幀)。實驗表明:人眼對LED顯示屏開始感覺到閃爍大約為每秒55幀,即每幀時間18 ms。從圖2、圖1(c)和3個子程序可以看出,一幀顯示數(shù)據(jù)在內(nèi)存中的排列有以下幾個特點:①按掃描行掃描的先后順序依次排列;②在每一行按數(shù)據(jù)輸出的先后順序依次排列;③通過硬件和軟件的優(yōu)化使每個顯示數(shù)據(jù)輸出的時間最短。
本文引用地址:http://m.ptau.cn/article/82822.htm
4 基于IAP功能的顯示數(shù)據(jù)傳送及PC軟件編程
SST89E516單片機可以實現(xiàn)IAP(In Application Programming)是由于它將Flash存儲器分為2個塊(區(qū)域):block0(64 KB)和blockl(8 KB)。通過IAP指令的切換可以使程序在這2個塊中執(zhí)行,如程序在block0中運行可對bleckl的數(shù)據(jù)進行改寫,同樣在block1中運行可對b1ock0的數(shù)據(jù)進行改寫。具體使用IAP功能時對SST89E516單片機的2個塊作如下分配:①上電或復(fù)位時自動運行block1中的IAP程序,如2s內(nèi)沒有接收到PC機通過串行口發(fā)送的數(shù)據(jù)傳輸指令,則開始運行blockO中的顯示程序。②block0中的最低8 KB用于存放顯示程序,其余56 KB用于存放顯示數(shù)據(jù)。③在blockO中運行IAP程序時利用SST89E516單片機128字節(jié)的小扇區(qū)擦除功能只擦除和改寫blockO中56 KB 用于存放顯示數(shù)據(jù)的區(qū)域,8KB存放顯示程序的區(qū)域保持不變。④在block0運行顯示程序時單片機串行口監(jiān)測來自PC機的復(fù)位命令,如有復(fù)位命令執(zhí)行IAP指令使程序轉(zhuǎn)移到block1塊并運行blockl中的IAP程序修改顯示數(shù)據(jù)。
PC軟件編程采用VB。該程序可完成字型的提取以及顯示數(shù)據(jù)的組織,生成Intel格式的HEX文件,通過串行口下載到SST89E516單片機中。為了方便控制,自定義了8字節(jié)的顯示指令集[命令(1字節(jié))+參數(shù)表(7字節(jié))],各種不同顯示效果所需的參數(shù),如起始地址、結(jié)束地址、每行的長度及顯示時間等,指定其存放指令的參數(shù)表中。顯示指令集存放在顯示數(shù)據(jù)區(qū)的最開始l頁256個存儲單元中,底層單片機運行時根據(jù)顯示指令可實現(xiàn)不同的顯示效果,如畫面的切換、定時、水平移動、垂直移動以及其他特殊顯示效果。同樣可通過IAP下載顯示程序。
結(jié)語
通過大量的實踐檢驗,本控制系統(tǒng)是非??煽康?,利用該控制系統(tǒng)制作的小型LED顯示屏已達(dá)數(shù)十個,最長的已經(jīng)運行了3年以上。在運行過程中也對該控制系統(tǒng)作了多方面的改進。例如,為了進一步提高顯示速度可擴展外部RAM,即在子程序3的基礎(chǔ)上去掉“CLR A”指令,使機器周期減為6個;采用指令為1個機器周期的單片機并提高晶振頻率;利用有些51單片機(如DS89C450)具有DPTR自動加1的功能;外加用CPLD制成的硬件地址發(fā)生器等。但所有改進的措施都是以增加外部輔助電路或成本為代價的。本控制系統(tǒng)的價格按市價不超過30元,因此其在小型LED顯示控制系統(tǒng)中有著廣闊的應(yīng)用前景。
led顯示器相關(guān)文章:led顯示器原理
評論