在线客服:
亚博电子竞技 亚博电子竞技
全国服务热线:010-93914935
您的位置:首页 > 新闻中心 >

矩阵键盘实验的摘要。 docx 15页

浏览 60次 来源:【jake推荐】 作者:-=Jake=-    时间:2021-02-14 18:19:51
[摘要] 图1按键抖动三.实验内容实验板上矩阵键盘与STM32连接图如图2所示:图2矩阵键盘连接图编写矩阵键盘的扫描程序,通过仿真器查看扫描程序得到的按键编码是否与实验板上的按键编码相同。

矩阵键盘实验总结矩阵键盘实验报告学生:学生ID:XX专业班:自动化1202指导老师:Yang Dongyong 12月XX 一、实验目的1.了解矩阵键盘的工作原理; 2.学习矩阵接口的电路设计和程序设计。 二、用于实验设备的统一电子开发平台。 三、实验要求需要实现:按下矩阵键盘中的某个键时,8位LED动态显示屏上的最低位显示与该键相对应的字符。请注意凤凰体育平台 ,在进行此实验之前,请进行实验三个“计时器实验”。 四、实验原理1.工作原理:矩阵由行线和列线组成,按钮位于行和列的交点处。如图所示,4×4的行和列结构可以形成具有16个键的键盘。显然,在具有大量按键的情况下,与独立键盘相比,矩阵键盘节省了大量I / 0端口。矩阵键盘的工作原理按键排列在行和列的交点处,行和列分别连接到按键开关的两端。行线通过下拉电阻连接至GND。当没有键动作时,行线处于低电平状态,而当按下键时,行线电平状态将由连接到该行线的列线的电平确定。如果列线电平低,则行线电平高;如果列线电平高,则行线电平低。这是识别是否按下矩阵键盘的键。因此,键之间会相互影响,因此必须对行和列线信号进行匹配和适当处理,以确定闭合键的位置。

键识别方法下面以按下3号键为例来说明如何识别此键。如前所述,当按下一个键时,连接到该键的行线的电平将由连接到该键的列线的电平确定,而当没有键时,行线的电平将处于高电平被按下。如果所有的列线都处于高电平,则是否按下该键将不会导致行线电平的状态改变,并且将始终处于高电平。因此,如果所有列线都处于高电平,则不可能识别按钮。现在相反,让所有列线都处于低电平。显然,按键所在行的级别也将设置为低电平。基于此更改,可以确定必须按下该行中的一个键。但是我们仍然不确定该行中的哪个键被按下了。因此,为了进一步确定按键的哪一列被按下,在某一时刻只能有一个列线处于低电平,而所有其他列线都处于高电平。当第一列为低而其他列为高时,由于按下了键3,因此第一行仍为高;当第二列为低时,其余列为高在该级别上,我们还会发现第一行仍处于高状态,直到第四列为低,其他列为高,这是因为3号键按下,因此第一行为高电平。在第四列中,电平转换为低电平。基于此,我们确定按下了第一行和第四列相交处的键,即3号键。根据以上分析,很容易获得识别矩阵键盘按键的方法。此方法分两个步骤执行。第一步是确定是否按下了键盘键。第二步,如果按下了一个键,请确定特定的键。

细分如下:识别是否在键盘上按下键的方法是使所有列线为低电平,并检查每行的电平是否为低电平。如果是32 矩阵键盘,则表示已按下某个键;如果未按下,则意味着未按下任何键(在实际编程中应考虑按键抖动的影响,并且通常使用软件延迟进行去抖动处理)。识别特定按钮的方法是:逐列设置零电平,并检查每行的电平。如果某行的级别从高变低,则可以确定该行与此列相交处的按钮为“按下”。 2.示意图五、程序流程图图1中显示了程序流程图。图1程序流程图六、实验思维问题1.实验中遇到的问题:有时按下的键盘与您想要的不同要显示,事实证明这是程序错误。后来,我检查了这本书并将其改回。 。也有一些小错误已一一解决。中断服务子程序后必须有一个RETI中断返回指令。附件:实验源代码:; ******************** ASM编译实验******************;工程:;晶体:; ************************************************ ***** //#include“ REG _” / *如果使用MPC82G516的特殊寄存器,请包含此头文件* / ORG0000HAJMPMAINORG000BHAJMPINTI_T0MAIN:MOVTMOD,#01H;定时器设置晶体,工作在模式1,16位定时MOVTH0,#0B8H;加载T0初始值,20ms MOVTL0,#00HMOVIEyabo2020 ,#82H;打开中断SETBTR0;打开定时开关MOV50H,#010H;清除按钮保存数据MOV51H,#010H;清除按钮保存数据MOV52H,#010H;清除按钮保存数据MOV53H,#010H;清除按钮保存数据MOV54H,#010H;清除按钮保存数据MOV55H,#010H;清除按钮保存数据MOV56H,#010H;清除按钮保存数据MOV57H,#010H;清除按钮保存数据MOVR7,#00H;初始化扫描时间MOV30H,#00H;清除按键扫描允许标志LOOP_SCAN:MOVA,30H;确定是否扫描密钥CJNEA,#01H,SCAN_ENDCALLKEYSCAN;调用键盘扫描程序CJNEA,#0FFH,ADD_KEYAJMPEND_KEYADD_KEY:CJNER7,#04H,ADD_CANKEY1AJ ;;累积扫描数AJMPSCAN_ENDEND_KEY:CJNER7,#04H,SCAN_END; KEY_VALID:基于AT4C矩阵的南京林业大学MCU实验报告电路4设计课程部门班级学生编号名称讲师机电工程设计学院机械与电子工程学院杨育兔XX 2009年9月26日一、实验目的1、掌握键盘界面的基本特征,了解独立键盘和矩阵的应用方法键盘。

