矩阵键盘电路设计

合集下载

3×4的矩阵键盘电路图及汇编语言源程序

3×4的矩阵键盘电路图及汇编语言源程序

3×4的矩阵键盘电路图及汇编语言源程序

[导读] 3×4的矩阵键盘通过并行接口芯片8255A与微机相连。8255A的A口定义为输出口,与键盘行线相连;B口定义为输入口,与键盘列线相连。设8255A A口地址为40H,B口地址为41H,控制寄存

3×4的矩阵键盘通过并行接口芯片8255A与微机相连。8255A的A口定义为输出口,与键盘行线相连;B口定义为输入口,与键盘列线相连。设8255A A口地址为40H,B口地址为41H,控制寄存器地址为43H。

MOV AL,82H

OUT 43H,AL

BEGIN:MOV AL,0

OUT 40H,AL

WAIT : IN AL,41H

AND AL,0FH

CMP AL,0FH

JZ WAIT

MOV CX,7FFH

L0: LOOP L0

ST: MOV BL,3

MOV BH,4

MOV AL,0FEH

MOV CL,0FH

MOV CH,0FFH

L1: OUT 40H,AL

ROL AL

MOV AH,AL

IN AL,41H

AND AL,CL

CMP AL,CL

JNZ L2

ADD CH,BH

MOV AL,AH

DEC BL

JNZ L1

JMP BEGIN

L2: INC CH

RCR AL

JC L2

MOV AL,CH JMP KEYTABLE

矩阵键盘电路设计

矩阵键盘电路设计

矩阵键盘电路设计

矩阵键盘是一种常见的输入设备,它通过矩阵布局的按键组成,可以方便地输入数字、字母和其他符号。在电子设备中,矩阵键盘通常采用扫描电路进行输入和控制。在本文中,将探讨矩阵键盘电路的设计。

首先,我们需要确定矩阵键盘的布局。一般情况下,矩阵键盘采用4×4或者3×4的布局。每个按键都是一个开关,当按下时闭合,松开时断开。

接下来,我们需要设计输入电路。输入电路通过扫描矩阵键盘的每一行和每一列来检测按键的状态。为了实现这个功能,我们可以使用两个二进制计数器来控制扫描的行和列。每当计数器增加时,就对应地扫描一行或者一列。我们可以通过多路复用器和反向器将计数器输出与矩阵键盘的行和列相连。当计数器的输出与矩阵键盘的行和列相连后,我们可以通过逐行或逐列地扫描矩阵键盘并检测按键的状态。如果有按键按下,我们可以将对应的按键编码为数字信号。

在设计输入电路时,我们还需要考虑按键去抖动的问题。按键去抖动是指当按键被按下或松开时,会产生多次开关闭合的现象。为了解决这个问题,我们可以使用一个滤波器电路来消除按键的抖动。滤波器电路可以采用RC滤波器或者Schmitt触发器等。

设计好输入电路后,接下来需要设计控制电路。控制电路负责扫描矩阵键盘的每一行和每一列,以及对按键的状态进行控制。我们可以使用计时器和计数器来控制扫描的速度和顺序。当检测到按键按下时,控制电路会将对应的按键编码为数字信号并传递给接收端。

此外,在设计控制电路时,我们还需要考虑矩阵键盘的多键同时按下的问题。当多个按键同时按下时,我们需要使用矩阵解码器来对这些按键进行解码,并将解码结果传递给接收端。

单片机c语言程序设计---矩阵式键盘实验报告

单片机c语言程序设计---矩阵式键盘实验报告

单片机c语言程序设计---矩阵式键盘实验报告

课程名称:单片机c语言设计实验类型:设计型实验

实验项目名称:矩阵式键盘实验

一、实验目的和要求

1.掌握矩阵式键盘结构

2.掌握矩阵式键盘工作原理

3.掌握矩阵式键盘的两种常用编程方法,即扫描法和反转法

二、实验内容和原理

实验1.矩阵式键盘实验

