c51单片机,怎样实现当A按键按下时执行for循环,然后在按下B按键,停止for循环

2019-07-15 12:01发布

c51单片机,怎样实现当A按键按下时执行for循环,然后在按下B按键,跳出for循环执行其他程序。
程序如下:
start()
{
     for(i=0; i<10000;i++)
     {
            P2^0 = 1;
            delay(500);
            P2^0 = 0;
            delay(100);
     }
}

switch (key)
{
       case  A:   start();  break;
       case  B:   P2^0=0;break;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
tatto_chen
1楼-- · 2019-07-15 12:34
因为你是在循环里,所以还是在循环里判断,而且switch语句最好不要直接判断按键,而是把按键的按下定义成两个数字,这样在跳出case A后会直接进入case B,否则可能会需要再按一次才能进入case B,不过一般情况下,按照7楼的做法已经能达到要求了。 最佳答案
houjue
2楼-- · 2019-07-15 18:14
很简单嘛~~~~你晓得 线程 吗?用 A线程来结束 B线程;用 B线程来结束 A线程 不就可以啦!
coldmars6688
3楼-- · 2019-07-15 21:53
按键连接在外中断。
coldmars6688
4楼-- · 2019-07-16 01:16
houjue 发表于 2017-02-08 09:30
很简单嘛~~~~你晓得 线程 吗?用 A线程来结束 B线程;用 B线程来结束 A线程 不就可以啦!

51有线程??
freewnner
5楼-- · 2019-07-16 03:52
 精彩回答 2  元偷偷看……
hanhan1129
6楼-- · 2019-07-16 07:12
freewnner 发表于 2017-2-8 09:57
采用外部中断吧  A B 设为外部中断。

除了中断还有其他方法了没?因为用的是矩阵键盘,使用外部中断的话,就需要将这两个按键独立出来

一周热门 更多>