LJMP MAIN ;跳转至主程序 ORG 0100H MAIN: LCALL KEY_IN MOV P0,A LCALL DEL AJMP MAIN ;====================== ;判断有无按键,无按键直接返回 ;KEY_IN: MOV P1,#0F0H ;置行线为低电平,读列线状态(在高4位,无按键则全为1) ; MOV A,P1 ; ANL A,#0F0H ;屏蔽低四位 ; MOV B,A ; MOV P1,#0FH ;置列线为低电平,读行线状态(在低4位,无按键则全为1) ; MOV A,P1 ; ANL A,#0FH ; ORL A,B ;高四位与低四位重新组合 ; CJNE A,#0FFH,KEYSCAN ;0FFH为末按键 ; RET ;========================================== ;//=============键盘扫描程序============================================== ;KEYSCAN: KEY_IN: MOV R1,#0 ;初始化列地址 MOV R3,#11110111B ;初始化扫描码 LOOP: MOV A,R3 RL A MOV R3,A ;保留扫描码 MOV P1,A ;送扫描码 MOV A,P1 ;读键盘 ORL A,#0F0H ;屏蔽高四位 CJNE A,#0FFH,NEXT31 ;A不等于FFH,说明该列有按键动作 INC R1 ;列地址加1,准备扫描下一列 CJNE R1,#4,LOOP ;列地址不等于4,扫描下一列 SJMP EXIT ;没有按键,退出 ;//=============按键判断对应位等于零,说明该行有按键按下================== NEXT31: JB ACC.0,NEXT32 MOV R2,#0 ;第0行有按键 SJMP NEXT5 NEXT32: JB ACC.1,NEXT33 MOV R2,#1 ;第1行有按键 SJMP NEXT5 NEXT33: JB ACC.2,NEXT34 MOV R2,#2 ;第2行有按键 SJMP NEXT5 NEXT34: MOV R2,#3 ;第3行有按键 NEXT5: ;计算按键地址 MOV A,R1 RL A RL A ;列地址乘4(每列对应4行) ADD A,R2 ;加行地址 MOV DPTR,#KEYTAB MOVC A,@A+DPTR EXIT: ; MOV P1,#0FFH ;置键盘接口高电平 RET ;延时子程序,1s延时 DEL: MOV R7,#10 DEL1: MOV R6,#200 DEL2: MOV R5,#248 HERE: DJNZ R5,HERE DJNZ R6,DEL2 DJNZ R7,DEL1 RET ;//=============按键名称表================================================ KEYTAB: DB 3fH ;扫描码0 ***************************************** DB 06H ;扫描码1 ** DB 5bH ;扫描码2 I/O口 P1.0 P1.1 P1.2 P1.3 ** DB 4fH ;扫描码3 ** DB 66H ;扫描码4 P1.4 0 1 2 3 ** DB 6dH ;扫描码5 ** DB 7dH ;扫描码6 P1.5 4 5 6 7 ** DB 07H ;扫描码7 ** DB 7fH ;扫描码8 P1.6 8 9 A B ** DB 6fH ;扫描码9 ** DB 77H ;扫描码A P1.7 C D E F ** DB 7cH ;扫描码B ** DB 39H ;扫描码C ***************************************** DB 5eH ;扫描码D DB 79H ;扫描码E DB 71H ;扫描码F DB 00H DB 00H END
上一篇:用在摩托车上的遥控时钟
下一篇:基于单片机的旋转led(初级版)
推荐阅读最新更新时间:2024-03-16 14:24
设计资源 培训 开发板 精华推荐
- 调查 | 电机驱动的那些坎儿,我们帮你过!
- 直播已结束|TI 嵌入式直播周带您直击工业应用
- 免费申请评测:欧时电子(RS Components)树莓派3来袭,待你玩耍带你飞
- 直播已结束|TI C2000 Piccolo 单芯片——实现双轴伺服电机和马达控制
- 直播已结束【解锁 TI Sitara AM2x MCU 在电机驱动中的新可能】
- 有奖直播:ST60 非接触式连接器及应用探索
- Littelfuse第2期 | 符合AEC-Q200 车规的保险丝/熔断器
- 有奖直播:如何使用英飞凌IGBT7设计高性能伺服驱动
- MPS 送福利 | 商城上线送单,送京东卡,8000元好礼等你拿!
- 只为关心你——Maxim 智能可穿戴 IC 解决方案 白皮书免费下载