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打包异常
Android在打包的时候,报错: 找不到类,或者打包之后运行找不到类,都可以在混淆文件中添加这个属性: -dontoptimize 通过测试,都可以解决. 来自为知笔记(Wiz)
- QtWebkits如何向QtWebEngine过渡
QtWebkits如何向QtWebEngine过渡 1. 前言 很遗憾,QtWebkits在Qt5.6以上版本被淘汰了,对于这个接口良且和其他类例如QWebFrame完美结合的组件就这么没了,我只能表 ...
- appium (五)desired_caps参数
转自:http://blog.csdn.net/Yejianyun1/article/details/56279051 一.介绍 在appium server 与手机端建立会话关系时,手机端需要 ...
- SQL的注入式攻击方式和避免方法
SQL 注入是一种攻击方式,在这种攻击方式中,恶意代码被插入到字符串中,然后将该字符串传递到 SQL Server 的实例以进行分析和执行.任何构成 SQL 语句的过程都应进行注入漏洞检查,因为 SQ ...
- MYSQL 之SET GLOBAL innodb_buffer_pool_size =n
工作遇到一个情况是索引相同的情况下,mysql服务在linux上运行很快,在windows服务器上运行很慢,版本是V5.7以后得版本,同事查找了下说应该设置 SET GLOBAL innodb_buf ...
- 【CCPC-Wannafly Winter Camp Day3 (Div1) D】精简改良(状压DP)
点此看题面 大致题意: 给你一张图,定义\(dis(i,j)\)为\(i\)与\(j\)的最短距离,现要求删去若干条边,使得图仍然联通,且\(\sum_{i=1}^n\sum_{j=i+1}^ndis ...
- DP上课覆盖知识点,POJ(1513)
题目链接:http://poj.org/problem?id=1513 解题报告: 思路: 知识点从第二个开始扫,递推表达式是:minlec[i]=min(minlec[k])+1,并且要保证,tim ...
- 1006: Hero In Maze
1006: Hero In Maze 时间限制: 1000 Sec 内存限制: 64 MB提交: 417 解决: 80[提交][状态][讨论版][命题人:外部导入] 题目描述 500年前,Jess ...
- 机器学习实战之Logistic回归
Logistic回归一.概述 1. Logistic Regression 1.1 线性回归 1.2 Sigmoid函数 1.3 逻辑回归 1.4 LR 与线性回归的区别 2. LR的损失函数 3. ...
- Win10远程桌面连接树莓派3时出现错误:由于安全设置
http://blog.csdn.net/qq_33259138/article/details/52143407 在远程其树莓派时的电脑时提示错误“客户端无法建立与远程计算机的连接,远程计算机可能不 ...