#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar i,num;
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;//允许外部中断0
IT0=0;//电平触发方式
while(1)
{
for(num=0;num<16;num++)
{
P2=0xf8;
P0=table[num];
delay(500);
}
}
}
void delay(uint z)//延迟程序
{
uint x,y;
for(x=200;x>0;x--)
for(y=z;y>0;y--);
}
void exter0() interrupt 0
{
for(i=0;i<4;i++)
{
P1=0;
delay(500);
P1=0xff;
delay(500);
}
}
本人一新手,为学习中断知识,写了以上程序,本意:在主程序中让数码管显示0到f,接入外部中断0(硬件接入)后,流水灯闪烁四次,然后退出中断,返回主程序。
但出现如下问题:单片机还未接入中断,程序便自己进入中断了。
不知是程序的问题,还是硬件问题。望指教!谢谢了~~ |