矩阵键盘设计实验报告

合集下载

4x4矩阵键盘设计报告

4x4矩阵键盘设计报告

4x4矩阵键盘设计报告1.引言1.1 概述概述:4x4矩阵键盘是一种常用的输入设备,广泛应用于各种电子产品中。

本报告旨在介绍4x4矩阵键盘的设计理念、技术实现以及使用体验,并对其设计优势进行分析。

同时,将收集用户反馈,展望未来对4x4矩阵键盘的发展趋势进行探讨。

通过本报告的阐述,读者可以更加全面地了解4x4矩阵键盘的设计与应用,为相关产品的设计与开发提供参考和借鉴。

1.2 文章结构本报告将分为引言、正文和结论三个部分。

引言部分将概述本设计报告的目的和重要性,介绍文章结构和各部分内容的主要内容。

正文部分将详细介绍设计理念、技术实现和使用体验,通过分析和阐述设计的过程和特点,展现4x4矩阵键盘设计的全面性和独特性。

结论部分将对设计的优势进行总结,考虑用户反馈和展望未来的发展方向,以期为4x4矩阵键盘的设计提供参考和启示。

文章1.3 目的:本报告的目的是介绍我们设计的4x4矩阵键盘,并分析其设计理念、技术实现和使用体验。

通过本报告,读者可以了解我们的设计思路和创新之处,以及用户在使用过程中的反馈和建议。

同时,我们还会对该键盘的设计优势进行评估,并展望未来可能的发展方向。

通过本报告的阐述,我们希望能够为相关领域的学习和研究提供有益的参考和启发。

2.正文2.1 设计理念设计理念部分的内容:在设计4x4矩阵键盘时,我们以用户体验和便捷性为设计理念的核心。

我们希望设计一款符合人体工程学的键盘,使用户在使用过程中能够感受到舒适和便捷。

同时,我们也注重键盘的美学设计,希望能够设计出外观时尚,符合当代审美的产品。

此外,我们也考虑了键盘的功能多样性,希望能够满足不同用户的需求,提供更好的用户体验。

因此,在设计理念上,我们以用户体验和功能多样性为重点,致力于设计出一款符合人体工程学、外观时尚、功能多样的4x4矩阵键盘。

2.2 技术实现在本节中,我们将讨论4x4矩阵键盘的技术实现。

我们首先考虑到了键盘的布局和排列,通过设计合理的矩阵布局,我们可以实现较小尺寸的键盘同时保证较高的按键准确性。

单片机 矩阵键盘实验 实验报告

单片机 矩阵键盘实验 实验报告

单片机矩阵键盘实验实验报告一、实验目的本次实验的目的是掌握原理和方法,利用单片机识别矩阵键盘并编程实现键码转换功能,控制LED点亮显示。

二、实验原理矩阵键盘是一种由多路单向控制器输入行选择信号与列选择信号连接而形成的一一对应矩阵排列结构。

它广泛应用于电子游戏机、办公自动化设备、医疗仪器、家电控制及书籍检索机器等方面。

本次实验采用的矩阵键盘是一个4 x 4矩阵,用4段数码管显示按键编码,每个按键都可以输入一个代码,矩阵键盘连接单片机,实现一个软件算法来识别键码转化。

从而将键盘中的按键的按下信号转换成程序能够识别的代码,置于相应的输出结果中,控制LED点亮,从而可以实现矩阵键盘按键的转换功能。

三、实验方法1.硬件搭建:矩阵键盘(4行4列)与单片机(Atmel AT89C51)相连,选择引脚连接,并将数码管和LED与单片机相连以实现显示和点亮的功能。

2.程序设计:先建立控制体系,利用中断服务子程序识别和码值转换,利用中断服务子程序实现从按键的按下信号转换为程序能够识别的代码,然后将该代码段编写到单片机程序中,每次按下矩阵键盘按键后单片机给出相应的按键编码输出,用数码管显示,控制LED点亮。

四、实验结果经过实验,成功实现了矩阵键盘与单片机之间的连接,编写了中断服务子程序,完成了按键编码输出与LED点亮的功能。

实验完成后,数码管显示各种按键的编码,同时LED会点亮。

本次实验介绍了矩阵键盘的原理,论述了键码转换的程序设计步骤,并实验完成矩阵键盘与单片机的连接,实现用LED点亮以及数码管显示按键的编码。

通过本次实验,受益匪浅,使我对使用单片机编写算法与程序有了更深入的认识,同时丰富了课堂学习的内容,也使我更加热爱自己所学的专业。

