愛伊米

按鍵控制流水燈

實驗板電路圖如圖

按鍵控制流水燈

if語句控制P0口8位LED的流水方向

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

sbit S1=P1^4; //將S1位定義為P1。4

sbit S2=P1^5; //將S2位定義為P1。5

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

函式功能:主函式

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

void main(void)

{

while(1)

{

if(S1==0) //如果按鍵S1按下

P0=0x0f; //P0口高四位LED點亮

if(S2==0) //如果按鍵S2按下

P0=0xf0; //P0口低四位LED點亮

}

}

用swtich語句的控制P0口8位LED的點亮狀態

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

sbit S1=P1^4; //將S1位定義為P1。4

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

函式功能:延時一段時間

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

void delay(void)

{

unsigned int n;

for(n=0;n

}

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

函式功能:主函式

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

void main(void)

{

unsigned char i;

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

while(1)

{

if(S1==0) //如果S1鍵按下

{

delay(); //延時一段時間

if(S1==0) //如果再次檢測到S1鍵按下

i++; //i自增1

if(i==9) //如果i=9,重新將其置為1

i=1;

}

switch(i) //使用多分支選擇語句

{

case 1: P0=0xfe; //第一個LED亮

break;

case 2: P0=0xfd; //第二個LED亮

break;

case 3:P0=0xfb; //第三個LED亮

break;

case 4:P0=0xf7; //第四個LED亮

break;

case 5:P0=0xef; //第五個LED亮

break;

case 6:P0=0xdf; //第六個LED亮

break;

case 7:P0=0xbf; //第七個LED亮

break;

case 8:P0=0x7f; //第八個LED亮

break;

default: //預設值,關閉所有LED

P0=0xff;

}

}

}