2、掌握键盘接口的硬件设计方法,软件编程和故障排除功能。 3、掌握使用Keil51软件来编译程序。 4、用Proteus软件绘制“矩阵键盘扫描”电路32 矩阵键盘,并使用测试程序进行仿真。 5、根据实际功能,正确选择单片机的功能接线,并编译正确的程序。能够分析和解释实验结果,并编写符合规格的实验报告。 二、该实验需要培训,并且学生应满足以下要求:质量要求1.积极,认真地对待本培训,遵守规则和纪律,并团结协作。 2.善于发现,分析和解决数字电路中的问题,并努力培养独立工作的能力。能力要求1.模拟电路的理论知识2.脉冲和数字电路的概念知识3.通过模拟和数字电路实验具有一定程度的实践能力4.熟练编写8951单片机汇编程序5.熟练使用仿真软件进行仿真三、实验工具1、软件:Proteus软件,keil51。 2、硬件:PC,串行端口,并行端口,MCU开发板四、实验内容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端口线定义为行线和高4位P1端口的4条端口线作为列线。形成一个4 * 4键盘,可以配置16个按键,微控制器的P2端口连接到七段数码管。当按下矩阵键盘的任何键时,数字管将显示该键的键号。 1、电路图2、程序流程图3、程序源代码ORG00HK1:MOVMOVANLCJNEK2:CALLMOVANLCJNEJMPOVER:CALLMOVANLCJNEJMPOVER1:MOVMOVANLCJNEMOVMOVANLCJNEMOVMOVANLCJNEMOVMOVANLCJNELJMP,从地址中读取所有列;值A,#B;屏蔽掉无用的低4位,非列值A,#B,K1;查询直到所有按钮都释放DELAY;调用20ms延迟子程序(省略)A,P1;从P1状态读取,查看是否按下了按钮A,#B;屏蔽无用的低4位,非列值A,#B,OVER;如果按下了按钮,则跳至OVERK2;循环检测延迟;延迟20ms以防止抖动A,P1;从P1读取状态A,#B;屏蔽掉无用的位A,#B,OVER1;如果按下了按钮,则找到行K2;如果未按下任何按钮,则循环扫描P1,#B;第0行输出低电平A,P1;阅读所有A列,#B;屏蔽掉无用的位A,#B,ROW_0;如果在第0行中按下了按钮,则找到P1列#B;第一行输出低电平A,P1;阅读所有A列,#B;屏蔽掉无用的位A,#B亚博直播软件 ,ROW_1;如果第一行中有一个按钮,请查找列P1,#B;第2行输出低电平A,P1;读取所有列A,#B;屏蔽掉无用的位A,#B,ROW_2;如果在第二行中有按钮按下,则查找列P1,#B;在第三行Ping A,P1中输出低功率;阅读所有A列,#B;屏蔽掉无用的位A,#B,ROW_3;如果第三行中有一个按钮,请查找列K2;如果不是,则循环DPTR,#KCODE0;设置DPTR =第0行的起始地址FIND;找出单片机与嵌入式系统的原理及应用实验名称:张银成,石天涯班级:XX3XX5学生人数:1 1、 24矩阵键盘实验之一。实验目的1.熟练掌握矩阵键盘的使用。

