单片机的循环的问题。

来源:百度知道 编辑:UC知道 时间:2024/06/11 12:55:11
#include<reg52.h>
#define unit unsigned int
#define uchar unsigned char
void delay (unit);
sbit D1=P0^0 ;
sbit D3=P0^1 ;
sbit D5=P0^0;
sbit D7=P0^1 ;
void main()
{
while(1)
{
while(1)

{ P0=0x55;
delay(100);
P0=0xAA;
delay(100);
} //怎么可以把这边执行完之后,跳出程序执行下面的呢?
我试了几次,程序执行到 这边就停止了。

D1=0;
delay(100) ;
D1=~D1;
delay(100) ;

//P0=0xEF;
// P0=~P0;
//delay(100);
}

}
void delay (unit z)
{
unit x,y;
for (x=z;x>0;x--)
for(y=100;y>0;y--);
}
这个问题我主要想学习 如何 从while()语句中如何跳出
就是1 3 5 7 先同时闪烁, 后 2 4 6 8 然后闪烁。 过段时间后, 1灯闪 接着 2 灯闪,以此类推。

#include<reg52.h>
#define unit unsigned int
#define uchar unsigned char
void delay (unit);
sbit D1=P0^0 ;
sbit D3=P0^1 ;
sbit D5=P0^0;
sbit D7=P0^1 ;
void main()
{
while(1){
P0=0x55;
delay(100);
P0=0xAA;
delay(100);
D1=0; //把第二个while(1)语句去掉
delay(100) ;
D1=~D1;
delay(100) ;
//P0=0xEF;
//P0=~P0;
//delay(100);
}
}
void delay (unit z)
{
unit x,y;
for (x=z;x>0;x--)
for(y=100;y>0;y--);
}

while(1)
{
P0=0x55;
delay(100);
P0=0xAA;
delay(100);
break; //加一个break;跳出while循环
}

while(1)
{
while(1)

{ P0=0x55;
delay(100);
P0=0xAA;
delay(100);
break; //加一个break;