实验四 动态显示与矩阵键盘的编程和综合应用设计(学生版)

合集下载

实验四 键盘实验

实验四  键盘实验

实验四矩阵键盘控制接口设计实验一、实验目的1、掌握MAX+plus 软件的使用方法。

2、掌握层次化设计方法:底层为文本文件,顶层为图形文件。

3、了解用12 位按健输入开关来设计并实现一个3 x 4 矩阵键盘接口控制器。

了解弹跳消除电路的工作原理。

二、实验设备1、计算机2、MAX+plus II软件及实验箱三、实验原理该实验系统中没有矩阵键盘,可以用12 位按键开关来实现矩阵键盘的功能。

当按键被按下时改按键的节点会呈现‘0’状态,反之为‘1’。

将12 个键进行编码后就可以实现距阵键盘的功能。

键盘编码电路:由于每个按键开关都是独立的,故有12 路输入,3X4 键盘有12 个键值,4位二进制数即可表示全部状态。

因此,键盘编码电路为12 输入4 输出编码器。

12 个按键可分为10 个数字键和2 个功能键。

数字键主要用来输入数字,功能键一般实现一些特殊用途(如确认、清除等)。

4 位输出从0~9 表示10 个数字键,11 和12 表示两个功能键。

弹跳消除电路:因为按键开关是机械式结构,在开关切换的瞬间会在接触点出现来回弹跳的现象,对于激活关闭一般电器并不会有何影响,但对于灵敏度较高的电路,却有可能产生误动作而出错。

跳现象产生的原因可从下图说明。

虽然只是按下按键一次然后放开,然而实际产生的按键信号却不只跳动一次,经过取样的检查后将会造成误判,以为按键两次。

弹跳现象产生错误的抽样结果如果调整抽样频率可以发现弹跳现象获得了改善。

因此在开关输入信号处必须加上弹跳消除电路,避免误操作信号的发生。

注意:弹跳消除电路所使用脉冲信号的频率必须要选用合适,频率太低则按键反应痴动,频率太高则起不到消除弹跳的作用,而且消除弹跳电路设计的不同对频率也有不同的要求。

数码管采用共阴极:段码表四、实验内容1、用12 个按键开关实现矩阵键盘,当按下某一键时在数码管上显示对应的键值。

2、分析仿真示例程序理解弹跳消除的实现原理。

3、通过改变CLK 信号,理解时钟信号对弹跳消除的影响。

数码管动态显示与矩阵键盘的编程

数码管动态显示与矩阵键盘的编程

数码管动态显示与矩阵键盘的编程实验四综合应用设计——数码管动态显示与矩阵键盘的编程一、实验目的:1、掌握单片机I/O技术和子程序设计等综合知识。

2、了解矩阵式键盘的内部结构和数码管显示的基本原理,掌握至少一种常用的按键识别方法。

3、熟练掌握数码管动态显示和矩阵键盘识别的综合应用。

二、实验内容:设计一个矩阵键盘的识别和动态显示综合的系统,控制8个8段数码管动态扫描显示4*4矩阵键盘上按下的按键所对应的值。

三、实验要求:给定一个4*4的矩阵键盘,16个按键对应显示0123456789ABCDE,第1次按下某按键在第一个8段数码管上显示对应的值,第2次在第二个数码管上显示,以此类推,第9次又在第一个数码管上显示,以此循环下去。

其中ABCDE在数码管上无法表达,可以用其它代替,例如:B用8表示,D用0表示,E用H表示等。

四、实验设备及实验耗材:计算机一台,W A VE6000软件模拟器,完成ISP下载的XLISP 软件,XL1000单片机综合仿真试验仪一台(8个8段数码管,4*4矩阵键盘一个,89S51一片,9针对9针的串口线一条,5V稳压电源线一条)五、实验基本原理与方法:查阅相关资料掌握矩阵式键盘的内部结构,8段数码管动态显示原理和常用的按键识别方法,建议使用按键识别方法中最常用的“行扫描法”编写程序。

结合动态显示技术和矩阵键盘识别技术。

六、实验方案设计:1、采用哪些I/O口完成通信,采用何种按键识别的方法,如何综合动态显示技术和矩阵键盘识别技术。

2、说明该程序的功能。

3、硬件连接原理图。

七、实验步骤:1.弄清实验内容和实验要求。

2.学习相关理论知识,提出实验方案,画出程序流程图。

软件流程图3.编写软件程序,作相关的程序注释,便于查看和调试。

4.编译和调试。

伟福软件:1.打开伟福W A VE V3.20软件,采用伟福默认的仿真器就可以了。

文件——新建文件,在弹出的窗口中输入实验程序,保存为“文件名.asm”文件,若窗口内的部分程序字体颜色发生改变,表示保存成功。

矩阵键盘程序设计

矩阵键盘程序设计

矩阵键盘程序设计1. 引言矩阵键盘是一种常见的输入设备,广泛应用于电脑、方式等各种电子设备中。

将介绍如何设计一个简单的矩阵键盘程序。

2. 程序设计思路矩阵键盘由多个按键组成,每个按键对应一个特定的字符或功能。

通常情况下,矩阵键盘是通过行列扫描的方式来检测按键的状态,即通过扫描每行和每列的电平来判断是否有按键被按下。

要设计一个矩阵键盘程序,需要确定矩阵键盘的行列数,然后通过相应的硬件电路将其连接到控制器上。

接下来,程序需要循环扫描每行和每列的电平,并记录下按下的按键。

