资源描述:
《单片机4×4矩阵键盘设计方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1、设计原理 (1)如图14.2所示,用单片机的并行口P3连接4×4矩阵键盘,并以单片机的P3.0-P3.3各管脚作输入线,以单片机的P3.4-P3.7各管脚作输出线,在数码管上显示每个按键“0-F”的序号。 (2)键盘中对应按键的序号排列如图14.1所示。 2、参考电路 图14.24×4矩阵式键盘识别电路原理图 3、电路硬件说明 (1)在“单片机系统”区域中,把单片机的P3.0-P3.7端口通过8联拨动拨码开关JP3连接到“4×4行列式键盘”区域中的M1-M4,N1-N4端口上。 (2
2、)在“单片机系统”区域中,把单片机的P0.0-P0.7端口连接到“静态数码显示模块”区域中的任何一个a-h端口上;要求:P0.0对应着a,P0.1对应着b,……,P0.7对应着h。 4、程序设计内容 (1)4×4矩阵键盘识别处理。 (2)每个按键都有它的行值和列值,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。键盘的一端(列线)通过电阻接VCC,而接地是通过程序输出数字“0”实现的。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么?还要
3、消除按键在闭合或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地;另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。 5、程序流程图(如图14.3所示)6、汇编源程序 ;;;;;;;;;;定义单元;;;;;;;;;; COUNTEQU30H ;;;;;;;;;;入口地址;;;;;;;;;; ORG0000H LJMPSTART ORG0003H RETI ORG000BH RETI ORG0013H RETI OR
4、G001BH RETI ORG0023H RETI ORG002BH RETI ;;;;;;;;;;主程序入口;;;;;;;;;; ORG0100H START:LCALLCHUSHIHUA LCALLPANDUAN LCALLXIANSHI LJMPSTART ;;;;;;;;;;初始化程序;;;;;;;;;; CHUSHIHUA:MOVCOUNT,#00H RET ;;;;;;;;;;判断哪个按键按下程序;;;;;;;;;; PANDUAN:MOVP3,#0FFH C
5、LRP3.4 MOVA,P3 ANLA,#0FH XRLA,#0FH JZSW1 LCALLDELAY10MS JZSW1 MOVA,P3 ANLA,#0FH CJNEA,#0EH,K1 MOVCOUNT,#0 LJMPDK K1:CJNEA,#0DH,K2 MOVCOUNT,#4 LJMPDK K2:CJNEA,#0BH,K3 MOVCOUNT,#8 LJMPDK K3:CJNEA,#07H,K4 MOVCOUNT,#12 K4:NOP LJMPDK SW1:
6、MOVP3,#0FFH CLRP3.5 MOVA,P3 ANLA,#0FH XRLA,#0FH JZSW2 LCALLDELAY10MS JZSW2 MOVA,P3 ANLA,#0FH CJNEA,#0EH,K5 MOVCOUNT,#1 LJMPDK K5:CJNEA,#0DH,K6 MOVCOUNT,#5 LJMPDK K6:CJNEA,#0BH,K7 MOVCOUNT,#9 LJMPDK K7:CJNEA,#07H,K8 MOVCOUNT,#13 K8:NOP
7、 LJMPDK SW2:MOVP3,#0FFH CLRP3.6 MOVA,P3 ANLA,#0FH XRLA,#0FH JZSW3 LCALLDELAY10MS JZSW3 MOVA,P3 ANLA,#0FH CJNEA,#0EH,K9 MOVCOUNT,#2 LJMPDK K9:CJNEA,#0DH,KA MOVCOUNT,#6 LJMPDK KA:CJNEA,#0BH,KB MOVCOUNT,#10 LJMPDK KB:CJNEA,#07H,KC MOVCO
8、UNT,#14 KC:NOP LJMPDK SW3:MOVP3,#0FFH CLRP3.7 MOVA,P3 ANLA,#0FH XRLA,#0FH JZSW4 LCALLDELAY10MS JZSW4 MOVA,P3 ANLA,#0FH CJNEA,#0EH,KD MOVCOUNT,#3 LJMPDK KD:CJNEA,#0DH,KE MOVCOUNT,#7 LJMPDK KE:CJNEA