不知道单片机中断程序分析
时间:10-02
整理:3721RD
点击:
下面这个程序是怎样进行的?中断是在什么时候开始的,有点不太懂
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
sbit dula=P2^1;
sbit wela=P2^0;
uint code chart []=
{
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d,
0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c,
0x39, 0x5e, 0x79, 0x71, 0x00,
};
uint tt,temp,num;
void delay(uint);
void main()
{
num=0;
temp=0xfe;
P1=temp;
TMOD=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
wela=1;
P0=0x00;
wela=0;
dula=1;
P0=0x3f;
dula=0;
while(1)
{
delay(100);
temp=_crol_(temp,1);
P1=temp;
}
}
void delay(uint z)
{
uint x,y;
for(x=448;x>0;x--)
for(y=z;y>0;y--);
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
if(tt==20)
{
num++;
if(num>16)
num=0;
dula=1;
P0=chart [num];
dula=0;
tt=0;
}
}