一:不排除第四位异常处理

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矩阵键盘 扫描程序的更多相关文章

  1. 4X4矩阵键盘扫描程序

    4X4矩阵键盘扫描: 1. 4根行线的GIO均设为Output,根列线的GIO均设为Input: 2. 4根行线的GIO分别置为0111.1011.1101.1110,读逐一读取列线GIO的值,可确定 ...

  2. 4x4矩阵键盘扫描

    4x4矩阵键盘扫描 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架 ...

  3. Win10 IoT C#开发 6 - 4x4矩阵键盘扫描

    Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我 ...

  4. 「雕爷学编程」Arduino动手做(26)——4X4矩阵键盘模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  5. 基于FPGA的4x4矩阵键盘驱动调试

    好久不见,因为博主最近两个月有点事情,加上接着考试,考完试也有点事情要处理,最近才稍微闲了一些,这才赶紧记录分享一篇博文.FPGA驱动4x4矩阵键盘.这个其实原理是十分简单,但是由于博主做的时候遇到了 ...

  6. STM32 实现 4*4 矩阵键盘扫描(HAL库、标准库 都适用)

    本文实现的代码是基于STM32HAL库的基础上的,不过标准库也可以用,只是调用的库函数不同,逻辑跟配置是一样的,按我这里的逻辑来配置即可. 1.键盘原理图: 原理举例:先把 F0-F7 内部拉高,这样 ...

  7. stm32矩阵键盘扫描数据通过USB发送

                   Keyboard.c #include "keyboard.h"#include "my_usb.h"#include " ...

  8. MCU软件最佳实践——矩阵键盘驱动

    1.矩阵键盘vs独立按键 在mcu应用开发过程中,独立按键比较常见,但是在需要的按键数比较多时,使用矩阵键盘则可以减少io占用,提高系统资源利用率.例如,某mcu项目要求有16个按钮,如果采用独立按键 ...

  9. 【STM32学习笔记】STM32f407 使用4*4矩阵键盘

    作者:李剀 出处:https://www.cnblogs.com/kevin-nancy/ 欢迎转载,但也请保留上面这段声明.谢谢! 写在前面: 这是本人第一次开始写博客,可能写的不是很好,也请大家谅 ...

随机推荐

  1. 浅谈SQL Server中的事务日志(二)----事务日志在修改数据时的角色

    简介 每一个SQL Server的数据库都会按照其修改数据(insert,update,delete)的顺序将对应的日志记录到日志文件.SQL Server使用了Write-Ahead logging ...

  2. POJO详解

    转自:http://blog.csdn.net/lushuaiyin/article/details/7436318  一:什么是POJO POJO的名称有多种,pure old java objec ...

  3. Mautic-2.2.0 (Ubuntu 16.04)

    平台: Ubuntu 类型: 虚拟机镜像 软件包: mautic-2.2.0 business intelligence commercial ecommerce mautic open-source ...

  4. Oracle数据库基本语句练习

    以ORACLE数据库为主提纲:第一部分.SQL语言基础 第一章:Oracle命令类别及sql简单语法介绍第二章:oracle的基本函数第三章:oracle的数据类型第四章:多表连接技术 第二部分.or ...

  5. 用户管理的设计--4.jquery的ajax实现登录名的校验

    页面效果 鼠标失去焦点时,不需要刷新页面进行校验,判断登录名是否重复. 实现步骤 1.引入struts2-json-plugin-2.5.10.1插件包 2.页面使用jquery的ajax实现后台校验 ...

  6. jquery中对于ul>li列表分页。学习记录

    这个是很简单的一种分页,只能对列表进行分页.为了开发有可能需要用到记录下来 Html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 T ...

  7. framework7 手风琴页面有滚动条时再次点开手风琴item滑动里面内容消失的解决方法

    在手风琴的ul外面的div加入最小高度min-height:1000px,问题解决 示例代码: <div class="list-block accordion-list" ...

  8. 2019.03.15 ZJOI2019模拟赛 解题报告

    得分: \(20+45+15=80\)(三题暴力全写挂...) \(T1\):Lyk Love painting 首先,不难想到二分答案然后\(DP\)验证. 设当前需验证的答案为\(x\),则一个暴 ...

  9. 广搜,深搜,单源最短路径,POJ(1130),ZOJ(1085)

    题目链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=85 http://poj.org/problem?id=1130 这 ...

  10. centos6 编译安装gcc4.8.2

    12 wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-4.8.2/gcc-4.8.2.tar.gz 13 rm -r -f g ...