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

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. 【Node.js】Stream(流)的学习笔记

    最近学习使用Node.js创建http proxy server,少不了要跟Stream打交道.昨天开始查阅一些资料,多少有了一些粗浅了解.整理在这里,供学习之用. 从Node.js API文档中可知 ...

  2. due to a StackOverflowError. Possible root causes include a too low。。

    我们可以用另外的办法来解决这个问题,我们让tomcat不扫描指定的jar包,tomcat就要轻松得多了,org.apache.tomcat.util.scan.StandardJarScanner中定 ...

  3. Azure IOT 设备固件更新技巧,看这一篇就够了

    嫌长不看版 今天为大家准备的硬菜是:在 Azure IoT 中心创建 Node.js 控制台应用,进行端到端模拟固件更新,为基于 Intel Edison 的设备安装新版固件的流程.通过创建模拟设备应 ...

  4. mybase修改内部文件免费使用

    关于mybase的介绍就不多说了,下载后一般只有30天的使用期限.以下方法可以无限次使用该软件(当然,每隔一个周期就需要修改myBase.ini) 原文博客详见:https://www.cnblogs ...

  5. centos命令行常用操作

    1.查看某个端口占用 lsof -i tcp:80 2.查看是否安装了防火墙 service iptables status 查看是否启用防火墙/etc/init.d/iptables status ...

  6. COGS 449. 网络病毒

    ★★   输入文件:virus.in   输出文件:virus.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] 公元2008年10月31日星期五,笃志者所在的整个机房由 ...

  7. Poj (3239),m皇后问题

    题目链接:http://poj.org/problem?id=3239 构造法很牛逼啊,把这个搜索的题直接变成了打表. 我用dfs写了一下. 构造法公式(序列):一.当n mod 6 != 2 或 n ...

  8. jade文档声明和头尾标签

    作为一个页面,首先需要一个doctype的声明,它位于文档最上面的位置,放置html标签以前,用来告知浏览器当前这个页面用哪种html,或者xml的规范并解析页面   doctype html htm ...

  9. 4.vue引入axios同源跨域

    前言: 跨域方案有很多种,既然我们用到了Vue,那么就使用vue提供的跨域方案. 解决方案: 1.修改HttpRequestUtil.js import axios from 'axios' expo ...

  10. 2、SpringBoot+MybatisPlus整合-------BaseCRUD

    开发工具:STS 代码下载链接:GitHub管理代码 版本: Springboot:1.5.14.RELEASE 使用2.0以上的Springboot,会报出一些异常.欢迎知道异常原因的大牛解惑. M ...