矩阵键盘_按键检测_按键次数检测
在进行矩阵按键检测的时候,对于51单片机来说,由于IO输出电流较小,驱动能力不足,若用一个A号IO口去检测B号IO口,无论B口高电平还是低电平,A口皆是低电平;若A口置高,可用来检测B口的低电平。
IO.H文件
#ifndef _MATRIX_H_
#define _MATRIX_H_#include "STC15F2K60S2.h"
#include "delay.h"#define line0 P30
#define line1 P31
#define line2 P32
#define line3 P33
#define list0 P44
#define list1 P42
#define list2 P35
#define list3 P34extern bit flagSMGScreen;
extern bit numClear;
extern unsigned char num;
extern unsigned char countPress;void key_scan();#endif
.C文件
#include "matrix.h"bit flagSMGScreen=0; //界面转换标志
bit numClear; //清零按键
unsigned char num;
unsigned char countPress;void key_scan()
{ unsigned char temp;list0=1;list1=1;list2=1;list3=1; line0=0; line1=0; line2=0; line3=0;if(list0==0||list1==0||list2==0||list3==0){Delay5ms();if(list0==0||list1==0||list2==0||list3==0){list0=1;list1=1;list2=1;list3=1; line0=0; line1=0; line2=0; line3=0;if(list0==0) temp=1;if(list1==0) temp=2;if(list2==0) temp=3;if(list3==0) temp=4;list0=0;list1=0;list2=0;list3=0; line0=1; line1=1; line2=1; line3=1;if(line0==0) temp=temp-1;if(line1==0) temp=temp+3;if(line2==0) temp=temp+7;if(line3==0) temp=temp+11;}while(!line0 || !line1 || !line2 ||!line3) //若按键一直按下去则一直在该}else temp = 20; //while中循环switch(temp){case 0: temp=20; num=1; countPress++;break; //countPress可检测case 1: temp=20; num=2; countPress++;break; //按键按下的次数case 2: temp=20; num=3; countPress++;break; //num指某个按键代表的值case 3: break; //可任意修改case 4: temp=20; num=4; countPress++;break;case 5: temp=20; num=5; countPress++;break;case 6: temp=20; num=6; countPress++;break;case 7: break;case 8: temp=20; num=7; countPress++;break;case 9: temp=20; num=8; countPress++;break;case 10:temp=20; num=9; countPress++;break;case 11:break;case 12:temp=20; num=0; countPress++;break;case 13:temp=20; flagSMGScreen=~flagSMGScreen;countPress=0;break; case 14:temp=20; numClear=1;countPress--; break;default: break; }
}
矩阵键盘_按键检测_按键次数检测相关推荐
- c51单片机矩阵键盘1602计算器_【Proteus】单片机配合矩阵键盘LCD1602制作简易计算器...
前言 想出一个关于Protues仿真的系列,回想起在大学时做课程设计,大多数是用这个来做,这个系列就围绕一些常用的外设或者说课程设计题目来进行对以前知识的回顾,温故而知新,同时也希望能对新手读者的学习 ...
- 矩阵键盘与六位数码管_[走近FPGA]之矩阵键盘
注:由于新学期较为繁忙,本文由不愿透露姓名的 @Cardia 撰写.以下为正文. 在上一篇文章中,介绍了二进制转十进制电路的实现,其文章链接如下: 人生状态机:[走近FPGA]之二进制转BCD码zh ...
- FPGA的矩阵键盘驱动( 修正版)
以前写的矩阵键盘的驱动是以单片机的思想来实现的,在FPGA上完全失败了,考虑的太简单了emmmmmm.所以在查了一些资料后,对过去写过的矩阵键盘驱动做个修正 旧版本代码 module keyboard ...
- 【Proteus】单片机配合矩阵键盘LCD1602制作简易计算器
前言 想出一个关于Protues仿真的系列,回想起在大学时做课程设计,大多数是用这个来做,这个系列就围绕一些常用的外设或者说课程设计题目来进行对以前知识的回顾,温故而知新,同时也希望能对新手读者的学习 ...
- 51-矩阵键盘和矩阵键盘密码锁
一.矩阵键盘 上面两个图中的 扫描 可以理解为 循环 . 在上图中,所谓最终实现所有按键 "同时" 检测的效果指的就是:当我们在矩阵键盘中任意按下或按下并松开一个按键,都能被检测出 ...
- 关于矩阵键盘模块的探究
目录 关于51单片机的准双向口: 代码: 注意事项: 某宝上矩阵键盘原理图的问题: 关于51单片机的准双向口: 当准双向IO口输出为1时,可检测其他IO口的低电平和高电平:当不进行任何输入时,其检测到 ...
- 《蓝桥杯CT107D单片机竞赛板》:矩阵键盘模块
矩阵键盘模块 实验简介 实验原理图 实验原理 实验程序 显示对应的按键值 2 * 2变式矩阵按键实现独立按键 2 * 2变式矩阵键盘控制蜂鸣器 2 * 2变式矩阵按键控制数码管做加减操作 另一种易理解 ...
- 51单片机矩阵键盘扫描及使用方法
一.矩阵键盘简介 矩阵键盘,也称矩阵按键,是为了节约单片机IO口占用所引入的一种外设. (图片截取至普中A2开发板原理图) (图片截取至普中A2开发板实物图) 我们知道,一个独立按键需要1个IO口.但 ...
- 【STM32】 4X4矩阵键盘电路
目录 一:矩阵键盘介绍 二:矩阵电路原理图设计 三:矩阵键盘模块特点 四:4X4矩阵键盘模块实物图 五:4X4矩阵键盘模块电路原理图设计 六:4X4矩阵键盘模块电路PCB图设计 一:矩阵键盘介绍 轻触 ...
- 【STM32扫描4x4矩阵键盘模块】 4x4 matrix keypad interface
[STM32扫描4x4矩阵键盘模块] 4x4 matrix keypad interface 4x4矩阵键盘模块 矩阵键盘是将多个按键排布成类似矩阵形式的键盘组.为了减少IO资源的占用,将键盘组的每一 ...
最新文章
- Clang:LLVM的C语言家族前端
- 你了解微服务架构么?
- DFT实训教程笔记1(bibili版本)- introduction to DFT DFT Architecture
- 7.33oracle安装不了,在RedHat7.0下安装Oracle的经历
- 一、linux搭建jenkins+github详细步骤
- 机器人三定律真有用?但AI可能并不会遵守
- PowerPC E500 MMU详解
- 的mvc_浅谈MVC
- 前方预警!Windows Server 将默认需符合 TPM2.0,服务器商需在来年 1 月 1 日前适配相应规则...
- unity创建草地_Unity3D研究院之构建游戏地形的基本元素(五)
- 应用统计学与计算机论文,浅谈统计学在生活中的应用
- 区块链性能测试工具使用教程
- 【智能制造】36页精彩PPT:探讨智能制造的三驾马车
- Linux 压测工具 stress 安装下载
- android 动态磁贴,善用动态磁贴和Xbox游戏
- new Date()时间不是当前时间问题的解决方法
- DSP TMS320F280049C之捕获eCAP(1)
- 朱松纯:初探计算机视觉的三个源头_兼谈人工智能
- 强烈推荐,一步一步学装电脑(有图)
- Kotlin 笔记 纯属娱乐萌新大佬绕道