历史上的今天
今天是:2024年08月24日(星期六)
2019年08月24日 | 51单片机 矩阵键盘
2019-08-24 来源:eefocus
uchar code KEY_TABLE[] =
{
0x77,0xB7,0xD7,0xE7
0x7B,0xBB,0xDB,0xEB
0x7D,0xBD,0xDD,0xED
0x7E,0xBE,0xDE,0xEE
};//高四位是列,低四位是行
uchar code TABLE[] =
{
'1', '2', '3',
'4', '5', '6',
'7', '8', '9',
'C', '0', 'A',
};
char key_scan()
{
uchar temp, key, i;
P1 = 0xf0; //1111 0000
//先是扫描列,确定列
//把列的引脚高四位,设为高电平,行引脚,低四位,设为低电平。当按键按下,会被拉低。
if (P1 != 0xf0)
{
delay_ms(10);
if (P1!= 0xf0)
{
temp = P1;//按下后存在temp
P1 = 0x0f;
//后扫描行,确定哪一行
//把行引脚,低四位设为高电平,列的引脚,高四位,设为低电平。当按键按下,会被拉低。
key = temp | P1;
//行列相或,高四位0所在的位为列,低四位所在的0为行
for (i = 0; i < 12; ++i)//查找对应的按键,并赋值对应的字符
if (key == KEY_TABLE[i])
break;
return TABLE[i];
}
}
else
return 0x00;
}
上一篇:使用51单片机输出PWM控制舵机
下一篇:51单片机 nrf24l01收发
史海拾趣
|
这是昨晚花了一点时间改出來的,使用STC89C51RC单片机控制按键和读取频率,以及以后采样板上DA的控制,CPLD测频,通过并口传给单片机,分高低8位传,不细说了,大家看图,看看有没有什么疏忽的地方… 查看全部问答> |
|
每次坐车走高速都能看到高速路两旁的高压输电的铁塔, 铁塔上的输电线并不是一样粗, 在铁塔最顶端的那条线,明显比其他的线要细一些,不知道这条线是做什么的? 经过仔细观察,这条线似乎并不是连通的,因为其他的电线过铁塔时要么有个弧形,要么 ...… 查看全部问答> |
|
摘要: ZigBee 网络为传感器信号的无线传输提供了新的解决方案,论文分析了ZigBee 技术,IEEE802.15.4 标准及相关应用,将ZigBee 与蜂窝网络结构结合,用于电力系统高压母线温度测量系统中,得到了良好的效果。… 查看全部问答> |
|
我电脑内存是256的,我想扩展内存到1G,带到电脑市场去装太远了,自己买了条512的和条256的回来准备自己装,可是找不到内存插槽在哪里。请问下是不是要把笔记本卸开才可以装啊。哪位高手指点下,能给个截图更好。谢谢了!… 查看全部问答> |
|
用的是官方提供的exam,设置为还回模式时,能够正常运行,用zlg的USBCAN-II在can端可以接受数据,改为Normal模式后,就收不到数据了。 翻了很多帖子,貌似常见问题有两个:1、stm32的can信号转发器的供电要5V;2、要有两个有效节点。我的应该 ...… 查看全部问答> |
|
大家好: 我现在在2407A 的平台下用c语言编写程序,要访问 I/0口,书上说用import和outport 指令,但是这两个指令要知道I/O的通道数,而且只能限定在0~15之间。我看不懂这是什么意思,是不是说只能访问固定的几个I/O口, ...… 查看全部问答> |
|
我公司现在要设计一款产品,他是由测试力的大小转换成数字显示的,再由电阻或电容感应按键控制整个电路,得到数据后,可以用TF卡或SD卡储存,要实现这些功能,不知道要用到什么模块,什么电路,求求各位,是否可以帮助小弟,小弟的QQ是674833864, ...… 查看全部问答> |
|
G2系列单片机软件怎么设置选择外部32K晶体? 3L有答案,和我有同样问题的看看。 以下内容是我从头文件里看到的。 #define DIVA0 (0x10) /* ACLK Divide ...… 查看全部问答> |




