单片机
返回首页

51单片机学习笔记———4.两个按键控制LED小灯

2022-06-09 来源:eefocus

两个按键的控制LED的程序:


/*

 * @Author: 王云龙

 * @Date:   2020-02-23 12:48:51

 * @Last Modified by:   王云龙

 * @Last Modified time: 2020-02-23 15:37:24

 */

#include

#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        {

            ;

        }

    }

}

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()循环,通过数组中的标识符停止

进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦线性调频增强器

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外遥控音量控制

  • LM317过压保护

  • 12V转110V/220V 500W逆变器

  • DS1669数字电位器

    相关电子头条文章