求基于51单片机的C外部中断程序指导~
由于毕设要做一个六足机器人避障,PWM驱动舵机运动部分都已完成,而红外传感器测距形式是若有障碍物输出一个数字高电平信号,现在需要一个外部中断程序避障,求大神指教啊。PS:管脚定义和运动控制程序都已写好,只需要一个外部中断实现右转,右转程序用YZ()代替就好,求大神们了。
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delayms(uint);
sbit INT=P3^2;
sbit led1=P2^0;//这是测试时用的,你用不到。
uchar num;
void main()
{
EA=1;
EX0=1;
INT=0;//这个地方时低电平开中断,你用的时候要把你的高电平取反加到这个地方
while(1);
}
void INT_0 () interrupt 0
{ delayms(500);//你用时不要加延时,不然它要等待1秒才右转
YZ();//在中断中调用你的右转程序
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
你自己加到你的程序里试试,这段程序我测试过,没有问题!具体情况要跟你程序具体结合,相信你可以完成,祝你毕业论文一切顺利!