b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

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

电脑杂谈  发布时间:2020-08-27 02:09:55  来源:网络整理

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,Q20和Q27的P2端口控制,以实现8位数字电子管的位输出控制. 这样,对于一组数字电子管动态扫描和显示,就需要由两组信号来控制. 一组是由字段输出端口输出的字体代码,该代码用于控制显示的字体,这称为段代码. 另一组由位输出端口输出. 用于选择要工作的位数的控制信号称为位代码. 由于每个数字电子管的分段线是并联连接的,因此每个数字电子管的分段代码输出是相同的.

因此,如果每个数码管的位选择线同时处于选通状态,则8个数码管将显示相同的字符. 如果要让数码管显示与该位置相对应的字符,则必须使用扫描显示模式. 即,在某一时刻,只有一个位的位选择线处于导通状态,而其他位的位选择线处于截止状态. 同时,在段线上输出要在相应位显示的字符的字体代码. 这样,与此同时,只有选通的一个显示字符,而其他的则关闭. 如果循环继续,则数码管可以显示要显示的字符. 尽管这些字符出现在不同的时间,并且同时出现,但仅显示一个,而其他显示则关闭. 然而,由于数字管的余辉特性和人眼视觉残留的现象,只要每个数字管的显示间隔足够短,就可以连续稳定地显示人眼的视觉印象. 图3数字电子管电路可以通过调整延迟程序的延迟长度来完成数字电子管显示的不同位的时间间隔. 数字管显示的时间间隔也可以确定数字管的亮度. 如果显示时间间隔较长,则显示时数码管的亮度会变亮. 如果显示的时间间隔很短,则在显示期间数码管的亮度会变暗. 如果显示时间间隔太长,显示时数码管将闪烁. 因此,在调整显示时间间隔时,有必要在显示期间考虑数字管的亮度,并在显示数字管时避免闪烁. 在ME300B MCU开发系统中使用数字管显示信息时,请将JP2的2、3端短路.

4*4矩阵键盘_矩阵 一致性_矩阵一致性

请参见图3. 2.演示程序编程方法1. 4×4矩阵键盘编程方法1.1. 首先读取键盘状态以获得按键功能代码. 首先从端口P1的高四位输出低电平,从端口四的低位输出高电平,并从端口P1的低四位读取键盘状态. 然后从端口P1的低四位输出低电平,从端口四的高四位输出高电平,并从端口P1的高四位读取键盘状态. 结合两个读取结果,以获取当前按钮的功能代码. 使用以上方法,我们得到16个按键的功能代码. 举例说明如何获取密钥的功能代码. 假设按下了“ 1”键,请找到该键的功能代码. 从P1端口的高四位输出低电平,即P1.4和P1.7是输出端口. 低四位输出高电平,即P1.0,P1.3为输入端口. 端口P1的低四位的状态为“ 1101”,其值为“ 0DH”. 然后从端口P1的高四位输出高电平,即P1.4和P1.7是输入端口. 低四位输出低电平,即P10,P13为输出端口. P1端口的高四位的状态为“ 1110”,其值为“ E0H”. 对两次读取的P0端口状态值执行逻辑或运算,以获取关键功能代码为“ EDH”. 以相同的方式,可以获得其他15个键的功能代码. 1.2. 根据按键的功能代码,查找表以获取按键的顺序代码. 按照图2中按钮的顺序,将通过上述方法获得的16个键的功能代码排列为相应的功能代码表和顺序代码表,然后使用当前读取的功能代码查找表. 当表具有“时间”特征编码时,其位置是相应的顺序编码.

1.3. 矩阵键盘键值搜索程序的特定编程该演示程序的主要功能是: 1.识别键盘是否按下了键,如果没有按下,则返回. 2.如果按了某个键,则找出特定的键值(顺序代码). ================================================== ==矩阵键盘键值搜索程序的键值以30H单位存储================================= = ==================KEY_SCAN;识别键盘上是否有按键,然后按子程序MOV P1#0F0H;将列线设置为0,将行线设置为1MOV A,P1;读取P1端口ANL A,#0F0H;取出MOV B,A的高四位;临时存储到BMOV P1#0FH;将列线设置为1,将行线设置为0MOV A,P1;读取P1端口ANL A,#0FH;取出低四位ORL A,B;高四位和低四位逻辑或运算重组CJNE A,#0FFH,KEY_IN1; 0FFH为无键,按RETKEY_IN1;确定特定键值子程序MOV B,A;按下键BMOV的功能代码临时存储在BMOV DPTR,#KEYTABLEMOV R3,#0FFHKEY_IN2: INC R3中;序列码加上1MOV A,R3MOVC A,@ A + DPTR;查找表CJNE A,B,KEY_IN3;比较(如果相同),找到关键的特征编码.

