怎麼用C語言程式使雙位數碼管顯示出穩定的數字

時間 2021-09-01 18:46:16

1樓:匿名使用者

可能原因:1.你的延時時間可能太短,超過人眼視覺暫留時間,你可以改你的delayms(3)或者直接把delay 函式裡的110改小一些(當然改了110就不是1ms一次了,不過本身就不是精確計時無所謂)

2.你的數碼管開關順序不對,不知道你用的是共陰還是共陽,不過一般是寫完資料後再開數碼管控制位,如果你的程式裡1是開,0是關的話,那麼這個程式相當於是兩個數碼管在p1=table之後會有一個同時工作的時間,之後才關斷其中一個,這時數碼管的顯示會受到影響。推薦編寫順序是shu12=0;

shu11=1;

p1=table[shi1];

delayms(5);

shu11=0;

shu12=1;

p1=table[ge1];

delayms(5);這樣保證一個時間內只有一個數碼管工作,新寫入的資料不會對另一個數碼管造成影響。下面的程式同樣採用這種順序。

3.雖然可能性不大,不過也有可能是硬體電路的連線接觸不良導致的訊號跳變,這個萬用表測下就能知道了

2樓:匿名使用者

樓主你好,我用過段碼式lcd,沒有用過數碼管。但是一般來說數字不穩定(閃爍)的原因是你刷一次的週期太長,就比如你延時5毫秒太長,改短試試。

另外處理數碼管程式最好做在中斷裡面,不然延時的時候mcu就一直在那死等,什麼也不做了。

3樓:匿名使用者

delayms(5)太長了,改短成us級的就行

c語言如何程式設計點亮一個數碼管顯示數字

4樓:張濤我愛你

共陰極數碼管也就是說,當控制訊號為1時該段led點亮,8段數碼管的數字0~9定義為:

3fh,06h,5bh,4fh,66h ;012346dh,7dh,07h,7fh,6fh ;56789以下為簡易8路搶答器的例程:

#include

#define uchar unsigned charuchar table=;

sbit rstkey=p2^2;

sbit speaker=p2^0;

void delay()//延時約400毫秒main()

switch(key)

p1=table[i];//顯示按下搶答器的號p0=key;//顯示按下鍵號的led

while(1)}}

用c語言程式設計 怎麼用微控制器使2位數碼管動態顯示00---99?

5樓:匿名使用者

我有個程式

bai,不過是0~

du9 你可以修改下:

#include

unsigned char code1[10] = ;

unsigned int a;

void delay()

main()}}

用c語言編一段程式,要求同時讓四個一位數碼管分別顯示1.-.2.6,急求(51微控制器做的,共陽數碼

6樓:匿名使用者

#include

#define uchar unsigned charuchar tab=;  //0到9

uchar num,dat,time;

uchar led=;

void t1isr() interrupt 3p0=~tab[led[num]];

num++;

num&=0x03;

}main()

用C語言編寫程式資料結構,用C語言編寫程式 資料結構 20

第5 題 include include define max 256 typedef int list max typedef int elemtype typedef int status define overflow 1 define ok 1 define list init size 8...

用C語言編寫“背單詞程式”,用C語言編寫如下程式?

董俊錕 include include include struct word 定義一個word的結構體,裡面的兩個成員分別放英語單詞和相應的漢語翻譯 int point 0 統計分數的 int count1 0 測試的次數 void tianjia struct word str 100 int ...

C語言程式設計,編寫程式,求10 用C語言

第0題 include define maxlen 70 main int i,temp,flag 0 printf 請輸入第一個字串 n scanf s s1 printf 請輸入第二個字串 n scanf s s2 i strlen s1 temp strlen s2 if i main x i...