4*4矩阵键盘及逐行扫描法
仿真电路图如下:
程序代码如下:
#include <reg52.h>
#include <intrins.h>
#include <math.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp;
/*------------------------------------------
按键扫描
--------------------------------------------*/
void KeyScan(void)
{
P1=0xfe;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
//delay(1);
if(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xee:
P2=~0x01;
break;
case 0xde:
P2=~0x02;
break;
case 0xbe:
P2=~0x03;
break;
case 0x7e:
P2=~0x04;
break;
}
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
}
}
}
P1=0xfd;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
//delay(1);
if(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xed:
P2=~0x05;
break;
case 0xdd:
P2=~0x06;
break;
case 0xbd:
P2=~0x07;
break;
case 0x7d:
P2=~0x08;
break;
}
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
}
}
}
P1=0xfb;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
//delay(1);
if(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xeb:
P2=~0x09;
break;
case 0xdb:
P2=~0x0a;
break;
case 0xbb:
P2=~0x0b;
break;
case 0x7b:
P2=~0x0c;
break;
}
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
}
}
}
P1=0xf7;
temp=P1;
temp=temp&0xf0;
if(temp!=0xf0)
{
//delay(1);
if(temp!=0xf0)
{
temp=P1;
switch(temp)
{
case 0xe7:
P2=~0x0d;
break;
case 0xd7:
P2=~0x0e;
break;
case 0xb7:
P2=~0x0f;
break;
case 0x77:
P2=~0x00;
break;
}
while(temp!=0xf0)
{
temp=P1;
temp=temp&0xf0;
}
}
}
}
/*-------------------------------------
主函数
---------------------------------------*/
void main(void)
{
while(1)
{
KeyScan(); //按键扫描
}
}
4*4矩阵键盘及逐行扫描法相关推荐
- 《蓝桥杯CT107D单片机竞赛板》:矩阵键盘模块
矩阵键盘模块 实验简介 实验原理图 实验原理 实验程序 显示对应的按键值 2 * 2变式矩阵按键实现独立按键 2 * 2变式矩阵键盘控制蜂鸣器 2 * 2变式矩阵按键控制数码管做加减操作 另一种易理解 ...
- 【51单片机】矩阵键盘逐行扫描法仿真实验+超详细Proteus仿真和Keil操作步骤
[51单片机]矩阵键盘逐行扫描法仿真实验+超详细Proteus仿真和Keil操作步骤 一.环境 二.硬件部分 1. Proteus新建工程 2. 添加元件 3.连接线路 4.硬件效果 三.软件部分 1 ...
- 矩阵键盘逐行扫描C语言,(原创)51单片机C语言程序设计--速学教程实例(入门篇)之矩阵键盘(逐行扫描法).pdf...
(原创)51单片机C语言程序设计--速学教程实例(入门篇)之矩阵键盘(逐行扫描法).pdf /***************************************************** ...
- 4*4矩阵键盘扫描c语言,用扫描法读出4×4矩阵键盘,在数码管显示按键值
原标题:用扫描法读出4×4矩阵键盘,在数码管显示按键值 //电路说明如下. //:使用51系列兼容的即可: //4×4:接在P1口: //两位数码显示器: P0口输出七段码,P2口输出位选码. //= ...
- 4x3矩阵键盘扫描法c语言,4X4矩阵键盘扫描程序
4X4矩阵键盘扫描程序 4X4矩阵键盘扫描: 1. 4根行线的GIO均设为Output,根列线的GIO均设为Input: 2. 4根行线的GIO分别置为0111.1011.1101.1110,读逐一读 ...
- 「雕爷学编程」Arduino动手做(26)——4X4矩阵键盘模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
- 蓝桥杯CT107D:关于矩阵键盘工作原理及其应用
目录 简介 原理图及工作原理 程序实现 简介 矩阵键盘是CT107D上左下角由16个按键组成的.排列顺序类似矩阵的按键组. 原理图及工作原理 工作原理: 在矩阵键盘中,在每条水平线和垂直线交叉处不直接 ...
- 单片机——C51实验含Proteus仿真(独立键盘,矩阵键盘)
文章仅为本人学习记录,如有引用部分会另加说明引用出处 矩阵键盘检测原理:(独立键盘的原理在代码注释中很详细) 线反法的原理为:首先使P1口的高四位输出高电平,P1口低四位输出低电平,这时键盘的行线被拉 ...
- 两种方式实现矩阵键盘扫描(含程序)
1 矩阵键盘的结构 下图是一个4*3的矩阵键盘示意图,三条列线连接P1.4-P1.6引脚.四条行线连接P1.0-P1.3引脚 2 逐行逐列扫描法 首先使三条列线所连接的I/O引脚P14-P16输出低电 ...
最新文章
- R语言使用forestplot包绘制森林图:编码创建森林图仿真数据、汇总线修改、元素位置调整、垂直线、字体、风格、置信区间、线型、图例、刻度、标签等
- linux查看节点使用进程后退出,Linux通过端口号查看使用进程-结束进程
- 折叠式菜单 html,JQuery实现折叠式菜单的详细代码
- 关于C++中二维vector使用
- 拯救万千学子于水深火热之中!Facebook开源无梯度优化工具
- PHP程序员必须收藏的资源大全
- 函数型计算机有储存功能吗,无存储功能的计算器指的是什么
- Soul网关源码阅读06-使用zookeeper同步数据(01)
- 计算机中现代操作系统两个基本特征是什么,现代操作系统的两个基本特征是资源共享和...
- 软件开发、设计、架构的五大原则
- 几种重要的排序算法——交换排序
- 半导体器件物理【20】PN结 —— 费米能级与电流关系、接触电势差
- 垂直整合正在塑造 Power SiC 生态系统
- python-语音识别+语音合成
- 单点登录CAS-03:cas配置02-开启/status
- CreateFileMapping MapViewOfFile UnmapViewOfFile函数用法及示例
- swing版电力系统故障录波comtrade文件离线分析软件
- npm run dev时报错code ELIFECYCLE npm ERR! errno 1 npm ERR!
- python可以写什么视觉特效_星球大战视觉特效背后的功臣—Python语言
- MySql函数, 实现Oracle中的to_data和to_char函数