单片机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;break;default: i=0;//未按下break;}}void Scan_list()//扫描列{Delay(10);//消抖switch ( P1 ){case 0x70: j=1;break;case 0xb0: j=2;break;case 0xd0: j=3;break;case 0xe0: j=4;break;default: j=0;//未按下break;}}void Show_Key(){if( i != 0 && j != 0 ) P0=table[ ( i - 1 ) * 4 + j - 1 ];else P0=0xff;}五、讨论和心得。

verilog hdl 矩阵键盘实验报告

verilog hdl 矩阵键盘实验报告

EDA实验报告学院:物信学院专业:电信一班小组成员:杨义,王祺,陈鹏,秦成晖指导老师:漆为民目录实验题目 (3)实验目的 (3)实验原理 (3)实验内容 (5)实验程序 (5)实验步骤 (10)实验结果 (10)实验体会 (10)附录 (11)一.实验题目:矩阵键盘显示电路设计二.实验目的:1.了解普通4×4键盘扫描的原理。

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

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

三.实验原理:软键盘的工作方式:通常在一个键盘中使用了一个瞬时接触开关,并且用如图所示的简单电路,微处理器可以容易地检测到闭合。

当开关打开时,通过处理器的I/O 口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的/IO 口的输入将被拉低得到逻辑0。

可遗憾的是,开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1 或者0。

尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。

当触点闭合时,其弹起就像一个球。

弹起效果将产生如图10-2 所示的好几个脉冲。

弹起的持续时间通常将维持在5ms∼30ms 之间。

如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。

然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。

键盘上阵列这些开关最有效的方法(当需要5 个以上的键时)就形成了一个如图10-3 所示的二维矩阵。

当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O 端被连接的时候)。

一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。

矩阵所需的键的数目显然根据应用程序而不同。

每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。

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

矩阵式键盘设计实训报告

矩阵式键盘设计实训报告

一、实验目的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. 在电路设计过程中,可以考虑增加去抖动电路,提高按键稳定性。

矩阵式键盘实验报告

矩阵式键盘实验报告

矩阵键盘实验报告佘成刚学号2010302001班级08041202时间2016.01.20一、实验目的1.学习矩列式键盘工作原理;2.学习矩列式接口的程序设计。

二、实验设备普中HC6800ESV20开发板三、实验要求要现:用4*4矩阵键盘,用按键形式输入学号,在数码管上显示对应学号。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

汇编实验之矩阵 键盘

汇编实验之矩阵 键盘

计算机原理实验室实验报告课程名称:姓名学号班级成绩设备名称及软件环境实验名称矩阵键盘实验日期一.实验内容掌握4×4矩阵式键盘程序识别原理及4×4矩阵式键盘按键的设计方法。

二.理论分析或算法分析用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。

4×4矩阵式键盘识别电路原理图:键盘中对应按键的序号排列:电路硬件说明(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。

三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)1、4×4矩阵键盘识别处理。

2、每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。

矩阵的行线和列线分别通过两并行接口和CPU通信。

键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。

键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要消除按键在闭合或断开时的抖动。

两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。

