51单片机二段数码管如何显示数字并且不闪烁?

2024-12-14 20:37:24
推荐回答(2个)
回答1:

你是想小于10时,只显示个位,十位是灭的,只有超过9时,才显示十位吗?

显示时,就不用再检查按键了,

if(num>=10){

//while(k1==1);//删掉这行

P2=0xfe;  //这行和下行交换一下

P0=Dsy_Code[num/10];

下图是仿真的结果,可以正常显示了。但是,在按键的时候,个位会闪一下,这是因为按键后有等待按键的语句

if(k1==0){

while(k1==0);  //因为这行,会闪一下,这是正常的

num++;

回答2:

每一位数码管点亮后保持4~15ms(延时),再换到下一位显示