功能:用数码管显示4*4矩阵式键盘的按键值,当K1按下后,数码管显示数字0,当K2按下后,显示为1,以此类推,当按下K16,显示F。

(1)硬件设计

电路原理图如下

仿真所需元器件

(2)proteus仿真

通过Keil编译后,利用protues软件进行仿真。在protues ISIS 编译环境中绘制仿真电路图,将编译好的“xxx.hex”文件加入AT89C51。启动仿真,观察仿真结果。

操作方完成矩阵式键盘实验。具体包括绘制仿真电路图、编写c源程序(反转法和扫描法)、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,总结观察的仿真结果。完成思考题。

三、实验方法与实验步骤

1.按照硬件设计在protues上按照所给硬件设计绘制电路图。

2.在keil上进行编译后生成“xxx.hex”文件。

3.编译好的“xxx.hex”文件加入AT89C51。启动仿真,观察仿真结果。

四、实验结果与分析

void Scan_line()//扫描行

{

Delay(10);//消抖

switch ( P1 )

{

case 0x0e: i=1;

break;

case 0x0d: i=2;

break;

case 0x0b: i=3;

break;

case 0x07: i=4;

矩阵键盘显示电路的设计

矩阵键盘显示电路的设计

矩阵键盘显示电路的设计

一、实验目的

1、了解普通4×4键盘扫描的原理。

2、进一步加深七段码管显示过程的理解。

3、了解对输入/输出端口的定义方法。

二、实验原理

实现键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。作为一个嵌入系统设计人员,总是会关心产品成本。目前有很多芯片可以用来实现键盘扫描,但是键盘扫描的软件实现方法有助于缩减一个系统的重复开发成本,且只需要很少的CPU 开销。嵌入式控制器的功能能强,可能充分利用这一资源,这里就介绍一下软键盘的实现方案。

图12-1 简单键盘电路

通常在一个键盘中使用了一个瞬时接触开关,并且用如图10-1 所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的/IO 口的输入将被拉低得到逻辑0。可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1 或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如图12-2 所示的好几个脉冲。弹起的持续时间通常将维持在5ms∼30ms 之间。如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。

图12-2 按键抖动

键盘上阵列这些开关最有效的方法(当需要5 个以上的键时)就形成了一个如图12-3 所示的二维矩阵。当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候)。一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。

矩阵键盘电路设计

矩阵键盘电路设计

学号: 2

课程设计

题目矩阵键盘电路设计

教学院计算机学院

专业计算机应用技术

班级

姓名

指导教师

2010 年01 月12 日

前言.................................................................... 第一章需求分析.........................................................

功能描述.........................................................

功能分析......................................................... 第二章系统的原理及分析.................................................

用到的知识点的介绍,知识点使用的总体思路

第三章详细设计.........................................................

硬件设计

系统结构图,元器件的选择等

软件设计

所设计的软件关键模块的程序流程

第四章测试............................................................

运行结果分析等

第五章总结............................................................. 参考文献................................................................ 附录

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

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

西华大学

课程设计说明书

题目4×4 矩阵键盘计算器设计系(部) 电气信息学院

专业(班级) 自动化3班

姓名

学号

指导教师胡红平

起止日期2012.6.10-2012.6.30

计算机接口及应用课程设计任务书

系(部):电气信息学院专业:09自动化

指导教师:日期:2012-6-20

西华大学课程设计鉴定表

摘要

近几年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面的知识是不够的,还应根据具体硬件结合,加以完善。

本任务是个简易得三位数的减法运算,用4×4 矩阵键盘及计算器设计,利用数码管实现255内的减法运算。程序都是根据教材内和网络中的程序参考编写而成,在功能上还并不完善,限制也较多。本任务重在设计构思与团队合作,使得我们用专业知识,专业技能分析和解决问题全面系统的锻炼。

关键词:单片机,AT89C51,矩阵键盘,数码管

ABSTRACT

In 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.

单片机4×4矩阵键盘设计方案

单片机4×4矩阵键盘设计方案

1、设计原理

(1)如图14.2所示,用单片机的并行口P3连接4×4矩阵键盘,并以单片机的

P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。

(2)键盘中对应按键的序号排列如图14.1所示。

2、参考电路

图14.2 4×4矩阵式键盘识别电路原理图

3、电路硬件说明

(1)在“单片机系统”区域中,把单片机的P3.0-P3.7端口通过8联拨动拨码开关JP3连接到“4×4行列式键盘”区域中的M1-M4,N1-N4端口上。

(2)在“单片机系统”区域中,把单片机的P0.0-P0.7端口连接到“静态数码显示模块”区域中的任何一个a-h端口上;要求:P0.0对应着a,P0.1对应着b,……,P0.7对应着h。

4、程序设计内容

(1)4×4矩阵键盘识别处理。

(2)每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。

5、程序流程图(如图14.3所示)

6、汇编源程序

;;;;;;;;;;定义单元;;;;;;;;;;

COUNT EQU 30H

;;;;;;;;;;入口地址;;;;;;;;;;

矩阵按键电路和独立按键工作原理

矩阵按键电路和独立按键工作原理

矩阵按键电路和独立按键工作原理

矩阵按键电路

矩阵按键电路是一种高效而又经济的按键设计方式,它将多个按键组织成一定的矩阵

结构并通过一个控制器来实现按键的检测。

矩阵按键电路由行线与列线组成。行线为输出线,列线为输入线。在按下一个按键时,控制器会向对应的列线输出高电平,此时如果行线有接通的按键,那么控制器就能够检测

到该按键被按下的信号。

矩阵按键的工作原理是利用行列扫描的方法来检测按键的状态。控制器会按顺序扫描

每一行,当扫描到某一行时,会向该行对应的列线输出高电平,然后检测该行是否回应了

该列的高电平,如果有,则可以确定该行对应的按键被按下了。

矩阵按键电路的优点是能够节约设备成本和空间,同时减少硬件的数量,从而减轻设

备的负担。此外,由于控制器只在需要时才会扫描按键,能够降低功耗,也不易疲劳。

不过矩阵按键电路的缺点是不适合使用既能按短按键又支持长按键的按键,同时按键

数量也受到限制,因为每个行线和列线都需要一个接口,因此设计中一定要考虑到矩阵电

路的规模和设计合理性。

独立按键

独立按键是指在电路设计中,将每个按键独立处理,每个按键都有自己的连接端,与

其他按键相互独立,排列随意,可以短按、长按等操作。

独立按键的工作原理是当按键被按下后,按键触头与弹簧之间的接触面积减小,从而

形成了一个电路通路。此时电流会从露出来的触点中流过,被检测电路感应到,并对该按

键进行相应的控制处理。

独立按键的优点是可设计灵活,不受按键数量限制,适合于需要支持各种按键操作的

设备,同时还可以支持防抖处理,从而减少误操作。另外,独立按键电路不会受到其他按

矩阵键盘及其电路设计

矩阵键盘及其电路设计

二、键盘的结构方式
• 键盘有两种基本类型编码键盘和非编码键盘。 • 编码键盘采用硬件线路来产生键码,每按下一个键,键盘能自动生成
按键代码。 • 非编码键盘是靠编程来识别键盘上的闭合键,并由编程来确定按键代
码。非编码键盘具有结构简单、价格便宜等特点因此在单片机系统中 普遍采用非编码键盘。 • 编码键盘按结构方式划分有独立式键盘和矩阵式键盘两大类。
键盘及其电路设计
一、键盘的基本概念
• 键盘是一组开关的集合,是最常用的输入设备之一。组成键盘的按键 有触点式和非触点式两种。
• 触点式按键通常是机械触点开关,它利用了机械触点的通、断特性来 完成信息的输入。
• 非触点式按钮主要指利用电子器件的通、断来完成信息的输入,如工 作在开关状态的三极管等。
• 在单片机控制系统中常用触点式开关来组成键盘。
键(9键)。
3、矩阵式键盘的按键识别方法
• 逐行扫描法是一种逐行或逐列判断是否有键按下的方法。扫描法又称为逐行或列扫 描查询法,是一种最常用的按键识别方法。利用行扫描法判断矩阵键盘中被按下的 键时主要经过以下步骤。
• 第一步、识别有无键按下 • 让所有的行线均置为0电平,即P1.4-P1.7均输出低电平,读取列线P1.0-P1.3的值,
• 在键盘中按键数量较多时,为了 减少I/O口的占用,通常将按键 排列成矩阵形式。
• 在矩阵式键盘中,每条水平线和 垂直线在交叉处不直接连通,而 是通过一个按键加以连接,如图 所示。这样,一个端口(如P1口) 就可以构成4*4=16个按键,比独 立式键盘多出了一倍,而且线数 越多,区别越明显,如再多加一 条线就可以构成20键的键盘,而 直接用端口线则只能多出一个

4X4矩阵键盘及显示电路设计

4X4矩阵键盘及显示电路设计

4X4矩阵键盘与显示电路设计

FPGA在数字系统设计中的广泛应用,影响到了生产生活的各个方面。在FPGA 的设计开发中,VHDL语言作为一种主流的硬件描述语言,具有设计效率高,可靠性好,易读易懂等诸多优点。作为一种功能强大的FPGA数字系统开发环境,Altera公司推出的Quar-tUSⅡ,为设计者提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程,为使用VHDL语言进行FPGA设计提供了极大的便利。矩阵键盘作为一种常用的数据输入设备,在各种电子设备上有着广泛的应用,通过7段数码管将按键数值进行显示也是一种常用的数据显示方式。在设计机械式矩阵键盘控制电路时,按键防抖和按键数据的译码显示是两个重要方面。本文在QuartusⅡ开发环境下,采用VHDL语言设计了一种按键防抖并能连续记录并显示8次按键数值的矩阵键盘与显示电路。

一、矩阵键盘与显示电路设计思路

矩阵键盘与显示电路能够将机械式4×4矩阵键盘的按键值依次显示到8个7段数码管上,每次新的按键值显示在最右端的第O号数码管上,原有第0~6号数码管显示的数值整体左移到第1~7号数码管上显示,见图1。总体而言,矩阵键盘与显示电路的设计可分为4个局部:

(1)矩阵键盘的行与列的扫描控制和译码。该设计所使用的键盘是通过将列扫描信号作为输入信号,控制行扫描信号输出,然后根据行与列的扫描结果进行译码。

(2)机械式按键的防抖设计。由于机械式按键在按下和弹起的过程中均有5~10 ms的信号抖动时间,在信号抖动时间内无法有效判断按键值,因此按键的防抖设计是非常关键的,也是该设计的一个重点。

矩阵键盘电路

矩阵键盘电路

矩阵键盘电路

本设计是用AT89S52的并行口P1接4×4矩阵键盘,如图2.2.4a所示,矩阵键盘的每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。对键盘的处理程序功能:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能及其键值。设计中方案中的键值及其功能如图中下标所示,其中键值15为密码输入的功能、键值14为门号输入呼叫的功能键值13为欢迎界面显示,键值12为重复上次的呼叫门号,0-9为相应数字。

本设计中使用的1602液晶模块,如图2.2.5b所示,它是一种字符型型液晶是一种用5×7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等,最常用的为2行16个字,液晶模块内带标准字库,内部的字符发生存储器(CGROM)已经存储了192个5×7点阵字符,32个5×10点阵字符。另外还有字符生成RAM(CGRAM)512字节,供用户自定义字符。如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等。采用此液晶足以实现对此设计的显示功能。

2.2.5b 1602液晶模块

1脚:VSS为电源地,接GND。

2脚:VDD接5V正电源。

3脚:VL(VEE)为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,使用时可以通过一个10K的电位器调整对比度。

矩阵键盘电路

矩阵键盘电路

ቤተ መጻሕፍቲ ባይዱ.矩阵键盘的编码
4
对于矩阵式键盘,按键的位置由行号 和列号唯一确定,因此可分别对行号 和列号进行二进制编码,然后将两值 合成一个字节,高4位是行号,低4位 是列号。
3.矩阵式键盘按键识别
5
扫描法:
1) 判断有无键按下。
2) 如果有键按下,识别是哪一个键按下,键盘扫描取得闭合键的行、列值。
3) 用计算法或查表法得到键值。
矩阵键盘电路
知识点目录
1
矩阵键盘电路结构与工作原理
矩阵键盘的编码
矩阵式键盘按键识别
键盘的工作方式
1.矩阵键盘电路结构与工作原理
2
矩阵式键盘又称为行列式键盘。用I/O接口线组成行和列结构,键位设置在行和 列的交叉点上。如图1所示,8个I/O口实现了16个按键。
图1 矩阵键盘电路结构
1.矩阵键盘电路结构与工作原理
4) 判断闭合键是否释放,如没释放则继续等待。
5) 将闭合键键号保存,同时转去执行该闭合键的功能。
4.键盘的工作方式
6
(1)编程扫描方式
利用CPU在完成其它工作的空余时间,调用键盘扫描子程序来响应键盘输入 的要求。
(2)定时扫描工作方式
每隔一定的时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间 (例如10ms)的定时,当定时时间到就产生定时器溢出中断,CPU响应定时器溢 出中断请求,对键盘进行扫描

