完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
ORG 0000H LJMP START ORG 0050H START: MOV DPTR,#TAB MAIN: MOV P2,#0FH M1: MOV A,P2 CJNE A,#0FH,M2 SJMP M1 M2: LCALL DEL ;延时子程序 MOV A,P2 CJNE A,#0FH,M3 SJMP M1 ;去抖动 M3: LCALL KEY MOVC A,@A+DPTR ;查表取出键码 MOV P0,A CLR P1.3 ;显示 LCALL DEL SJMP MAIN ;----------计算键值子程序------------ ;-----首先计算行键值----------- KEY: JB P2.0,K4 ;判断行线P2.0上按键有无按下 MOV R0,#0 ;P2.0已按下 SJMP ZERO ;跳转至计算列键值 K4: JB P2.1,K8 ;判断行线P2.1上按键有无按下 MOV R0,#4 ;P2.1已按下 SJMP ZERO K8: JB P2.2,KC ;判断行线P2.2上按键有无按下 MOV R0,#8 ;P2.2已按下 SJMP ZERO KC: MOV R0,#0CH ;----计算列键值------------- ZERO: MOV P2,#0F0H JB P2.4,ONE ;判断行线P2.4上按键有无按下 MOV R1,#0 ;P2.4已按下 SJMP WAIT ;跳转至等待按键释放 ONE: JB P2.5,TWO ;判断行线P2.5上按键有无按下 MOV R1,#1 ;P2.5已按下 SJMP WAIT TWO: JB P2.6,THR ;判断行线P2.6上按键有无按下 MOV R1,#2 ;P2.6已按下 SJMP WAIT THR: MOV R1,#3 ;P2.7已按下 ;----等待按键释放------- WAIT: MOV P2,#0F0H ;等待按键释放 MOV A,P2 CJNE A,#0F0H,WAIT MOV A,R0 ADD A,R1 ;计算出键值 RET ;----延时子程序------- DEL: MOV R6,#40 D1: MOV R7,#248 DJNZ R7,$ DJNZ R6,D1 RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H
DB 88H,83H,0C6H,0A1H,86H,8EH END |
|
相关推荐
1 个讨论
|
|
7 浏览 0 评论
26 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
13 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
644 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1000 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11770 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 14:15 , Processed in 0.350832 second(s), Total 36, Slave 28 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号