根据按键的状态来执行相应的操作,输出对应的字符或执行特定的功能。

3. 硬件设计硬件设计主要包括确定矩阵键盘的行列数以及将其连接到控制器上的电路设计。

通常情况下,矩阵键盘的行使用输出电平,列使用输入电平。

在连接到控制器之前,还需要添加电阻和二极管来保护电路和消除反馈。

4. 软件设计软件设计主要包括程序的循环扫描和按键状态的处理。

可以使用循环来不断扫描每行和每列的电平,当检测到按键被按下时,记录下按键的位置信息。

接下来,根据按键的状态,进行相应的处理操作,输出对应的字符或执行特定的功能。

程序还需要处理按键的反弹,以避免误操作。

5. 示例代码以下是一个简单的矩阵键盘程序设计的示例代码,采用C语言编写:cinclude <stdio.h>include <stdbool.h>// 定义矩阵键盘的行列数define ROWS 4define COLS 4// 定义矩阵键盘的字符映射表char keys[ROWS][COLS] = {{'1', '2', '3', 'A'},{'4', '5', '6', 'B'},{'7', '8', '9', 'C'},{'', '0', '', 'D'}};// 定义矩阵键盘状态数组bool keyState[ROWS][COLS] = {0};// 矩阵键盘扫描函数void scanKeyboard() {// 扫描行for (int row = 0; row < ROWS; row++) {// 将当前行的输出电平设置为低电平setRowLow(row);// 扫描列for (int col = 0; col < COLS; col++) {// 检测当前列的输入电平if (getColLevel(col)) {// 当检测到按键被按下时,更新按键状态 keyState[row][col] = true;} else {// 当检测到按键未按下时,更新按键状态 keyState[row][col] = false;}}// 将当前行的输出电平恢复为高电平setRowHigh(row);}}int mn() {while (1) {// 扫描矩阵键盘scanKeyboard();// 处理按键状态for (int row = 0; row < ROWS; row++) {for (int col = 0; col < COLS; col++) {// 检测到按键被按下时,输出对应的字符if (keyState[row][col]) { printf(\。

矩阵按键实验课程设计

矩阵按键实验课程设计

矩阵按键实验课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握矩阵按键的基本原理和实验操作方法;技能目标要求学生能够独立完成矩阵按键实验,并能够分析实验结果;情感态度价值观目标要求学生培养对科学实验的兴趣,提高实验操作的规范性和准确性。

通过本课程的学习,学生将能够了解矩阵按键的原理和应用,掌握实验操作的基本技能,培养科学实验的兴趣和能力。

同时,学生将能够在实验过程中培养观察、思考、解决问题的能力,提高实验操作的规范性和准确性。

二、教学内容本课程的教学内容主要包括矩阵按键的基本原理、实验设备和实验操作方法。

首先,将介绍矩阵按键的基本原理,包括矩阵按键的结构和工作原理。

然后,将介绍实验设备的使用方法,包括矩阵按键模块、开发板和编程软件的使用。

最后,将介绍矩阵按键实验的操作方法,包括实验步骤、实验数据采集和实验结果分析。

三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法进行教学。

首先,将采用讲授法,向学生讲解矩阵按键的基本原理和实验操作方法。

然后,将采用实验法,让学生亲自动手进行实验操作,并观察实验结果。

此外,还将采用讨论法,引导学生进行小组讨论,共同分析实验结果。

四、教学资源为了支持教学内容和教学方法的实施,将选择和准备适当的教学资源。

教材方面,将使用《电子实验教程》一书,该书详细介绍了矩阵按键实验的操作方法和实验原理。

参考书方面,将提供《矩阵按键应用手册》等资料,供学生参考。

多媒体资料方面,将制作实验操作视频和实验原理动画,以直观地展示实验过程和原理。

实验设备方面,将准备矩阵按键模块、开发板和编程软件等设备,供学生进行实验操作。

五、教学评估本课程的教学评估将采用多元化的评估方式,以全面、客观、公正地反映学生的学习成果。

评估方式包括平时表现、作业和考试等。

平时表现评估将关注学生在课堂上的参与度、提问和回答问题的积极性等。

作业评估将根据学生完成的实验报告和课后作业的质量进行评分。

矩阵式键盘设计实训报告

矩阵式键盘设计实训报告

一、实验目的1. 掌握矩阵式键盘的工作原理及电路设计方法。

2. 熟悉单片机与矩阵键盘的接口连接及编程技巧。

3. 提高动手实践能力,培养创新意识。

二、实验设备1. 单片机实验平台2. 矩阵键盘模块3. 数字多用表4. 编译器(如Keil51)5. 连接线三、实验原理矩阵键盘是一种常用的键盘设计方式,通过行列交叉点连接按键,从而实现多个按键共用较少的I/O端口。

矩阵键盘通常采用逐行扫描的方式检测按键状态,当检测到按键按下时,根据行列线的电平状态确定按键位置。

四、实验内容1. 矩阵键盘电路设计2. 矩阵键盘编程3. 矩阵键盘测试与调试五、实验步骤1. 电路设计(1)根据矩阵键盘的规格,确定行线和列线的数量。

(2)将行线和列线分别连接到单片机的I/O端口。

(3)在行线上串联电阻,防止按键抖动。

(4)连接电源和地线。

2. 编程(1)初始化单片机的I/O端口,将行线设置为输出,列线设置为输入。

(2)编写逐行扫描程序,逐行拉低行线,读取列线状态。

(3)根据行列线状态判断按键位置,并执行相应的操作。

