『壹』 51單片機數碼管顯示不停閃爍
動態顯示,顯示程序的調用,不能有條件。
必須不停的調用。
你的顯示程序,是滿足了什麼什麼條件,才調用一次?
這就耽誤事了。
你顯示的時候,先顯示分,僅僅顯示幾個毫秒,之後,就顯示秒。
秒,顯示幾個毫秒,之後,沒有消隱,一直顯示到下次調用顯示程序。
所以,秒,顯示穩定,分,一閃就沒了。
『貳』 單片機數碼管小數點閃爍
可以用定時器或者延時程序來設置。
其實數碼管的小數點就是一個LED燈。
因為數碼管是共陽極的,所以只要在數碼管H引腳(即對應小數點的那個引腳)用單片機給它一個低電平,就能讓小數點亮了。
首先讓小數點亮起來,然後可以用延時1秒的程序或者定時器定時1秒後,讓小數點滅,之後再延時1秒,或者定時1秒,讓小數點亮,這樣循環起來,就OK了
『叄』 請教高手,用51單片機獨立按鍵控制數碼管數字加減,為什麼在按下獨立按鍵的時候會出現閃爍怎麼回事
因為你按鍵的時候影響了數碼管刷新;
數碼管一般都是動態掃描的,利用人眼的視覺暫留做的,你按下按鍵的時候,肯定有延時消抖,延時的時候就影響了數碼管顯示,所以數碼管刷新的慢了,人眼就能分辨出來亮和滅的狀態....
解決辦法
1、改進按鍵掃描
2、改進數碼管顯示
3、用嵌入式系統
以上三選一即可解決
『肆』 單片機數碼管小數點閃爍
假設4個數碼管,每個亮2ms,一輪掃描共亮8ms,我們可以讓其以120次為周期(0.96s),掃描前60次小數點亮,後60次小數點不亮,這樣小數點就 以大約1HZ的速度閃爍。
例如,小數點在第二位,數碼管七段碼table[]中不含小數點
顯示部分如下
if(a<60)
{dataport=(table[a1]);
sm1=0; Delay1ms(2);sm1=1;
dataport=(table[a2])|0x80;//第二位多個小數點
sm2=0; Delay1ms(2);sm2=1;
dataport=(table[a3]);
sm3=0; Delay1ms(2);sm3=1;
dataport=(table[a4]);
sm4=0; Delay1ms(2);sm4=1;
ia++;
}
else {dataport=(table[a1]);
sm1=0; Delay1ms(2);sm1=1;
dataport=(table[a2]); //第二位無小數點
sm2=0; Delay1ms(2);sm2=1;
dataport=(table[a3]);
sm3=0; Delay1ms(2);sm3=1;
dataport=(table[a4]);
sm4=0; Delay1ms(2);sm4=1;
ia++;
}
if(a==120) a=0;//120次後重新歸零
『伍』 51單片機按鍵時,數碼管會閃爍一下.原因是什麼
原因很簡單,這是代碼和數碼管驅動的問題
按鍵會影響數碼管顯示,這是單片機直接驅動數碼管會出現的問題,而數碼管則是工作在動態掃描方式的,若是採用帶有鎖存器件的數碼管驅動,則不會出現此類現象,因為單片機是周期性的掃描工作方式,單片機直接驅動數碼管的電路,當單片機掃描到按鍵的時候,數碼管部分就停止了(一般的代碼都這樣,除非數碼管是工作在靜態掃描方式)
直接驅動數碼管,按鍵的代碼一般都會寫一些延時,用來軟體消除按鍵的抖動,若延時的時間太長,就會影響數碼管的顯示效果,另外有些還會增加等待按鍵松開的語句,這種語句一般都是一個死循環,除非按鍵被松開
解決辦法是,減少按鍵消抖動延時的時間,在等待按鍵松開的死循環語句中調用數碼管顯示函數,這樣基本上就可以解決此類問題
『陸』 單片機:如何讓數碼管閃爍
其它照常
一段時間輸出與0xff做與運算
一段時間輸出與0x00做與運算