找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3320|回复: 4
打印 上一主题 下一主题
收起左侧

谁能帮忙看看这个汇编代码有什么问题

[复制链接]
跳转到指定楼层
楼主
100黑币

      ORG 0000H
                  
                  
                  
START:MOV R3,#08H
      MOV 08H,#0H
          MOV 09H,#0H
          MOV 0AH,#0H
          MOV 0BH,#0H
          ;MOV 08H,#3FH
          ;MOV 09H,#3FH
          ;MOV 0AH,#3FH
          ;MOV 0BH,#3FH
          
          
          
TEST: MOV P3,#0F0H   ;P3.0~P3.3输出0,P3.4~P3.7输出1,作为输入位
          MOV A,P3       ;读键盘,检测有无按键按下
          ANL A,#0F0H    ;屏蔽P3.0~3.3,检测P3.4~P3.7是否全为一
          CJNE A ,#0F0H,HAVE ;P3.4~P3.7不全为1,有键按下
          LJMP DIS      ;P3.4~P3.7全为1,无键按下,转显示
HAVE: MOV A,#0FEH    ;有键按下,逐行扫描键盘,置扫描初值
NEXT: MOV B,A        ;扫描码暂存与B
      MOV P3,A       ;输出扫描码
READ: MOV A,P3       ;读键盘
      ANL A,#0F0H    ;屏蔽P3.0~P3.3,检测P3.4~P3.7是否全为1
          CJNE A,#0F0H,YES   ;P3.4~P3.7不全为一,该行有键按下
          MOV A,B            ;被扫描行无键按下,准备查下一行
          RL A                ;置下一行扫描码
          CJNE A,#0EFH,NEXT  ;未扫描到最后一行,则循环
YES:  ACALL DAY          ;延时,去抖动
AREAD:MOV A,P3           ;再读键盘
      ANL A,#0F0H        ;屏蔽P3.0~P3.3,保留P3.4~P3.7
          MOV R2,A           ;暂存列码
          MOV A,B            
          ANL A,#0FH          ;取行扫描码
          ORL A,R2           ;行码,列码合并为键编码
YES1: MOV B,A    ;键编码存于B
      CJNE R3,#0CH,SAM38   ;转键分析处理程序
          MOV R3,#08H
          MOV 08H,#0H
          MOV 09H,#0H
          MOV 0AH,#0H
          MOV 0BH,#0H
      LJMP SAM38          ;转键分析处理程序
          
          
DAY:  MOV R6,#0AH        ;外循环10次              6MHz晶振
DL2:  MOV R7,#7DH        ;内循环7DH次
DL1:  NOP
      NOP                ;空操作指令
          DJNZ R6,DL1
          DJNZ R7,DL2
          RET
          
          
          
SAM38:MOV DPTR,#TAB2    ;置键码表首地址
      MOV A,#0          ;表的起始位的偏移量为0
NEXT1:PUSH ACC         ;MOV R3,A
      MOVC A,@A+DPTR                                         
      CJNE A,B,AGAN     ;将B中的值和键码表的值比较
          LJMP SAM39
          
AGAN: POP ACC           ;不相等,则比较下一个
      INC A             ;序号加1
          CJNE A,#10H,NEXT1
          PUSH ACC
          LJMP SAM39
          
SAM39:MOV DPTR,#TAB1
      POP ACC
          MOVC A,@A+DPTR
          ;MOV DPTR,#0H
          ;MOV @R3+DPTR,A
          CJNE R3,#0CH,SAM40
          MOV R3,#08H
          PUSH ACC
          MOV A,R3
          MOV R0,A
          POP ACC
          ;MOV R0,R3
          INC R3
          MOV @R0,A
          MOV A,#0H
          MOV 09H,A
          MOV 0AH,A
          MOV 0BH,A
          LJMP DIS
          
SAM40:;MOV R0,R3
      PUSH ACC
          MOV A,R3
          MOV R0,A
          POP ACC
          MOV @R0,A
          INC R3
          LJMP DIS
          
          
DIS:  MOV DPTR,#08H     
          MOV R0,#0             ;R0存放字形表偏移位
          MOV R1,#01H            ;R1存放数码表位选代码
DISP: MOV A,R0
      MOVC A,@A+DPTR     ;查字形码表
          MOV P2,#0H               ;清显示
          ;ACALL DAY   
          MOV P1,A              ;送至P1口输出
          ;ACALL DAY   
          MOV A,R1
          MOV P2,A              ;输出位选码
          ACALL DAY              ;延时
          ;MOV A,R1
          INC R0                ;指向下一位字形
          RL A                  ;指向下一位
          MOV R1,A
          CJNE R1,#10H,DISP     ;四个数码管是否显示完毕
          LJMP TEST
          
          

          
          
TAB1:  DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H   ;"0----15"的字形码
TAB2:  DB 0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH,0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H
          END
                  
                  
                  
                  

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:130196 发表于 2016-10-16 11:10 | 只看该作者
编译没有错误,有三个warning
回复

使用道具 举报

板凳
ID:123289 发表于 2016-10-16 12:56 | 只看该作者
出了什么问题先说出来。
这样可以节省愿意帮助你的人的时间。你说明是不是?
回复

使用道具 举报

地板
ID:130196 发表于 2016-10-16 13:24 | 只看该作者
yzwzfyz 发表于 2016-10-16 12:56
出了什么问题先说出来。
这样可以节省愿意帮助你的人的时间。你说明是不是?

就是出不来效果,数码管显示没问题,我想把数据存在08H,09H,0AH,0BH地址里,然后调用送到数码管显示,但是显示的不对,编译没有错误,没有警告
回复

使用道具 举报

5#
ID:123289 发表于 2016-10-17 09:05 | 只看该作者
是数码管不显示,还是显示数字不正确?
前者:需要关注硬件。
后者:在送出至LED前,要先译码,转换一下数据,使数据符合LED的8个显示段。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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