打印

请教一个51汇编程序

[复制链接]
1452|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
daiy5210|  楼主 | 2010-9-15 21:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 daiy5210 于 2010-9-15 21:10 编辑

调试了2天的一个51汇编程序,目的是使用数码管显示0到9个数字(每1秒变动一次),但是不知道为什么总是显示的8 P2口选择要亮的数码管,PO口是数据端口,在debug模式下 明明看到P0口数据是不断变化的
可是在数码管总是显示的是8这个数字,非常不理解,希望得到大家的指教。
代码如下:

ORG 0000H       ;Start address of the program
LJMP START  
START:  MOV R5,#0FEH
        MOV R4,#0AH
MOV R0,#00H
MOV A,R5
MOV P2,A
MOV A,#00H
MOV DPTR,#TAB
PLAY1:  MOVC A,@A+DPTR
MOV P0,A
LCALL DL1S
; LCALL DL1S
INC R0
MOV A,R0
DJNZ R4,PLAY1
AJMP REINPUT
;;;;;;;;;;;;;;Delay Function;;;;;;;;;;;;;

DL1S:   LCALL DL05S
LCALL DL05S
RET
DL05S:  MOV R3,#60H
DL05S1: DJNZ R3,DL05S1
RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
REINPUT: MOV A,#00H
  MOV R4,#0AH
  MOV R0,#00H
  LJMP PLAY1
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
END

相关帖子

沙发
laoliang3064| | 2010-9-15 21:34 | 只看该作者
你这程序,不显示“8”才怪,
“PLAY1:  MOVC A,@A+DPTR
                MOV P0,A
                LCALL DL1S
                ; LCALL DL1S
                INC R0
                MOV A,R0
                DJNZ R4,PLAY1
                AJMP REINPUT”
这个子程序有问题, “DJNZ R4,PLAY1"这句明显不对,非要把全部断码送到P0口才去操作位码?

使用特权

评论回复
板凳
daiy5210|  楼主 | 2010-9-15 21:39 | 只看该作者
谢谢LS指教,不过,,R4的作用是控制循环的啊
刚看了下,发现时DL1S延迟不对。不到1s而是很短的延迟,所以人眼看到的就是8
不过还是谢谢指教了,又发现了个新问题。

使用特权

评论回复
地板
善解人意| | 2010-9-16 18:03 | 只看该作者
MOV DPTR,#TAB
MOV   R0,#0
L_LOOP:
MOV    A,R0
MOVC A,@A+DPTR
MOV P0,A
LCALL DL1S
INC  R0
CJNE   R0,#10,L_LOOP
子程序这样改看一下可不可以

使用特权

评论回复
5
匠人粉丝团| | 2010-9-17 11:08 | 只看该作者
..延时太短

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:把希望寄托在自己的努力上,向前跑

2

主题

25

帖子

0

粉丝