跪求 共阳数码管4位8段动态显示。0-9999 从0加到9999.每秒加1. 用c写程序。单片机加数码管 给50分

单片机外没别的芯片。P1口输出断码,P3.0 P3.1 P3.2 P3.3位选
2025-05-16 08:42:53
推荐回答(2个)
回答1:

/这是定时器方式写的,0~9999每秒加1
#include
unsigned char g,s,b,q,;
unsigned char code duan[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0~9共阳

void display();
void time()
{for(n=0;n<500;n++);}

init()
{
g=s=b=q=0;
TMOD=0X01;
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
EA=1;
TR0=1;
ET0=1;
}

void main()
{
init();
while(1)
{display();}
}

void time0() interrupt 1
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%256;
t++;
if(t==20){t=0;g++;}
if(g==10){g=0;s++;}
if(s==10){s=0;b++;}
if(b==10){b=0;q++;}
}

void display()
{
/*个位*/
P3=1;
P0=duan[g];
duan=0;
time();

/*十位*/
P3=2;
P0=ld[s];
time();

/*百位*/
P3=4;
P0=duan[b];
time();
/*千位*/
P3=8;
P0=duan[q];
time();
}

最后,提醒你,共阳数码管,纯51单片机驱动几乎亮不起来,你需要加上位驱动。
如果是共阴的,会不够亮,但能亮。

回答2:

你会用定时器就会写这程序了,好好学吧,大家都很忙