矩阵式键盘接口技术及程序设计

合集下载

键盘接口技术

键盘接口技术
(1)训练目的 ①了解独立式键盘的结构与工作原理。 ②掌握按键的检测与软件消抖方法。 ③学会通过独立式按键操作设置参数的编程方法。
(2)训练任务
本项目要完成的任务是设计一个简易数字调节器。 用两位数码管显示数值,变化范围 00—59。开始时 显示 00,每按下 key1 键一次,数值加 1;每按下 key2 键一次,数值减 1;每按下 key3 键一次,数值 归零;按下 key4 键一次,利用定时器功能使数值开 始自动每秒加 1,再次按下 key4 键,数值停止自动 加 1,保持原来的数。Key1—key4 键均采用独立式 按键。 (3)任务引导
TR0=~TR0;
//启动或停止定时器T0
}
}
}
void main()
{
T0_init();
while(1)
{
keyscan();
display(num);
}
}
void T0_time() interrupt 1 //T0中断服务函数
{
TH0=(65536-50000)/256;
//重装初值
TL0=(65536-50000)%256;
1、矩阵式键盘结构
VCC 10k 10k 10k 10k
P1.0 P1.1 8051 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
2、键盘扫描方式
(逐行)
置低电平,同时读入行(或列)的状态,如果行(
或列)的状态出现非全1状态,这时0状态的行、列
GND
2、独立式键盘接口
结构简单,每个按键接单片机的一条I/O线,通 过对输入线的查询,可以识别每个按键的状态。
I/O
I/O
8051
INT0 INT1

键盘接口原理与设计

键盘接口原理与设计

矩阵键盘的接口实例
8051单片机的P1口作为键盘I/O
口,键盘的列线接到P1口的低4位,
键盘的行线接到P1口的高4位。列线 P1.0~P1.3分别接有4个上拉电阻到 正电源+5V,并把列线P1.0~P1.3设 置为输入线,行线P1.4~P.17设置为
输出线。4根行线和4根列线形成16
个相交点。
矩阵键盘的接口实例
总结:
无论以何种方式编码,均应以处理问题方便为原则, 而最基本的就是键所处的物理位置即行号和列号,它是各 种编码之间相互转换的基础,编码相互转换可通过计算或 查表的方法实现。
键盘扫描方式
编程扫描方式
定时扫描方式
中断扫描方式
编程扫描方式
编程扫描方式是利用CPU完成其他工作的空余调用键 盘扫描子程序来响应键盘输入的要求。在执行键功能程 序时,CPU不再响应键输入要求,直到CPU重新扫描键 盘为止。
(6)显示RAM和显示寄存器。
I/O控制及数据缓冲器
数据缓冲器是双向缓冲器,连接内外 总线,用于传送CPU和8279之间的命令或 数据,对应的引脚为数据总线D0~D7。 I/O控制线是CPU对8279进行控制的引
线,对应的引脚为数据选择线A0;片选线;
读、写信号线。
控制与定时寄存器
控制与定时寄存器用来寄存键盘及显示工
消抖----软件方法
不过一般情况下,通常不对按键释放的 后沿进行处理,实践证明,也能满足一 定的要求。当然,在实际应用中,对按 键的要求也是千差万别的,要根据不同 的需要来编制处理程序,但以上是消除 按键抖动的原则。
简单键盘接口
简单键盘的工作原理
简单键盘的接口电路与编程
实践与思考
简单键盘的工作原理

基于msc51单片机实现的四位4乘4矩阵键盘计算器的C语言程序及其PROTUES电路和仿真_课程设计

基于msc51单片机实现的四位4乘4矩阵键盘计算器的C语言程序及其PROTUES电路和仿真_课程设计

单片机原理及接口技术课程设计报告设计题目:计算器设计信息与电气工程学院二零一三年七月计算器设计单片机体积小,功耗小,价钱低,用途灵活,无处不在,属专用运算机。

是一种特殊器件,需通过专门学习方能把握应用,应用中要设计专用的硬件和软件。

最近几年来,单片机以其体积小、价钱廉、面向操纵等独特优势,在各类工业操纵、仪器仪表、设备、产品的自动化、智能化方面取得了普遍的应用。

与此同时,单片机应用系统的靠得住性成为人们愈来愈关注的重要课题。

阻碍靠得住性的因素是多方面的,如组成系统的元器件本身的靠得住性、系统本身各部份之间的彼此耦合因素等。

其中系统的抗干扰性能是系统靠得住性的重要指标。

数学是科技进步的重要工具,数据的运算也随着科技的进步越发变得繁琐复杂,计算器的显现能够大大解放人在设计计算进程中的工作量,使计算的精度、速度取得改善,通过msc51单片机,矩阵键盘和LED数码管能够实现简单的四位数的四那么运算和显示,并当运算结果超出范围时予以报错。

注:这一部份要紧描述题目的背景和意义,对设计所采取的要紧方式做一下简要描述。

字数不要太多,300-500字。

另注:本文要当做模板利用,不要随意更改字体、字号、行间距等,学会利用格式刷。

文中给出的各项内容都要在大伙儿的报告中表现,可采纳填空的方式利用本模板。

1. 设计任务结合实际情形,基于AT89C51单片机设计一个计算器。

该系统应知足的功能要求为:(1) 实现简单的四位十进制数字的四那么运算;(2) 按键输入数字,运算法那么;(3) LED数码管移位显示每次输入的数据和运算结果;(4) 当运算结果超出范围时实现报错。

要紧硬件设备:AT89C51单片机、LED数码管、矩阵键盘。

注:这一部份需要写明系统功能需求,用到的要紧硬件(参考实验箱的说明书)。

2. 整体方案设计计算器以AT89C51单片机作为整个系统的操纵核心,应用其壮大的I/O功能和计算速度,组成整个计算器。

通过矩阵键盘输入运算数据和符号,送入单片机进行数据处置。

单片机教程26课单片机矩阵式键盘接口技术及程序设计

单片机教程26课单片机矩阵式键盘接口技术及程序设计

单片机教程26课:单片机矩阵式键盘接口技术及程序设计发布:2009-4-04 22:40 | 作者:hnrain | 查看:885 次在单片机系统中键盘中按钮数量较多时,为了减少I/O 口的占用,常常将按钮排列成矩阵形式,如图1所示。

在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按钮加以连接。

这样,一个端口(如P1 口)就能组成4*4=16个按钮,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就能组成20键的键盘,而直接用端口线则只能多出一键(9键)。

由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

<单片机矩阵式键盘接口技术及编程接口图>矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O 口作为输出端,而列线所接的I/O 口则作为输入。

这样,当按钮没有按下时,所有的输出端都是高电平,代表无键按下。

行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样, 通过读入输入线的状态就可得知是否有键按下了。

具体的识别及编程办法如下所述。

矩阵式键盘的按钮识别办法确定矩阵式键盘上何键被按下介绍一种行扫描法”行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按钮识别办法,如上图所示键盘,介绍过程如下。

判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。

只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按钮之中。

若所有列线均为高电平,则键盘中无键按下。

判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。

其办法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。

在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。

若某列为低,则该列线与置为低电平的行线交叉处的按钮就是闭合的按钮。

4×4_矩阵键盘计算器设计

4×4_矩阵键盘计算器设计

西华大学课程设计说明书题目4×4 矩阵键盘计算器设计系(部) 电气信息学院专业(班级) 自动化3班姓名学号指导教师胡红平起止日期2012.6.10-2012.6.30计算机接口及应用课程设计任务书系(部):电气信息学院专业:09自动化指导教师:日期:2012-6-20西华大学课程设计鉴定表摘要近几年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。

在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结合,加以完善。

本任务是个简易得三位数的减法运算,用4×4 矩阵键盘及计算器设计,利用数码管实现255内的减法运算。

程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。

本任务重在设计构思与团队合作,使得我们用专业知识,专业技能分析和解决问题全面系统的锻炼。

关键词:单片机,AT89C51,矩阵键盘,数码管ABSTRACTIn recent years, along with the rapid development of science and technology, the application of SCM is unceasingly thorough, it causes the traditional control test technology increasingly updates. In real-time detection and automatic control of single-chip microcomputer application system, often as a core component to use, only microcontroller aspects of knowledge is not enough, should according to specific hardware combined, and perfects.This task is a simple three digits, subtract with 4 * 4 matrix keyboard and a calculator design, use digital tube realization within the 255 subtract. Program is according to the teaching material and within the network reference and compiled program, on the function is not perfect, restrictions also more. This task focuses on design conception and team cooperation, make us with professional knowledge, professional skills to analyze and solve problems of full system exercise.Keywords:Single-chip,AT89C51,Matrix keyboard,digital tube目录摘要 (I)ABSTRACT (II)第1章课题概述 (1)1.1 课题概述 (1)1.2 课题要求 (2)第2章系统设计 (3)2.1 设计思路 (3)2.2 框图设计 (3)2.3 知识点 (3)2.4 硬件设计 (4)2.4.1 电路原理图 (4)2.4.2 元件选择 (5)2.4.3 PCB制版及效果 (9)2.5 软件设计 (10)2.5.1 程序流程图 (10)2.6 系统仿真及调试 (11)2.6.1 硬件调试 (11)2.6.2 软件调试 (11)2.6.3 软硬件调试 (11)结论 (11)参考文献 (14)附录 (15)第1章课题概述1.1 课题概述随着当今时代的电子领域的发展,尤其是自动化的控制领域,传统的分立元件或数字逻辑电路构成的控制系统正被智能化的单片机所取代。

《矩阵键盘》课件

《矩阵键盘》课件

游戏机按键通常配备震动反馈 功能,提供触觉反馈,增强游 戏体验的真实感。
工业控制设备
工业控制设备如自动 化仪表、数控机床等 也采用矩阵键盘布局 。
工业控制设备的矩阵 键盘通常防水、防尘 ,适应恶劣的工业环 境。
矩阵键盘的设计使得 工业控制设备能够实 现快速、准确的输入 控制指令。
06
矩阵键盘的未来展望

扫描程序
按照一定的规则逐行逐列扫描键盘 ,检测按键状态变化。
识别程序
根据按键电路的状态变化,判断具 体哪个按键被按下,并执行相应的 操作。
接口通信方式
并行通信
通过数据线将按键信号直接传输 到微控制器,数据传输速度快,
但需要较多的数据线。
串行通信
通过串行数据线将按键信号传输 到微控制器,数据传输速度较慢
键。
矩阵键盘的设计使得电子琴能够 模拟传统钢琴的触感,提供逼真
的演奏体验。
电子琴的矩阵键盘通常配备力度 感应功能,根据按下琴键的力度
来调整音符的音量和音质。
游戏机按键
游戏机按键通常采用矩阵键盘 布局,以适应游戏过程中快速 输入指令的需求。
矩阵键盘的设计使得游戏机按 键能够实现多键同时按下,提 高游戏操作的准确性和速度。
THANKS
感谢观看
03
矩阵键盘的电路设计
硬件电路设计
电源电路
为矩阵键盘提供稳定的电 源,确保按键的正常工作 。
按键电路
每个按键对应一个或多个 行列交叉点,通过检测行 和列的状态变化来确定按 键的按下状态。
输出电路
将按键信号输出到微控制 器或其他处理设备进行处 理。
软件编程设计
初始化程序
对矩阵键盘进行初始化设置,包 括设置扫描频率、去抖动时间等

9 接口技术II键盘接口

9 接口技术II键盘接口

P.168
b. 线反转法
采用线反转法的键盘行线、 列线端口各自应当可以在输 入与输出方式间切换! 如图:高四位与低四位均可 独立改变其输入或输出方式
实验板4×4键盘 实验板 × 键盘 连接82C55的端口线 连接 的端口线 PC3 PC2 PC1 PC0 PC4 PC5 PC6 PC7
图10-10线反转法原理图 10-10线反转法原理图 第1步:列线输出为全‘0’ ,随后输入行线电平如有‘0’,则 线输出为全‘ 随后输入行线电平如有‘ , 所在的行就是闭合的按键所在行; 则无键闭合。 ‘0’所在的行就是闭合的按键所在行;无‘0’则无键闭合。 所在的行就是闭合的按键所在行 则无键闭合 随后输入列线电平如有‘ , 第2步:行线输出为全‘0’ ,随后输入列线电平如有‘0’,则 线输出为全‘ 则无键闭合。 所在的列就是闭合的按键所在列; 则无键闭合 ‘0’所在的列就是闭合的按键所在列;无‘0’则无键闭合。 所在的列就是闭合的按键所在列 结合上述两步,可确定按键所在行和列。 结合上述两步,可确定按键所在行和列。
键盘扫描子程序---3 TEST2011.ASM 键盘扫描子程序--3 KN:MOV MOV MUL MOV JMP A,61H B,#05H AB DPTR,#K0 DPTR,#K0 @A+DPTR ;根据查表获得的键号00H~0FH之一转向相应处理程序 根据查表获得的键号00H~0FH之一转向相应处理程序 00H ;转移表中每个键号处理程序占 转移表中每个键号处理程序占5 ;转移表中每个键号处理程序占5个地址单元
键盘扫描子程序---1 TEST2011.ASM 键盘扫描子程序--1 KEY:MOV 键盘扫描子程序(反转法) KEY:MOV A,#81H ;键盘扫描子程序(反转法) MOV DPTR,#0FEFFH ;C口先初始化为高 位输出驱行线、 口先初始化为高4 MOVX @DPTR,A ;C口先初始化为高4位输出驱行线、低4位输入列线 MOV DPTR,#0FEFEH 键盘行线 行线( 输出驱动全 驱动全'0' MOV A,#00H ;键盘行线(高4位)输出驱动全'0' MOVX @DPTR,A A,@DPTR 输入键盘列线电平 列线电平( 60H单元 MOVX A,@DPTR ;输入键盘列线电平(低4位)存60H单元 MOV 60H,A ;C口改初始化为高 位输入行线、 口改初始化为高4 MOV A,#88H ;C口改初始化为高4位输入行线、低4位输出驱列线 MOV DPTR,#0FEFFH MOVX @DPTR,A MOV DPTR,#0FEFEH 键盘列线 列线( 输出驱动全 驱动全'0' MOV A,#00H ;键盘列线(低4位)输出驱动全'0' MOVX @DPTR,A 行线电平( 输入键盘行线电平 MOVX A,@DPTR ;输入键盘行线电平(高4位)在A中 ANL 60H,#0FH ;列线电平值保留所在的低4位 列线电平值保留所在的低4 行线电平值保留所在的高4 ANL A,#0F0H ;行线电平值保留所在的高4位 ;两次输入的列线电平值 行线电平值组合成 两次输入的列线电平值、 合成8 ORL 60H,A ;两次输入的列线电平值、行线电平值组合成8位行列码

一、 独立式键盘接口电路及程序设计

一、 独立式键盘接口电路及程序设计
第3章 智能仪器人机接口
3.1 键盘与接口 3.2 LED显示及接口 3.3 键盘/LED显示器接口设计 3.4 CRT显示及接口 3.5 微型打印机及接口
第3章 智能仪器人机接口
人机交互功能即用户与仪器交换信息的功能。 这个功能有两方面的含义:一是用户对智能仪 器进行状态干预和数据输入;二是智能仪器向用户报 告运行状态与处理结果。
3.1 键盘与接口
3.1.1 键盘输入基础知识
一、 键盘的组织
键盘按其工作原理可分为编码式键盘和非编码式键盘。
编码式键盘由按键键盘和专用键盘编码器两部分构成。当键 盘中某一按键被按下时,键盘编码器会自动产生对应的按键代 码, 并输出选通脉冲信号与CPU 进行信息联络。
非编码键盘不含编码器,当某键按下时,键盘只送出一个简 单的闭合信号, 对应按键代码的确定必须借助于软件来完成。
一、 独立式键盘接口电路及程序设计
独立式键盘的每个按键占用一根测试线,它们可以直接与 单片机I/O 线相接或通过输入口与数据线相接,结构很简单。 这些测试线相互独立无编码关系,因而键盘软件不存在译码问 题,一旦检测到某测试线上有键闭合,便可直接转入到相应的 键功能处理程序进行处理。
一个实际三个按 键的独立式键盘接口 电路如右图所示:
3.1.1 键盘输入基础知识
一、 键盘的组织 二、 键盘的工作方式
编程扫描工作方式、中断工作方式和定时扫描工作方式。 (1) 编程扫描工作方式:也称查询方式。 (2) 中断工作方式:程扫描工作方式: 该方式也称查询方式,它是利用 CPU在完成其他工作的空余调用键盘扫描程序,以响应键输入 的要求。当CPU在运行其他程序时,它就不会再响应键输入要 求,因此,采用该方式编程时, 应考虑程序是否能对用户的每 次按键都会做出及时的响应。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在单片机系统中键盘中按钮数量较多时,为了减少I/O口的占用,常常将按钮排列成矩阵形式,如图1所示。

在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按钮加以连接。

这样,一个端口(如P1口)就能组成4*4=16个按钮,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就能组成20键的键盘,而直接用端口线则只能多出一键(9键)。

由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。

<单片机矩阵式键盘接口技术及编程接口图>
矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的I/O口作为输出端,而列线所接的I/O口则作为输入。

这样,当按钮没有按下时,所有的输出端都是高电平,代表无键按下。

行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

具体的识别及编程办法如下所述。

矩阵式键盘的按钮识别办法
确定矩阵式键盘上何键被按下介绍一种“行扫描法”。

行扫描法行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按钮识别办法,如上图所示键盘,介绍过程如下。

判断键盘中有无键按下将全部行线Y0-Y3置低电平,然后检测列线的状态。

只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按钮之中。

若所有列线均为高电平,则键盘中无键按下。

判断闭合键所在的位置在确认有键按下后,即可进入确定具体闭合键的过程。

其办法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电
平。

在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。

若某列为低,则该列线与置为低电平的行线交叉处的按钮就是闭合的按钮。

下面给出一个具体的例程:
图仍如上所示。

8031单片机的P1口用作键盘I/O口,键盘的列线接到P1口的低4位,键盘的行线接到P1口的高4位。

列线P1.0-P1.3分别接有4个上拉电阻到正电源+5V,并把列线P1.0-P1.3设置为输入线,行线P1.4-P.17设置为输出线。

4根行线和4根列线形成16个相交点。

检测当前是否有键被按下。

检测的办法是P1.4-P1.7输出全“0”,读取
P1.0-P1.3的状态,若P1.0-P1.3为全“1”,则无键闭合,不然有键闭合。

去除键抖动。

当检测到有键按下后,延时一段时间再做下一步的检测判断。

若有键被按下,应识别出是哪一个键闭合。

办法是对键盘的行线进行扫描。

P1.4-P1.7按下述4种组合依次输出:
P1.7 1 1 1 0
P1.6 1 1 0 1
P1.5 1 0 1 1
P1.4 0 1 1 1
在每组行输出时读取P1.0-P1.3,若全为“1”,则表示为“0”这一行没有键闭合,不然有键闭合。

由此得到闭合键的行值和列值,然后可采用计算法或查表法将闭合键的行值和列值转换成所定义的键值
为了保证键每闭合一次CPU仅作一次处理,必须却除键释放时的抖动。

《单片机矩阵式键盘接口技术及编程》
键盘扫描程序:
从以上分析得到单片机键盘扫描程序的流程图如图2所示。

程序如下SCAN: MOV P1,#0FH
MOV A,P1
ANL A,#0FH
CJNE A,#0FH,NEXT1
SJMP NEXT3
NEXT1: ACALL D20MS
MOV A,#0EFH
NEXT2: MOV R1,A
MOV P1,A
MOV A,P1
ANL A,#0FH
CJNE A,#0FH,KCODE;
MOV A,R1
SETB C
RLC A
JC NEXT2
NEXT3: MOV R0,#00H RET
KCODE: MOV B,#0FBH NEXT4: RRC A
INC B
JC NEXT4
MOV A,R1
SWAP A
NEXT5: RRC A
INC B
INC B
INC B
INC B
JC NEXT5
NEXT6: MOV A,P1 ANL A,#0FH
CJNE A,#0FH,NEXT6 MOV R0,#0FFH
RET
键盘处理程序就作这么一个简单的介绍,实际上,键盘、显示处理是很复杂的,它一般占到一个应用程序的大部份代码,可见其重要性,但说到,这种复杂并不来自于单片机的本身,而是来自于操作者的习惯等等问题,因此,在编写键盘处理程序之前,最好先把它从逻辑上理清,然后用适当的算法表示出来,最后再去写代码,这样,才能快速有效地写好代码。

到本课为止,本站教程暂告一个段落!请继续关注的单片机教程。

感谢大家的关心和支持!教程中如果有不对之处也希望大家在评论中提出,我们会及时正更错误的.
本文出自:/mcuteach/226.html
其它:。

相关文档
最新文档