小白求救,51单片机利用两个数码管实现60秒倒计时?

数码管个为位总是从5开始倒计时,之后才正常,十位显示不全

我想看看你写的程序!可以就发我一下你的代码和你的那个硬件图吧。

然后下面这个程序你可以参考一下。是符合我的硬件图的。

#include <reg51.h>

unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void show(unsigned char n);

void delay(unsigned int k);

void main()

{

unsigned char i;

int j;

while(1)

{

for(i=60;j=60,i>0;i--)

while(j--)

show(i);

}

}

void show(unsigned char n)

{

P0=table[n%10];

P1=0x01;

delay(10);

P1=0xFF;

P0=table[n/10];

P1=0x02;

delay(10);

P1=0xFF;

}

void delay(unsigned int k)

{

unsigned char i,j;

for(i=0;i<100;i++)

for(j=0;j<k;j++);

}

追问

感谢解答,我那个问题已经解决了,我用的定时器计时的。

追答

嗯,用定时器精准些。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-10-28

个位数能够显示正常,那么就说明十位数的处理代码出了问题;

给出代码看看吧

本回答被网友采纳
相似回答