51单片机0999循环显示(数码管)

发布网友 发布时间:2024-10-24 09:32

我来回答

1个回答

热心网友 时间:2分钟前

#includereg51.h
#includeINTRINS.h
#defineu16unsignedint
#defineu8unsignedchar
u8ds[4];//数码管显示缓存
codeu8w[]={0x01,0x02,0x04,0x08,};//位码
codeu8d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};//断码
voiddispaly(){//显示函数
staticu8a;
a++;
if(a3)a=0;
P0=0xff;
P2=w[a];
P0=d[ds[a]];
}
voidinit()//初始化函数
{TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
EA=1;
ET0=1;
}
u16count=0;
u16js_ms=0;
voidmain()//主函数
{
init();
TR0=1;
while(1){
ds[0]=count/1000%10;//将当前分值送到数码管缓存
ds[1]=count/100%10;
ds[2]=count/10%10;
ds[3]=count%10;
}
}
voidtimer0()interrupt1//1ms定时器
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
dispaly();
if(++js_ms=1000){
js_ms=0;
if(++count999)count=0;
}
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com