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...
·
两个按键的控制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);//延时5ms
if(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()循环,通过数组中的标识符停止
更多推荐


所有评论(0)