51单片机外设之——矩阵键盘(传统法一)
来源:互联网 发布:驾驶员网络培训 编辑:程序博客网 时间:2024/05/30 22:42
前面提到了独立按键,可见,独立按键是由矩阵键盘分离而来的。接下来看的是 4*4 的矩阵键盘,这里使用的还是上节所使用的,延时消抖检测。
先附上矩阵键盘的原理图:
在使用据矩阵键盘时,J5 排针处的跳帽连接 1 脚和 2 脚,使所有按键的有效端口全部连接至 I/O 口。
具体的扫描方式为:
先把P3^0~P3^7高四位和低四位赋不一样的电平值,当确定有键按下时,检测按下的是哪一行或哪一列(原本高电平的四位中有一位会变低电平),再将高四位和低四位赋与上一次相反的电平。再检测,即可找到所按下的按键。
实例为:把S4~S19 这16个按键,从上到下、从左至右,分别设置为1~16不同的键值,当S4按下时,数码管显示为 1;当S19按下时,数码管显示为16。
其核心代码如下(数码管段码,显示函数等变量的定义,请参照前面给出的数码管的博文):
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
注:在此我们基于的是89C52单片机的按键扫描,但是对于蓝桥杯指定开发板平台(CT107D)所用的单片机为STC15F2K61S2,它与STC89C52在矩阵键盘的区别的是:前者没有P3^6和P3^7这两个 I/O 口,他们分别用P4^2,P4^4代替,具体的可以就参照STC15F2K61S2芯片手册(其他的区别大致有:它的运行速度比51单片机快,工作时可以选择是否分频;它的中断模式比51多,一些 I/O 口有其他功能等等……)。
这里有几点需要注意:
1、在编程时,主函数尽可能少的进行一些数据处理等操作,主函数主要用来调用其他的函数。
2、若使用的是STC15F2K61S2单片机,则在给 P3 口的两次赋值和高四位的电平检测阶段,需要将P4^2,P4^4单独列出来,与其余6个P3引脚的 I/O 口一起检测,并且在使用P4^2,P4^4之前,需要进行sbit位定义,以及 P4 引脚的寻址(srf P4 = 0xC0)。
3、P3口的第二次赋值,应该也囊括在第一个 if 语句之中,因为只有当确定按下之后,才会开始行与列的扫描,行、列扫描是对于一次按键的扫描,所以不可分开。
未完待续……
- 51单片机外设之——矩阵键盘(传统法一)
- 51单片机外设之——矩阵键盘(传统法一)
- 51单片机外设之——独立按键的检测(传统法一)
- 51单片机外设之——独立按键的检测(传统法一)
- 51单片机—矩阵键盘
- 51单片机———矩阵键盘
- 51单片机—矩阵键盘-代码
- 嵌入式学习笔记(8)——51单片机之矩阵键盘
- 单片机——矩阵键盘
- 51单片机--矩阵键盘
- 51单片机外设之——按键的检测(带有标志位的按键识别法)
- 51单片机外设之——按键的检测(带有标志位的按键识别法)
- 51单片机外设之——按键的检测(快速识别)
- 51单片机外设之——按键的检测(快速识别)
- 单片机——矩阵键盘秒表
- 51单片机矩阵键盘扫描
- 51单片机矩阵键盘库
- 轻轻地告诉你——L结构单片机与传统单片机的比较(一)
- oracle锁与死锁概念,阻塞产生的原因以及解决方案
- water 灌水问题(最小生成树 搜索)
- 页面不缓存设置
- jenkins --部署项目到服务器需要的脚本
- MATLAB图像处理基础知识3 替换矩阵的数值A(A<0) = 1
- 51单片机外设之——矩阵键盘(传统法一)
- 感知机简介及python代码简介
- pandas入门学习
- 最长回文子串(马拉车)
- 使用splash爬去JavaScript动态请求的内容
- MacOS 开发
- flex属性问题以及内容居中
- 283. Move Zeroes
- HDU 4605 主席树