编程实现共阳极八个数码管依次显示12345678

2024-11-18 14:39:55
推荐回答(1个)
回答(1):

那段码表还是共阴数码管的,要换成共阳数码管的.其实,用什么数码管都一样,只要显示出数字就行呗,为什么非要改成共阳呢,你自己还不会改程序。另外,你的仿真图与程序不符。

那个仿真图可以减化的,见下图,注意数码管的接法。改好的程序如下;

#include

#include

#define uchar unsigned char

#define unit unsigned int

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9共阳数码管段码表

uchar led[]={1,2,3,4,5,6,7,8};

void delayms(uchar x)

{  unit j;

   for( ;x>0;x--)

   for(j=200;j>0;j--);

}

void display()

{

uchar aa=0x80,j;

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

{

P3=aa;

P0=table[led[j]];

delayms(2);

aa=_cror_(aa,1);

}

}

void main()

{

while(1)

{

display();

}

}