今天有一个人发了这样一个程序,没有定义独立按键 。他告诉我是默认的, 我觉得很神奇,试了一下 ,真的起作用,按下按键后计时就开始??、我觉得不可思议,求高手指点,我是一个满月的菜鸟
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit d1=P2^0;
sbit d2=P2^1;
sbit d3=P2^2;
uint num,aa,ms,mg,cc;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint z);
void main()
{
P0=table[0];
P2=1;
delay(5);
P0=table[0];
P2=2;
delay(5);
P0=table[0];
P2=4;
delay(5);
EA=1;
EX0=1;
EX1=1;
IT0=1;
IT1=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
TR0=0;
while(1)
{
while(aa==2)
{
aa=0;
num++;
cc=num%10;
mg=num/10%10;
ms=num/100;
}
P0=table[ms];
P2=1;
delay(5);
P0=table[mg];
P2=2;
delay(5);
P0=0x40;
P2=3;
delay(5);
P0=table[cc];
P2=4;
delay(5);
}
}
void kaiguan() interrupt 0 using 1
{
TR0=~TR0;
}
void guiling() interrupt 2 using 1
{
while(TR0==0)
{
num=0;
P0=table[0];
P2=1;
delay(5);
P0=table[0];
P2=2;
delay(5);
P0=0x40;
P2=3;
delay(5);
P0=table[0];
P2=4;
delay(5);
}
}
void jishi() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
} |