3. 测试与调试(1)将编写好的程序下载到单片机中。

(2)连接矩阵键盘,观察按键是否正常工作。

(3)使用数字多用表检测行列线电平,确保电路连接正确。

(4)根据测试结果,对程序进行调试,直到矩阵键盘正常工作。

六、实验结果与分析1. 电路连接正确,按键工作正常。

2. 逐行扫描程序能够正确检测按键位置。

3. 按键操作能够触发相应的程序功能。

七、实验总结1. 通过本次实训,掌握了矩阵式键盘的工作原理及电路设计方法。

2. 熟悉了单片机与矩阵键盘的接口连接及编程技巧。

3. 提高了动手实践能力,培养了创新意识。

八、心得体会1. 在实验过程中,遇到了电路连接错误和程序调试困难等问题,通过查阅资料、请教老师和同学,最终成功解决了问题。

2. 本次实训让我深刻体会到理论知识与实际操作相结合的重要性,同时也认识到团队合作的重要性。

九、改进建议1. 在电路设计过程中,可以考虑增加去抖动电路,提高按键稳定性。

矩阵键盘程序设计

矩阵键盘程序设计

矩阵键盘程序设计矩阵键盘程序设计1.引言2.矩阵键盘的工作原理矩阵键盘由多行多列的按键组成,每个按键都与行线和列线相交。

当按下某一个按键时,行线和列线会形成一个闭合电路,通过这个闭合电路来传递按键的信号。

通过扫描行线和列线的状态,可以确定用户按下了哪个按键。

3.矩阵键盘的程序设计在程序设计中,需要初始化矩阵键盘的引脚配置,即将每个行线和列线连接到相应的引脚上。

然后,通过循环扫描行线和列线的状态,判断用户是否按下了某个按键。

一般情况下,矩阵键盘的扫描速度比较快,可以采用中断的方式来进行扫描,提高响应速度。

