两个按键的控制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()循环,通过数组中的标识符停止
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