单片机×矩阵式键盘识别技术实验.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
14. 4X4矩阵式键盘识别技术 1.实验任务 如图4.14.2所示,用AT89S51的并行口 P1接4X4矩阵键盘,以 P1.0 - P1.3作 输入线,以P1.4 - P1.7作输岀线;在数码管上显示每个按键的“ 0—F序号。对 应的按键的序号排列如图 4.14.1所示3 .系统板上硬件连线 ■I[22?JKA二:HF3=乂 s 殳養一骨 ■I [2 2 ?J K A 二: HF 3 =乂 s 殳養一骨s 旨畠 npAS m-r.局 gjH 乌 ESHSs mzas s s -is TM 1 II L - ??-+ 1 ■? ° J : 1. 把单片机系统 区域中的P3.0 - P3.7端口用8芯排线连接到 4X4行列式键盘”区域中的C1- C4R— R4端口上; 2. 把 单片机系统”区域中的P0.0/AD0- P0.7/AD7端口用8芯排 线连接到 四路静态数码显示模块”区域中的任一个a- h端口上; 要求:P0.0/AD0对应着a, P0.1/AD1对应着b,……,P0.7/AD7对 应着ho 4. 程序设计内容 1. 1. 4X4矩阵键盘识别处理 2. 每个按键有它的行值和列值,行值和列值的组合就是 识别这个按键的编码。矩阵的行线和列线分别通过两并行接 口和CPUS信。每个按键的状态同样需变成数字量“ 0”和 “ T,开关的一端 列线)通过电阻接Vcc,而接地是通过程 序输出数字“ 0”实现的。键盘处理程序的任务是:确定有无 键按下,判断哪一个键按下,键的功能是什么;还要消除按 键在闭合或断开时的抖动。两个并行口中,一个输出扫描 码,使按键逐行动态接地,另一个并行口输入按键状态,由 行扫描值和回馈信号共同形成键编码而识别按键,通过软件 查表,查出该键的功能。 5 ?程序框图 P3-FFH.P3.2-0有键搜下吗?有键按下吗?延时10ms延时10ms真得有薩按下吗?真得有键按下吗?根据当前状态识别按键根据当前状态识别搜键P3=FFKP3.1?0P3=FFH^3 3=0有键搜下吗?有键搜下吗?延时10ms 延时10ms真得有键按下吗?真得有健按下吗?根据当前状态识别按键根据当前状态识别搜键P3=FFH^3.0=0 P3-FFH.P3.2-0 有键搜下吗? 有键按下吗? 延时10ms 延时10ms 真得有薩按下吗? 真得有键按下吗? 根据当前状态识别按键 根据当前状态识别搜键 P3=FFKP3.1?0 P3=FFH^3 3=0 有键搜下吗? 有键搜下吗? 延时10ms 延时10ms 真得有键按下吗? 真得有健按下吗? 根据当前状态识别按键 根据当前状态识别搜键 图 4.14.3 6. 汇编源程序 KEYBUF EQU 30H ORG OOH START: MOV KEYBUF,#2 WAIT: MOV P3,#0FFH CLR P3.4 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY1 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY1 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK1 MOV KEYBUF,#0 LJMP DK1 NK1: CJNE A,#0DH,NK2 MOV KEYBUF,#1 LJMP DK1 NK2: CJNE A,#0BH,NK3 MOV KEYBUF,#2 LJMP DK1 NK3: CJNE A,#07H,NK4 MOV KEYBUF,#3 LJMP DK1 NK4: NOP DK1: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A DK1A: MOV A,P3 ANL A,#0FH XRL A,#0FH JNZ DK1A NOKEY1: MOV P3,#0FFH CLR P3.5 MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY2 LCALL DELY10MS MOV A,P3 ANL A,#0FH XRL A,#0FH JZ NOKEY2 MOV A,P3 ANL A,#0FH CJNE A,#0EH,NK5 MOV KEYBUF,#4 LJMP DK2 NK5: CJNE A,#0DH,NK6 MOV KEYBUF,#5 LJMP DK2 NK6: CJNE A,#0BH,NK7 MOV KEYBUF,#6 LJMP DK2 NK7: CJNE A,#07H,NK8 MOV KEYBUF,#7 LJMP DK2 NK8: NOP DK2: MOV A,KEYBUF MOV DPTR,#TABLE MOVC A,@A+DPTR MOV P0,A DK2A: MOV A,P

文档评论(0)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档