找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

51單片機八位數(shù)碼管怎么讓第一位0閃爍,其他位不變

查看數(shù): 2142 | 評論數(shù): 5 | 收藏 1
關(guān)燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2021-11-16 13:16

正文摘要:

八位數(shù)碼管怎么讓第一位0閃爍,其他位不變

回復(fù)

ID:123289 發(fā)表于 2021-11-18 14:44
LED各個位閃爍的方法(設(shè)8個LED):
1、做一個標記S03,S03每0.3秒求反一次。(在時間中斷中實現(xiàn),你可以不用0.3秒,改用其它值)
2、用一個字節(jié)BX其8個位叫:BX7-BX0(其中的一個叫BXN),分別對應(yīng)指出哪個LED位正在閃爍。
   例如當BX=10000000(即BX7=1,BX6-0=0)表示只有LED7閃動顯示,其它不閃。BX=10100000,表示LED7,5同時閃。
3、定義一個字節(jié)ID,指示掃描正處于顯示哪一個LED,每次時間中斷將ID+1,且ID=0-7。比如ID=4,則顯示LED4,其它的不顯示。
4、定義8個字節(jié)RXS7-RXS0,用于存放LED的顯示內(nèi)容(當然需要你事先做好譯碼工作)。
5、每次中斷只顯示的一個LED(先關(guān)全部,再顯示一個),顯示哪一位由ID指出。
6、是否將RXSN(RXS7-RXS0中的一個)送到LED進行顯示,由下列計算決定:BXS=/BXN+BXN*S03
     當BXS=1時,表示顯示,則將RXSN送至LED顯示;

     當BXS=0時,則將不顯示(實際是將黑字送到LED,通常是FFH或00H,也可用“-”)。
例如:ID=2,RXS2=“3”(譯碼后的3),BX2=1(閃動),S03=0。則:BXS=/BX2+BX2*S03=/1+1*0=0,所以不顯示,將FFH送至LED2(無顯)。
     如果送“_”則形成“_”與“3”互閃。
例如:ID=2,RXS2=“3”(譯碼后的3),BX2=1(閃動),S03=1。則:BXS=/BX2+BX2*S03=/1+1*1=1,所以顯示,將“3”送至LED2。
例如:ID=2,RXS2=“3”(譯碼后的3),BX2=0(不閃動),S03=x。則:BXS=/BX2+BX2*S03=/0+1*S03=1,所以顯示,將“3”送至LED2。

如此閃動就操作簡單了:需要哪位閃動,就將哪位對應(yīng)的BXn置1,即可。不閃就清0。

ID:954686 發(fā)表于 2021-11-17 13:13
   if(FlashFlag)
            {
                Dis_Buff[0] = SEG_Hidde;
                Dis_Buff[1] = DIG[1];
                Dis_Buff[2] = DIG[2];
            }
            else
            {
                Dis_Buff[0] =  DIG[0];
                Dis_Buff[1] = DIG[1];
                Dis_Buff[2] = DIG[2];
            }
類似這種方法
ID:972563 發(fā)表于 2021-11-17 12:01
應(yīng)該是被中斷打斷了,雖然沒有對比試過,但是在加入T0中斷處理之前沒有末位跳的現(xiàn)象,加了中斷處理后出現(xiàn)了。
ID:52667 發(fā)表于 2021-11-16 20:54
控制位端
ID:908826 發(fā)表于 2021-11-16 14:33
位選,你這個照片的右邊,數(shù)碼管有幾個引腳那是用來位選的。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表