| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1108 人关注过本帖
标题:求助:怎么实现在循环的时候按下按钮跳出或者复位
只看楼主 加入收藏
jkl510158235
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-3-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求助:怎么实现在循环的时候按下按钮跳出或者复位
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned char
uchar num;
sbit K1=P3^2;
sbit K2=P3^3;
bit states=1,auto_run=1;
void my_delay(uchar set_second);
void Delay1000ms();
void Delay100ms();
void scan_key();
void out_put();
void Auto_watering();


void main()
{
    while(1)
    {
    scan_key();
    out_put();

    }
}

void scan_key()
 {     
     if(K1==0)
     {     
     P0=0xff;
     P1=0xff;
        states=~states;
        Delay100ms();
        while(K1==0);
        Delay100ms();
     }
     if(K2==0)
     {
     
     auto_run=~auto_run    ;
     Delay100ms();
     while(K2==0);
     Delay100ms();
     
     }
     
}
     
 void out_put()
 {
      if(states==0)
      {
       if(auto_run==0)
         {
             P0=0xff;
         my_delay(100);“这里延时设定很久,我想通过按下K2来跳出这个if的循环”
         P0=0x00;
            my_delay(100);
            }
       else
         
         P0=0x0f;
      }
       else if(states==1)
       {
           if(auto_run==0)
         P1=0x55;
        else
         P1=0xf0;
       }
 }



void my_delay(uchar set_second)
    {
    uchar j;
    for(j=0;j<set_second;j++)
    {
    Delay1000ms();
    }
    }


void Delay1000ms()        //@11.0592MHz
{
    unsigned char i, j, k;

    _nop_();
    i = 8;
    j = 1;
    k = 243;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}
 void Auto_watering()
 {
     P0=0xff;
    my_delay(2);
    P0=0x00;
    my_delay(2);

 }
 void Delay100ms()        //@11.0592MHz
{
    unsigned char i, j;

    i = 180;
    j = 73;
    do
    {
        while (--j);
    } while (--i);
}
搜索更多相关主题的帖子: 循环 char unsigned void while 
2019-03-17 21:28
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
这里几乎没人懂单片机,如果程序在循环的过程中  能够接收按键信息的话  那就直接跳出去好了
怕就是 在循环过程中 无法接受外界信息

DO IT YOURSELF !
2019-03-18 08:07
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1689
专家分:4262
注 册:2007-12-27
收藏
得分:10 
如果要维持你的程序框架,那么就不要让延时函数傻乎乎地消耗时间,要让延时函数忙着读键盘就好了。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2019-03-18 15:21
快速回复:求助:怎么实现在循环的时候按下按钮跳出或者复位
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023638 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved