標(biāo)題:
51單片機(jī)匯編數(shù)碼管什么移動(dòng)啊?求思路
[打印本頁(yè)]
作者:
1798351955
時(shí)間:
2022-10-18 11:40
標(biāo)題:
51單片機(jī)匯編數(shù)碼管什么移動(dòng)啊?求思路
就是我顯示一條數(shù)字在向左移位
作者:
yzwzfyz
時(shí)間:
2022-10-19 10:38
先都教你更復(fù)雜的:LED各個(gè)位閃爍的方法(設(shè)8個(gè)LED):
"1、做一個(gè)標(biāo)記S03,S03每0.3秒求反一次。(在時(shí)間中斷中實(shí)現(xiàn),你可以不用0.3秒,改用其它值)
2、用一個(gè)字節(jié)BX其8個(gè)位叫:BX7-BX0(其中的一個(gè)叫BXN),分別對(duì)應(yīng)指出哪個(gè)LED位正在閃爍。
例如當(dāng)BX=10000000(即BX7=1,BX6-0=0)表示只有LED7閃動(dòng)顯示,其它不閃。BX=10100000,表示LED7,5同時(shí)閃。
3、定義一個(gè)字節(jié)ID,指示掃描正處于顯示哪一個(gè)LED,每次時(shí)間中斷將ID+1,且ID=0-7。比如ID=4,則顯示LED4,其它的不顯示。
4、定義8個(gè)字節(jié)RXS7-RXS0,用于存放LED的顯示內(nèi)容(當(dāng)然需要你事先做好譯碼工作)。
5、每次中斷只顯示的一個(gè)LED(先關(guān)全部,再顯示一個(gè)),顯示哪一位由ID指出。
6、是否將RXSN(RXS7-RXS0中的一個(gè))送到LED進(jìn)行顯示,由下列計(jì)算決定:BXS=/BXN+BXN*S03
當(dāng)BXS=1時(shí),表示顯示,則將RXSN送至LED顯示;
當(dāng)BXS=0時(shí),則將不顯示(實(shí)際是將黑字送到LED,通常是FFH或00H,也可用“-”)。
例如:ID=2,RXS2=“3”(譯碼后的3),BX2=1(閃動(dòng)),S03=0。則:BXS=/BX2+BX2*S03=/1+1*0=0,所以不顯示,將FFH送至LED2(無(wú)顯)。
如果送“_”則形成“_”與“3”互閃。
例如:ID=2,RXS2=“3”(譯碼后的3),BX2=1(閃動(dòng)),S03=1。則:BXS=/BX2+BX2*S03=/1+1*1=1,所以顯示,將“3”送至LED2。
例如:ID=2,RXS2=“3”(譯碼后的3),BX2=0(不閃動(dòng)),S03=x。則:BXS=/BX2+BX2*S03=/0+1*S03=1,所以顯示,將“3”送至LED2。
如此閃動(dòng)就操作簡(jiǎn)單了:需要哪位閃動(dòng),就將哪位對(duì)應(yīng)的BXn置1,即可。不閃就清0。
"
作者:
yzwzfyz
時(shí)間:
2022-10-19 10:40
再教你:LED移位顯示的方式
LED移位的方式(8個(gè)LED右移):
繼承“LED各個(gè)位閃爍的方法:”的貼子。
假設(shè)每秒右移一次,8秒后移完變黑,黑顯示值為“FFH”。
則每秒做一件事,即可達(dá)成目的:
"FFH"→RXS7→RXS6→RXS5→RXS4→RXS3→RXS2→RXS1→RXS0。
當(dāng)然應(yīng)先做RXS1→RXS0,最后做"FFH"→RXS7。
如是移完后顯示“--------”,則:
"-"→RXS7→RXS6→RXS5→RXS4→RXS3→RXS2→RXS1→RXS0。
如此:移位的動(dòng)作,僅僅是修改顯示緩沖RXSn的內(nèi)容而矣。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1