矩阵一致性_矩阵 一致性_4*4矩阵键盘

MOV A,R3;找到特征码后,取序列码MOV 30H,A;将其存储在单元30H中RETKEY_IN3: CJNE A,#00H,KEY_IN2;当结束时,继续检查RET;结束代码00H;特征代码与序列代码KEY_TABLE的对应表相同: DB 0EEH,0EDH,0EBH,0E7H,0DEH; 0、1、2、3、4,顺序码DB 0DDH,0DBH,0D7H,0BEH,0BDH; 5、6、7、8、9,顺序码DB 0BBH,0B7H,07EH,07DH,07BH,077H; A,B,C,D,E,F序列码DB 00H;结束码2,根据8位数字电子管显示程序的编程使用方法,确定数字电子管的特定位置的初始扫描值和扫描方向. 根据所用数码管的数量确定扫描位数. 准备要显示的数据并将其放入相应的人机界面中. ================================================== ======== 8位数字电子管显示子例程; 8个数字显像管从右到左依次亮起======================================== ====================显示: MOV R1,#07FH;扫描初始值输入R1MOV R2,#08H;扫描数字发送到R2MOV R0,#30H;开始填充显示单元DISP1: MOV A,@ R0;显示内容发送到AMOV DPTR,#TABLE;获取标题MOVC A,@ A + DPTR;查表,得到显示数据MOV P0,A;显示单元数据MOV P2,R1;开始显示当前位置的MOV A,R1;准备显示下一个数字RR AMOV R1,AINC R0;获取下一个单元地址LCALL DELAY2MS;延迟2 MSDJNZ R2,DISP1;重复下一个RET的显示;显示完成,返回,因为键值显示只需要一个数字管,可以优化上述显示程序,并可以获取以下显示程序.

================================================ =====键值显示子例程========================================== ===========KEY_PLAERMOVA,30H;键值数据发送到AMOV DPTR,#TABLE;取段代码表地址MOVC A,@ A + DPTR;检查与段代码MOV P0,A相对应的显示数据;段代码发送到P0端口CLR P2.7;第一个数码管显示CALL DELAY2MSSETBP2.7RETTABLEDB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8HDB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH矩阵键盘的工作原理使用了一部分I / O端口线作为行线,另一部分作为列线. 按钮设置在行线和列线的交点处. 这形成矩阵键盘. 矩阵键盘中的键数最多可以等于行数n乘以列数m. 例如,具有4行4列的矩阵键盘的键数可以达到4×4 = 16. 可以看出,当有更多按键时,矩阵键盘可以保存IO端口线. 8位微控制器系统常用的键盘大小为4×4、4×8、8×8等.

矩阵一致性_矩阵 一致性_4*4矩阵键盘

下面以4×4矩阵键盘为例,说明矩阵键盘的工作原理. 电路原理图如图7-2所示. 从图7-2可以看出,8条I和O线分为4行和4列. 按钮设置在行和列线的交点处,即按钮开关的两端分别连接到行和列. 线上. 行线通过电阻器连接到+ 5V电源. 当没有按键被按下时,行线处于高电平状态. 判断是否有按键的方法分为以下步骤: (1)在向所有列线I和O端口输出低电平后,读取累加器A中行线的电平状态. 没有键,行线仍保持高电平状态. 如果按下一个键,则至少一行行应为低. (2)确认已按下某个键后,找到键代码. 查找键码的方法是依次从一列行输出低电平,然后检查每一行的状态. 如果全部为高电平,则表示关闭键不在该列中;如果不是全部为1,则表示关闭键在该列中. 值得注意的是,在键盘处理程序中,为每个键分配了一个键号,并且可以从从列线IO端口输出的数据和从行IO端口读取的数据获得闭合键. . 密钥号. 矩阵键盘工作模式在MCU应用系统中,非编码键盘由CPU通过键盘处理程序完成. 与CPU相比,键关闭是随机发生的,键盘处理程序必须能够及时捕获关闭的键并找到其键代码.

