程序:
跟郭天祥视频教程中断那段一样。写进单片机以后除了数码管数字变换以外,led1也亮,但是没中断。P3.2口输入低电平能中断。
用Keil调试程序,程序竟然连中断服务里面的led1=0有运行。
求助,程序哪里错了?
#include<reg52.h>
sbit wela=P2^7;
sbit dula=P2^6;
sbit led1=P1^1;
sbit st=P3^2;
unsigned char num;
unsigned code table[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(unsigned char y)
{
unsigned int a,b;
for(a=y;a>0;a--)
for(b=0;b<500;b++);
}
void main()
{
st=0;
EA=1;
EX0=1;
IT0=1;
wela=1;
P0=0x00;
wela=0;
while(1)
{
for(num=0;num<16;num++)
{
dula=1;
P0=table[num];
dula=0;
delay(200);
}
}
}
void stop(void) interrupt 0
{
led1=0;
}
1L 2L
SORRY 那个ST是我自己后来加上去的,把那个删除,还是这样。。
而且我的情况是不中断,但是led1会亮。用调试看到运行的时候连led1=0这一条都会执行。
当IT0=0;
我的P3.2口输入低电平其实并没有一直中断只是程序运行速度变慢了。不知道怎么回事。