基于51單片機(jī)IAP技術(shù)的LED顯示屏控制系統(tǒng)
4 基于IAP功能的顯示數(shù)據(jù)傳送及PC軟件編程
SST89E516單片機(jī)可以實(shí)現(xiàn)IAP(In Application Programming)是由于它將Flash存儲(chǔ)器分為2個(gè)塊(區(qū)域):block0(64 KB)和block1(8 KB)。通過IAP指令的切換可以使程序在這2個(gè)塊中執(zhí)行,如程序在block0中運(yùn)行可對(duì)block1的數(shù)據(jù)進(jìn)行改寫,同樣在block1中運(yùn)行可對(duì)block0的數(shù)據(jù)進(jìn)行改寫。具體使用IAP功能時(shí)對(duì)SST89E516單片機(jī)的2個(gè)塊作如下分配:①上電或復(fù)位時(shí)自動(dòng)運(yùn)行block1中的IAP程序,如2 s內(nèi)沒有接收到PC機(jī)通過串行口發(fā)送的數(shù)據(jù)傳輸指令,則開始運(yùn)行block0中的顯示程序。②block0中的最低8 KB用于存放顯示程序,其余56 KB用于存放顯示數(shù)據(jù)。③在block0中運(yùn)行IAP程序時(shí)利用SST89E516單片機(jī)128字節(jié)的小扇區(qū)擦除功能只擦除和改寫block0中56 KB用于存放顯示數(shù)據(jù)的區(qū)域,8 KB存放顯示程序的區(qū)域保持不變。④在block0運(yùn)行顯示程序時(shí)單片機(jī)串行口監(jiān)測來自PC機(jī)的復(fù)位命令,如有復(fù)位命令執(zhí)行IAP指令使程序轉(zhuǎn)移到block1塊并運(yùn)行block1中的IAP程序修改顯示數(shù)據(jù)。
PC軟件編程采用VB。該程序可完成字型的提取以及顯示數(shù)據(jù)的組織,生成Intel格式的HEX文件,通過串行口下載到SST89E516單片機(jī)中。為了方便控制,自定義了8字節(jié)的顯示指令集[命令(1字節(jié))+參數(shù)表(7字節(jié))],各種不同顯示效果所需的參數(shù),如起始地址、結(jié)束地址、每行的長度及顯示時(shí)間等,指定其存放指令的參數(shù)表中。顯示指令集存放在顯示數(shù)據(jù)區(qū)的最開始1頁256個(gè)存儲(chǔ)單元中,底層單片機(jī)運(yùn)行時(shí)根據(jù)顯示指令可實(shí)現(xiàn)不同的顯示效果,如畫面的切換、定時(shí)、水平移動(dòng)、垂直移動(dòng)以及其他特殊顯示效果。同樣可通過IAP下載顯示程序。
結(jié) 語
通過大量的實(shí)踐檢驗(yàn),本控制系統(tǒng)是非??煽康模迷摽刂葡到y(tǒng)制作的小型LED顯示屏已達(dá)數(shù)十個(gè),最長的已經(jīng)運(yùn)行了3年以上。在運(yùn)行過程中也對(duì)該控制系統(tǒng)作了多方面的改進(jìn)。例如,為了進(jìn)一步提高顯示速度可擴(kuò)展外部RAM,即在子程序3的基礎(chǔ)上去掉“CLR A”指令,使機(jī)器周期減為6個(gè);采用指令為1個(gè)機(jī)器周期的單片機(jī)并提高晶振頻率;利用有些51單片機(jī)(如DS89C450)具有DPTR自動(dòng)加1的功能;外加用CPLD制成的硬件地址發(fā)生器等。但所有改進(jìn)的措施都是以增加外部輔助電路或成本為代價(jià)的。本控制系統(tǒng)的價(jià)格按市價(jià)不超過30元,因此其在小型LED顯示控制系統(tǒng)中有著廣闊的應(yīng)用前景。
led顯示器相關(guān)文章:led顯示器原理
評(píng)論