3801|1

165

帖子

2

TA的资源

纯净的硅(高级)

楼主
 

4*4矩阵键盘(汇编) [复制链接]

ORG     0000H
             AJMP    MAIN
             ORG     0030H
MAIN:    MOV     P2,#0F0H          ;给列送高电平
             LCALL   Delay             ;延时,使电路稳定
             MOV     A,P2              ;取P2口的值
             ANL     A,#0F0H           ;屏蔽行线的影响
             CJNE    A,#0F0H,l         ;如果有键按下,就跳转到l
             AJMP    MAIN      
l:       LCALL   Delay             ;延时去抖
             MOV     A,P2              ;重新取值
             JB      ACC.4,l1          ;P2.4这一列有键按下?没有则跳转至l1
             MOV     R3,#00H           ;如果有则将值0存入R3
             AJMP    Q1                ;跳到行判断程序
l1:      JB      ACC.5,l2
             MOV     R3,#01H
             AJMP    Q1
l2:      JB      ACC.6,l3
             MOV     R3,#02H
             AJMP    Q1
l3:      JB      ACC.7,MAIN
             MOV     R3,#03H
             AJMP    Q1
Q1:      MOV     P2,#0FH           ;给行送高电平
             LCALL   Delay             ;延时,稳定电路
             MOV     A,P2              ;取值
             ANL     A,#0FH            ;屏蔽高四位
             JB      ACC.0,Q2          ;判断是不是第0行,不是则转
             MOV     R4,#00H           ;如果是,则将0送给R4
             AJMP    JIA               ;调用加法程序,取得键盘的值
Q2:      JB      ACC.1,Q3
             MOV     R4,#04H
             AJMP    JIA
Q3:      JB      ACC.2,Q4
             MOV     R4,#08H
             AJMP    JIA
Q4:      JB      ACC.3, MAIN
             MOV     R4,#0CH
             AJMP    JIA
JIA:     MOV     A,R3              ;行号加上列号就是该键的值
             ADD     A,R4
             DA      A                 ;十六进制调整为十进制
             MOV     P1,A              ;调整后送给数码管显示(静态显示)
             AJMP    MAIN
Delay:   MOV     R6,#20H  
Q6:      MOV     R5,#0BBH
Q5:      DJNZ    R5,Q5
             DJNZ    R6,Q6
             RET
             END
此帖出自单片机论坛

最新回复

顶一下,看看 学习学习啊!  详情 回复 发表于 2009-7-2 10:03
点赞 关注
 

回复
举报

116

帖子

0

TA的资源

纯净的硅(中级)

沙发
 
顶一下,看看 学习学习啊!
此帖出自单片机论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表