矩阵键盘程序设计

矩阵键盘程序设计

矩阵键盘程序设计

1. 引言

矩阵键盘是一种常见的输入设备,广泛应用于电脑、方式等各种电子设备中。将介绍如何设计一个简单的矩阵键盘程序。

2. 程序设计思路

矩阵键盘由多个按键组成,每个按键对应一个特定的字符或功能。通常情况下,矩阵键盘是通过行列扫描的方式来检测按键的状态,即通过扫描每行和每列的电平来判断是否有按键被按下。

要设计一个矩阵键盘程序,需要确定矩阵键盘的行列数,然后通过相应的硬件电路将其连接到控制器上。接下来,程序需要循环扫描每行和每列的电平,并记录下按下的按键。根据按键的状态来执行相应的操作,输出对应的字符或执行特定的功能。

3. 硬件设计

硬件设计主要包括确定矩阵键盘的行列数以及将其连接到控制器上的电路设计。通常情况下,矩阵键盘的行使用输出电平,列使用输入电平。在连接到控制器之前,还需要添加电阻和二极管来保护电路和消除反馈。

4. 软件设计

软件设计主要包括程序的循环扫描和按键状态的处理。可以使用循环来不断扫描每行和每列的电平,当检测到按键被按下时,记录下按键的位置信息。接下来,根据按键的状态,进行相应的处理操作,输出对应的字符或执行特定的功能。程序还需要处理按键的反弹,以避免误操作。