3、程序流程图:4、汇编源程序:;;;;;;;;;;定义单元;;;;;;;;;;COUNT EQU 30H;;;;;;;;;;入口地址;;;;;;;;;;ORG 0000HLJMP STARTORG 0003HRETIORG 000BHRETIORG 0013HRETIORG 001BHRETIORG 0023HRETIORG 002BHRETI;;;;;;;;;;主程序入口;;;;;;;;;;ORG 0100H START: LCALL CHUSHIHUALCALL PANDUANLCALL XIANSHILJMP START ;;;;;;;;;;初始化程序;;;;;;;;;;CHUSHIHUA: MOV COUNT,#00HRET;;;;;;;;;;判断哪个按键按下程序;;;;;;;;;;PANDUAN: MOV P3,#0FFHCLR P3.4MOV A,P3ANL A,#0FHXRL A,#0FHJZ SW1LCALL DELAY10MSJZ SW1MOV A,P3ANL A,#0FHCJNE A,#0EH,K1MOV COUNT,#0LJMP DKK1: CJNE A,#0DH,K2MOV COUNT,#4LJMP DKK2: CJNE A,#0BH,K3MOV COUNT,#12 K4: NOPLJMP DKSW1: MOV P3,#0FFHCLR P3.5MOV A,P3ANL A,#0FHXRL A,#0FHJZ SW2LCALL DELAY10MS JZ SW2MOV A,P3ANL A,#0FHCJNE A,#0EH,K5 MOV COUNT,#1 LJMP DKK5: CJNE A,#0DH,K6MOV COUNT,#5 LJMP DKK6: CJNE A,#0BH,K7MOV COUNT,#9 LJMP DKK7: CJNE A,#07H,K8MOV COUNT,#13 K8: NOPLJMP DKSW2: MOV P3,#0FFHCLR P3.6MOV A,P3ANL A,#0FHXRL A,#0FHJZ SW3LCALL DELAY10MS JZ SW3MOV A,P3ANL A,#0FHCJNE A,#0EH,K9 MOV COUNT,#2 LJMP DKK9: CJNE A,#0DH,KAMOV COUNT,#6 LJMP DKKA: CJNE A,#0BH,KBMOV COUNT,#14 KC: NOPLJMP DKSW3: MOV P3,#0FFHCLR P3.7MOV A,P3ANL A,#0FHXRL A,#0FHJZ SW4LCALL DELAY10MS JZ SW4MOV A,P3ANL A,#0FHCJNE A,#0EH,KD MOV COUNT,#3LJMP DKKD: CJNE A,#0DH,KEMOV COUNT,#7LJMP DKKE: CJNE A,#0BH,KFMOV COUNT,#11 LJMP DKKF: CJNE A,#07H,KGMOV COUNT,#15 KG: NOPLJMP DKSW4: LJMP PANDUANDK: RET;;;;;;;;;;显示程序;;;;;;;;;;XIANSHI: MOV A,COUNTMOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,ALCALL DELAYSK: MOV A,P3ANL A,#0FHXRL A,#0FHJNZ SKRET;;;;;;;;;;10ms延时程序;;;;;;;;;;DELAY10MS: MOV R6,#20D1: MOV R7,#248DJNZ R6,D1RET;;;;;;;;;;200ms延时程序;;;;;;;;;;DELAY: MOV R5,#20LOOP: LCALL DELAY10MSDJNZ R5,LOOPRET;;;;;;;;;;共阴码表;;;;;;;;;;TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB 7FH,6FH,77H,7CH,39H,5EH,79H,71H;;;;;;;;;;结束标志;;;;;;;;;;END八、C语言源程序#include<AT89X51.H>unsigned char code table[]={0x3f,0x66,0x7f,0x39,0x06,0x6d,0x6f,0x5e,0x5b,0x7d,0x77,0x79,0x4f,0x07,0x7c,0x71};void main(void){ unsigned char i,j,k,key;while(1){ P3=0xff; //给P3口置1//P3_4=0; //给P3.4这条线送入0//i=P3;i=i&0x0f; //屏蔽低四位//if(i!=0x0f) //看是否有按键按下//{ for(j=50;j>0;j--) //延时//for(k=200;k>0;k--);if(i!=0x0f) //再次判断按键是否按下//{ switch(i) //看是和P3.4相连的四个按键中的哪个// { case 0x0e:key=0;break;case 0x0d:key=1;break;case 0x0b:key=2;break;case 0x07:key=3;break;}P0=table[key]; //送数到P0口显示//}P3=0xff;P3_5=0; //读P3.5这条线//i=P3;i=i&0x0f; //屏蔽P3口的低四位//if(i!=0x0f) //读P3.5这条线上看是否有按键按下// { for(j=50;j>0;j--) //延时//for(k=200;k>0;k--);i=P3; //再看是否有按键真的按下//i=i&0x0f;if(i!=0x0f){ switch(i) //如果有,显示相应的按键//{ case 0x0e:key=4;break;case 0x0d:key=5;break;case 0x0b:key=6;break;case 0x07:key=7;break;}P0=table[key]; //送入P0口显示//}}P3=0xff;P3_6=0; //读P3.6这条线上是否有按键按下// i=P3;i=i&0x0f;if(i!=0x0f){ for(j=50;j>0;j--)for(k=200;k>0;k--);i=P3;i=i&0x0f;if(i!=0x0f){ switch(i){ case 0x0e:key=8;break;case 0x0d:key=9;break;case 0x0b:break;case 0x07:key=11;break;}P0=table[key];}}P3=0xff;P3_7=0; //读P3.7这条线上是否有按键按下// i=P3;i=i&0x0f;if(i!=0x0f){ for(j=50;j>0;j--)for(k=200;k>0;k--);i=P3;i=i&0x0f;if(i!=0x0f){ switch(i){ case 0x0e:key=12;break;case 0x0d:key=13;break;case 0x0b:key=14;break;case 0x07:key=15;break;}P0=table[key];}}}}四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)五.结论报告提交日期(注意:内容写不下时允许表格添加新行。

