51单片机 矩阵键盘

本文详细介绍了51单片机矩阵键盘的扫描方法,包括逐行扫描和行列扫描。通过逐行扫描,当低四位数据不全为1时,表明有按键按下。在行列扫描中,通过两次扫描确定哪一行和哪一列有按键按下。文中提供了逐行扫描的代码示例,并指出此教程基于‘亚博科技’的单片机学习资料。
摘要由CSDN通过智能技术生成

1.原理图

键盘扫描方式:逐行扫描和行列扫描

1.逐行扫描

逐行扫描:我们可以通过高四位轮流输出低电平来对矩阵键盘进行逐行扫描,当低四位接收到的数据不全为1的时候,说明有按键按下,然后通过接收到的数据是哪一位为0来判断是哪一个按键被按下。

2.行列扫描

行列扫描:我们可以通过高四位全部输出低电平,低四位输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,高四位输出高电平,低四位输出低电平,然后根据接收到的高四位的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。

我们编程使用的是逐行扫描:

比如,我先是P3= 0xfe;也就是来检索第一行,当有键按下时 ,对应位就为低电平,比如第一个键被按下,P3就应该为0xee;

上代码:

 


#include<reg51.h>
//#define unsigned char uchar
sbit beep=P2^3;
sbit duan=P2^6;
sbit wei=P2^7;
unsigned char  flag;
unsigned char flag1;
unsigned char key;
void delay(unsigned
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值