单片机:独立按键---硬件介绍和软件编程

简介: 单片机:独立按键---硬件介绍和软件编程

54aa59fb1dec4561b0d94b4c034b4326.png

按动按钮,1-2 3-4导通,

延时程序:5-10ms抖动需要延时消除抖动 (软件消抖)

RC电路充放电(硬件消抖)


46058132a79e454ab7fb9b0c3483aa2c.png


34eb6ea39f0a47b59abaa5614596880d.png

ca1d51a7fbdb494783200541c28483ba.png

#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit KEY1=P3^1;//定义特殊位置按键用sbit
sbit KEY2=P3^0;
sbit KEY3=P3^2;
sbit KEY4=P3^3;
sbit LED1=P2^0;
#define KEY1_PRESS  1//只使用一个LED来判断按键K1即可,也可多加几个LED来显示
#define KEY2_PRESS  2
#define KEY3_PRESS  3
#define KEY4_PRESS  4
#define KEY_UNPRESS 0
void delay_time(u16 time_delay)
{
    while(time_delay--);
}
u8 key_scan(u8 mode)//检验按键是否按下的函数
    //mode来选择是否是连续按下还是单次按下
{
    static u8 key=1;//定义变量key通过0/1的值来判断高/低点平
    if(mode)key=1;//1是连续按下,0是单次按下
    if(key==1&&(KEY1==0||KEY2==0||KEY3==0||KEY4==0))
    {
        delay_time(1000);//消抖
        key=0;//1进入循环之后改为0跳出循环
        if(KEY1==0)
          return KEY1_PRESS;
        else if(KEY2==0)
          return KEY2_PRESS;
        else if(KEY3==0)
          return KEY3_PRESS;
        else if(KEY4==0)
          return KEY4_PRESS;
    }
    else if(KEY1==1&&KEY2==1&&KEY3==1&&KEY4==1)
    {
        key=1;
    }
    return KEY_UNPRESS;
}
void main()
{
    u8 key=0;
    while(1)
    {
        key=key_scan(0);//0是单独按下,1是连续按下
        if(key==KEY1_PRESS)
            LED1=!LED1;//通过KEY1控制LED1
    }
}


相关文章
|
5天前
|
数据采集 数据处理 C语言
单片机:探索其原理、应用与编程实践
单片机:探索其原理、应用与编程实践
22 1
|
8月前
第二章:单片机硬件结构
第二章:单片机硬件结构
77 0
|
5天前
|
算法 定位技术 C语言
51单片机实现俄罗斯方块游戏编程
设计了一款基于AT89C51单片机的俄罗斯方块游戏机,使用LCD12864液晶显示,按键控制方块移动与变形。游戏中,7种不同形状的方块随机下落,填满一行得分,满屏则游戏结束。包含电源、单片机最小系统、LCD和按键模块的硬件电路通过Proteus进行了仿真,展示了游戏运行、得分和计时等。代码部分展示了检查碰撞和更新地图的函数。
17 1
【51单片机】一文带你利用【Keil软件的模板功能】【自定义模板】简化操作(带图详解)
【51单片机】一文带你利用【Keil软件的模板功能】【自定义模板】简化操作(带图详解)
|
5天前
|
IDE 开发工具 C++
【51单片机】开发板&开发软件(Keil5&STC-ISP)简介&下载安装破译传送门(1)
【51单片机】开发板&开发软件(Keil5&STC-ISP)简介&下载安装破译传送门(1)
|
5天前
|
C++ 内存技术
【期末不挂科-单片机考前速过系列P8】(第八章:21题速过AT89S51单片机的内部硬件结构)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P8】(第八章:21题速过AT89S51单片机的内部硬件结构)经典例题盘点(带图解析)
|
5天前
|
存储 传感器 数据处理
单片机编程入门与实践
单片机编程入门与实践
26 2
|
5天前
|
传感器 人工智能 物联网
单片机:编程实践与应用探索
单片机:编程实践与应用探索
22 4
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
|
5天前
|
C语言
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”