矩阵键盘消抖 c语言,基于51单片机的4x4矩阵键盘的状态机消抖

该博客介绍了如何使用C语言在51单片机上实现矩阵键盘的消抖功能,通过定时器10ms中断调用状态机函数进行按键识别。状态机不仅用于键盘消抖,还可以应用于串行通信时序、显示扫描、命令解析等各种控制程序。文章附带了状态机流程图和键盘连接图。
摘要由CSDN通过智能技术生成

#include #define uint unsigned int

#define uchar unsigned char

#define Key_state_0 0 //状态0 等待按键按下

#define Key_state_1 1 //状态1 判断是否为抖动,并且判断键值

#define Key_state_2 2 //状态3 等待按键松开

#define Key_input P3 //输出口

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //数码管段码

/***********延迟函数***********/

void Delay1ms(uint timee)//@11.0592MHz

{

unsigned char i, j;

for(;timee > 0; timee --)

{

_nop_();

_nop_();

_nop_();

i = 11;

j = 190;

do

{

while (--j);

} while (--i);

}

}

/***********定时器初始化函数****/

void Init_Timer0()

{

TMOD = 0x01; //定时器0设置模式为1

TH0 = (65535-10000)/256; //定时器0赋初值,定时时间为10000us

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值