开关就扣可以用P1.0。.
#include<reg52.h>
char code de[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //字形码
char code dex[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //字位码
char yu[]={0,0};
int a,j,t,time_e=13;
void delays(int x) //延时程序
{
int i;
while(x--)
{
for(i=0;i<120;i++);
}
}
void main() //主程序
{
TR0=1; //开启定时器0
EA=1; //EA是开启中断,总开关
ET0=1;
TMOD=0x01; //选择定时器工作方式1
TH0=(65536-50000)/256; //设定时间为50ms
TL0=(65536-50000)%256;
while(1);
}
void gogogo() interrupt 1
{
TH0=(65536-50000)/256; //50ms定时
TL0=(65536-50000)%256;
a++;
yu[0]=time_e/10;
yu[1]=time_e%10;
for(j=0;j<2;j++)
{
P3=dex[j]; //字位
P2=de[yu[j]]; //字形
delays(1);
}
if(a==2) //1S时
{
a=0;t++;
}
if(t==10)
{t=0;time_e--;}
if(time_e==-1)
{
time_e=0;
}
}