独立按键软件控制LED

一、按键介绍

1.工作原理

工作按键内部简易图

按键管脚两端距离长的表示默认是导通状态,距离短的默认是断开状态。

如果按键按下,初始导通状态变为断开,初始断开状态变为导通。

二.独立按键控制步骤

  1. 确定LED连接到哪个引脚上。每个单片机都有一些可用的引脚,可以将LED连接到其中一个引脚上。

  2. 在独立按键软件中设置引脚的工作模式为输出模式。这可以通过设置引脚的寄存器来实现。例如,如果LED连接到引脚A0,则可以使用特定的寄存器设置引脚A0为输出模式。

  3. 在独立按键软件中设置引脚的电平状态以控制LED的亮度。如果引脚设为高电平,则LED会亮起;如果设为低电平,则LED会熄灭。

  4. 在主循环中添加代码以读取独立按键的状态。如果按键被按下,则改变LED的亮度状态。例如,如果LED当前是熄灭的,则按下按键后将其设为亮起;如果LED当前是亮起的,则按下按键后将其设为熄灭。

三.独立按键控制LED如下:

/*
    实现功能:使用独立按键控制指示灯的亮灭
    [2023-12-06] zoya
*/
#include "reg52.h"

typedef unsigned short u16;

sbit KEY1 = P3^0;  // 独立按键

#define GPIO_LED P2  // 指示灯

// 延时函数,i=1延时10us
void delay(u16 i)
{
    while(i--);
}

// 独立按键处理函数
void keypros()
{
    if(0 == KEY1){  // 2. 读取IO口是否为低电平确认按键是否按下
        delay(1000);  // 3. 延时10ms
        if(0 == KEY1) {  // 4. 在读取IO口判断是否为低电平,如果仍然是低电平,说明按键按下
            GPIO_LED = ~GPIO_LED;  // 5. 执行按键按下的操作
        }

        while(!KEY1);  // 6. 稳定闭合期间保持按键操作
    }
}


void main()
{
    KEY1 = 1;  // 1. 先设置IO口为高电平
    GPIO_LED = 0xFF;  // 默认指示灯为不亮状态
    while(1)
    {
        keypros();
    }
}

proteus仿真结果:

四.总结:上述示例程序会不断检测按键状态,当按键被按下时,会切换LED的状态。可以根据实际硬件连接情况以及单片机型号进行相应的修改和适配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值