单片机按键实验报告 篇一:单片机按键扫描实验报告 键盘扫描 一.实验目的 (1)掌握矩阵键盘接口电路和键盘扫描编程方法。 (2)掌握按键值处理与显示电路设计。 二.实验任务 (1)设计 4*4 键盘,编写各个键的特征码和对应的键值(0~F); (2)编程扫描按键,将按键对应的数字值使用数码管显示出来。 三.实验电路及连线方法 1.采纳动态显示 连线方法:电路由 2 片 74LS573,1 个六字一体的共阴数码管组成。由 U15 输出段选码,U16 做位选码,与单片机的采纳 I/O 口连接方式,短路片 J22 连接 P2.0,J23 连接 P2.3,做输出信号锁存。 (实际电路连接是 d7-d6-d5-d4-d3-d2-d1-d0?h-c-d-e-g-b-a-f)。PW12 是电源端。 2.键盘电路 连线方法:电路由 16 个按键组成,用 P1 口扩展 4×4 行列式键盘。 J20 是键盘连接端,连接到 P1 口。J21 是行列键盘、独立键盘选择端,当 J21 的短路片连接 2-3 脚时,构成 4×4 行列式键盘;当 J21 的短路片连接 2-1 脚时,可形成 3×4 行列式键盘,4 个独立式 按 键 S4 、 S8 、 S12 、 S16 , 这 4 个 独 立 按 键 分 别 连 接P1.4~P1.7;其他 12 个键 3×4 行列式键盘。 PW15 是电源端。 四.编程思路 1.采纳反转法识别按键的闭合。 2.采纳动态显示将键值显示出来。 五.算法流程图 六.资源分配 1.用 P1 口进行查找按键 2.用 R3 做键值指针 3.用 R1 做动态显示为选码指针。 4.R5 为延时指针。 七.程序设计 KPIN: ORG MOV MOV ANL MOV 0000H P1,#0F0H A,P1 A,#0F0H B,A MOVP1,#0FH MOVA,P1 ANLA,#0FH ORLA,B CJNE A,#0FFH,KPIN1 AJMP EXIT KPIN1: MOVB,A MOVDPTR,#TABKP MOVR3,#0 KPIN2: MOVA,R3 MOVC A,@A+DPTR CJNE A,B,KPIN3 MOVA,R3 LOOP: MOVR1,#0FEH;键盘动态显示 LOOP1: MOVA,R3 ANLA,#0FH MOV DPTR,#TAB MOVC A,@A+DPTR CLRP2.0 CLRP2.1 MOVP0,A SETB P2.0 NOP CLRP2.0 LOOP2: MOVA,R1;位选码 MOVP0,A SETB P2.1 MOVR5,#250 LOOP3: DJNZ R5,LOOP3 CLRP2.1 SJMP LOOP KPIN3: INCR3 CJNE A,#0FFH,KPIN2 EXIT: RET TABKP: DB0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBH DB 0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,67H,0FFH TAB: DB77H,44H,3EH,6EH,4DH,6BH,7BH,46H,7FH,6FH,5FH DB 79H,33H,7CH,3BH,1BH END 八.调试出现的问题...