汇编语言写4×4按键矩阵

列扫描P2口赋F0H回读P2口的值给A存储列值2行扫描P2口赋0FH回读P2口的值给A延时去抖再次读P2口赋给A得到行值与列值求或得到键值3查表得到段码,赋给P0口KEY... 列扫描 P2口赋F0H 回读P2口的值给A 存储列值
2 行扫描 P2口赋0FH 回读P2口的值给A 延时去抖 再次读P2口赋给A 得到行值 与列值求或 得到键值
3 查表得到段码,赋给P0口
KEY_TABLE:DB 0EEH,0DEH,0BEH,7EH
DB 0EDH,0DDH,0BDH,7DH
DB 0EBH,0DBH,0BBH,7BH
DB 0E7H,0D7H,0B7H,77H
SHOW_TABLE:DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,0F8H
DB 80H,90H,88H,83H
DB 0C6H,0A1H,86H,8EH
展开
 我来答
呵呵呵1595
推荐于2016-09-07
知道答主
回答量:1
采纳率:0%
帮助的人:2.6万
展开全部
ORG 0000H
MAIN: MOV P2,#0F0H ;4×4矩阵连接P2
MOV A,P2 ;进行列扫描
CJNE A,#0F0H,NEXT1 ;判断是否有按键按下
AJMP MAIN
NEXT1: MOV R0,A ;列值赋给A
MOV P2,#0FH
MOV A,P2 ;进行行扫描
CJNE A,#0FH,NEXT2 ;判断是否有按键按下
AJMP MAIN
NEXT2: ACALL DELY ;延时去抖,再次读P2口赋给A
MOV A,P2
CJNE A,#0FH,NEXT3 ;判断是否有按键按下
AJMP MAIN
NEXT3: ORL A,R0 ;行列值求或得到按键值
MOV R0,A
MOV DPTR,#TABLE1 ;指向键值表
MOV R1,#0
MOV 30H,R0
COOR: MOV A,R1
MOVC A,@A+DPTR
CJNE A,30H,NEXT4 ;按键值与按键表中一一对应
AJMP NEXT5
NEXT4: INC R1 ;计数判断具体按键对应的位置
AJMP COOR
NEXT5: MOV A,R1
MOV DPTR,#TABLE2 ;指向数码管的显示表
MOVC A,@A+DPTR
MOV P0,A ;将值送入P0口
AJMP MAIN
DELY: MOV R7,#50
DLY0: MOV R6,#100 ;延时10ms
DLY1: DJNZ R6,DLY1
DJNZ R7,DLY0
RET
TABLE1: DB 0EEH,0DEH,0BEH,7EH
DB 0EDH,0DDH,0BDH,7DH
DB 0EBH,0DBH,0BBH,7BH
DB 0E7H,0D7H,0B7H,77H
TABLE2: DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,0F8H
DB 80H,90H,88H,83H
DB 0C6H,0A1H,86H,8EH
END
跪求高人瞬间
2012-12-10
知道答主
回答量:55
采纳率:0%
帮助的人:9.1万
展开全部
4*4按键就是扫描式程序。但是要加入延时去抖。
追问
我知道!我要的是程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式