资源描述:
《4x4矩阵式键盘识别技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、版权归原版权人所有,请勿用于商业用途!4×4矩阵式键盘识别技术1.实验任务如图4.14.2所示,用AT89S51的并行口P1接4×4矩阵键盘,以P1.0-P1.3作输入线,以P1.4-P1.7作输出线;在数码管上显示每个按键的“0-F”序号。对应的按键的序号排列如图4.14.1所示图4.14.12.硬件电路原理图图4.14.23.系统板上硬件连线(1).把“单片机系统“区域中的P3.0-P3.7端口用8芯排线连接到“4X4行列式键盘”区域中的C1-C4R1-R4端口上;(2).把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码
2、显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。更多资料下载:www.icdiy.cn版权归原版权人所有,请勿用于商业用途!4.程序设计内容(1).4×4矩阵键盘识别处理(2).每个按键有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。每个按键的状态同样需变成数字量“0”和“1”,开关的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按
3、键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。5.程序框图图4.14.36.汇编源程序KEYBUFEQU30HORG00HSTART:MOVKEYBUF,#2更多资料下载:www.icdiy.cn版权归原版权人所有,请勿用于商业用途!WAIT:MOVP3,#0FFHCLRP3.4MOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY1LCALLDELY10MSMOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY1MOV
4、A,P3ANLA,#0FHCJNEA,#0EH,NK1MOVKEYBUF,#0LJMPDK1NK1:CJNEA,#0DH,NK2MOVKEYBUF,#1LJMPDK1NK2:CJNEA,#0BH,NK3MOVKEYBUF,#2LJMPDK1NK3:CJNEA,#07H,NK4MOVKEYBUF,#3LJMPDK1NK4:NOPDK1:MOVA,KEYBUFMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,ADK1A:MOVA,P3ANLA,#0FHXRLA,#0FHJNZDK1ANOKEY1:MOVP3,#0FFHCLRP3.5MOVA,P3ANLA,
5、#0FH更多资料下载:www.icdiy.cn版权归原版权人所有,请勿用于商业用途!XRLA,#0FHJZNOKEY2LCALLDELY10MSMOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY2MOVA,P3ANLA,#0FHCJNEA,#0EH,NK5MOVKEYBUF,#4LJMPDK2NK5:CJNEA,#0DH,NK6MOVKEYBUF,#5LJMPDK2NK6:CJNEA,#0BH,NK7MOVKEYBUF,#6LJMPDK2NK7:CJNEA,#07H,NK8MOVKEYBUF,#7LJMPDK2NK8:NOPDK2:MOVA,KEYBUF
6、MOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,ADK2A:MOVA,P3ANLA,#0FHXRLA,#0FHJNZDK2ANOKEY2:MOVP3,#0FFHCLRP3.6MOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY3LCALLDELY10MSMOVA,P3ANLA,#0FHXRLA,#0FH更多资料下载:www.icdiy.cn版权归原版权人所有,请勿用于商业用途!JZNOKEY3MOVA,P3ANLA,#0FHCJNEA,#0EH,NK9MOVKEYBUF,#8LJMPDK3NK9:CJNEA,#0DH,NK10MOVKEY
7、BUF,#9LJMPDK3NK10:CJNEA,#0BH,NK11MOVKEYBUF,#10LJMPDK3NK11:CJNEA,#07H,NK12MOVKEYBUF,#11LJMPDK3NK12:NOPDK3:MOVA,KEYBUFMOVDPTR,#TABLEMOVCA,@A+DPTRMOVP0,ADK3A:MOVA,P3ANLA,#0FHXRLA,#0FHJNZDK3ANOKEY3:MOVP3,#0FFHCLRP3.7MOVA,P3ANLA,#0FHXRLA,#0FHJZNOKEY4LCALLDELY10MSMOVA,P3ANLA,#0FHXRLA