51单片机学习笔记———4.两个按键控制LED小灯
两个按键的控制LED
的程序:
/** @Author: 王云龙* @Date: 2020-02-23 12:48:51* @Last Modified by: 王云龙* @Last Modified time: 2020-02-23 15:37:24*/
#include<reg52.h>
#define LED P0;//设置LED引脚
sbit KEY1 = P3^4;//设置按键1引脚
sbit KEY2 = P3^5;//设置按键2引脚
void LightLed1();//点亮方式1
void LightLed2();//点亮方式2
void delay(unsigned int n);//n的取值范围是0~65535
unsigned char table1[15] = {0x7E,0xBD,0xE7,0x00,0xFF,0xDB,0xBD,0x7E,0x00,0xFF,0x00,0xFF};
unsigned char table2[] = {0xFE,0xFD,0xE7,0xEF,0xDF,0xBF,0x7E,0xFF,0x00,0xFF,0x7F,0xBF,0xDF,0xDF,,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,0x01};
void main()//两个按键
{while(1){if(KEY1==0)//按键1,按下检测{delay(5);//延时5msif(KEY1==0){LightLed1();}while(!KEY1)//松开检测}if(KEY2==0)//按键2{delay(5);if(KEY==0){LightLed2();}while(!KEY2);}}
}
void delay(unsigned int n)//n的取值范围是0~65535
{unsigned char i;unsigned int j;for(i = 0;i<183;i++){for(j = 0;j<n;j++)//延时任意输入秒数{;}}
}
void LightLed1()//没有标识符的点亮方式,for()循环
{unsigned char i;for(i = 0;i<15;i++){LED = table1[i];delay(1000); }
}
void LightLed2()//有标识符的点亮方式,while()循环
{unsigned char i = 0;while(table2[i]!=0x01){LED = table2[i];delay(1000);i++;}
}
方式1跟方式2是两种不同的思路:
- 方式1:
for()
循环:通过数组中的元素个数停止 - 方式2:
while()
循环,通过数组中的标识符停止
发布评论