4x4矩阵键盘 扫描程序
一:不排除第四位异常处理
uchar JuzhenkeyScan()
{
// P3=0xfe;
// temp=P3;
// while(temp!=0xfe)
// {
// temp=P3;
// switch(temp)
// {
// case 0xee:num=10;
// break;
// case 0xde:num=3;
// break;
// case 0xbe:num=2;
// break;
// case 0x7e:num=1;
// break;
// }
// delayms(10);
// } P3=0xfd;//1111 1110
temp=P3;
while(temp!=0xfd)
{
temp=P3;
switch(temp)
{
case 0xed:num=;
break;
case 0xdd:num=;
break;
case 0xbd:num=;
break;
case 0x7d:num=;
break;
}
delayms();
} P3=0xfb;
temp=P3;
while(temp!=0xfb)
{
temp=P3;
switch(temp)
{
case 0xeb:num=;
break;
case 0xdb:num=;
break;
case 0xbb:num=;
break;
case 0x7b:num=;
break;
}
delayms();
} P3=0xf7;
temp=P3;
while(temp!=0xf7)
{
temp=P3;
switch(temp)
{
case 0xe7:num=;
break;
case 0xd7:num=;
break;
case 0xb7:num=;
break;
case 0x77:num=;
break;
}
delayms();
}
return num;
}
二:排除第四位异常处理
uchar keyscan()
{
P3=0xfe;
tempkey=P3;
tempkey=tempkey&0xf0;
while(tempkey!=0xf0)
{
delayms();
tempkey=P3;
tempkey=tempkey&0xf0;
while(tempkey!=0xf0)
{
tempkey=P3;
switch(tempkey)
{
case 0xee:num=; //A
break;
case 0xde:num=;
break;
case 0xbe:num=;
break;
case 0x7e:num=;
break;
}
while(tempkey!=0xf0)
{
tempkey=P3;
tempkey=tempkey&0xf0;
} }
} P3=0xfd;
tempkey=P3;
tempkey=tempkey&0xf0;
while(tempkey!=0xf0)
{
delayms();
tempkey=P3;
tempkey=tempkey&0xf0;
while(tempkey!=0xf0)
{
tempkey=P3;
switch(tempkey)
{
case 0xed:num=;//B
break;
case 0xdd:num=;
break;
case 0xbd:num=;
break;
case 0x7d:num=;
break;
}
while(tempkey!=0xf0)
{
tempkey=P3;
tempkey=tempkey&0xf0;
} }
} P3=0xfb;
tempkey=P3;
tempkey=tempkey&0xf0;
while(tempkey!=0xf0)
{
delayms();
tempkey=P3;
tempkey=tempkey&0xf0;
while(tempkey!=0xf0)
{
tempkey=P3;
switch(tempkey)
{
case 0xeb:num=; //C
break;
case 0xdb:num=;
break;
case 0xbb:num=;
break;
case 0x7b:num=;
break;
}
while(tempkey!=0xf0)
{
tempkey=P3;
tempkey=tempkey&0xf0;
} }
} P3=0xf7;
tempkey=P3;
tempkey=tempkey&0xf0;
while(tempkey!=0xf0)
{
delayms();
tempkey=P3;
tempkey=tempkey&0xf0;
while(tempkey!=0xf0)
{
tempkey=P3;
switch(tempkey)
{
case 0xe7:num=;
break;
case 0xd7:num=;
break;
case 0xb7:num=;
break;
case 0x77:num=;
break;
}
while(tempkey!=0xf0)
{
tempkey=P3;
tempkey=tempkey&0xf0;
}
}
} }
4x4矩阵键盘 扫描程序的更多相关文章
- 4X4矩阵键盘扫描程序
4X4矩阵键盘扫描: 1. 4根行线的GIO均设为Output,根列线的GIO均设为Input: 2. 4根行线的GIO分别置为0111.1011.1101.1110,读逐一读取列线GIO的值,可确定 ...
- 4x4矩阵键盘扫描
4x4矩阵键盘扫描 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架 ...
- Win10 IoT C#开发 6 - 4x4矩阵键盘扫描
Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我 ...
- 「雕爷学编程」Arduino动手做(26)——4X4矩阵键盘模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
- 基于FPGA的4x4矩阵键盘驱动调试
好久不见,因为博主最近两个月有点事情,加上接着考试,考完试也有点事情要处理,最近才稍微闲了一些,这才赶紧记录分享一篇博文.FPGA驱动4x4矩阵键盘.这个其实原理是十分简单,但是由于博主做的时候遇到了 ...
- STM32 实现 4*4 矩阵键盘扫描(HAL库、标准库 都适用)
本文实现的代码是基于STM32HAL库的基础上的,不过标准库也可以用,只是调用的库函数不同,逻辑跟配置是一样的,按我这里的逻辑来配置即可. 1.键盘原理图: 原理举例:先把 F0-F7 内部拉高,这样 ...
- stm32矩阵键盘扫描数据通过USB发送
Keyboard.c #include "keyboard.h"#include "my_usb.h"#include " ...
- MCU软件最佳实践——矩阵键盘驱动
1.矩阵键盘vs独立按键 在mcu应用开发过程中,独立按键比较常见,但是在需要的按键数比较多时,使用矩阵键盘则可以减少io占用,提高系统资源利用率.例如,某mcu项目要求有16个按钮,如果采用独立按键 ...
- 【STM32学习笔记】STM32f407 使用4*4矩阵键盘
作者:李剀 出处:https://www.cnblogs.com/kevin-nancy/ 欢迎转载,但也请保留上面这段声明.谢谢! 写在前面: 这是本人第一次开始写博客,可能写的不是很好,也请大家谅 ...
随机推荐
- android sqlite3命令行检查自己的代码操作数据库是否正确
真机调试的话需要root ,否则没有访问目录的权限 在 linux 的终端 或者 windows的cmd 中输入 adb shell 进入shell 环境 cd /data/data/程序包名/dat ...
- appium (五)desired_caps参数
转自:http://blog.csdn.net/Yejianyun1/article/details/56279051 一.介绍 在appium server 与手机端建立会话关系时,手机端需要 ...
- Java中的字符集
Java中的字符集 1.字符集概述 字符集是各国家文字与字符编码对照表.字符可以看成是计算机中展示的图案效果,每个字符集都对每一种图案进行编码,有着一对一的对应关系.因此进行字符输出时,都需要指定使用 ...
- 94. Binary Tree Inorder Traversal(inorder ) ***(to be continue)easy
Given a binary tree, return the inorder traversal of its nodes' values. Example: Input: [1,null,2,3] ...
- VScode中的golang代码规范太严格,怎么处理。
在vscode的配置文件settings.json中,加入下面的配置,一般设置为0.8即可. "go.lintFlags": [ "-min_confidence=.8& ...
- framework7中一行的字如果过多就省略号显示的CSS写法
.order-info-title { text-overflow: ellipsis !important; white-space: nowrap !important; overflow: hi ...
- C# windows 计划任务 程序编写
编写windows 计划任务只需要在普通的类里面使用main方法就好了,因为任务计划在创建后走的是程序的主方法,代码如下: using System; using System.Collections ...
- javascript原生API总结
一.查找: getElementById() 方法返回带有指定 ID 的元素(唯一): getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组). ...
- Firefox 修改User Agent
Android 版 Mozilla/5.0 (Linux; U; Android 2.2; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML ...
- rcnn spp_net hcp
rcnn开创性工作,但是计算时间太长,重复计算太大. spp_net将重复计算避免了. hcp是yan shuicheng那边的,是用bing生成regions,然后用normalized cut将这 ...