矩阵键盘设计实验报告

矩阵键盘设计实验报告

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

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

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

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

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

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

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

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

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

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

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

单片机实验4 矩阵键盘实验

单片机实验4  矩阵键盘实验

华南农业大学实验报告专业班次08电信1 组别200831120102 题目实验四矩阵键盘实验姓名陈建泽日期2010.11.03一、实验目的1. 学习非编码键盘的工作原理和键盘的扫描方式。

2. 学习键盘的去抖方法和键盘应用程序的设计。

二、实验设备:STC89C52单片机实验板、串口下载线、USB连接线、电脑三、实验原理键盘是单片机应用系统接受用户命令的重要方式。

单片机应用系统一般采用非编码键盘,需要由软件根据键扫描得到的信息产生键值编码,以识别不同的键。

本板采用4*4矩阵键盘,行信号分别为P1.0-P1.3,列信号分别为P1.4-P1.7。

具体电路连接见下图矩阵键盘电路原理图对于键的识别一般采用逐行(列)扫描查询法,判断键盘有无键按下,由单片机I/O口向键盘送全扫描字,然后读入列线状态来判断。

成绩:教师:日期:四、实验步骤1. 分析实验所用到的电路原理图,根据需要连接跳线帽(由于P1.3和P1.4管脚和实时时钟芯片DS1302复用,所有在做矩阵键盘实验的时候务必拔去板上的DS1302芯片,以免产生干扰)。

2.按不同的键,用数码管的最后一位显示按键的键值。

3. 画出流程图。

4.根据流程图编写实验程序,并完成调试。

五、实验流程图矩阵键盘实验流程图六、实验程序/******************实验四 矩阵键盘实验****************/;实验名称:矩阵键盘实验;功 能:4*4矩阵键盘,按不同的键,用数码管的最后一位显示按键的键值。

1.置所有行值为低电平2.读取列的状态,给 A 开始A !=0? 延时10ms ,去抖动 置行计数器R0=00H 列列计数器R1=00H 置行输出扫描初始值为0FEH 输出行扫描字,置某一行为低 有列被按下? 行计数器增1 行扫描字左移一位 最后一行? 判断具体是哪一列按下 存列号到R1 计算键值并显示;编写人:陈建泽;编写时间:2010年11月2日/**********************程序代码************************/ORG 0000H ;上电或复位后初始化引导程序地址AJMP MAIN ;跳转到主程序ORG 0000HAJMP MAINORG 0030HMAIN: MOV P2,#0F7H ;选通数码管最后一位MOV P1,#0F0H ;令所有行为低电平MOV R7,#100 ;让P1输出稳定DJNZ R7,$MOV A,P1 ;先确定是否有键按下ANL A,#0F0HXRL A,#0F0H ;与上一句作用,判断是否有按键按下JZ MAIN ;无则重新扫描LCALL D10MS ;延时10ms,去除抖;判断是否确实有按键按下MOV A,#00HMOV R0,A ;R0做行计数器,初始值为0MOV R1,A ;R1做列计数器,初始值为0MOV R2,#0FEH ;R2低4位为行扫描子,初始值为1111 1110B SKEY0:MOV A,R2MOV P1,A ;输出行扫描字,先扫第一行MOV R7,#10 ;让P1输出稳定DJNZ R7,$MOV A,P1 ;读列值ANL A,#0F0HXRL A,#0F0H ;取列值JNZ LKEY ;A不为零,则确实有按键按下了;然后转去判断具体是哪一列INC R0 ;增1,记录准备扫描的下一行MOV A,R2RL A ;不带进位位,左移一位,准备扫描下一行MOV R2,AMOV A,R0 ;判断是否已经四行都扫描完了CJNE A,#04H,SKEY0AJMP MAIN ;都扫描完则循环开始;判断具体列值LKEY: JNB ACC.4,NEXT1 ;若ACC.4为1,则是第一列有按键按下了MOV A,#00H ;存0列号到R1MOV R1,AAJMP DKEY ;去计算键值并显示NEXT1:JNB ACC.5,NEXT2MOV A,#01H ;存1列号到R1MOV R1,AAJMP DKEYNEXT2:JNB ACC.6,NEXT3MOV A,#02H ;存2列号到R1MOV R1,AAJMP DKEYNEXT3:JNB ACC.7,MAIN ;到第四列都检测不到,则从新开始MOV A,#03H ;存3列号到R1MOV R1,AAJMP DKEY;计算键值并显示键值DKEY: MOV A,R0 ;取行号给AMOV B,#04HMUL ABADD A,R1 ;根据键值=行号*4+列号计算出具体键值AJMP SQR ;根据键值查询字型码/*********************查表子程序***************************/SQR: MOV DPTR,#TAB ;表首地址给DPTRMOVC A,@A+DPTR ;查第一个字型的字型码MOV P0,A ;送段码,数码管显示具体值AJMP MAIN ;返回开始TAB: DB 0C0H,0F9H,0A4H,0B0H,99H, 92H, 82H, 0F8H ;共阳极字型码表0——7 DB 80H, 90H, 88H, 83H, 0C6H,0A1H,86H, 8EH ;共阳极字型码表8——F/*********************10ms延时子程序**********************/D10MS:MOV R6,#10L1:MOV R5,#248DJNZ R5,$DJNZ R6,L1RETEND/*********************程序编写结束*************************/根据实验流程图,编写出一下实验程序。