根据此过程的不同,非编码键盘的工作模式可以分为程序扫描模式和中断扫描模式. 1程序扫描模式通常,在单片机应用系统中,键盘处理只是CPU工作的一部分. 为了发现及时按下了一个键,CPU必须不断调用键盘处理程序来扫描键盘,因此称为程序扫描模式. 图7-3是由8051和矩阵键盘组成的接口电路. 8155扩展的I / O端口用作行线和列线,以形成具有32个键的4×8矩阵键盘. 行线与8l55的PC0-PC3连接,列线与PA端口的8条线连接. 密钥代码如图7-3所示. 键盘的工作过程如下: ⑴确定键盘上是否有按键. 如果PA端口输出00H,则读取PC端口的状态. 如果PC0和PC3均为1,则表示没有按键. 如果不是全部为1,则需要按键. ⑵消除抖动. 当发现按键被按下时,在延迟之后判断键盘的状态. 如果仍然有按键处于按下状态,则可以推断出按键被按下,否则认为是抖动. ⑶查找密钥号和密钥值. 按键编号是键盘上每个按键的编号,例如1、2、3,... 31. 密钥值基于扫描原理,即每个密钥对应的十六进制数. 结合图7-3,键号与键值之间的对应关系如下: ①键号按照加法的方式排列在第0、1、2、3、4、5、6、7列中该行的第一个键号和列号. 第一行号是0、8、16、24,例如10-8,第一行号: +2,列号. ②键值是列值加上行值“ 0”. 该键对应于列行PA0-0,其他对应列的所有“ 1”的值为FE. 行行中的PC0-0,其他均为“ 1”. 高位4位数字未使用,用“ X”表示.

矩阵一致性_矩阵 一致性_4*4矩阵键盘

行值为XE,因此与“ 0”键对应的键值为“ FEXE”,依此类推. ⑷等待释放关闭键. 为避免一次多次询问键,请等待释放关闭键,然后再将键代码发送给A. 键盘处理程序的流程图如图7-4所示. 该程序如下. 假设主程序已将8155初始化为PA端口的基本输出端口,并将PC端口初始化为基本输入端口. 按键KS判断是否有按键,请按JNZ K1. 如果有按键,请按并转到K1 LCALL DELAY如果没有按键,请按调用延迟子程序AJMPKEY返回重新查询K1LCALL DELAY延长延迟并消除按键抖动LCALL DELAY LCALL KS再次检查是否有按键,然后按JNZK2如果有按键,按逐列扫描AJMPKEY错误地读取了按键,返回到K2MOVR2#0FEH被扫描的单词的第一列发送R2 MOVR4#00H首列编号发送R4K3MOVDPTR#PA端口地址发送DPTR MOVAR2 MOVX @DPTRA列扫描字发送8155A端口INC DPTR INC DPTRMOVXA@DPTR读取行扫描值JB ACC. 0L1不按任何键按第0行并转到第一行MOVA#00H用任意键按第0行line向该行的第一个键编号发送A AJMPLK转到键L1 JBACC.1L2按下没有按键的第一行,然后检查第二行MOVA#08H按下带有按键的第一行the该行的第一把钥匙,发送A AJMPLK传送钥匙L2JBACC.2L3如果第2行中没有按键,按转到第3行MOVA#20H按下第2行的键sent发送该行的第一个键号A AJMPLK转到键L3JBACC.3NEXTNo. 3如果线路上没有按键,请更改以检查下一列MOVA#18H按下第三行上的按键: 该行的第一个按键编号为已发送ALKADDA R4形成密钥并发送A PUSHACC密钥K4LCALL DELAY LCALL KS等待密钥释放JZK4未释放,正在等待POPA密钥释放,弹出密钥RET NEXT INCR4修改列号MOVAR2JNBACC.7KEY8在列中返回键RL A不扫描单词向左移动MOVR2A将扫描的单词另存为R2 AJMP K3KSMOVDPTR#PA将端口地址保存到DPTRMOVA#00HFull扫描字到A MOVX @DPTRA完全扫描字PA端口INCDPTR指向C端口INCDPTR MOVC A @DPTR读取PC端口状态CPLA逻辑正,高电平表示有一个按键可以按下ANLA#0FH 屏蔽高4位RETDELAYMOVR7#0FFHLP0MOVR6#0FFHLPNOP DJNZR6LP DJNZR7LP0delay时间子程序RET在程序中,KS是查询键是否为子程序. 被按下. DELAY是延迟子例程.

2 rupt中断扫描方法. 采用扫描方式. 无论是否按下该键,都必须定期扫描CPU. 尤其是在那些按键很少的系统中,重复的空扫描会浪费大量的CPU时间. 为了提高CPU的效率,经常使用中断模式. 所谓的中断模式是当按下一个按钮时发送一个中断请求信号,然后在中断响应后转移到中断服务子程序,然后消除抖动,找到键码并处理按钮. 图7-5给出了中断扫描模式的接口电路图. 矩阵键盘直接连接到8051单片机的P1端口. 其中,P1.7,P1.4通过二极管连接至行线,P1.3,P1.0与列线连接,另一端通过电阻器连接至+ 5V电源. 列线连接至“与”门的输入端子,而“与”门的输出端子连接至8051. 当P1.7和P1.4均为0状态时,如果没有按键关闭,则保持高电平,如果有键关闭,它将变为低电平. 当CPU打开中断时,它将响应该中断并转到中断服务程序. 因为中断模式下的键盘处理过程与程序扫描模式大致相同,所以这里不作详细介绍.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-307701-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...