5. 示例代码

以下是一个简单的矩阵键盘程序设计的示例代码,采用C语言编写:

c

include <stdio.h>

include <stdbool.h>

// 定义矩阵键盘的行列数

define ROWS 4

define COLS 4

// 定义矩阵键盘的字符映射表

char keys[ROWS][COLS] = {

矩阵式键盘工作原理

矩阵式键盘工作原理

矩阵式键盘工作原理

矩阵式键盘的工作原理是基于矩阵电路的设计。该键盘由一组键开关组成,这些键开关呈现出行和列的网格状布局。每个键开关都连接到一个行列交叉点。

在键盘上按下某个按键时,该按键对应的行列交叉点位置会发生变化。这种变化可以通过键盘控制器或芯片中的扫描电路进行检测。扫描电路会按顺序扫描每个行和列的交叉点,检测到键按下的时候会产生一个电信号。

当键盘的控制器检测到有按键按下时,它会将该按键的信息发送到计算机。计算机接收到按键信息后,会根据键盘映射表将按键转换为对应的字符或功能。这样,用户通过按下键盘上的按键,就能够输入字符或执行特定的功能。

整个矩阵式键盘的工作原理可以归纳为以下几个步骤:

1. 初始化:键盘控制器配置为扫描矩阵键盘。

2. 扫描:控制器按顺序扫描每个行和列的交叉点,检测到按键按下的时候产生一个电信号。

3. 检测:键盘控制器检测到按键按下的电信号后,将其转换为对应的按键信息。

4. 传输:键盘控制器将按键信息传输给计算机。

5. 转换:计算机根据键盘映射表将按键信息转换为对应的字符或功能。

6. 执行:计算机执行输入的字符或功能。

通过这样的工作原理,用户可以通过按下矩阵式键盘上的按键,实现对计算机的输入操作。

4×4矩阵键盘的工作原理 )

