#include<reg52.h>
#define uchar unsigned char
uchar i=0,j=0;
bit b=0;
void main()
{
uchar sum[]={0xc0,0xf9,0xa4,
0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
EX0=1;
IT0=1;
EX1=1;
IT1=1;
EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
while(1)
{
P0=sum[j/10];
P1=sum[j%10];
}
}
void time() interrupt 1
{
i++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(i==20)
{
i=0;
j++;
}
if(j==60)
{
j=0;
}
}
void time2() interrupt 0
{
if(b==0)
{
TR0=0;
b=1;
}
else
{
b=0;
TR0=1;
}
}
void time3() interrupt 2
{
j=0;
i=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
}
有些地方不太理解
如果定时时间到了,跳到中断,什么时候返回主函数
如果正在计时器中断中运行,外部中断启动,会不会跳到外部中断?
EX0=1;
IT0=1;
EX1=1;
IT1=1;
EA=1;
ET0=1;这几个有没有顺序? |