基于單片機IAP技術(shù)的LED顯示屏控制系統
LED顯示屏由于其具有耗電少、使用壽命長(cháng)、成本低、亮度高、故障少、視角大、可視距離遠等特點(diǎn),已經(jīng)成為新一代的信息傳播媒體工具。LED與LCD相比較最突出的特點(diǎn)是,亮度高、成本低且屏幕尺寸可根據現場(chǎng)情況用標準LED單元板拼制。按安裝位置可分為室外、半室外和室內;按顏色可分為單色、雙基色和彩色;按發(fā)光二極管點(diǎn)距可分為φ5.0、φ3.75及φ3.0等。本文以市場(chǎng)上常見(jiàn)的室內雙色LED單元板為控制對象,說(shuō)明基于單片機IAP技術(shù)的LED顯示屏控制系統工作原理以及數據組織方法。
1 雙色LED單元板硬件組成及工作原理
常見(jiàn)的室內雙色LED單元板電路框圖如圖1(a)所示。其中行掃描電路由2片74HCl38(3—8譯碼器)構成的4—16譯碼器加上多個(gè)4953(MOS管)組成的,掃描方式為1/16。上下半屏分別由2組用74HC595串行移位寄存器實(shí)現紅色、綠色顯示數據的列輸入,在圖1(a)所示的64×32標準LED單元板中,每組串行移位寄存器中有8個(gè)74HC595級聯(lián),4組共用了32個(gè)74HC595。74HC595內部電路框圖如圖1(b)所示。所有4組74HC595的控制信號RCK、SCK、EN全部接在一起。74HC595的控制信號和4組串行移位寄存器的輸入以及行掃描控制信號A、B、C、D構成整個(gè)LED單元板的輸入;74HC595的控制信號經(jīng)驅動(dòng)后和4組串行移位寄存器的輸出以及行經(jīng)過(guò)驅動(dòng)的掃描控制信號A、B、C、D構成整個(gè)LED單元板的輸出,用于級聯(lián)下一個(gè)LED單元板的輸入。雙色LED單元板等效電路框圖如圖1(c)所示。
2 LED顯示控制系統的硬件組成及工作原理
LED顯示控制系統的硬件組成如圖2所示。從表面上看是一個(gè)普通的單片機簡(jiǎn)單應用,實(shí)際上在設計此系統時(shí)已經(jīng)考慮了很多硬件、軟件及硬軟件配合的因素。首先在使用51單片機的前提下,用其串行口方式O似乎可以利用單片機發(fā)出的移位脈沖將8位數據送入74HC595中,但要實(shí)現圖2中8位數據的同時(shí)輸入必須加其他的輔助芯片,而且在縮短數據傳輸時(shí)間上沒(méi)有什么好處。其次,采用FPGA、CPLD等可編程芯片設計成專(zhuān)用硬件電路與單片機接口可大幅度提高數據傳輸的速度,但成本也將同步大幅度提高。
在圖2所示的系統中采用了以下的設計理念:①由P0口同步輸出8位字型點(diǎn)陣數據。②用P3.6產(chǎn)生SCK信號,軟件中相應使用“MOVX@R0,A”指令,在形成SCK信號的同時(shí)減少指令的字節數。③由P2.0至P2.3輸出行掃描信號,軟件中將A、B、C、D存放在DPH的低4位中。④RCK和EN分別由P3.4、P3.5控制。⑤SST89E516單片機的串行口與PC機通信。利用該單片機的IAP功能下載顯示所需的字型數據和控制程序。
3 LED顯示控制系統的數據組織及軟件優(yōu)化
LED顯示控制系統的數據組織如圖3所示。從圖2可以得到圖3(a)所示的從正面看過(guò)去顯示行與顯示數據位以及顏色的對應關(guān)系。為了提高數據的讀取速度,將顯示數據按掃描行進(jìn)行連續排列,可得到圖3(b)所示的存儲單元與掃描行、存儲單元數據位及顏色的關(guān)系。
具體編程時(shí)可按下列步驟進(jìn)行:①將準備掃描的行地址送P2口的低4位中。②將DPTR指向待顯示行相應存儲單元的首地址。③以DPTR為指針,使用“MOXCA,@A+DPTR”讀顯示數據,并將顯示數據送P0口。④通過(guò)P3.6產(chǎn)生SCK,同時(shí)DPTR加1。⑤重復②、③、④直到一行數據顯示完畢,通過(guò)P3.4產(chǎn)生RCK將通過(guò)移位寄存器移入的一行數據顯示。⑥重復②、③、④、⑤直到15行數據全部顯示完畢。⑦重復①~⑥刷新顯示。
根據上述編程步驟,可以很容易編出顯示第i行的子程序l。子程序1的第3行至第9行為循環(huán)體,送1字節的顯示數據共需lO個(gè)機器周期,機器碼的字節數為11。通過(guò)分析74HC595的SCK為上升沿有效,可用單片機的寫(xiě)信號(WR)來(lái)代替,故子程序l中的第5、6、7行3條指令可用“MOVX@R0,A”一條指令來(lái)替換,實(shí)驗表明這樣的替換是可靠的。顯示第i行的子程序2為替換后的程序,送l字節的顯示數據所需機器周期減為9,機器碼的字節數減為6。再對顯示第i行的子程序2仔細分析后發(fā)現,在僅使用SST89E516內部64 KB的Flash存儲器作為顯示數據存儲且不增加輔助電路的前提下,只有子程序2第7行“DJNZ RO,DP1”這條2個(gè)機器周期2字節指令,可以利用SST89E516內部64 KB的Flash存儲器大的特點(diǎn),直接簡(jiǎn)單的重復256次子程序2中第3、4、5、6行4條單字節指令,從而可以縮短2個(gè)機器周期的時(shí)間。這樣送1字節的機器周期可以減少為7,但程序需要增加l KB。對64 KB的F1ash存儲器來(lái)說(shuō),程序增加1 KB減少不 了多少顯示數據。與子程序1相比,子程序3速度提高了30%。在圖2所示12 MHz晶振并利用SST89E516的倍速功能,其1個(gè)機器周期為O.5μs,在忽略其他數據處理時(shí)間的前提下,顯示l屏完整數據所需時(shí)間近似為:(7×O.5μs×256列×16行)=14.336 ms(每秒近70幀)。實(shí)驗表明:人眼對LED顯示屏開(kāi)始感覺(jué)到閃爍大約為每秒55幀,即每幀時(shí)間18 ms。從圖2、圖1(c)和3個(gè)子程序可以看出,一幀顯示數據在內存中的排列有以下幾個(gè)特點(diǎn):①按掃描行掃描的先后順序依次排列;②在每一行按數據輸出的先后順序依次排列;③通過(guò)硬件和軟件的優(yōu)化使每個(gè)顯示數據輸出的時(shí)間最短。
4 基于IAP功能的顯示數據傳送及PC軟件編程
SST89E516單片機可以實(shí)現IAP(In Application Programming)是由于它將Flash存儲器分為2個(gè)塊(區域):block0(64 KB)和blockl(8 KB)。通過(guò)IAP指令的切換可以使程序在這2個(gè)塊中執行,如程序在block0中運行可對bleckl的數據進(jìn)行改寫(xiě),同樣在block1中運行可對b1ock0的數據進(jìn)行改寫(xiě)。具體使用IAP功能時(shí)對SST89E516單片機的2個(gè)塊作如下分配:①上電或復位時(shí)自動(dòng)運行block1中的IAP程序,如2s內沒(méi)有接收到PC機通過(guò)串行口發(fā)送的數據傳輸指令,則開(kāi)始運行blockO中的顯示 程序。②block0中的最低8 KB用于存放顯示程序,其余56 KB用于存放顯示數據。③在blockO中運行IAP程序時(shí)利用SST89E516單片機128字節的小扇區擦除功能只擦除和改寫(xiě)blockO中56 KB 用于存放顯示數據的區域,8KB存放顯示程序的區域保持不變。④在block0運行顯示程序時(shí)單片機串行口監測來(lái)自PC機的復位命令,如有復位命令執行IAP指令使程序轉移到block1塊并運行blockl中的IAP程序修改顯示數據。
PC軟件編程采用VB。該程序可完成字型的提取以及顯示數據的組織,生成Intel格式的HEX文件,通過(guò)串行口下載到SST89E516單片機中。為了方便控制,自定義了8字節的顯示指令集[命令(1字節)+參數表(7字節)],各種不同顯示效果所需的參數,如起始地址、結束地址、每行的長(cháng)度及顯示時(shí)間等,指定其存放指令的參數表中。顯示指令集存放在顯示數據區的最開(kāi)始l頁(yè)256個(gè)存儲單元中,底層單片機運行時(shí)根據顯示指令可實(shí)現不同的顯示效果,如畫(huà)面的切換、定時(shí)、水平移動(dòng)、垂直移動(dòng)以及其他特殊顯示效果。同樣可通過(guò)IAP下載顯示程序。
結語(yǔ)
通過(guò)大量的實(shí)踐檢驗,本控制系統是非??煽康?,利用該控制系統制作的小型LED顯示屏已達數十個(gè),最長(cháng)的已經(jīng)運行了3年以上。在運行過(guò)程中也對該控制系統作了多方面的改進(jìn)。例如,為了進(jìn)一步提高顯示速度可擴展外部RAM,即在子程序3的基礎上去掉“CLR A”指令,使機器周期減為6個(gè);采用指令為1個(gè)機器周期的單片機并提高晶振頻率;利用有些51單片機(如DS89C450)具有DPTR自動(dòng)加1的功能;外加用CPLD制成的硬件地址發(fā)生器等。但所有改進(jìn)的措施都是以增加外部輔助電路或成本為代價(jià)的。本控制系統的價(jià)格按市價(jià)不超過(guò)30元,因此其在小型LED顯示控制系統中有著(zhù)廣闊的應用前景。
評論