4×4矩阵键盘的工作原理 )

4*4按键程序与电路图1、4×4矩阵键盘的工作原理 矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键。这样键盘中按键的个数是4×4个。这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。 图1为ME300B矩阵键盘电路图,行线接P1.4-P1.7,列线接P1.0-P1.3。 图1 矩阵键盘电路 图2 按键排列 2、数码管动态扫描显示电路 在ME300B开发系统中,采用了8位数码管动态扫描显示。它将所有数码管的8个段线相应地并接在一起,并接到 AT89S51的P0口,由P0口控制字段输出。而各位数码管的共阳极由AT89S51的P2口控制Q20-Q27来实现8位数码管的位输出控制。 这样,对于一组数码管动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。 由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,同一时刻如果各位数码管的位选线都处于选通状态的话,8位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。 虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。 图3 数码管电路 数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。 在ME300B单片机开发系统中使用数码管来显示信息时,要将JP2的2、3端短接。见图3 二、演示程序的编程方法 1、4×4矩阵键盘的

矩阵键盘控制16个LED灯

矩阵键盘控制16个LED灯

一、任务说明

本次的任务是利用51单片机设计一个4*4矩阵键盘输入系统,用16个发光二级管对应16个不同的按键。每按下一个按键对应的发光二极管就亮。

矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为N*N个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。最常见的键盘布局如图1所示。一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,本设计就

采用这个键盘模式。

键盘布局1 图

利用单片机的并行口P1连接4×4矩阵键盘,并以单片机的P1.0-P1.3各管脚作输入线,以单片机的P1.4-P1.7各管脚作输出线;利用P2、P3口控制灯1-灯16,。用Proteus绘制其电路原理图(附录一)。此任务用到了AT89C51芯片,还用到了晶体振荡器、按钮开关、发光二级管以及一些电阻。

这次任务中采用C语言编写程序,在编译过程中设置成自动产生HEX文件,将此文件导入AT89C51中,即可实现相应的功能。

二、原理图绘制说明

电路原理图的设计与绘制是整个电路设计的基础,设计一个电路原理图的工作包括:设置电路图图纸的大小,规划电路图的总体布局,在图纸上放置元器件并对元器件进行调整,进行布线和整体布局,最后保存并打印输出等几个步骤。安装完Proteus后,运行ISIS 7 Professional,在原理图编辑窗口绘制电路图,在该界面下还有预览窗口和元件列表区,在左侧的工具箱中还有模型选择工具栏,方向工具栏及仿真按钮等工具。其具体的使用步骤如下:所示。2运行该软件后,新建一个设计文件,设置图纸大小。选择界面如图 1.

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计

题目矩阵键盘电路设计教学院计算机学院

专业计算机应用技术班级

姓名

指导教师

2010 年01 月12 日

前言.................................................................... 第一章需求分析.........................................................

功能描述.........................................................

功能分析......................................................... 第二章系统的原理及分析.................................................

用到的知识点的介绍,知识点使用的总体思路

第三章详细设计.........................................................

硬件设计

系统结构图,元器件的选择等

软件设计

所设计的软件关键模块的程序流程

第四章测试............................................................

运行结果分析等

第五章总结............................................................. 参考文献................................................................ 附录

关键程序代码........................................................

