栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

史上最容易理解的矩阵键盘C语言

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

史上最容易理解的矩阵键盘C语言

采用4位一体共阳数码管,P0口输出段码,P2口输出位码,P1口接4*4矩阵键盘,最左边2个数码管可以显示按键值0~15,按键0可让最右边数码管显示值加1,按键0可减1,显示值在0-9之间循环。可有效避免按一次按键,按键处理却多次的情况。

#include 
#define uchar unsigned char

uchar segcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar bitcode[]={0x01,0x02,0x04,0x08};
uchar key_value,key_re;
uchar temp,row,col;
uchar num=5;

void delay(uchar n)
{
	uchar i,j;
	for(i=0;i 

对应的仿真电路图如下。

按键检测流程:先置全行高全列低,然后读取0-3行,如有键按下,则有一行读入后为低,记下行号。然后置全行低全列高,然后读取0-3列,如有键按下,则有一列读入后为低,记下列号。行号*4+列号等于键值。为防止一次按键处理多次,采用了变量key_re,re是release的缩写,当P1读入为0x0f或0xf0时,key_re=1,标识按键已释放,在key_re为1,检测到按键按下时,才处理按键值。按键值处理完后key_re=0,如果按键此时按键没有释放,那么再次检测到按键时,key_re=0,不会执行按键处理。这种方法优于采用延时来处理。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/352492.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号