蓝桥杯单片机记录_第五篇_矩阵按键(长短按)

原理图需要将跳线帽往左边插一 只有短按的矩阵扫描法keybord.c:#include <keybord.h>unsigned char i=0,key_value,key_sum=0,key_press;void key_read(void){ P3=0XF0; //P34,P35拉高 P42=P44=1; //拉高 if(P44==0||P42==0||P35==0||P34==0) //当这4个有一个为0了,就说明有按键按下 {
摘要由CSDN通过智能技术生成

原理图

按键

需要将跳线帽往左边插

矩阵键盘

一 只有短按的矩阵扫描法

keybord.c:

#include <keybord.h>

unsigned char i=0,key_value,key_sum=0,key_press;


void key_read(void)
{
   
 P3=0XF0;    //P34,P35拉高
 P42=P44=1;  //拉高
 
 if(P44==0||P42==0||P35==0||P34==0)   //当这4个有一个为0了,就说明有按键按下
 {
   
  for(i=0;i<4;i++)   //开始扫描,扫描4次
  {
   
   P3=0XFF;
   P42=P44=1;
   P3&=~(1<<i);  
  //P3 & 1111 1110 然后下一个是 1111 1101,以此类推,就是让P30~P33都过一遍,看到底是哪一行按下了,再根据列,确定具体的按键
   
   if(P44==0) key_value=4*i;  //P44那一列就是 0 4 8 12
   else if(P42==0) key_value=4*i+1;  //P42那一列就是 1 5 9 13
   else if(P35==0) key_value=4*i+2;  //P35那一列就是 2 6 10 14
   else if(P34==0) key_value=4*i+3;  //P34那一列就是 3 7 11 15

  /*所以就是:
      0   1   2   3
      4   5   6   7
  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值