#include<intrins.h>
#define uchar unsigned char
uchar cnt,times
void delay()
{
uchar i
TMOD=0x01
TH0=(65536-50000)/256
TL0=(65536-50000)%256
TR0=1
for(i=0i<timesi++)
{
while(TF0==0)
TH0=(65536-50000)/256
TL0=(65536-50000)%256
TF0=0
}
TR0=0
}
void ext0() interrupt 0
{
uchar i,j
P1=0xfe
times=8
for(i=0i<5i++)
{
for(j=0j<8j++)
{
P1=_crol_(P1,1)
delay()
}
}
}
void ext1() interrupt 2
{
uchar i,j
P1=0x7f
times=12
for(i=0i<3i++)
{
for(j=0j<8j++)
{
P1=_cror_(P1,1)
delay()
}
}
}
main()
{
EX0=1
EX1=1
IT0=0
IT1=1
PX0=0
PX1=1
while(1)
}
把这行的void int0() interrupt 0 //using 0,定义的去掉,不用定义寄存器组,因为定义了,在中断子程序和主程序中都调用了延时子程序,这样在中断子程序中破坏了主程序的变量值,不定义时,编译时就是保护主程序的变量。如果要定义的话,要改成void int0() interrupt 0 using 1这样就可以了。
这个已经调试通过的,放心好了。不过,别忘了,给个采纳呀!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)