|
本帖最后由 yzwzfyz 于 2016-6-21 22:33 編輯
上下卷式滾動方式,首行移動屏后,回到末行
設(shè):
A1(A1由若干個(gè)字節(jié)組成,滿足一行的顯示內(nèi)容)是第1行的顯示內(nèi)容。
An是第n行的顯示內(nèi)容。
做一個(gè)時(shí)間中斷,用以計(jì)時(shí)滾動的時(shí)間,比如,每0.5秒滾一行,就做個(gè)0.5秒計(jì)時(shí)器S5。
做一個(gè)滾動指針PS,PS=1-n。用以指示哪一行放至首行顯示。
當(dāng)S5計(jì)滿時(shí)(0.5秒到),做下列5個(gè)事項(xiàng):
1,PS=PS+1,當(dāng)PS=n+1時(shí),置PS=1,即使得PS=1至n。
2,關(guān)所有顯示。
3,做兩個(gè)臨時(shí)計(jì)數(shù)單元,比R1,R2,令R1=n(用以計(jì)數(shù)刷新了多少行),R2=PS(復(fù)制PS)。
4,從R2行開始取顯示數(shù)據(jù),并從第一行開始顯示,然后R1-1,為0則結(jié)束(即顯示n行后結(jié)束,也就是刷一次屏),R2+1,當(dāng)R2=n+1時(shí),置R2=1,(即從PS行開始滾行,PS行放到第一行去顯示,PS+1行放到第二行,PS-1行放到末行)。
例如PS=4,則將A4的數(shù)據(jù)放到第1行顯示,A5放到第2行顯示......,A3放到最后一行顯示。
5,復(fù)位S5,待下個(gè)S5計(jì)滿(做下次滾行的動作)。
總結(jié):
顯示的內(nèi)容無需變動,無需考慮滾動對其影響,即A1-An,按正常顯示值輸入內(nèi)容。
滾動是將A1至An的顯示數(shù)據(jù),送至屏上的次序進(jìn)行變動實(shí)現(xiàn)的,比如:首行第1次顯示A1,則第2次顯示A2,第3......
哪一行先送至首行,由PS指針決定。
每個(gè)滾動的間隔時(shí)間,將PS調(diào)整一次(+1),就達(dá)到了滾行的目的了。每次先關(guān)屏,再逐行顯示(刷新全屏)。
豎滾同理。不述了。
不想卷滾,則首行移出屏后,不再顯示。即每次將PS前的行清空不顯示即可(清空指滅LED)。 |
|