C51单片机矩阵键盘实现

本文介绍了一种使用C51单片机实现矩阵键盘的方法,包括列扫描、行扫描以及松手检测的过程。代码示例中详细展示了如何处理矩阵键盘的按键输入,并提供了独立键盘的处理方式。
摘要由CSDN通过智能技术生成

#include<reg52.h>
#include<intrins.h>

#define uchar unsigned char
#define uint unsigned int

sbit DU = P2^6;
sbit WE = P2^7;
uint keyvalue = 13;
//1 2 3 A
uchar code table[]={ 0x06, 0x5b, 0x4f, 0x77,
//4 5 6 B
0x66, 0x6d, 0x7d, 0x7c,
//7 8 9 C
0x07, 0x7f, 0x6f, 0x39,
//- 0 点 D
0x40, 0x3f, 0x80, 0x5e,
//E H L U
0x79, 0x76, 0x38, 0x3e,
//N F 熄灭
0x37, 0x71, 0x00};
//延时函数
void delay(uint z)
{
uint x, y;
for(x=z; x>0; x–)
for(y=114; y>0; y–);
}

//按键扫描
void keyscan()
{
//矩阵键盘
P3 = 0xf0;//1111 0000列扫描
delay(10);//软件消抖
/按键按下会使得P3的值发生改变,先通过比较P3值来
检测是哪一列发生了改变,再将P3值改变进行列扫描,
通过比较P3值来检测是哪一行,最后进行松手检测
/
if(P3 != 0xf0)
{
switch(P3)
{
case 0xe0: keyvalue = 0

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Andy826

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值