3.3 51单片机-独立按键

简介: 3.3 51单片机-独立按键

3.3 独立按键

3.3.1 按键原理图

image.png

image.png

JP165跳线帽断开、JP10连接J12(为了实现按键控制LED灯的效果)、JP5连接JP8、J21接左边

3.3.2 示例代码

下面代码都使用多文件编程模型,这里贴出每个文件的主要代码。

下面代码实现的效果是,按下按键控制LED灯。

Main.c文件:

#include <reg51.h>
#include "delay.h"
#include "key.h"
#include "type.h"
#include "led.h"
int main()
{
    u8 key; 
    LED=0; //关闭所有LED灯,51单片机默认输出高电平,LED默认高电平点亮
    while(1)
    {
        key=Key_Scan();
        if(key)
        {
            LED=~LED; //控制8盏灯
        }
}
}

Key.h文件代码:

#include "key.h"
/*
按键扫描函数
*/
u8 Key_Scan(void)
{
    static u8 flag=0;
    if((KEY!=0xFF)&&(flag==0)) //判断有没有按键按下
    {
        DelayMs(20); //消抖
        flag=1; //标志按键已经被按下
        if(key1==0)return 1;
        if(key2==0)return 2;
        if(key3==0)return 3;
        if(key4==0)return 4;
        if(key5==0)return 5;
        if(key6==0)return 6;
        if(key7==0)return 7;
        if(key8==0)return 8;
    }
    else if(KEY==0xFF) //判断按键是否全部松开
    {
        flag=0; //清除按下标志位
    }
    return 0;
}

Led.h文件代码:

#ifndef LED_H
#define LED_H
#include <reg51.h>
#include "type.h"
#include "delay.h"
#define LED P0  //定义LED引脚
sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
sbit LED4=P0^3;
sbit LED5=P0^4;
sbit LED6=P0^5;
sbit LED7=P0^6;
sbit LED8=P0^7;
#endif

Type.h文件代码:

#ifndef TYPE_H
#define TYPE_H
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
#endif
目录
相关文章
【单片机】按键声光报警实验(蜂鸣器)
【单片机】按键声光报警实验(蜂鸣器)
506 0
|
2月前
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
【51单片机】独立按键,每个按键不同功能,数码管数值的加减,控制流水灯模式,包含按键消抖,数码显示,流水灯
|
2月前
【51单片机】在LCD1602上显示时间:包含按键进行校准时间+闹钟功能:按键设置闹钟响铃时间,以及响铃的时间长度
【51单片机】在LCD1602上显示时间:包含按键进行校准时间+闹钟功能:按键设置闹钟响铃时间,以及响铃的时间长度
|
2月前
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
51单片机用汇编语言实现独立按键检测,每个按键有不同功能,包含按键消抖程序
|
2月前
|
C语言
【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。
【51单片机】LCD1602显示字符串,时间、时间+按键校准、秒表计时的功能代码。
【51单片机】利用【时间延迟】的原理规避【按键抖动问题】
【51单片机】利用【时间延迟】的原理规避【按键抖动问题】
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
【51单片机】Kn独立按键控制【LED亮灭】【LED状态】【LED二进制式显示】【LED不断移位】(4)
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
定时器+按键控制LED流水灯模式+定时器时钟——“51单片机”
|
5月前
|
C语言
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
独立按键控制LED亮灭、独立按键控制LED状态、独立按键控制LED显示二进制、独立按键控制LED移位——“51单片机”
单片机按键的使用
单片机按键的使用
157 0

热门文章

最新文章

下一篇
无影云桌面