【重拾51单片机(5) 矩阵按键(1)】

原理

在这里插入图片描述
矩阵键盘按列扫描,给P13.12.11.10 赋值,如 0111时候,如果P17等于0的话就是S1按下。
不按行扫描是因为引脚冲突。

矩阵键盘实现键码显示

【Delay,c 】【Delay.h】和【LCD1602.c】【 LCD1602.h】参考前文

【MatrixKey.c】
此处代码对新手友好

// An highlighted block
#include <REGX52.H>
#include "Delay.h"


/**
  * @brief  矩阵键盘读取按键键码
  * @param  
  * @retval Keynumber按下按键的键码值
	
   按键按下不放,程序会停留在此函数,松手的一瞬间,返回按键键码,没有按键按下,返回0;
  */
unsigned char MatrixKey()
 {
   
   
  unsigned char Keynumber=0;
	 
	 P1=0xFF;
	 P1_3=0;
	 if(P1_7==0){
   
   Delay(20);while(P1_7==0);Delay(20);Keynumber=1;}
	 if(P1_6==0){
   
   Delay(20);while(P1_6==0);Delay(20);Keynumber=5;}
	 if(P1_5==0){
   
   Delay(20);while(P1_5==0);Delay(20);Keynumber
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值