中断系统

2019-07-15 09:34发布

为什么我的中断函数执行时,主程序还在继续进行。
此程序的目的: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;
}


0条回答

一周热门 更多>