独立按键c语言代码,基于89C52单片机的独立按键原理图

本文介绍了如何在89C52单片机上实现独立按键的扫描,包括4*4矩阵键盘的工作原理和C语言实现代码。通过扫描P3口的电平变化来确定按键位置,同时提供了松手检测以确保按键释放。文章还提及了STC15F2K61S2单片机在矩阵键盘应用上的差异。
摘要由CSDN通过智能技术生成

前面提到了独立按键,可见,独立按键是由矩阵键盘分离而来的。接下来看的是 4*4 的矩阵键盘,这里使用的还是上节所使用的,延时消抖检测。

先附上矩阵键盘的原理图:

9a1d38d9222c2b9e4175dd7b88a5e0bf.png

在使用据矩阵键盘时,J5 排针处的跳帽连接 1 脚和 2 脚,使所有按键的有效端口全部连接至 I/O 口。

具体的扫描方式为:

先把P3^0~P3^7高四位和第四位赋不一样的电平值,当确定有键按下时,检测按下的是哪一行或哪一列(原本高电平的四位中有一位会变低电平),再将高四位和第四位赋与上一次相反的电平。再检测,即可找到所按下的按键。

实例为:把S4~S19 这16个按键,从上到下、从左至右,分别设置为1~16不同的键值,当S4按下时,数码管显示为 1;当S19按下时,数码管显示为16。

其核心代码如下(数码管段码,显示函数等变量的定义,请参照前面给出的数码管的博文):

uchar temp;                                         //用于存储 P3 口的状态

uchar key_value = 0;                                //键值的定义

void matrixKeyScan()

{

P3 = 0x0f;        

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值