我用51单片机控制一个机械手臂搬运物料,求问用一个独立按键,采用外部中断的方法如何实现暂停,开始。

我用51单片机控制一个机械手臂搬运物料,求问用一个独立按键,采用外部中断的方法如何实现暂停,开始。安一下暂停,再按一下开始,用C语言中断程序该怎么写?请高手帮我解答,无限感恩#(真棒)

刚刚为你编写的


已经在单片机上测试成功


原理是,按键第一次被按下后,nn为1,程序一直在中断里面死循环


这样其它指令就暂停了,而中断的原理既是,从哪断开的,就回到那里


在这个死循环中,检测按键时候又被按下


按键又按下后,nn变为0,死循环的条件不满足

追问

非常感谢,请问该程序中的nn是不是需要在前面定义全局变量?uchar nn可以吗?

如果我再设置一个按键,按下后程序从主程序的开头执行该如何实现?能再用一个外部中断吗?程序该如何写?

追答

恩恩 是的,这个变量是需要全局定义的

另外,你想再加一个按键,使单片机从头开始运行

那么直接使用单片机的复位按键即可,无需使用中断

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-26
#include <REG51.H>
#define uchar unsigned char
sbit butt = P1^0;
bit run = 0;
void main(void)
{
while(1)
{ if(butt==0)
{ run = !run;
while(butt==0);
}
}
}
将run放到控制机械手臂运动的程序,当run=0时机械手臂停止,当run=1时机械手臂运动。本回答被网友采纳
第2个回答  2014-03-26
把按键接到外部中断0或1上,在中断服务程序里把电机的开关状态取反即可。