矩阵按键实训报告

矩阵按键实训报告

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

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

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

二、实训目的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. 矩阵键盘的应用潜力:矩阵键盘广泛应用于各种电子产品中,如计算机、手机、电视遥控器等。

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

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

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

[单片机矩阵键盘实验实验报告范文]矩阵键盘实验心得

[单片机矩阵键盘实验实验报告范文]矩阵键盘实验心得

[单片机矩阵键盘实验实验报告范文]矩阵键盘实验心得实验五矩阵键盘实验一、实验内容1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。

按其它键退出。

2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。

可定义“A”键为“+”键,“B”键为“=”键。

二、实验目的学习独立式按键的查询识别方法。

2、非编码矩阵键盘的行反转法识别方法。

三、实验说明1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。

2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。

3、识别键的闭合,通常采用行扫描法和行反转法。

行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。

行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。

然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。

这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。

由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。

行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0某F0;假如此时没有人按键,从P1口读出的值应仍为0某F0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0某B0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0某BF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0某BE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。

微机原理课设-矩阵式键盘数字密码锁设计

微机原理课设-矩阵式键盘数字密码锁设计

微机原理课程设计课程实验报告实验名称矩阵式键盘数字密码锁设计一、实验目的1. 掌握微机系统总线与各芯片管脚连接方法,提高接口扩展硬件电路的连接能力。

2. 初步掌握键盘扫描,密码修改和计时报警程序的编写方法。

3. 掌握通过矩阵式键盘扫描实现密码锁功能的设计思路和实现方法。

二、实验所用仪器(或实验环境)Win7计算机微机一台(Pentium 4)ISA–PCI 转接卡星研集成环境软件8255芯片12864J液晶显示器矩阵键盘三、实验基本原理及步骤(或方案设计及理论计算)1.课程设计的内容:根据设定好的密码,采用4x4矩阵键盘实现密码的输入功能。

当密码输入正确之后,锁就打开(绿灯亮),10秒之后,锁自动关闭(红灯亮);如果连续输入三次密码不正确,就锁定按键5秒钟,同时发出报警(黄灯闪),5秒后,解除按键锁定,恢复密码输入。

2.基本功能要求1)具有开锁、修改用户密码等基本的密码锁功能。

2)对于超过3次密码,密码错误,锁定键盘5秒,系统报警。

5秒后解除锁定。

4)通过LCD字符液晶和LED指示灯(红,绿,黄)实时显示相关信息。

5)用户密码为6位数字,显示采用“*”号表示。

6)密码锁键盘设计合理,功能完善,方便用户使用。

3.流程设计:4.具体实现:针对上机设备上的4×4矩阵键盘,我们分别设计功能。

密码锁用户初始密码为123456,管理员初始密码为12345678。

系统启动后,密码锁处于关闭状态,点击open按键选择开启密码锁功能,系统提示输入密码,若输入正确,则系统发出连续的四次蜂鸣并打开锁(绿灯亮10s),系统等待10 秒,然后重新关闭密码锁。

若密码错误则提示重新输入密码,若使用del按键,则所有密码清空,重新输入,若输入三次密码错误,则系统提示警告词同时发出长蜂鸣警报(黄灯闪),锁定键盘5 秒,然后重新进入初始状态。

若输入Modify功能,系统提示输入旧密码,输入旧密码+“#”键后,如果正确,系统提示输入新密码,输入新密码+“#”后,新密码起效,重新进入初始状态;如果旧密码错,不能修改密码,密码锁直接进入初始状态。

