用定时器T0 以间隔600ms在六位数码管上依次显示0123cdefedc3210

c语言
2025-04-07 13:41:59
推荐回答(1个)
回答1:

8位数码管吧?8位数码管显示小写字母基本无力,死难看的。。。8位数码管顶多显示个数字,显示字幕用液晶吧。

给你一个依次循环显示0123456789的程序吧。现场手打的啊。

#include 
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98}//这个是共阳的0-9的编码。
unsigned char i,j;

void main()
{
 TMOD=0X01;
 TH0=0XB1;
 TL0=0XE0;//定时溢出时间是20ms
 EA=1;
 ET0=1;
 TR0=1;
 while(1);//等待溢出
}
void led() interrupt 1
{
 TH0=0XB1;
 TL0=0XE0;//定时溢出时间是20ms
 P1=table[i];
 j++;
 if(j==100)//每2s左右显示变化一次
 {i++;}
 if(i==10)//显示到9,再从0开始循环。
 {i=0;}
}