愛伊米

用for、while、do-while​語句控制蜂鳴器、流水燈

用for、while、do-while​語句控制蜂鳴器、流水燈

用for語句控制蜂鳴器

上面的電路圖中p1。7接的是蜂鳴器

#include//包含微控制器暫存器的標頭檔案

sbit sound=P1^7; //將sound位定義為P3。7

/****************************************

函式功能:延時形成1600Hz音訊

****************************************/

void delay1600(void)

{

unsigned char n;

for(n=0;n

}

/****************************************

函式功能:延時形成800Hz音訊

****************************************/

void delay800(void)

{

unsigned char n;

for(n=0;n

}

/****************************************

函式功能:主函式

****************************************/

void main(void)

{

unsigned int i;

while(1)

{

for(i=0;i

{

sound=0; //P3。7輸出低電平

delay1600();

sound=1; //P3。7輸出高電平

delay1600();

}

for(i=0;i

{

sound=0; //P3。7輸出低電平

delay800();

sound=1; //P3。7輸出高電平

delay800();

}

}

}

用while語句控制LED

電路中是p0口接的流水燈!

#include//包含微控制器暫存器的標頭檔案

/****************************************

函式功能:延時約60ms (3*100*200=60000μs)

****************************************/

void delay60ms(void)

{

unsigned char m,n;

for(m=0;m

for(n=0;n

}

/****************************************

函式功能:主函式

****************************************/

void main(void)

{

unsigned char i;

while(1) //無限迴圈

{

i=0; //將i初始化為0

while(i

{

P0=i; //將i送P0口顯示

delay60ms(); //延時

i++; //i自增1

}

}

}

用do-while語句控制P0口8位LED流水點亮

電路中是p0口接的流水燈!

#include//包含微控制器暫存器的標頭檔案

/****************************************

函式功能:延時約60ms (3*100*200=60000μs)

****************************************/

void delay60ms(void)

{

unsigned char m,n;

for(m=0;m

for(n=0;n

}

/****************************************

函式功能:主函式

****************************************/

void main(void)

{

do

{

P0=0xfe; //第一個LED亮

delay60ms();

P0=0xfd; //第二個LED亮

delay60ms();

P0=0xfb; //第三個LED亮

delay60ms();

P0=0xf7; //第四個LED亮

delay60ms();

P0=0xef; //第五個LED亮

delay60ms();

P0=0xdf; //第六個LED亮

delay60ms();

delay60ms();

P0=0xbf; //第七個LED亮

delay60ms();

P0=0x7f; //第八個LED亮

delay60ms();

}while(1); //無限迴圈,使8位LED迴圈流水點亮

}

用for、while、do-while​語句控制蜂鳴器、流水燈