基于單片機(jī)IAP技術(shù)的LED顯示屏控制系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
西南交通大學(xué) 靳桅 鄔芝權(quán) 肖波led顯示屏由于其具有耗電少、使用壽命長(zhǎng)、成本低、亮度高、故障少、視角大、可視距離遠(yuǎn)等特點(diǎn),已經(jīng)成為新一代的信息傳播媒體工具。led與lcd相比較最突出的特點(diǎn)是,亮度高、成本低且屏幕尺寸可根據(jù)現(xiàn)場(chǎng)情況用標(biāo)準(zhǔn)led單元板拼制。按安裝位置可分為室外、半室外和室內(nèi);按顏色可分為單色、雙基色和彩色;按發(fā)光二極管點(diǎn)距可分為φ5.0、φ3.75及φ3.0等。本文以市場(chǎng)上常見(jiàn)的室內(nèi)雙色led單元板為控制對(duì)象,說(shuō)明基于單片機(jī)iap技術(shù)的led顯示屏控制系統(tǒng)工作原理以及數(shù)據(jù)組織方法。1 雙色led單元板硬件組成及工作原理 常見(jiàn)的室內(nèi)雙色led單元板電路框圖如圖1(a)所示。其中行掃描電路由2片74hc138(3-8譯碼器)構(gòu)成的4-16譯碼器加上多個(gè)4953(mos管)組成的,掃描方式為1/16。上下半屏分別由2組用74hc595串行移位寄存器實(shí)現(xiàn)紅色、綠色顯示數(shù)據(jù)的列輸入,在圖1(a)所示的64×32標(biāo)準(zhǔn)led單元板中,每組串行移位寄存器中有8個(gè)74hc595級(jí)聯(lián),4組共用了32個(gè)74hc595。74hc595內(nèi)部電路框圖如圖1(b)所示。所有4組74hc595的控制信號(hào)rck、sck、en全部接在一起。74hc595的控制信號(hào)和4組串行移位寄存器的輸入以及行掃描控制信號(hào)a、b、c、d構(gòu)成整個(gè)led單元板的輸入;74hc595的控制信號(hào)經(jīng)驅(qū)動(dòng)后和4組串行移位寄存器的輸出以及行經(jīng)過(guò)驅(qū)動(dòng)的掃描控制信號(hào)a、b、c、d構(gòu)成整個(gè)led單元板的輸出,用于級(jí)聯(lián)下一個(gè)led單元板的輸入。雙色led單元板等效電路框圖如圖1(c)所示。 2 led顯示控制系統(tǒng)的硬件組成及工作原理 led顯示控制系統(tǒng)的硬件組成如圖2所示。從表面上看是一個(gè)普通的單片機(jī)簡(jiǎn)單應(yīng)用,實(shí)際上在設(shè)計(jì)此系統(tǒng)時(shí)已經(jīng)考慮了很多硬件、軟件及硬軟件配合的因素。首先在使用51單片機(jī)的前提下,用其串行口方式0似乎可以利用單片機(jī)發(fā)出的移位脈沖將8位數(shù)據(jù)送入74hc595中,但要實(shí)現(xiàn)圖2中8位數(shù)據(jù)的同時(shí)輸入必須加其他的輔助芯片,而且在縮短數(shù)據(jù)傳輸時(shí)間上沒(méi)有什么好處。其次,采用fpga、cpld等可編程芯片設(shè)計(jì)成專(zhuān)用硬件電路與單片機(jī)接口可大幅度提高數(shù)據(jù)傳輸?shù)乃俣龋杀疽矊⑼酱蠓忍岣摺? 在圖2所示的系統(tǒng)中采用了以下的設(shè)計(jì)理念:①由p0口同步輸出8位字型點(diǎn)陣數(shù)據(jù)。②用p3.6產(chǎn)生sck信號(hào),軟件中相應(yīng)使用“movx@r0,a”指令,在形成sck信號(hào)的同時(shí)減少指令的字節(jié)數(shù)。③由p2.0至p2.3輸出行掃描信號(hào),軟件中將a、b、c、d存放在dph的低4位中。④rck和en分別由p3.4、p3.5控制。⑤sst89e516單片機(jī)的串行口與pc機(jī)通信。利用該單片機(jī)的iap功能下載顯示所需的字型數(shù)據(jù)和控制程序。 3 led顯示控制系統(tǒng)的數(shù)據(jù)組織及軟件優(yōu)化 led顯示控制系統(tǒng)的數(shù)據(jù)組織如圖3所示。從圖2可以得到圖3(a)所示的從正面看過(guò)去顯示行與顯示數(shù)據(jù)位以及顏色的對(duì)應(yīng)關(guān)系。為了提高數(shù)據(jù)的讀取速度,將顯示數(shù)據(jù)按掃描行進(jìn)行連續(xù)排列,可得到圖3(b)所示的存儲(chǔ)單元與掃描行、存儲(chǔ)單元數(shù)據(jù)位及顏色的關(guān)系。 具體編程時(shí)可按下列步驟進(jìn)行:①將準(zhǔn)備掃描的行地址送p2口的低4位中。②將dptr指向待顯示行相應(yīng)存儲(chǔ)單元的首地址。③以dptr為指針,使用“moxca,@a+dptr”讀顯示數(shù)據(jù),并將顯示數(shù)據(jù)送p0口。④通過(guò)p3.6產(chǎn)生sck,同時(shí)dptr加1。⑤重復(fù)②、③、④直到一行數(shù)據(jù)顯示完畢,通過(guò)p3.4產(chǎn)生rck將通過(guò)移位寄存器移入的一行數(shù)據(jù)顯示。⑥重復(fù)②、③、④、⑤直到15行數(shù)據(jù)全部顯示完畢。⑦重復(fù)①~⑥刷新顯示。 根據(jù)上述編程步驟,可以很容易編出顯示第i行的子程序1。子程序1的第3行至第9行為循環(huán)體,送1字節(jié)的顯示數(shù)據(jù)共需10個(gè)機(jī)器周期,機(jī)器碼的字節(jié)數(shù)為11。通過(guò)分析74hc595的sck為上升沿有效,可用單片機(jī)的寫(xiě)信號(hào)(wr)來(lái)代替,故子程序1中的第5、6、7行3條指令可用“movx@r0,a”一條指令來(lái)替換,實(shí)驗(yàn)表明這樣的替換是可靠的。顯示第i行的子程序2為替換后的程序,送1字節(jié)的顯示數(shù)據(jù)所需機(jī)器周期減為9,機(jī)器碼的字節(jié)數(shù)減為6。再對(duì)顯示第i行的子程序2仔細(xì)分析后發(fā)現(xiàn),在僅使用sst89e516內(nèi)部64 kb的flash存儲(chǔ)器作為顯示數(shù)據(jù)存儲(chǔ)且不增加輔助電路的前提下,只有子程序2第7行“djnz r0,dp1”這條2個(gè)機(jī)器周期2字節(jié)指令,可以利用sst89e516內(nèi)部64 kb的flash存儲(chǔ)器大的特點(diǎn),直接簡(jiǎn)單