怎么能让这段程序执行一次后不再循环呢

2020-01-27 11:50发布

bit K1=P1^0;
sbit K2=P1^1;
//sbit K3=P1^2;
//sbit K4=P1^5;
//sbit K5=P1^6;

sbit OUT1=P3^4;
sbit OUT2=P3^3;
sbit OUT3=P3^1;
sbit OUT4=P3^0;
unsigned char n,b,a,i;

void main()
{
    TMOD=0X01;
    TH0=(65535-50000)/256;
    TL0=(65535-50000)%256;
    EA=1;
    ET0=1;
    TR0=1;
    while(K1==0);
        {
        n=1;
        n++;
        }
        }
void Timer0(void) interrupt 1 using 1 //定时器0中断处理
{
    TH0=(65535-50000)/256;
    TL0=(65535-50000)%256;
    n++;
        if(n>=20)
        {
        OUT1=0;OUT3=0;OUT2=1;
        }       
        if(n>=100)
        {
        OUT1=1;
        }
        if(n>=150)
        {
        OUT2=0;
        }       
        if(n>=200)
        {
        OUT2=1;OUT3=1;
        }

                                  //OUT3  总电源
        }
K1为外接启动信号,还有打算用K2作为备用中断信号接口,K2==0的时候也可以让out3=0,输出是低电平触发,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
gyzzg2030
1楼-- · 2020-01-27 17:33
楼主想把哪一段执行一次?
wo55577276
2楼-- · 2020-01-27 19:03
就是想跳出whlie循环语句,尝试过break;keil提示错误,折磨我一天了,
xiaoziwen
3楼-- · 2020-01-27 20:06
执行一次 就别写while
yyts
4楼-- · 2020-01-27 23:28
wo55577276 发表于 2013-6-22 17:15
就是想跳出whlie循环语句,尝试过break;keil提示错误,折磨我一天了,

while(K1==0);
信天游
5楼-- · 2020-01-28 01:32
 精彩回答 2  元偷偷看……
siyeb
6楼-- · 2020-01-28 06:50
用状态机- -多好用的。

一周热门 更多>