以下是一个简单的矩阵键盘程序设计示例:import RPi.GPIO as GPIO初始化引脚配置row_pins = [11, 13, 15, 16] 行引脚col_pins = [18, 22, 24, 26] 列引脚GPIO.setmode(GPIO.BOARD)设置行引脚为输出模式,列引脚为输入模式for pin in row_pins:GPIO.setup(pin, GPIO.OUT)for pin in col_pins:GPIO.setup(pin, GPIO.IN)循环扫描矩阵键盘while True:for row in row_pins:设置当前行引脚为低电平GPIO.output(row, GPIO.LOW)for col in col_pins:判断当前列引脚是否为高电平,即判断用户是否按下了某个按键if GPIO.input(col) == GPIO.HIGH:处理按键事件print(\。

数码管显示4×4键盘矩阵按键实验

数码管显示4×4键盘矩阵按键实验

5、4×4键盘矩阵按键实验一、实验目的及要求键盘实质上是一组按键开关的集合。

通常,键盘开关利用了机械触点的合、断作用。

键的闭合与否,反映在行线输出电压上就是呈高电平或低电平,如果高电平表示键断开,低电平则表示键闭合,反之也可。

通过对行线电平高低状态的检测,便可确认按键按下与否。

为了确保CPU对一次按键动作只确认一次按键有效,还必须消除抖动。

当按键较多时会占用更多的控制器端口,为减少对端口的占用,可以使用行列式键盘接口,本实验中采用的4×4键盘矩阵可以大大减少对单片机的端口占用,但识别按键的代码比独立按键的代码要复杂一些。

在识别按键时使用了不同的扫描程序代码,程序运行时LED灯组会显示相应按键的键值0~15的二进制数。

本实验中P2端口低4位连接是列线,高4位连接的是行线。

二、实验原理(图)三、实验设备(环境):1、电脑一台2、STC-ISP(V6.85I)烧写应用程序3、Keil应用程序四、实验内容(算法、程序、步骤和方法):#include<STC15F2K60S2.h> //此文件中定义了STC15系列的一些特殊功能寄存器#include"intrins.h"#define uint unsigned int#define uchar unsigned charuchar code dsy_code[]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0 F,0xff};uchar Pre_keyno=16,keyno=16;void delayMS(char x){uchar i;while(x--)for(i=0;i<120;i++) ;}void keys_scan(){uchar tmp;P2=0x0f;delayMS(5);tmp=P2^0x0f;switch(tmp){case 1:keyno=0;break;case 2:keyno=1;break;case 4:keyno=2;break;case 8:keyno=3;break;default:keyno=16;}P2=0xf0;delayMS(5);tmp=P2>>4^0x0f;switch(tmp){case 1:keyno+=0;break;case 2:keyno+=4;break;case 4:keyno+=8;break;case 8:keyno+=12;break;}}main(){P0=0x00;while(1){P2=0xf0;if(P2!=0xf0)keys_scan();if(Pre_keyno!=keyno){P0=~dsy_code[keyno];Pre_keyno=keyno;}delayMS(50);}}五、实验结论(结果):本实验实现了XXX功能,核心算法采用了XXX的方式,达到了预期目的。

(实验四)单片机矩阵键盘检测和液晶仿真实验

(实验四)单片机矩阵键盘检测和液晶仿真实验

实验四单片机矩阵键盘检测和液晶仿真实验(4学时)一、实验任务利用51单片机实现4X4矩阵键盘和LCD1602液晶显示人机交互系统,编程实现:(1)按键扫描(1、2、……9、A、B、C、D、E、F)和LCD1602显示按键的键号,格式为:KEYNUM+按键号;(2)LCD1602的第一行显示加1功能,初始数字为980,显示位置自己确定,每次按下某一个按键,数字加1,范围为15---20;二、实验目的1、掌握仿真软件Proteus和单片机联调的方法;2、掌握矩阵键盘扫描检测的原理,并且编程实现键盘按键的检测;3、掌握LCD1602液晶显示的原理,并且编程实现LCD1602的显示功能;4、掌握利用单片机实现键盘检测和液晶显示的功能组合,并掌握独立编程控制的能力。

三、实验设备电脑、Proteus软件、Keil软件四、实验原理(一)矩阵键盘扫描检测原理按照按键结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点开关按键,如电气式按键、磁感应按键等。

在单片机应用系统中,通过按键实现控制功能和数据输入是非常普遍的。

在所需按键数量不多时,系统常采用独立式按键。

独立式按键是指每个按键单独占有一根I/O口线,且其工作状态不会影响其他I/O口线的工作状态。

这种按键的电路配置灵活,软件结构简单。

不过在实际应用中,由于不同的系统对按键的要求不同,因此,对按键程序的设计要考虑全面,以便更好地完成按键所设定的功能。

在按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图4.1所示。

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

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

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

矩阵键盘设计实验报告

矩阵键盘设计实验报告

矩阵键盘设计实验报告
矩阵键盘是一种特殊的电子输入设备,其特殊性在于每个按键可以仅由几根线连接而成。

这可以将按键尺寸缩小,同时也减少了接線复杂度。

在本次实验中,我们设计了一个4*4的矩阵键盘。

矩阵键盘的外型是4 *4的按键,其中每个按键由一个PIN组成,连接起来分别连接在一个不同的ROW与COL上。

在使用矩阵键盘时,我们将其连接到一台电脑上,通过电脑程序监视每行每列的通断状态,当一行或者一列被按下,程序会自动捕捉,来表示一个字符或者code.
首先,我们先准备一台电脑,再连接矩阵键盘的各个PIN,用8个信号线将矩阵键盘连接到单片机,再用USB线将单片机连接到电脑上,使用PL 2303驱动链接矩阵键盘和电脑终端。

单片机负责捕获ROW和COL的信号,计算并识别矩阵键盘的按键,将计算出的字符发送至电脑终端,进行小程序的检测。

在电脑端,我们使用Apple系统的终端运行.bash,编写简单的shell脚本实现对矩阵键盘信号识别。

脚本将不断检测矩阵键盘信号状态,根据捕捉到的ROW和COL信号,将其映射出字符信息,在一定时间内输出至终端。

在实验的最后,我们检验了所设计的矩阵键盘是否符合预期效果。

通过代码发送进行按键操作,能检测到正确的字符,表明矩阵键盘的设计及实现满足要求。

本次实验可以作为以后矩阵键盘的参考,深入研究程序软件,提高实验效率。

矩阵按键实训报告

矩阵按键实训报告

一、实训背景随着电子技术的飞速发展,按键技术在电子设备中的应用越来越广泛。

矩阵按键因其结构紧凑、易于扩展等优点,被广泛应用于各类电子设备中。

为了提高学生对矩阵按键原理和应用的理解,本次实训选取了矩阵按键作为实训内容。

二、实训目的1. 理解矩阵按键的原理和结构;2. 掌握矩阵按键的驱动程序编写;3. 学会使用矩阵按键实现简单功能;4. 提高学生的动手能力和实践能力。

三、实训内容1. 矩阵按键原理与结构矩阵按键是一种利用行列交叉原理来检测按键状态的按键电路。

它由若干行和列组成,通过行列交叉的交叉点连接按键。

当按键被按下时,相应的行和列被连接,从而实现按键的识别。

2. 矩阵按键驱动程序编写以51单片机为例,介绍矩阵按键驱动程序的编写方法。

(1)初始化矩阵按键:设置行线为输出,列线为输入,并对行线进行上拉。

(2)扫描按键:从第一行开始,依次将行线置低电平,其他行线置高电平,然后读取列线的状态。

如果列线为低电平,则表示该行对应的按键被按下。

(3)消抖处理:为了避免按键抖动引起的误判,需要对按键状态进行消抖处理。

3. 使用矩阵按键实现简单功能以一个简单的计算器为例,介绍使用矩阵按键实现计算器功能的方法。

(1)设计计算器界面:根据计算器的功能需求,设计按键布局。

(2)编写按键扫描程序:根据按键布局,编写按键扫描程序,实现按键的识别。

(3)编写功能实现程序:根据计算器的功能需求,编写功能实现程序,如加、减、乘、除等。

四、实训过程1. 实训准备:准备51单片机开发板、矩阵按键模块、电源等实验器材。

2. 矩阵按键原理与结构学习:通过查阅资料,了解矩阵按键的原理和结构。

3. 矩阵按键驱动程序编写:根据实训要求,编写矩阵按键驱动程序。

4. 矩阵按键功能实现:使用矩阵按键实现计算器功能,包括按键扫描、消抖处理、功能实现等。

5. 实验调试:对实验程序进行调试,确保程序正常运行。

五、实训总结通过本次实训,我掌握了矩阵按键的原理和结构,学会了矩阵按键驱动程序的编写,以及使用矩阵按键实现简单功能的方法。

矩阵键盘实验报告

矩阵键盘实验报告

矩阵键盘实验报告矩阵键盘实验报告引言:矩阵键盘是一种常见的输入设备,广泛应用于电子产品中。

本实验旨在通过对矩阵键盘的研究和实验,深入了解其原理和工作机制,并探索其在实际应用中的潜力。

本文将从实验目的、实验步骤、实验结果和讨论四个方面进行论述。

实验目的:1. 理解矩阵键盘的工作原理;2. 掌握矩阵键盘的接线方法;3. 通过实验验证矩阵键盘的可靠性和稳定性。

实验步骤:1. 准备实验材料:矩阵键盘、电路板、导线等;2. 连接电路:将矩阵键盘与电路板通过导线连接;3. 编写程序:使用C语言编写程序,实现对矩阵键盘的扫描和按键检测;4. 烧录程序:将编写好的程序烧录到单片机中;5. 运行实验:按下矩阵键盘上的按键,观察电路板上的指示灯是否亮起。

实验结果:经过实验,我们成功地完成了矩阵键盘的接线和程序烧录,并进行了按键测试。

在按下不同的按键时,电路板上相应的指示灯亮起,证明了矩阵键盘的正常工作。

讨论:1. 矩阵键盘的工作原理:矩阵键盘是由行线和列线组成的,每个按键都与行线和列线相连。

当按下某个按键时,对应的行线和列线会短接,从而使得电流流过该按键,被检测到。

2. 矩阵键盘的接线方法:在本实验中,我们采用了常见的4行4列的接线方式,即将矩阵键盘的4个行线连接到单片机的4个输入引脚上,将4个列线连接到单片机的4个输出引脚上。

3. 矩阵键盘的可靠性和稳定性:通过实验,我们发现矩阵键盘具有较高的可靠性和稳定性。

即使在长时间使用和频繁按键的情况下,矩阵键盘仍能正常工作,并且按键的检测准确率较高。

4. 矩阵键盘的应用潜力:矩阵键盘广泛应用于各种电子产品中,如计算机、手机、电视遥控器等。

它具有结构简单、成本低廉、易于集成等优点,因此在电子产品设计中具有广阔的应用前景。

结论:通过本次实验,我们对矩阵键盘的工作原理和接线方法有了更深入的了解,并验证了其可靠性和稳定性。

矩阵键盘作为一种常见的输入设备,在电子产品设计中具有重要的地位和潜力。

实验四 动态显示与矩阵式键盘实验 计科17-3BJ 李浩葳

实验四 动态显示与矩阵式键盘实验 计科17-3BJ 李浩葳
动态显示共8个共阴极数码管,采用两片74LS573进行驱动,74LS573与74LS373都是8D锁存器,只是573引脚排列更易于布线。其引脚功能为:D1-D8为数据输入端;Q1-Q8为数据输出端;LE为数据输入锁存端,LE=1数据输入D锁存器,LE=0数据不能输入D锁存器,即LE下降沿锁存当前输入数据; 地址输出允许端, =0输出锁存数据, =1输出高阻。
数码管的显示:T0每500us中断1次,在T0中断中点亮一个数码管。在T0中断函数中,①P1.3(OE)=1,U3、U4输出高阻;②P1.4(LE1)=1,P0口输出段码,P1.4=0,U3锁存输入的段码;③P1.5(LE2)=1,P0口输出位选码,P1.5=0,U4锁存输入的位选码;④P1.3=0,U3、U4同时输出段码和位选码,进行显示。
inputNum(7);
while(P2==N[1]);
}
if(P2==N[2]) { //数字8N2
inputNum(8);
while(P2==N[2]);
}
if(P2==N[3]) { //数字9N3
inputNum(9);
while(P2==N[3]);
}
if(P2==N[4]) { //无效键N4
2、定时器T0中断函数:
//定时器T0中断,刷新数码管
void refresh() interrupt 1 {
if(int_mark==9) {//位选计数溢出清零
int_mark=1;
}
//外部中断0模式:动态显示
if(EX0&&strKey!=2) {
display(str[strKey][int_mark-1],int_mark);
uห้องสมุดไป่ตู้nt i;

实验四键盘及显示设计实验报告

实验四键盘及显示设计实验报告

实验四键盘扫描及显示设计实验报告一、实验要求1. 复习行列矩阵式键盘的工作原理及编程方法。

2. 复习七段数码管的显示原理。

3. 复习单片机控制数码管显示的方法。

二、实验设备1.PC 机一台2.TD-NMC+教学实验系统三、实验目的1. 进一步熟悉单片机仿真实验软件 Keil C51 调试硬件的方法。

2. 了解行列矩阵式键盘扫描与数码管显示的基本原理。

3. 熟悉获取行列矩阵式键盘按键值的算法。

4. 掌握数码管显示的编码方法。

5. 掌握数码管动态显示的编程方法。

四、实验内容根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能:1.扫描键盘输入,并将扫描结果送数码管显示。

2.键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。

实验具体内容如下:将键盘进行编号,记作 0~F,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 4 次按下的按键编号。

五、实验单元电路及连线矩阵键盘及数码管显示单元图1 键盘及数码管单元电路实验连线图2实验连线图六、实验说明1. 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。

因而在闭合及断开的瞬间均伴随有一连串的抖动。

抖动时间的长短由按键的机械特性决定,一般为 5~10ms。

这是一个很重要的时间参数,在很多场合都要用到。

键抖动会引起一次按键被误读多次。

为了确保 CPU 对键的一次闭合仅做一次处理,必须去除键抖动。

在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。

按键的抖动,可用硬件或软件两种方法消除。

2. 为了减少键盘与单片机接口时所占用 I/O 线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式。

3. 从数码管显示方式看,数码管分为静态显示和动态显示两种方式。

矩阵键盘按键的数码管显示矩阵,键盘按键的数码管显示

矩阵键盘按键的数码管显示矩阵,键盘按键的数码管显示

一、矩阵键盘按键的数码管显示1.实验目的(1)掌握VHDL语言的语法规范,掌握时序电路描述方法(2)掌握多个数码管动态扫描显示的原理及设计方法2.实验所用仪器及元器件计算机一台实验板一块电源线一根扁平线一根下载线一根3.实验任务要求设计出4*4矩阵键盘对某一按键按下就在数码管显示一个数字。

按键从左上角到右下角依次为1,2, (16)4.实验原理按键模块原理键盘扫描的实现过程如下:对于4×4键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。

同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。

键盘键值的获取:键盘上的每一个按键其实就是一个开关电路,当某键被按下时,该按键的接点会呈现0的状态,反之,未被按下时则呈现逻辑1的状态。

扫描信号由row进入键盘,变化的顺序依次为1110-1101-1011-0111-1110。

每一次扫描一排,依次地周而复始。

例如现在的扫描信号为1011,代表目前正在扫描9,10,11,12这一排的按键,如果这排当中没有按键被按下的话,则由column 读出的值为1111;反之当9这个按键被按下的话,则由column读出的值为1110。

根据上面所述原理,我们可得到各按键的位置与数码关系如表所示:1110 1110 1110 1110 1101 1101 1101 1101row1110 1101 1011 0111 1110 1101 1011 0111 column1 2 3 4 5 6 7 8键值row 1011 1011 1011 1011 0111 0111 0111 0111 column 1110 1101 1011 0111 1110 1101 1011 0111键值9 10 11 12 13 14 15 16动态显示原理为使得输入控制电路简单且易于实现,采用动态扫描的方式实现设计要求。

矩阵键盘程序设计

矩阵键盘程序设计

矩阵键盘程序设计1.引言矩阵键盘是一种常见的输入设备,常用于电子设备、计算机和通信设备等系统中。

它具有结构简单、体积小、成本低廉等特点,因此在各种嵌入式系统中被广泛应用。

本文将介绍矩阵键盘的程序设计方法,包括按键扫描、数据解析以及与其他模块的交互等内容。

2.基本原理矩阵键盘由若干行和列的按键组成,每个按键连接到一个特定的电路。

当按键被按下时,会导通相应的行和列,形成一个矩阵。

通过逐次扫描每一行和列,可以检测到按键的按下情况。

矩阵键盘的基本原理是利用行列扫描来判断按键的输入状态。

3.按键扫描3.1 行扫描行扫描是矩阵键盘程序设计的重要步骤之一。

首先,将行的控制线置为高电平,并将列的控制线置为输入状态。

然后,逐个扫描每一行,检测列的输入状态。

如果某个列的输入状态发生变化,说明对应的按键被按下或释放。

3.2 列扫描列扫描是行扫描的补充,用来检测行的输入状态。

首先,将列的控制线置为高电平,并将行的控制线置为输入状态。

然后,逐个扫描每一列,检测行的输入状态。

如果某个行的输入状态发生变化,说明对应的按键被按下或释放。

4.数据解析在按键扫描的基础上,还需要进行数据解析以获取具体的按键值。

具体的解析方法可以根据矩阵键盘的布局和按键的位置进行设计。

一般来说,可以借助查找表或者简单的算法来实现。

5.与其他模块的交互矩阵键盘通常需要与其他模块进行交互,以实现特定的功能。

例如,可以通过串口与MCU或者计算机进行数据交互,实现键盘输入的数据传输。

同时,还可以通过中断或者定时器来实现按键的实时响应。

6.附件本文档涉及的附件包括示例代码、电路图、原理图等。

详细的附件内容请参考附件部分。

附件1: 示例代码附件2: 电路图附件3: 原理图7.法律名词及注释7.1 版权:指作品的作者或合法权利人对其创作的作品享有的专有权利,包括复制、发行、表演、展示等权利。

7.2 专利:指对于新的技术、新的产品或者新的设计提出的独占权,目的是保护创新者的权益。

矩阵键盘显示实验

矩阵键盘显示实验

矩阵键盘显示实验报告20 -20 学年第学期学院电子信息学院课程矩阵键盘显示实验姓名学号指导老师日期 20XX年XX月XX日矩阵键盘显示实验一、实验目的1、掌握矩阵键盘检测的原理和方法;2、掌握按键消抖的方法;3、再次熟悉数码管的显示。

二、实验任务从4×4矩阵键盘输入4位字符(如“15EF”),并显示于4位数码管。

三、实验原理在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1-1所示。

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

图1-1 矩阵键盘矩阵键盘的按健识别方法很多,其中最常见的方法是行扫描法。

行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,下面介绍矩阵键盘的扫描过程。

(1)判断有无键按下第一步:向所有的列输出口线输出低电平;第二步:然后将行线的电平状态读入;第三步:判断读入的行线值。

若无键按下,所有的行线仍保持高电平状态;若有键按下,行线中至少应有一条线为低电平。

(2)去除按键的抖动去抖原理:当判断到键盘上有键按下后,则延时一段时间再判断键盘的状态,若仍为有键按下状态,则认为有一个键按下,否则当作按键抖动来处理。

(3)按键识别(列或行扫描法)在确认有键按下后,即可进入确定具体闭合键的过程。

其方法是:依次将列(行)线置为低电平,即在置某根列(行)线为低电平时,其列(行)线为高电平,再逐行(列)检测各行(列)线的电平状态。

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

(4)求按键的键值根据闭合键的行值row和列值col采用计算法(如健值=行号×4+列号)或查表法将闭合键的行值和列值转换成所定义的键值。

电路原理图如下图所示。

图1-2 键盘显示实验电路四、程序流程图五、实验结果及分析总结(1)实验测试效果图如下:(2)分析总结:1、在这次的实验中我们将初始化部分、键盘扫描部分、数码管显示部分等分别写成了独立的函数,这样的程序看起来简洁、明了,在使用的时候直接调用就好了。

矩阵式键盘实验报告范文

矩阵式键盘实验报告范文

矩阵式键盘实验报告学生:何绍金学号:8专业班级:自动化1202指导老师:杨东勇2014年12月一、实验目的1.学习矩列式键盘工作原理;2.学习矩列式接口的电路设计和程序设计。

二、实验设备统一电子开发平台。

三、实验要求要求实现:在矩阵式键盘中的某个键被按下时,8 位LED 动态显示器上最低位显示该键对应的字符。

注意,在进行该项实验之前,请先进行实验三“定时器实验” 。

四、实验原理1.工作原理:矩阵式由行线和列线组成,按键位于行、列的交叉点上。

如图所示,一个4*4 的行、列结构可以构成一个由16 个按键的键盘。

很明显,在按键数量较多的场合,矩阵式键盘与独立式键盘相比,要节省很多的I/0 口。

(1)矩阵式键盘工作原理按键设置在行、列交节点上,行、列分别连接到按键开关的两端。

行线通过下拉电阻接到GND 上。

平时无按键动作时,行线处于低电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。

列线电平如果为低,行线电平为高,列线电平如果为高,则行线电平则为低。

这一点是识别矩阵式键盘是否被按下的关键所在。

因此,各按键彼此将相互发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。

(2)按键识别方法下面以3 号键被按下为例,来说明此键是如何被识别出来的。

前已述及,键被按下时,与此键相连的行线电平将由与此键相连的列线电平决定,而行线电平在无键按下时处于高电平状态。

如果让所有列线处于高电平那么键按下与否不会引起行线电平的状态变化,始终是高电平,所以,让所有列线处于高电平是没法识别出按键的。

现在反过来,让所有列线处于低电平,很明显,按下的键所在行电平将也被置为低电平,根据此变化,便能判定该行一定有键被按下。

但我们还不能确定是这一行的哪个键被按下。

所以,为了进一步判定到底是哪—列的键被按下,可在某一时刻只让一条列线处于低电平,而其余所有列线处于高电平。

当第1 列为低电平,其余各列为高电平时,因为是键 3 被按下,所以第 1 行仍处于高电平状态;当第 2 列为低电平,其余各列为高电平时,同样我们会发现第1 行仍处于高电平状态,直到让第 4 列为低电平,其余各列为高电平时,因为是3 号键被按下,所以第 1 行的高电平转换到第 4 列所处的低电平,据此,我们确信第1 行第 4 列交叉点处的按键即3 号键被按下。

实验4 矩阵键盘的使用

实验4  矩阵键盘的使用
*函数名: main
*函数功能:主函数
*输入:无
*输出:无
*******************************************************************************/
void main(void)
{
while(1)
{
KeyDown();
GPIO_DIG = ~DIG_CODE[KeyValue];
ORG 0000H
MOV SP,#6FH
MOV R0,#5;延时0.5秒
LOOP1:MOV R1,#200
LOOP2:MOV R2,#250
DJNZ R2,$
DJNZ R1,LOOP2
DJNZ R0,LOOP1
MOV DPTR,#4003H ;8255初始化
MOV A,#10000001B; A口、B口方式0输出,C口高4位输出,低4位输入
MOVX @DPTR,A
LOOP3:LCALL DISP;调用显示子程序DIS,设显示子程序入口为DISP
LCALL KEY;调用键盘扫描子程序,设键盘扫描子程序入口为KEY
CJNE A,#0FFH,LOOP4;如果有键按下转
SJMP LOOP3
LOOP4:MOV 20H,21H
MOV 21H,22H
入口:行列关键值码放在累加器A中,高4位是列驱动码(被扫描列的对应位为0,其余位均为1),低4位是行状态(按下键的对应位为0,其余位均为1)。
出口:键码放在A中带出。
占用:R1、A、PSW、DPTR。
程序清单如下:
;查键值子程序,起始地址为KEY20
KEY20:PUSH ACC;暂存关键值
MOV R1,#00H;查键值自变量清0

数码管显示矩阵键盘实验

数码管显示矩阵键盘实验
七段数码管实验实验五七段数码管数码管显示数码管动态显示原理七段数码管显示原理数码管显示电路数码管动态显示单片机数码管显示led数码管显示原理七段数码管动态显示
数码管显示矩阵键盘实验
数码管简介
数码管显示方法 键盘简介 单片机常用的键盘形式 键盘识别及键盘电路
数码管简介
数码管的分类: 按公共端分:共阴数码管、共阳数码管 共阴数码管:数码管七段的负极连在一起 共阳数码管:数码管七段的阳极连在一起
四位数码管
一位数码管
• 内部结构示意图:
g f GND a b a a f e d g b c dp b c d e f g dp a b c d e f g dp +5V
·
e d GND c dp
(a)
(b)
数码管的显示
静态显示方式: 静态显示方式 LED显示器工作方式有两种: 静态显示方式和动态显示方式。静态显示的特 点是每个数码管的段选必须接一个8位数据线 来保持显示的字形码。当送入一次字形码后, 显示字形可一直保持,直到送入新字形码为止。 这种方法的优点是占用CPU时间少,显示便于 监测和控制。缺点是硬件电路比较复杂,成本 较高。
ห้องสมุดไป่ตู้
键盘简介
键盘的分类: 键盘分编码键盘和非编码键盘。键盘上闭 合键的识别由专用的硬件编码器实现,并产生 键编码号或键值的称为编码键盘,如计算机键 盘。 而靠软件编程来识别的称为非编码键盘; 在单片机组成的各种系统中,用的最多的是非 编码键盘。也有用到编码键盘的。
常用键盘的形式
独立键盘: 每一个按键单独占用一个I/O口。 矩阵键盘: 通过行列扫描构成的键盘。 比较: 在按键比较少时,可以选择独立键盘。这种 方法识别简单,但I/O利用率不高。 键盘多时,适宜用矩阵盘,识别须进行行列 扫描
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四综合应用设计——数码管动态显示与矩阵键盘的编程
一、实验目的:
1、掌握单片机I/O技术和程序设计等综合知识。

2、了解矩阵式键盘的内部结构和数码管显示的基本原理,掌握至少一种常用的按键识别方法。

3、熟练掌握数码管动态显示和矩阵键盘识别的综合应用。

二、实验内容:
设计一个矩阵键盘的识别和动态显示综合的系统,控制8个8段数码管动态扫描显示4*4矩阵键盘上按下的按键所对应的值。

三、实验要求:
给定一个4*4的矩阵键盘,16个按键对应显示0123456789ABCDE,第1次按下某按键在第一个8段数码管上显示对应的值,第2次在第二个数码管上显示,以此类推,第9次又在第一个数码管上显示,以此循环下去。

其中ABCDE在数码管上无法表达,可以用其它代替,例如:B用8表示,D用0表示,E用H表示等。

四、实验设备及实验耗材:
计算机一台,W A VE6000软件模拟器,完成ISP下载的XLISP软件,XL1000单片机综合仿真实验仪一台(8个8段数码管,4*4矩阵键盘一个,89C51一片,9针对9针的串口线一条,USB电缆一条)
五、实验基本原理与方法:
查阅相关资料掌握矩阵式键盘的内部结构,8段数码管动态显示原理和常用的按键识别方法,建议使用按键识别方法中最常用的“行扫描法”编写程序。

结合动态显示技术和矩阵键盘识别技术。

六、实验方案设计:
1、采用哪些I/O口完成通信,采用何种按键识别的方法,如何综合动态显示技术和矩
阵键盘识别技术。

2、说明该程序的功能。

3、硬件连接原理图。

七、实验步骤:
1.弄清实验内容和实验要求。

2.学习相关理论知识,提出实验方案,画出程序流程图。

软件流程图
3.编写软件程序,作相关的程序注释,便于查看和调试。

4.编译和调试。

伟福软件:
1.打开伟福W A VE V3.20软件,采用伟福默认的仿真器就可以了。

文件——新建
文件,在弹出的窗口中输入实验程序,保存为“文件名.asm”文件,若窗口内
的部分程序字体颜色发生改变,表示保存成功。

2.文件——新建项目
加入模块文件:打开刚才已经保存的文件“文件名.asm”
加入包含文件:取消
保存项目“文件名.PRJ”,在项目窗口里可以看到。

3.确保仿真器——仿真器设置——目标文件里“生成HEX文件”和“生成BIN
文件”被勾选上。

4.项目——编译,调试,编译成功后就会生成“文件名.HEX”文件。

5.软件调试成功后,完成硬件连接。

接线方法:
1、用一条8PIN数据排线,把矩阵按键部份的JP50,接到CPU部份的P1口JP44。

2、接8位数码管的数据线。

将数码管部份的数据口JP5接到CPU部份的P0口JP51。

3、接8位数码管的显示位线。

将数码管部份的显示位口JP8接到CPU部份的P2口
JP52。

键盘口P1,数码管显示p2, 数码管段位p0口
6.将程序烧写到单片机上,试运行。

若出现问题,修改程序,重新编译和调试,直至
运行成功。

ISP下载烧写程序:
确保试验仪与计算机的串口和USB口都连接上后,打开软件XLISP,注意串口设置,计算机和试验仪采用的是哪个串口连接,不同的计算机可能会不同,有的
是COM1,有的是COM3等,可以采用自动检测功能查找。

也可以在打开软件后,选项—串口,更改串口设置。

如果串口选择错误,实验将无法进行。

打开(打开生成的HEX文件)——智能一键通。

即可看到运行结果。

重新烧写程序时应该先擦除上一个的再烧写。

实验结果:在4*4键盘上第一次按下任一个键,在第一个数码管上显示对应的键
值,显示后该数码管熄灭,若希望能显示时间稍微长一点,可以在每一个撤销选中
关显示(SETB P2.x)的后面加入一个延时程序。

第二次按下的,在第二个数码管
上显示,依次类推,第八次按下在第八个数码管上显示。

第九次按下又重新在第一
个数码管上显示。

K00:0 K01:1 K02:2 K03:3 K04:4 K05:5
K06:6 K07:7 K08:8 K09:9
K0A: K0B: K0C: K0D: K0E: K0F:
八、实验报告要求:
1.分析程序,说出程序的功能,画出软件流程图。

2.源程序加注释。

3.画出硬件接口原理电路图。

4. 实验小结(包括理论知识的总结和实验结果的分析)。

相关文档
最新文档