找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4011|回复: 10
收起左侧

用汇编语言键盘的查询扫描程序,并用共阳极数码管显示键号,弄了一天了

[复制链接]
ID:188031 发表于 2017-4-10 13:44 来自手机 | 显示全部楼层 |阅读模式
用汇编语言键盘的查询扫描程序,并用共阳极数码管显示键号,弄了一天了,感觉程序有问题,想着问问大家,大家回我的时候,程序要带解释啊!!谢谢!
回复

使用道具 举报

ID:111634 发表于 2017-4-10 17:30 | 显示全部楼层
本帖最后由 zl2168 于 2017-4-10 17:31 编辑

键盘扫描控制方式
键盘扫描控制方式.jpg


以上摘自张志良编著《80C51单片机实用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9, 用于学习51单片机原理,程序(双解c和汇编)语句条条有注解,便于阅读理解,便于自学。



回复

使用道具 举报

ID:111634 发表于 2017-4-10 17:33 | 显示全部楼层
本帖最后由 zl2168 于 2017-4-10 17:35 编辑

4×4矩阵式键盘
Proteus仿真一下,确认有效。
实例62 4×4矩阵式键盘.rar (44.79 KB, 下载次数: 12)
回复

使用道具 举报

ID:188031 发表于 2017-4-10 18:04 | 显示全部楼层
zl2168 发表于 2017-4-10 17:33
4×4矩阵式键盘
先Proteus仿真一下,确认有效。

       ORG    0000H
       AJMP   KEY2
       ORG    0100H
KEY2:  LCALL  KS
       JNZ    K1
       LCALL  D10ms
       AJMP   KEY2
K1:    LCALL  D10ms
       LCALL  KS
       JNZ    K2
       AJMP   KEY2
K2:    MOV    R2,#0EFH
       MOV    R4,#00H
K3:    MOV    P1,R2
L6:    JB     P1.0,L1
       MOV    A,#00H
       AJMP   LK
L1:    JB     P1.1,L2
       MOV    A,#04H
       AJMP   LK
L2:    JB     P1.2,L3
       MOV    A,#08H
       AJMP   LK
L3:    JB     P1.3,NEXT
       MOV    A,#0CH
LK:    ADD    A,R4
       PUSH   ACC
NEXT:  INC    R4
       MOV    A,R2
       JNB    ACC.7,KEY2
       RL     A
       MOV    R2,A
       AJMP   K3
K4:    LCALL  KS
       JNZ    K4
       POP    ACC
       RET
KS:    MOV    P1,#0FH
       MOV    A,P1
       XRL    A,#0FH
       RET
DISPLAY:MOV   DPTR,#TABLE
        LCALL KEY2
        MOVC  A,@A+DPTR
        MOV   P0,A
                                LJMP  DISPLAY
TABLE:  DB  03FH,006H,05BH,04FH,66H
        DB  6DH,7DH,07H,7FH,6FH
              DB  77H,7CH,039H,05EH,79H
              DB  71H
                                D10ms:         MOV R7,#25
                                D1:     MOV R6,#200
                                DJNZ    R6,$
                                RET
            END
回复

使用道具 举报

ID:188031 发表于 2017-4-10 18:06 | 显示全部楼层
huanx 发表于 2017-4-10 18:04
ORG    0000H
       AJMP   KEY2
       ORG    0100H

哥!你看我的程序,有问题,但是,我不知道怎么改!!还有就是,您能不能把您做的仿真的程序代码,给我看看啊!
回复

使用道具 举报

ID:187614 发表于 2017-4-10 20:10 | 显示全部楼层
十年前做过,自己弄好了对汇编大有好处。努力呀,若出现问题出不来,可让高手指点。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:7485 发表于 2017-4-10 20:40 | 显示全部楼层


你是什么电路?
     ORG    0000H
       AJMP   MAIN
       ORG    0030H
MAIN:
      MOV   A, #0              ;上电显示0
      CALL  DISPLAY
     
LOOP:
       CALL  KEY              ;调用键盘扫描程序
    CALL  DISPLAY        ;调用显示程序
    ......
       JMP  LOOP

显示程序应加上一句:
DISPLAY:MOV   DPTR,#TABLE
         MOV    DPTR,  #TABLE
      ;  LCALL KEY2
        MOVC  A,@A+DPTR
        MOV   P0,A
其余的错的或不适当的自己改一下。尽量的多学习别人的程序,看懂、吃透。                              
        

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:188031 发表于 2017-4-10 22:27 | 显示全部楼层
ahshmj 发表于 2017-4-10 20:40
你是什么电路?
     ORG    0000H
       AJMP   MAIN

[img]就这个电路
回复

使用道具 举报

ID:111634 发表于 2017-4-10 23:07 | 显示全部楼层
本帖最后由 zl2168 于 2017-4-10 23:08 编辑
huanx 发表于 2017-4-10 18:06
哥!你看我的程序,有问题,但是,我不知道怎么改!!还有就是,您能不能把您做的仿真的程序代码,给我看 ...

仿真电路和Hex文件能在高等教育出版社网站免费下载,程序源代码只能到书上看了。到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
回复

使用道具 举报

ID:7485 发表于 2017-4-11 14:03 | 显示全部楼层

就是外设和单片机都是怎么连接的,用的是哪些I/O口?
回复

使用道具 举报

ID:111634 发表于 2017-4-11 22:22 | 显示全部楼层
电路图都没有,也不知道有几个按键,怎么改???
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表