电子发烧友网 > 控制/MCU > 正文

pic单片机键盘系统的设计方案

2020年03月06日 10:38 次阅读

在往期文章中,小编曾和大家共同分享过pic单片机I/O操作、pic单片机选型经验以及pic单片机中断模块等内容。在本文中,小编将对pic单片机的4×4行列式键盘的工作原理加以介绍,以帮助大家增进对pic单片机键盘系统的了解,方便后期编程使用。

(1)单片机系统键盘原理

行列式键盘的接法比独立式键盘的接法复杂,编程实现上也会比较复杂。但是,在占用相同的I/O端口的情况下,行列式键盘的接法会比独立式接法允许的按键数量多,其原理图如图1所示。

pic单片机键盘系统的设计方案

图1 4×4行列式键盘的原理图

实际的工程中,可能会使用PIC16C5X这种通用的可编程的键盘、显示接口器件,使用PIC16C5X单片器件就能够完成键盘输入和显示控制两种功能。

行列式键盘的工作方式是先用列线发送扫描字,然后读取行线的状态,查看是否有按键按下。键盘部分提供一种扫描的工作方式,可以和具有64个按键的矩阵键盘相连接,能对键盘不断扫描、自动消抖、自动识别按下的键,并给出编码,能对双键或n个键同时按下的情况实行保护。

在显示部分,它可以为发光二极管、荧光管及其他显示器提供按扫描方式工作的显示接口,而且为显示器提供多路复用信号,可以显示多达16位的字符或数字。

键盘中有无按键按下是由列线送入全扫描字、行线读入行线状态来判断的,其方法是将列线的所有I/O线均置成低电平,然后将行线电平状态读入累加器A中,如果有键按下,总会有一根行线被拉至低电平,从而使行输入不全为1。

键盘中哪一个键按下可由列线逐列置低电平后,检查行输入状态来判断,其方法是依次给列线送低电平,然后检查所有行线状态,如果全为1,则所按下的键不在此列,如果不全为1,则所按下的键必在此列,而且是在与0电平线相交的交点上的那个键。

(2)单片机键盘扫描法

pic单片机键盘系统的设计方案

扫描法是在判定有键按下后逐列果行(或列)的状态出现非全1状态,如果(或列)的状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。

扫描法的特点是逐行(或逐列)扫描查询,这时相应行(或列)应有上拉电阻接高电平。行列式键盘扫描程序就是采用扫描法来确定哪个键按下的,图1中行线上拉电阻接+5V,列线逐列扫描。

①逐行(或列)扫描查询法。

确定矩阵式键盘上哪个键被按下时运用扫描法,又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,过程如下。

· 判断键盘中有无键按下,将全部行线Y0~Y3置低电平,然后检测列线的状态。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。

· 判断闭合键所在的位置,在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其他线为高电平,在确定某根行线位置为低电平后,再逐行检测各列线的电平状态,若某列为低,则该列线与置为低电平的行线交叉处的按钮就是闭合的按键。

②反转法。

扫描法要逐列(行)扫描查询,当按下的键在最后行(列),要经过多次扫描才能获得键值/键号。而反转法只要经过两个步骤就可获得键值,原理如图2所示。

pic单片机键盘系统的设计方案

图2 线反转法原理

图中硬件采用中断方式工作,用一个8位I/O口构成4&TImes;4键盘。假定图中虚线为所按下的键,其反转法的步骤如下。

· 将D3~D0设为列输入线,D7~D4设为行输出线,并使I/O输出信号D7~D4为0000。若有键按下,与门的输出端变为低电平,向CPU申请中断,表示键盘中有键按下。与此同时,D3~D0的数据输入到内存中的某一单元中,其中0位对应的是被按下键的列位置。

· 将第一步中的传送方向反转过来,即将D7~D4设为输入线,D3~D0设为输出线。使I/O口输出数据为N单元中的数(即D3~D0为按下键的列位置),然后读入I/O口数据,并送入内存N+1单元中存放,该数据的D7~D4位中0电平对应的位是按下键的行位置。最后,将N单元中的D3~D0与N+1单元中的D7~D4拼接起来就是按下键的键值。