矩阵键盘又称行列键盘,它是用四条I/O线作为行线,四条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4*4个。一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。在“单片机系统”区域中,把单片机的P3.0-P3.7端口通过8联拨动拨码开关JP3连接到“4×4行列式键盘”区域中的M1-M4,N1-N4端口上。在“单片机系统”区域中,把单片机的P0.0-P0.7端口连接到“静态数码显示模块”区域中的任何一个a-h端口上;要求:P0.0对应着a,P0.1对应着b,……,P0.7对应着h。面板是微机仪器的重要组成部分。面板主要包括显示器和键盘,通过面板对系统进行操作。一般的单片机控制仪表的面板均含有数码管、发光管和按键,本文的仪器面板就是针对这个领域而开发的。在仪器面板的设计中,键盘显示电路的设计一般采用三种方式,第一种为并行口动态扫描方式,该方式硬件简单、软件编程方便,与主板的信号连线多;第二种为串行口静态扫描方式,此方式使用串行芯片多,与主板的信号连线少;第三种为串行口动态扫描方式,此方式具有硬件简单、与主板信号连线少的优点,一般采用专用的串行口键盘显示芯片设计。考虑到专用芯片成本较高,我们用普通芯片设计了串行口动态扫描方式的仪器面板。每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。实际上,键盘、显示处理是很复杂的,它往往占到一个应用程序的大部份代码,可见其重要性,但说到,这种复杂并不来自于单片机的本身,而是来自于操作者的习惯等等问题,因此,在编写键盘处理程序之前,最好先把它从逻辑上理清,然后用适当的算法表示出来,最后再去写代码,这样,才能快速有效地写好代码。

第一章需求分析

功能描述:

行线P1.0~P1.3为输出线,列线P1.4~P1.7为输入线。一开始单片机将行线(P1.0~P1.3)全部输出低电平,此时读入列线数据,若列线全为高电平则没有键按下,当列线有出现低

电平时调用延时程序以此来去除按键抖动。延时完成后再判断是否有低电平,如果此时读

入列线数据还是有低电平,则说明确实有键按下。最后一步确定键值。现在我们以第二行

的S5键为例,若按下S5后我们应该怎么得到这个键值呢?当判断确实有键按下之后,行

线轮流输出低电平,根据读入列线的数据可以确定键值。首先,单片机将P10输出为低电平,其它P11~P13输出高电平,此时读取列线的数据全为高电平,说明没有在第一行有键

按下;其次,单片机将P11输出低电平,其它P10、P12、P13仍为高电平,此时再来读取

列线数据,发现列线读到的数据有低电平,数值为1011(0x0B),如果我们的键盘布局已经确定,那么0x0B就代表S5的值了。转到S5键功能处理子程序就可以达到目的。

功能分析:

4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗,两个数据指针,两个16计时器,一个5向量两级中断结构,一个全双工串行通讯口,片内振荡器及时时钟电路,同时

A789S51可降至0HZ的静态逻辑操作,并支持两种软件可选的节电工作模式,空闲方式停止工作并紧张其他所有部分工作直到下一个硬件复位。如果给P3一个扫描初值的话:如0x0F ,则没有键按下时为:P3.1~P3.3为1,P3.4~P3.7为0。如果有键按下,则情况发生变化:高电平接入低电平:如P3.3与P3.7连接的键按下,则P3.3与P3.7为0,即接地了。则P3此时为:0000 0111,这时如果用P3&0x0F,则高四位为0,低四位保留,可以得到低四位的内容了。通过去抖操作,即一个delay,可以得到低四位内容。这里设为:h=P3&0x0F;如果再得到高四位内容,则可以组成一个数,来定位哪个键了。当赋值后,如果有键按下的话,P3高四位不会全为1111,被拉到0了。如P3.3与P3.7连接的键按下,则P3.3与P3.7为0,即接地了。即:0111 0111,&F0之后,得到0111 0000,这样的话,我们得到高四位的值了,用高四位+低四位,就可以得到一个数值,确定一个键。其扫描输出端口Pm.x不是直接与输入端口Pn.y交叉的,而是经过用于数码显示位驱动的反相组件后再与入端口Pn.y交叉的。为此,其扫描输出有效端口不是低电平了,而是输出高电平经反相组件

相关文档
最新文档