单片机 矩阵键盘实验 实验报告

单片机 矩阵键盘实验 实验报告

单片机矩阵键盘实验实验报告
实验名称:单片机矩阵键盘实验
实验目的:掌握单片机矩阵键盘的原理和应用,能够使用单片机按键输入
实验内容:利用Keil C51软件,采用AT89C51单片机实现一个4x4的矩阵键盘,当按下任何一个按键时,将相应的键值传输到液晶显示屏上进行显示。

实验步骤:
1、搭建实验电路,将矩阵键盘与单片机相连,连接好电源正负极,然后将电路焊接成一个完整的矩阵键盘输入电路。

2、打开Keil C51软件,新建一个单片机应用工程,然后编写代码。

3、通过代码实现对矩阵键盘输入的扫描功能,当按下任何一个按键时,将相应的键值传输到液晶显示屏上进行显示。

4、编译代码,生成HEX文件,下载HEX文件到单片机中,将单片机与电源相连,然后就可以测试了。

5、测试完成后,根据测试结果修改代码,重新编译生成HEX 文件,然后下载到单片机中进行验证。

实验结果:
经过测试,实验结果良好,能够准确地输入按键的值,显示在液晶屏上。

实验感想:
通过这次实验,我深深地认识到了矩阵键盘技术的重要性以及应用价值,同时也更加深入了解单片机的工作原理和应用技术,这对我的学习和工作都有很好的帮助。

矩阵键盘实验报告

矩阵键盘实验报告

自主学习用实验矩阵键盘识别实验
一、实验目的
1、掌握 4×4 矩阵键盘的工作原理和键盘的扫描方式。

2、掌握键盘的去抖方法和键盘应用程序的设计。

二、实验设备
1、PC 机一台;
2、开放式模块化单片机教学实验箱一台;
3、USB 下载线一根。

三、实验内容
自行编制程序,用 51 单片机实现 4×4 矩阵键盘扫描,采用线反转法;并实现当S11按下时在数码管上显值“0”,当S12按下时在数码管上显值“1”……,即依次将 S11 至S26按下,在数码管上依次显示十六进制数“0-F”,矩阵键盘原理图如图1-1 所示。

单片机与数码管接口电路原理图如图 1-2 所示。

图 1-1 矩阵键盘接口电路
图 1-2 数码管接口电路原理图
四、思考题
1.画出所编程序的流程图;
2.若要实现2×4 矩阵键盘,软硬件作如何修改。

答:将行线P2^3, P2^4接线去掉。

程序对应部分P2=0xfd; P2=0xfe;删掉。

3.实验中有何故障、问题出现,是否得到解决?如何解决的?问题:显示值对应出错。

原来是共阳段码和共阴段码弄相反了。

矩阵键盘密码锁实训报告

矩阵键盘密码锁实训报告

一、实训背景随着科技的不断发展,电子产品的安全性越来越受到重视。

矩阵键盘密码锁作为一种常见的电子安全设备,具有操作简单、可靠性高、成本低等优点,在众多领域得到了广泛应用。

为了提高学生对电子技术及单片机应用的理解和实践能力,我们开展了矩阵键盘密码锁的实训。

二、实训目的1. 熟悉矩阵键盘的工作原理及按键扫描方法;2. 掌握单片机在密码锁系统中的应用;3. 培养学生动手实践能力和团队合作精神;4. 提高学生对电子产品的安全性认识。

三、实训内容1. 硬件设计(1)主控芯片:选用STC89C52单片机作为核心控制单元;(2)矩阵键盘:采用4x4矩阵键盘,共16个按键;(3)显示屏:选用1602LCD液晶显示屏,用于显示密码及提示信息;(4)其他元件:按键、蜂鸣器、电阻、电容等。

2. 软件设计(1)按键扫描:采用逐行扫描法,对矩阵键盘进行扫描,检测按键状态;(2)密码设置与验证:设置四位密码,用户输入密码后,系统进行验证;(3)开锁与上锁:当密码正确时,系统解锁;当密码错误时,蜂鸣器报警;(4)定时器:设置一个定时器,用于控制密码输入错误次数,若连续输入错误三次,则锁定系统。

3. 系统实现(1)搭建电路:按照设计图纸,将各元件焊接在电路板上;(2)编写程序:使用C语言编写程序,实现矩阵键盘扫描、密码设置与验证、开锁与上锁等功能;(3)下载程序:将编写好的程序下载到单片机中;(4)调试与测试:对系统进行调试,确保各功能正常。