2.知道独立键盘和矩阵键盘两者之间的区别。实验原理1.独立键盘当独立键盘连接到单片机时,每个键都需要一个独立的I / O端口。如果一个单片机系统需要更多的键,如果使用独立的键,则将占用更多的I / O端口。单片机系统中的I / O端口资源通常很宝贵。当使用多个键时,为了节省I / O端口,我们引入了矩阵键盘。 2.矩阵键盘我们以3x3矩阵键盘为例,说明其工作原理和检测方法。将9个按钮排列成3行3列。第一行将每个按钮的一端连接在一起以形成行线,第一列将每个按钮的另一端连接在一起以形成列线,所以共有3行3共有6行,通过STM32的6个IO端口的这6行和9个键可以通过在程序中扫描键盘来检测。这样,我们还可以实现4行4列16键,5行5列25键和6行6列36键。无论是独立键盘还是矩阵键盘,单片机检测其是否被按下的原理都是相同的,即,对应于该键的I / O端口是否为低。独立按钮的一端固定在低电平,这在MCU编写程序并检测程序时更加方便。而且矩阵键盘的两端都连接到单片机的I / O端口,因此在检测过程中有必要通过单片机的I / O端口人为地发送低电平。检测时,首先发送一列为低电平,另一列为高电平,然后立即检查每一行是否具有低电平。如果检测到某一行为低电平,我们可以确认当前按下的键所在的行和列,使用相同的方法依次将每一列发送为低电平,然后检查每一行是否变为低电平依次调平,以便可以检测到所有按键。

当然,我们也可以将行线设置为低电平,以查看扫描列是否为低电平。这是矩阵键盘检测的原理和方法。 3.键的功能和去抖动当再次按下或释放机械键时,由于机械弹性的影响,通常伴随有一定时间的触点机械振动,然后触点稳定。抖动过程如图1所示。抖动时间的长短与开关的机械特性有关,通常为5至10 ms。从图中可以看出,在接触摇动期间检测按钮的打开和关闭状态可能会导致判断错误。即,按键或释放被误认为是多次操作。不允许这种情况。为了克服由按钮触点的机械抖动引起的检测错误判断,必须采取防抖措施,可以从硬件和软件两者中加以考虑。一般而言,当键的数量较少时,可以使用硬件去抖动,而当键的数量较大时YOBET体育 ,可以使用软件去抖动。 。软件去抖动的流程图如图1所示。图1按钮抖动III。实验内容实验板上的矩阵键盘与STM32的连接图如图2所示:图2矩阵键盘的连接图编写矩阵键盘的扫描程序,并检查扫描程序获得的键码是否相同。作为通过仿真器在实验板上的关键代码。 四、程序代码1.主要功能intmain(void){/ * configtheled * / LED_GPIO_Config(); LED2(ON); / * extilineconfig * / EXTI_PC2_Config(); / * waitinterrupt * / while(1) {} } 2. LED配置voidLED_GPIO_Config(无效){GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); GPIO__Mode = GPIO_Mode_Out_PP ;; GPIO__Speed = GPIO_Speed_50MHz; GPIO__Pin = GPIO_Pin_14 GPIO_Init(GPIOB,&GPIO_InitStructure); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO__Pin = GPIO_Pin_8; GPIO__Mode = GPIO_Mode_Out_PP; GPIO__Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStructure);} 3.中断处理voidEXTI2_IRQHandler(void){if(EXTI_GetITStatus(EXTI_Line 2)是否为an an行是= RESET))// M产生{// LED4反转GPIO_WriteBit(GPIOB,GPIO_Pin_14,(BitAction)((1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_1 4))))))/// LED4,LED7同时开启和关闭GPIO_WriteBit(GPIOA,GPIO_Pin_8 ,(BitAction)(((1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_ 8) ))); EXTI_ClearITPendingBit(EXTI_Line 2); //清除中断标志}} 5.实验结果图2.演示实验结果6.实验思维1.矩阵键盘和独立键的使用概述相似之处和时间上的差异。

答案:不同:当将独立键盘连接到单片机时,每个键都需要一个独立的I / O端口,而矩阵键盘保存IO端口。相同:无论是矩阵键盘还是独立键盘,微控制器检测是否按下的原理都是相同的。 2.矩阵键盘如何确定是否按下了某个键?答:按下低电平。检测时,首先发送一列为低电平,另一列为高电平,然后立即检查每一行是否具有低电平。如果检测到某种行为为低电平,则可以确定当前按下的行和列,使用相同的方法依次将每一列发送为低电平,并检查每一行是否依次变为低电平,以便可以检测到所有按键。 3.编写程序以在数字管上显示扫描的键控代码#defineuintunsignedint#defineucharunsignedcharUcharcodetable [10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; voidinDelay_1ms ,j; for(j = 0; j

老王
本文标签:高电平,单片机,矩阵键盘

推荐阅读

最新评论