顯示數(shù)據(jù)組織
編輯:新雨 [ 2011-4-7 9:09:35 ] 文章來源:LED大屏網(wǎng)
前言:
長條的
led顯示屏在生活中應(yīng)用得很多,這種顯示屏的控制電路簡單,掃描線有限,顯示信息量也不是很大。當(dāng)顯示信息量比較大時,若采用一般的長屏顯示屏,顯示信息過慢,即使采用超長屏的顯示屏,其數(shù)據(jù)輸出速率也很低,而且顯示屏的刷新頻率也不一定能滿足顯示需求。矩形顯示屏顯示的信息量大,并且可以按需要擴(kuò)展顯示屏的高度,不存在頻率上的限制,能夠彌補(bǔ)長條顯示屏顯示信息時存在的不足。本設(shè)計使用雙RAM技術(shù)來組織用于控制矩形顯示屏的控制系統(tǒng)數(shù)據(jù),提高了信息垂直循環(huán)顯示時的存儲器效率,大幅度降低了對數(shù)據(jù)存儲器的占用率,并且對刷新頻率的要求也不是很高。
|
|
內(nèi)容導(dǎo)航:
顯示數(shù)據(jù)組織
需要顯示的區(qū)域小于或等于實(shí)際顯示區(qū)域時,采用靜態(tài)顯示即可。但大多時候需要顯示的區(qū)域大于或等于實(shí)際顯示區(qū)域,如圖1所示。為了簡化問題的分析,本文將顯示區(qū)域高度設(shè)置為led顯示屏高度的4倍,寬度等于led顯示屏寬度。設(shè)顯示屏的高度為Lh,寬度為Lw,則顯示區(qū)域高度Dh=4Lh,寬度Dw=Lw。本文以單色顯示作為描述對象,且Bw=Bn=8(Bw為掃描線條數(shù),Bn為輸出數(shù)據(jù)寬度),如圖1所示。
對于一個led顯示屏,寬度Lw和高度Lh確定后,顯示屏單元板的排列方式也就確定了。單元板相鄰的兩條掃描線之間的距離為Sw,顯示屏有Bw條掃描線,分別是Y0,Y1,…,YBw-1。每Sw行對應(yīng)一位顯示數(shù)據(jù),顯示屏上的每一個點(diǎn)對應(yīng)于存儲器中某個字節(jié)的某一位。Bw條掃描線分別指向:Y0=O,Y1=Sw,…,BBw-1=(Bw-1)Sw。用靜態(tài)顯示數(shù)據(jù)組織方法分別對顯示塊A、B、C、D組織顯示數(shù)據(jù)。首先對顯示塊A的顯示信息進(jìn)行組織(X為列號):
、賆=0,即當(dāng)前掃描線各行與第O列相交各點(diǎn)的顯示數(shù)據(jù)按D0,D1,…,DBw-1的順序存儲在存儲器的第一個存儲單元中。
②X值增加1,當(dāng)前掃描線各行與X值對應(yīng)列相交各點(diǎn)的顯示數(shù)據(jù)存儲在存儲器的下一個存儲單元中。直至將X=O至X=Dw-1的Dw個數(shù)據(jù)按順序全部存儲在存儲器中。
、跙w條掃描線向下移動一行,重復(fù)第①至②步,直到Y(jié)0移動到Sw-1行時。
、軘(shù)據(jù)組織結(jié)束。
顯示區(qū)域B、C、D分別按照A的數(shù)據(jù)組織方式去組織顯示數(shù)據(jù)。組織后的顯示數(shù)據(jù)塊按A、B、C、D的順序存儲在RAM0里,然后將RAM0中的顯示數(shù)據(jù)塊A、B、C、D按B、C、D、A的順序拷貝到RAMl中,任何兩個相鄰顯示塊的顯示數(shù)據(jù)在兩塊RAM中都有相同的地址存儲區(qū)域。RAM0和RAMl的顯示數(shù)據(jù)與存儲器的對應(yīng)關(guān)系如圖2所示。
如圖2所示,掃描組1從Y0=0到Y(jié)0=Sw-1,對應(yīng)顯示塊A,數(shù)據(jù)已組織存放在存儲器中,可以直接輸出顯示數(shù)據(jù);掃描組2從Y0=Lh到Y(jié)0=Lh+ Sw-1,對應(yīng)顯示塊B也已經(jīng)組織好,可以直接輸出。但是掃描組3,它的位置非同一般,它的掃描線分別對應(yīng)著兩個塊A和B;第O,1,…Bw-1條掃描線分別對應(yīng)顯示塊A掃描組1的1,2,…,Bw-2;而第Bw-1條掃描線就對應(yīng)顯示塊B掃描組2的第O條掃描線。如果要在顯示屏上顯示掃描組3對應(yīng)的這一屏數(shù)據(jù),就一定要同時使用到掃描組1的第1,2,…,Bw-1條掃描線和掃描組2的第O條掃描線組織的顯示數(shù)據(jù)作為輸出數(shù)據(jù)。由于顯示塊A和B的顯示數(shù)據(jù)是分別組織的,這時就要取RAM0的D0,D2,…,DBw-1和RAMl的D0位作為輸出到顯示屏的Bw位數(shù)據(jù),這就需要在兩塊RAM同時輸出的2Bw位中選擇需要的Bw位作為輸出數(shù)據(jù),并且這Bw位數(shù)據(jù)是連續(xù)的。
顯示步驟(在此只考慮垂直移動顯示效果);雙RAM技術(shù)將顯示數(shù)據(jù)輸出的時候,是將兩塊RAM中相同地址的兩個數(shù)據(jù)同時輸出。所以,如果設(shè)置RAMO為主存儲器,RAMl為從存儲器,則將兩塊RAM的顯示數(shù)據(jù)存在一塊串行存儲器中時,偶地址單元應(yīng)存儲RAM0的數(shù)據(jù),奇地址單元存儲RAMl的數(shù)據(jù),由于數(shù)據(jù)寬度為8,所以每次輸出16位數(shù)據(jù)。如果顯示區(qū)域中以(XL,YL)點(diǎn)為顯示起始點(diǎn),在LED屏上顯示一屏顯示信息,則其數(shù)據(jù)選擇控制位只與YL、掃描線和掃描寬度Sw有關(guān)。顯示區(qū)域的起始行坐標(biāo)為YL,一塊顯示區(qū)域有Bw·Sw行,則YL所在的塊為:
這里討論YL在實(shí)際顯示區(qū)域的坐標(biāo)沒有多大意義,只須注意YL在當(dāng)前顯示塊的相對坐標(biāo),NL=YL%(Bw·Sw)就是YL在當(dāng)前顯示塊的相對縱坐標(biāo),則相對坐標(biāo)為(NL,YL)。動態(tài)顯示的基礎(chǔ)是靜態(tài)顯示,靜態(tài)顯示以從特定行顯示一屏為特征,當(dāng)顯示屏從第YL行開始顯示信息時,因?yàn)橐粔K顯示區(qū)域有Sw·Dw個數(shù)據(jù),則YL所在塊顯示數(shù)據(jù)的起始地址為:
一塊顯示區(qū)域分為Sw個區(qū),則YL所在的分區(qū)記作:
一區(qū)存放有Dw個顯示數(shù)據(jù),所以YL所在分區(qū)地址與所在塊起始地址之間的相對偏移地址為(YL%Sw)·Dw。所以,只要知道了顯示信息的起始行坐標(biāo),就能得到顯示數(shù)據(jù)在存儲器中的存儲地址。
NL=YL/(Bw·Sw),這里記i=NL/Sw(0≤i≤7),表示顯示信息跨越兩個數(shù)據(jù)塊時需要選擇的數(shù)據(jù)位數(shù)。存儲器輸出16位數(shù)據(jù)[D0,D1,…,D15]后,從Di位控制選擇連續(xù)的8位數(shù)據(jù)[Di,Di+1,…,D7,…,D7+i]輸出到顯示屏。當(dāng)數(shù)據(jù)從一個字節(jié)的Di位開始輸出16位時,如[Di,Di+1,…,D7,…,D15,D0,…,Di-1],前面8位在當(dāng)前顯示是多余的幾位數(shù)據(jù),后面8位數(shù)據(jù)[D8+i,…,D15,D0,…,Di-1]正好是要輸出到顯示屏的8位數(shù)據(jù)。當(dāng)這16位數(shù)據(jù)串行輸出到一個8位的移位寄存器中時,移位寄存器剛好可以容納高8位數(shù)據(jù),并將其輸出顯示。之后各列數(shù)據(jù)的輸出情況同樣如此,不需要額外的指令或電路來對輸出數(shù)據(jù)進(jìn)行選擇輸出。只是在每行第一列數(shù)據(jù)輸出前,通過單片機(jī)模擬i個時鐘脈沖輸出到存儲器,讓輸出數(shù)據(jù)產(chǎn)生錯位,使數(shù)據(jù)從Di位開始輸出。另外,當(dāng)顯示信息剛好是A、B、C、D塊中的某一塊時,無須產(chǎn)生模擬脈沖對數(shù)據(jù)進(jìn)行選擇,而是直接將數(shù)據(jù)輸出顯示。通過分析可知,SPI模塊剛好具有這個功能,通過單片機(jī)額外模擬i個時鐘脈沖,輸出到串行存儲器的時鐘信號端,可以使數(shù)據(jù)錯位,從指定的某一位Di開始輸出。當(dāng)顯示信息跨越Sw-1區(qū)間時,如果一場顯示還沒有完畢,內(nèi)存地址應(yīng)返回到Y(jié)L所在塊的起始地址,并從起始地址開始輸出顯示數(shù)據(jù),單片機(jī)模擬的脈沖數(shù)i也相應(yīng)發(fā)生變化。
頁碼:
1
2
3
下一頁
有意與本網(wǎng)合作者請與《LED大屏網(wǎng)》聯(lián)系。未經(jīng)《LED大屏網(wǎng)》書面授權(quán),請勿轉(zhuǎn)載或建立鏡像,否則即為侵權(quán)。
LED顯示屏