为什么我的中断函数执行时,主程序还在继续进行。
此程序的目的:8位数码管动态显示数字的时候,P2^0接低电平,执行中断程序(d1亮)。
问题:d1亮时,主程序继续执行。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit a=P2^2;
sbit b=P2^3;
sbit c=P2^4;
sbit d1=P2^0;
uint i;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint z);
void main()
{
EA=1;
EX0=1;
IT0=0;
while(1)
{
for(i=0;i<8;i++)
{
switch(i)
{
case(0):c=0;b=0;a=0;break;
case(1):c=0;b=0;a=1;break;
case(2):c=0;b=1;a=0;break;
case(3):c=0;b=1;a=1;break;
case(4):c=1;b=0;a=0;break;
case(5):c=1;b=0;a=1;break;
case(6):c=1;b=1;a=0;break;
case(7):c=1;b=1;a=1;break;
}
P0=table[i];
delay(1000);
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=124;y>0;y--) ;
}
void exter0() interrupt 0
{
d1=0;
}
一周热门 更多>