设计一个电子秒表,通过软件延时方式实现秒计时通过两个数码管动态显示秒表时间,时间范围0-60S

利用MCS-51单片机中的 Keil μ Vision3 编写
按照共阴数码管或共阳数码管编写

简单啊,用定时器就可以了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-23
#include <REGX52.H>
#define uchar unsigned char
#define uint unsigned int //通过定时器实现一秒定时,软件延时太麻烦(已做过实验),共阳数码管,
uchar miao,shi,ge,shu;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,};//数码管段码

void delay(uint z)
{

uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void timer0() interrupt 1 //50ms定时器中断,进二十次就是一秒
{ TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
shu++;
if(shu==20)//进二十次就是一秒
{ shu=0;
miao++;
ge=miao%10;//转换数
shi=miao/10;//转换数
if(ge==10)
{
ge=0;
}
if(shi==6)
{
shi=0;
}

}

}
void display(uchar shi ,uchar ge)//显示子程序
{
P3=0x7f;
P0=table[ge];
delay(5);

P3=0xbf;
P0=table[shi];
delay(5);

}
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;//初始化定时器
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
display(shi,ge);
delay(5);
}

}
相似回答