单片机应用系统中,任何I/O口或扩展I/O口均可构成行列式键盘。由于带有行列式键盘的应用系统中通常都有显示器,为节省I/O口线,往往把显示器电路与行列式键盘做在一个接口电路中。
责任编辑;zl

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播

电子发烧友观察

一线报道 · 深度观察 · 最新资讯
收藏 人收藏
分享:

评论

相关推荐

PIC16F874单片机为中心处理器的直流电机调...

本调速系统采用PIC16F874单片机作为中心处理器,充分利用了PIC16F874单片机捕捉、比较、....
发表于 2020-03-07 13:21 7次阅读
PIC16F874单片机为中心处理器的直流电机调...

PIC单片机以及51和AVR单片机的IO口操作方...

51单片机IO口的结构比较简单,每个IO口只有一个IO口寄存器Px,而且这个寄存器可以位寻址,操作起....
发表于 2020-03-06 18:37 179次阅读
PIC单片机以及51和AVR单片机的IO口操作方...

pic单片机程序设计的基本方法解析

pic单片机在学习和工作中均扮演着重要角色,在往期文章中,小编曾对pic单片机汇编指令加以介绍,以帮....
发表于 2020-03-06 09:58 167次阅读
pic单片机程序设计的基本方法解析

如何dsPIC33E在Bootloader和APP中都有中断(不同时用)

