51单片机芯片是89C52实现秒表计时器!急急……

2022-03-10 科技 137阅读
#include
unsignedcharx,y;
sbitH=P3^6;
unsignedcharD[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//用于数字0~9的显示数据表

voiddelay(unsignedchara){//延时程序
unsignedchari;
while(a--)
for(i=115;i>0;i--);
}
voiddisplay(unsignedcharx)//显示2位数字
{
P2=0x7f;//使能低位数码管
P0=D[x%10];//显示低位
delay(5);//延时
P2=0xbf;//使能高位数码管
P0=D[x/10];//显示高位
delay(5);//延时
}
voidmain(){
x=y=0;
EA=1;//开总中断
EX0=1;//开外部中断0
IT0=1;//INT0为下降沿中断
ET0=1;//开定时器0中断
TMOD=0X01;//设定T0工作模式
TH0=(65536-50000)/256;//设定T0初值
TL0=(65536-50000)%256;
TR0=1;//启动T0
while(1){
display(x);//刷新显示X
if(x==59)H=~H;//x=59时,将P3.6取反
}
}
voidint0()interrupt1
{
y++;
while(y==20)//Y记满20后x+1
{
y=0;
x++;
if(x==60)
x=0;
}
TH0=(65536-50000)/256;//T0重装装初值
TL0=(65536-50000)%256;}

voidit0()interrupt0using1
{ET0=~ET0;}//关定时器中断
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com