按键可以用按键扫描的方法和外部中断的方法。 外部中断看前面,个人推荐使用外部中断更好。 其余情况可以用按键扫描,这里只讲按键扫描的方法。 先在main.h中定义按键名称 #define KEY0 HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_5) //KEY0按键PC5 #defi ...
分类:
其他好文 时间:
2020-05-22 09:35:56
阅读次数:
124
#include"reg52.h"//单片机头文件 #define uchar unsigned char//宏定义,用uchar表示unsigned char,叫无符号字符型数据类型,取值范围为:0到255。 #define uint unsigned int//宏定义,用uint表示unsign ...
分类:
其他好文 时间:
2020-05-19 23:05:10
阅读次数:
91
键盘扫描码 原文:https://www.cnblogs.com/wqw/archive/2009/08/30/1556618.html //以下是一个检测按键扫描码的程序 #i nclude <bios.h>#i nclude <stdlib.h>#i nclude <stdio.h>#defin ...
分类:
其他好文 时间:
2020-02-07 14:32:27
阅读次数:
106
以下假设你懂C语言,因为纯粹的C语言描述,所以和处理器平台无关,你可以在MCS-51,AVR,PIC,甚至是ARM平台上面测试这个程序性能。当然,我自己也是在多个项目用过,效果非常好的。 好了,工程人员的习惯,废话就应该少说,开始吧。以下我以AVR的MEGA8作为平台讲解,没有其它原因,因为我手头上 ...
分类:
其他好文 时间:
2019-12-26 09:38:58
阅读次数:
104
1. 简单按键检测 记得开始学习单片机的时候,写的按键扫描是这样的: 一看,有个20ms消除抖动时间,就是说我要在这里死等20ms,还有等待按键释放,我就是不放,你能怎么样?没办法只能做超时。那我想做长按1s呢?细思极恐,对于实际项目上的应用来说是很糟糕的事情,这不仅会拖慢你整个系统,还会出现,多个 ...
分类:
其他好文 时间:
2019-08-11 15:28:24
阅读次数:
139
1.矩阵按键扫描: 原理:当按键按下时按键两个引脚为0;先给P1.3-P1.0为1,P1.7-P1.4为0(代码中GPIO_KEY=0x0f;),当有按键按下,它的两个引脚都应该为0,我们事先把列引脚设为了1,看哪一位为0了就能确定是哪一个列引脚了,例如P1.0为0了,就是第四列有按键按下(但还不确 ...
分类:
其他好文 时间:
2018-08-05 13:06:56
阅读次数:
162
从开始学51就接触到按键扫描,起初接触到郭天祥的delay滤波,方法虽然简陋,但是确实有效。 用了一段时间后,偶然接触到状态机扫描按键。那会儿没有啥数电知识懂不起状态机,硬啃啃懂了,顿时觉得怎么又这种机智的想法! 持续使用此方法将近一年半,期间自己也做了几种扩展,也能正常表达出算法使用,但是唯一的缺 ...
分类:
其他好文 时间:
2018-04-27 21:39:55
阅读次数:
744
一种按键扫描和消抖的方法,方便移植,适用性强。代码使用STM32演示,但很方便移植到其他平台上。没有刻意使用简洁晦涩的风格,所以代码清晰,移植方便。适用于单线按键、扫描按键,长按按键,多按按键,按下响应,和抬起响应。
分类:
其他好文 时间:
2018-04-25 10:55:28
阅读次数:
279
前阵子做的是一个叫精密电压源的项目,使用了4*4的键盘,使用了8个GPIO,是比较简单的做法了,之前在网上看到一个老外已经能用3个GPIO实现多达25个按键的控制了,对应的接线图如下 使用的是新塘某Cortex-M0单片机,(讲真,单片机这部分虽然我水平不行但是我是写腻了),从网上找了些按键扫描程序 ...
分类:
其他好文 时间:
2017-12-29 15:02:33
阅读次数:
144
在做项目的时候,我们经常要用到比较多的按键,而且IO资源紧张,于是我们就想方设法地在别的模块中节省IO口,好不容易挤出一两个IO口,却发现仍然不够用,实在没办法了就添加一个IC来扫键。一个IC虽然价格不高,但对于大批量生产而且产品利润低的厂家来说,这是一笔不菲的开支!那,我们能不能想到比较好的扫键方 ...
分类:
其他好文 时间:
2017-09-02 21:47:14
阅读次数:
224