四、实训过程1. 电路搭建:按照设计图纸,将各元件焊接在电路板上,注意焊接质量,确保电路的可靠性;2. 程序编写:使用C语言编写程序,实现矩阵键盘扫描、密码设置与验证、开锁与上锁等功能,并进行调试;3. 系统调试:将编写好的程序下载到单片机中,对系统进行调试,确保各功能正常;4. 功能测试:测试密码设置、密码验证、开锁与上锁等功能,验证系统性能。

五、实训结果与分析1. 矩阵键盘扫描:通过逐行扫描法,成功实现了对矩阵键盘的扫描,并能准确检测按键状态;2. 密码设置与验证:成功实现了四位密码的设置与验证,当密码正确时,系统解锁;当密码错误时,蜂鸣器报警;3. 开锁与上锁:成功实现了开锁与上锁功能,当密码正确时,系统解锁;当密码错误时,蜂鸣器报警,并锁定系统;4. 定时器:成功设置了定时器,当连续输入错误三次密码时,系统锁定,直至系统复位。

单片机 矩阵键盘实验 实验报告

单片机 矩阵键盘实验 实验报告

实验五矩阵键盘实验一、实验内容1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。

按其它键退出。

2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。

可定义“A”键为“+”键,“B”键为“=”键。

二、实验目的1、学习独立式按键的查询识别方法。

2、非编码矩阵键盘的行反转法识别方法。

三、实验说明1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。

2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。

3、识别键的闭合,通常采用行扫描法和行反转法。

行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。

行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。

然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。

这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。

由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。

行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。

单片机矩阵按键实训报告

单片机矩阵按键实训报告

一、实训目的1. 理解矩阵键盘的工作原理和电路设计。

2. 掌握矩阵键盘的编程方法,实现按键的检测和响应。

3. 培养实际动手能力和团队协作能力。

二、实训内容1. 矩阵键盘电路设计2. 矩阵键盘编程3. 矩阵键盘应用实例三、实训环境1. 单片机开发板:51单片机开发板2. 矩阵键盘:4x4矩阵键盘3. 编程软件:Keil uVision54. 仿真软件:Proteus四、实训过程1. 矩阵键盘电路设计矩阵键盘由行线和列线组成,通过行列交叉连接的按键阵列实现按键功能。

在4x4矩阵键盘设计中,共有4条行线和4条列线,共16个按键。

电路设计如下:(1)行线连接:将单片机的P1.0至P1.3端口作为行线输出,用于控制行线电平。

(2)列线连接:将单片机的P2.0至P2.3端口作为列线输入,用于检测按键状态。

(3)按键连接:将16个按键分别连接到行线和列线交叉处。

2. 矩阵键盘编程(1)初始化:设置P1端口为输出模式,P2端口为输入模式。

(2)按键检测:通过逐行扫描的方式检测按键状态。

首先将P1端口的所有行线设置为低电平,然后逐行检查P2端口列线的状态,如果某列线为低电平,则表示该行对应列的按键被按下。

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

通常采用软件消抖方法,即在检测到按键按下后,延时一段时间(如10ms)再次检测按键状态,如果按键仍然被按下,则确认按键操作有效。

(4)按键处理:根据检测到的按键,执行相应的操作。

例如,当按键按下时,在LCD1602显示屏上显示对应的按键值。

3. 矩阵键盘应用实例以LCD1602显示屏为例,实现按键与显示内容的关联。

(1)LCD1602显示屏初始化:设置LCD1602的显示模式、光标位置等。

(2)按键扫描:按照上述方法检测按键状态。

(3)按键处理:根据按键值,在LCD1602显示屏上显示对应的字符。

五、实训结果1. 成功设计并实现了4x4矩阵键盘电路。

2. 编写了矩阵键盘的检测和响应程序,实现了按键的检测和消抖处理。

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

南京林业大学
实验报告
基于AT89C51
单片机4x4矩阵键盘接口电路设计
课程机电一体化设计基础
院系机械电子工程学院
班级
学号
姓名
指导老师杨雨图
2013年9月26日
一、实验目的
1、掌握键盘接口的基本特点,了解独立键盘和矩阵键盘的应用方法。

2、掌握键盘接口的硬件设计方法,软件程序设计和贴士排错能力。

3、掌握利用Keil51软件对程序进行编译。

4、用Proteus软件绘制“矩阵键盘扫描”电路,并用测试程序进行仿
真。

5、会根据实际功能,正确选择单片机功能接线,编制正确程序。