我用的是PIC24HJ128GP502 , dsPIC33EV256GM106 目前想达到的目的,Bootloader中使用CAN中断(处理...
发表于 2020-02-25 10:35 365次阅读
如何dsPIC33E在Bootloader和APP中都有中断(不同时用)

基于PIC单片机的精确加油系统设计

精确加油系统由低功耗单片机(PIC16C57)、IC卡读写控制电路、EEPROM存储电路、液晶显示、....
发表于 2020-02-17 16:26 295次阅读
基于PIC单片机的精确加油系统设计

pic单片机多路ad切换程序与循环程序设计

pic单片机(Peripheral Interface Controller)是一种用来开发和控制外....
发表于 2020-02-09 10:13 174次阅读
pic单片机多路ad切换程序与循环程序设计

PIC单片机实现AD转换的设计方案

AD转换就是模数转换。顾名思义,就是把模拟信号转换成数字信号。主要包括积分型、逐次逼近型、并行比较型....
发表于 2020-02-08 16:16 149次阅读
PIC单片机实现AD转换的设计方案

PIC单片机实现多回路温度控制系统的设计

本系统被设计为8个温度检测回路, 每一个回路将热电偶产生的对温度的微弱信号, 经过温度变送单元转换成....
发表于 2020-02-08 15:20 165次阅读
PIC单片机实现多回路温度控制系统的设计

pic单片机的各种汇编语言指令解析

因此,熟练 pic 单片机编程尤为重要。为保证大家能准确、熟练掌握 pic 单片机的使用,本文特带来....
发表于 2020-02-08 09:31 157次阅读
pic单片机的各种汇编语言指令解析

基于pic单片机的评估板设计方案

近年来,由于数据通信需求的推动,加上半导体、计算机等相关电子技术领域的快速发展,短距离无线与移动通信....
发表于 2020-02-07 09:05 125次阅读
基于pic单片机的评估板设计方案

PIC单片机程序编写和动作标志位的使用方法解析

在这里使用的大多是数字信号的控制,电机的控制只有开和合两种状态。在动作的过程中需要两只手臂、身体、头....
发表于 2020-01-25 17:04 67次阅读
PIC单片机程序编写和动作标志位的使用方法解析

PIC单片机相比其他单片机有什么优势

PIC单片机的数据线和指令线各自独立,代码效率高,是传统51系列单片机的2-3倍,除几个跳转类指令外....
发表于 2020-01-25 16:56 50次阅读
PIC单片机相比其他单片机有什么优势

PIC12C509A芯片制作振荡器的设计

第一次用PIC12C509A芯片制作的振荡器,其源程序为PIC02.ASM,用程序存储器第1页面和数....
发表于 2020-01-25 16:56 61次阅读
PIC12C509A芯片制作振荡器的设计

如何设置PIC单片机的端口

PIC16F616有12个IO口,但是有一个引脚(RA3)只能作为输入引脚用,不能用作输出,另外,A....
发表于 2020-01-24 17:10 104次阅读
如何设置PIC单片机的端口

PIC单片机使LCD面板产生闪烁效果的设计

如果电源的电能即将耗尽,则通常整个时钟显示会开始闪烁。这使用户可以立即了解时钟不再显示正确的时间。 ....
发表于 2020-01-24 16:51 66次阅读
PIC单片机使LCD面板产生闪烁效果的设计

PIC单片机的振荡器应该如何配置

PIC系列单片机可工作于不同的振荡器方式。用户可以根据其系统设计的需要,选择下述四种振荡方式中的一种....
发表于 2020-01-24 09:51 431次阅读
PIC单片机的振荡器应该如何配置

PIC单片机开发的一些经验和技巧解析

功耗,在电池供电的仪器仪表中是一个重要的考虑因素。PIC16C××系列单片机本身的功耗较低(在5V,....
发表于 2020-01-10 16:08 266次阅读
PIC单片机开发的一些经验和技巧解析

基于PIC单片机的多回路温度控制系统设计

本系统被设计为8个温度检测回路, 每一个回路将热电偶产生的对温度的微弱信号, 经过温度变送单元转换成....
发表于 2020-01-09 16:45 226次阅读
基于PIC单片机的多回路温度控制系统设计

基于PIC单片机的测试评估板设计

它被广泛应用于无线数据采集、无线水表、煤气表、电力表抄表、工业遥控、遥测、工业数据采集、楼宇自动化、....
发表于 2020-01-03 15:59 240次阅读
基于PIC单片机的测试评估板设计

PIC单片机驱动LCD模块的设计

偏置电压是通过使用外部梯形电阻网络(电路见下图)而产生。因为梯形电阻网络连接在VDD和Vss之间,所....
发表于 2019-12-31 15:19 293次阅读
PIC单片机驱动LCD模块的设计

PIC单片机和AVR单片机IO的操作方法解析

51单片机、AVR单片机和PIC单片机IO口结构的均不同,导致了IO口操作也不同。操作单片机IO口的....
发表于 2019-12-30 15:50 349次阅读
PIC单片机和AVR单片机IO的操作方法解析

PIC单片机的多路AD切换程序设计

pic单片机(Peripheral Interface Controller)是一种用来开发和控制外....
发表于 2019-12-30 15:41 279次阅读
PIC单片机的多路AD切换程序设计

PIC单片机进行AD转换的设计

我们先看看R1和R2,R2是个可调电阻 如果我们将R2变大 RA1这个管脚上的电压就越大。R2变小 ....
发表于 2019-12-26 15:52 338次阅读
PIC单片机进行AD转换的设计

基于PIC单片机的数据采集系统设计

C++程序设计语言可以很好地实现面向对象的编程思想,采用C++编写上位机程序,可以将每一个功能模块封....
发表于 2019-12-25 15:29 220次阅读
基于PIC单片机的数据采集系统设计

基于PIC8位单片机实现红外遥控器的设计

遥控码是一串二进制数字信号,通过脉冲编码形成脉冲序列,被调制到一个固定频率载波上,最后通过红外发射管....
发表于 2019-12-20 15:31 293次阅读
基于PIC8位单片机实现红外遥控器的设计

PIC单片机驱动LCD段驱动器的设计

4×4小键盘的典型数字接口使用8个数字I/O引脚。但使用8个引脚作为数字I/O会占用可用于连接LCD....
发表于 2019-12-19 15:35 207次阅读
PIC单片机驱动LCD段驱动器的设计

PIC单片机实现护理机智能控制的设计

系统工作时,PIC单片机每隔500ms将护理机的水温、风温、流量、清水桶液位下限报警、收集桶脏物上限....
发表于 2019-12-18 15:28 256次阅读
PIC单片机实现护理机智能控制的设计

常用类型单片机的优缺点解析

单片机,single chip microcomputer,单芯片微型计算机。总体来说,他就是一个芯....
发表于 2019-12-13 15:48 539次阅读
常用类型单片机的优缺点解析

基于PIC单片机产生SPWM信号控制逆变桥的方法...

随着信息技术的不断发展和计算机应用的日益普及,高新技术设备对供电质量的要求越来越高,很多设备都要求电....
发表于 2019-12-02 15:30 356次阅读
基于PIC单片机产生SPWM信号控制逆变桥的方法...

PIC单片机的清零指令详解

看到这篇文章的朋友,想必大家对pic单片机均具备一定兴趣,或对pic单片机具备一定使用需求。前文中,....
发表于 2019-11-26 16:23 271次阅读
PIC单片机的清零指令详解

PIC单片机程序设计的基础知识介绍

pic单片机在学习和工作中均扮演着重要角色,在往期文章中,小编曾对pic单片机汇编指令加以介绍,以帮....
发表于 2019-11-26 16:19 259次阅读
PIC单片机程序设计的基础知识介绍

PIC单片机的各种汇编语言指令详解

pic8位单片机共有三个级别,有相对应的指令集。基本级pic系列芯片共有指令33条,每条指令是12位....
发表于 2019-11-26 16:09 485次阅读
PIC单片机的各种汇编语言指令详解

VL6180x状态RESULT_INTERRUPT_STATUS_GPIO读取始终为0

在手册上看到R1不能大于10K,R2不能大于470,在手册上找不到依据 有大佬能给解答一下吗 比如R1使用15K,R2使...
发表于 2019-11-23 10:00 668次阅读
VL6180x状态RESULT_INTERRUPT_STATUS_GPIO读取始终为0

PIC单片机的各种汇编语言指令的用法解析

PIC 8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12....
发表于 2019-11-12 15:58 387次阅读
PIC单片机的各种汇编语言指令的用法解析

PIC单片机的输入和输出操作方法介绍

pic单片机是学习单片机人士必定接触的一款器件,因此大家对pic单片机或多或少具备一定了解。
发表于 2019-11-08 16:17 700次阅读
PIC单片机的输入和输出操作方法介绍

PIC单片机4×4行列式键盘的工作原理解析

实际的工程中,可能会使用PIC16C5X这种通用的可编程的键盘、显示接口器件,使用PIC16C5X单....
发表于 2019-11-08 16:12 560次阅读
PIC单片机4×4行列式键盘的工作原理解析

PIC单片机的各种内部硬件功能及用法介绍

数据存储器在单片机PIC16F84中,除了有存放程序的程序存储器外,还有数据存储器。单片机在执行程序....
发表于 2019-11-08 16:05 375次阅读
PIC单片机的各种内部硬件功能及用法介绍

51单片机与PIC单片机和AVR单片机的性能对比...

51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器。它的处理....
发表于 2019-11-04 15:26 454次阅读
51单片机与PIC单片机和AVR单片机的性能对比...

在处理PIC单片机的中断服务程序时需要注意哪些问...

PIC与51系列单片机一个显著的区别就是:PIC只有一个中断入口地址(为04H),而51有多个中断源....
发表于 2019-10-28 16:45 300次阅读
在处理PIC单片机的中断服务程序时需要注意哪些问...

PIC单片机的查表程序设计

具体是在主程序中先取表数据地址放入W,接着调用子程序,子程序的第一条指令将W置入PC,则程序跳到数据....
发表于 2019-10-24 15:53 441次阅读
PIC单片机的查表程序设计

基于PIC单片机的直流电机测速程序设计

u通过模式选择位CCPxM3:CCPxM0(CCPxCON《3:0》)选择事件类型。当一个捕捉发生时....
发表于 2019-10-23 17:13 378次阅读
基于PIC单片机的直流电机测速程序设计

如何用c语言编写pic单片机?

HI成员,我是新的微控制器编程。我想用C语言在MPLLABXIDE,XC8编译器上编写PIC 16F18345微控制器。...
发表于 2019-10-23 10:12 236次阅读
如何用c语言编写pic单片机?

如何实现PIC单片机与PC机异步串行通信?

       异步串行通信基本概念; 异步串行通信字符格式如图1所示。通信线路上传送的每个字符包括1...
发表于 2019-10-22 07:50 102次阅读
如何实现PIC单片机与PC机异步串行通信?

PIC单片机位域结构的应用解析

有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,....
发表于 2019-10-18 16:39 223次阅读
PIC单片机位域结构的应用解析

PIC单片机的命名规则详细介绍

pic单片机相当于一个小的计算机,pic单片机(Peripheral Interface Contr....
发表于 2019-10-16 16:46 375次阅读
PIC单片机的命名规则详细介绍

PIC单片机的复位系统模块与中断模块介绍

每次单片机加电时,上电复位电路都要对电源电压VDD的上升过程进行检测,当VDD值上升到规定值1.6~....
发表于 2019-10-16 16:41 291次阅读
PIC单片机的复位系统模块与中断模块介绍

PIC单片机系统定义字的含义解析

 用户可以在烧写OTP或窗口型芯片时,选择烧写这四个熔丝。详见第七章烧写工具介绍说明。对于腌膜芯片,....
发表于 2019-10-13 16:51 317次阅读
PIC单片机系统定义字的含义解析

PIC单片机EUSART串行通信接口的应用方法解...

在数据发送中每个位的时间都要事先定好,而且发送和接收的双方都必须事先知道并设置好。那这个时间是怎么确....
发表于 2019-10-13 16:23 321次阅读
PIC单片机EUSART串行通信接口的应用方法解...

MAX7219级联显示时有一个模块总是有闪烁

[code] 最近学习单片机,用的是877A,4M晶振,在用MAX7219级联驱动4块8*8组成8*32点阵时,总是第三块有闪烁。请...
发表于 2019-10-12 21:02 450次阅读
MAX7219级联显示时有一个模块总是有闪烁

PIC单片机与AD5410芯片控制系统输出4-2...

那4-20mA的电流信号该如何产生呢,在数字电路高度发展的今天以单片机为核心的系统比比皆是,但是单片....
发表于 2019-10-09 16:49 803次阅读
PIC单片机与AD5410芯片控制系统输出4-2...

如何进一步降低PIC单片机的功耗

具体做法是在闲置的一个I/O脚(如RB1)和OSC1管脚之间跨接一电阻(R1)。低速状态置RB1=0....
发表于 2019-10-04 17:06 337次阅读
如何进一步降低PIC单片机的功耗

基于PIC单片机的无线通讯模块测试板设计

该测试板的组成采用PIC单片机PIC16F777作为主控芯片;一个LCD1602作为显示器件;4个轻....
发表于 2019-10-04 16:53 237次阅读
基于PIC单片机的无线通讯模块测试板设计

如何在PIC单片机上实现发送数据

该程序运行在pIC单片机p18f458上实现发送缓冲器0向接收缓冲器0发送数据的自测试模式,其中接收....
发表于 2019-09-27 16:15 341次阅读
如何在PIC单片机上实现发送数据

PIC单片机源程序的模拟仿真设计

要用C语言开发PIC单片机和模拟仿真调试程序,必须有相应的编译器,PICC与PICC18的C编译器是....
发表于 2019-09-26 15:29 297次阅读
PIC单片机源程序的模拟仿真设计

附图,图中这个开关量输入电路中的二极管以及三个电阻的具体作用是什么?

如图,图中开关量输入电路中光耦输入端有三个电阻和一个二极管,请问在触点闭合及断开时这四个元件的具体作用是什么?...
发表于 2019-09-25 17:26 638次阅读
附图,图中这个开关量输入电路中的二极管以及三个电阻的具体作用是什么?

如何开发出一个PIC单片机

PIC16C××系列单片机本身的功耗较低(在5V,4MHz振荡频率时工作电流小于2mA)。为进一步降....
发表于 2019-09-25 15:25 232次阅读
如何开发出一个PIC单片机

基于PIC单片机的多功能厨房控制系统设计

随着智能家电控制技术的不断发展,具有多功能和智能化的厨房控制器成为厨房电器设备发展的主流。和传统单一....
发表于 2019-09-24 15:40 224次阅读
基于PIC单片机的多功能厨房控制系统设计

PIC18F系列单片机对多媒体终端红外遥控器硬件...

遥控码是一串二进制数字信号,通过脉冲编码形成脉冲序列,被调制到一个固定频率载波上,最后通过红外发射管....
发表于 2019-09-19 16:01 259次阅读
PIC18F系列单片机对多媒体终端红外遥控器硬件...

PIC单片机的基本程序设计方法解析

PIC单片机(Peripheral Interface Controller)是一种用来开发去控制外....
发表于 2019-09-19 15:53 249次阅读
PIC单片机的基本程序设计方法解析

PIC单片机相比其他单片机的四大优势介绍

1、 PIC单片机采用精简指令集,中档产品仅需35条指令,入门门槛低,而在使用过程中绝不会感到不方便....
发表于 2019-09-16 15:53 229次阅读
PIC单片机相比其他单片机的四大优势介绍

PIC单片机和51单片机谁更容易于学习

51单片机是对所有兼容Intel8031指令系统的单片机的统称。该系列单片机的始祖是Intel的80....
发表于 2019-09-11 15:34 501次阅读
PIC单片机和51单片机谁更容易于学习

PIC单片机的类型以及特征介绍

基本级系列 该级产品的特点是低价位,如PIC16C5X,适用于各种对成本要求严格的家电产品选用。又如....
发表于 2019-09-11 15:23 226次阅读
PIC单片机的类型以及特征介绍

PIC单片机以及51单片机和AVR单片机的IO口...

51单片机IO口的结构比较简单,每个IO口只有一个IO口寄存器Px,而且这个寄存器可以位寻址,操作起....
发表于 2019-09-11 15:19 328次阅读
PIC单片机以及51单片机和AVR单片机的IO口...

PIC系列单片机的优势是什么

据统计,我国的单片机年容量已达1-3亿片,且每年以大约16%的速度增长,但相对于世界市场我国的占有率....
发表于 2019-09-10 15:48 164次阅读
PIC系列单片机的优势是什么

请问逻辑分析仪学习单片机用处大吗?

用在学习单片机上,用处大吗?现在只是学初级的8位机,网上的逻辑分析仪有几十块的和几百块的,区别只是采样频率吗?如...
发表于 2019-08-25 10:34 382次阅读
请问逻辑分析仪学习单片机用处大吗?

求,谁知道这是什么型号的单片机

有谁知道这个是什么单片机啊?封装LQFP-64,工作电压5V,25、26脚是一对UART,27、28脚是一对UART! ...
发表于 2019-08-03 11:47 398次阅读
求,谁知道这是什么型号的单片机

新入手一个单片机PIC24FJ128不知道用什么软件开发

新入手的pic24fj128,老师直接给有点懵不知道用什么开发?? ...
发表于 2019-06-15 20:25 335次阅读
新入手一个单片机PIC24FJ128不知道用什么软件开发

MPLAB-X-IDE入门教程(中文版)

MPLAB-X-IDE一个简单的中文教程
发表于 2019-05-24 16:36 1280次阅读
MPLAB-X-IDE入门教程(中文版)