对实
验结果能做出分析和解释,能写出符合规格的实验报告。

二、实验要求
通过实训,学生应达到以下几方面的要求:
素质要求
1.以积极认真的态度对待本次实训,遵章守纪、团结协作。

2.善于发现数字电路中存在的问题、分析问题、解决问题,努力培养
独立工作能力。

能力要求
1.模拟电路的理论知识
2.脉冲与数字电路的理念知识
3.通过模拟、数字电路实验有一定的动手能力
4.能熟练的编写8951单片机汇编程序
5.能够熟练的运用仿真软件进行仿真
三、实验工具
1、软件:Proteus软件、keil51。

2、硬件:PC机,串口线,并口线,单片机开发板
四、实验内容
1、掌握并理解“矩阵键盘扫描”的原理及制作,了解各元器件的参
数及格元器件的作用。

2、用keil51测试软件编写AT89C51单片机汇编程序
3、用Proteus软件绘制“矩阵键盘扫描”电路原理图。

4、运用仿真软件对电路进行仿真。

五.实验基本步骤
1、用Proteus绘制“矩阵键盘扫描”电路原理图。

2、编写程序使数码管显示当前闭合按键的键值。

3、利用Proteus软件的仿真功能对其进行仿真测试,观察数码管的显示状态和按键开关的对应关系。

4、用keil51软件编写程序,并生成HEX文件。

5、根据绘制“矩阵键盘扫描”电路原理图,搭建相关硬件电路。

6、用通用编程器或ISP下载HEX程序到MCU。

7、检查验证结果。

六、实验具体内容
使用单片机的P1口与矩阵式键盘连接时,可以将P1口低4位的4条端口线定义为行线,P1口高4位的4条端口线定义为列线,形成4*4键盘,可以配置16个按键,将单片机P2口与七段数码管连接,当按下矩阵键盘任意键时,数码管显示该键所在的键号。

1、电路图
2、程序流程图
3、程序源码
ORG 00H ; 起始地址00H
K1:
MOV P1, #0F0H ; 设置~为输入端口
MOV A, P1 ; 从P1读取所有列的值
K2:
CALL DELAY ; 调用20ms延时子程序(省略)
MOV A, P1 ; 从P1读取状态,看有没有按钮被按下
JMP K2 ; 循环检测
OVER:
CALL DELAY ; 延时20ms防止抖动
MOV A, P1 ; 从P1读取状态
JMP K2 ; 如果没有按钮按下,循环扫描OVER1:
MOV A, P1 ; 读所有的列
MOV A, P1 ; 读所有的列
MOV A, P1 ; 读所有的列
MOV A, P1 ; 读所有的列
LJMP K2 ; 如果没有,则循环
ROW_0:
MOV DPTR, #KCODE0 ; 设置DPTR=第0行的起始地址
SJMP FIND ; 找列
ROW_1:
MOV DPTR, #KCODE1 ; 设置DPTR=第1行的起始地址
SJMP FIND ; 找列
ROW_2:
MOV DPTR, #KCODE2 ; 设置DPTR=第2行的起始地址
SJMP FIND ; 找列
ROW_3:
MOV DPTR, #KCODE3 ; 设置DPTR=第3行的起始地址FIND:
SWAP A
FIND1:
RRC A ; 看看是否进位C为0
JNC MATCH ; 如果是0,就跳到MATCH找键值
INC DPTR ; DPTR加1
SJMP FIND1 ; 循环查找
MATCH:
CLR A ; A=0
MOVC A, @A+DPTR ; 用DPTR在数据表中找到键值装入A
CLR ;置口为低,显示数字
MOV P0, A ; 显示键值
LJMP K1 ; 循环
DELAY: ;延时子程序,1ms
MOV R1, #2
D1:
MOV R2, #248
DJNZ R2, $
DJNZ R1, D1
RET
; 键值保存在以下的数据表中,可根据系统实际需要进行修改
ORG 300H ; 数据表起始地址
0C0C0C0C0F0A0F0C0A下图1所以:
图1
当矩阵键盘的3号键被按下时,P0口的七段数码管显示的数据为3.如下图2所以:
图2
当矩阵键盘的D号键被按下时,P0口的七段数码管显示的数据为d.如下图3所以:
图3
当矩阵键盘的F号键被按下时,P0口的七段数码管显示的数据为F.如下图4所以:
图4
5、实验板运行结果
当矩阵键盘的9号键被按下时,P0口的七段数码管显示的数据为9.如下图5所以:
图5。

相关文档
最新文档