51汇编程序

[复制链接]
2360|17
 楼主| renyaq 发表于 2012-10-27 19:28 | 显示全部楼层 |阅读模式
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
 楼主| renyaq 发表于 2012-10-27 19:28 | 显示全部楼层
目的是使用数码管显示0到9个数字(每1秒变动一次),但是不知道为什么总是显示的8
栩栩如生 发表于 2012-10-27 19:33 | 显示全部楼层
PLAY1:  MOVC A,@A+DPTR
                MOV P0,A
                LCALL DL1S
                ; LCALL DL1S
                INC R0
                MOV A,R0
                DJNZ R4,PLAY1
                AJMP REINPUT”
这个子程序有问题
supernan 发表于 2012-10-27 19:34 | 显示全部楼层
debug模式下怎么样呢?
 楼主| renyaq 发表于 2012-10-27 19:37 | 显示全部楼层
在debug模式下 明明看到P0口数据是不断变化的
可是在数码管总是显示的是8这个数字
houcs 发表于 2012-10-27 19:38 | 显示全部楼层
DJNZ R4,PLAY1这句明显不对,非要把全部断码送到P0口才去操作位码?
 楼主| renyaq 发表于 2012-10-27 19:39 | 显示全部楼层
R4的作用是控制循环的啊
刚看了下,发现时DL1S延迟不对。
liuzaiy 发表于 2012-10-27 19:40 | 显示全部楼层
不到1s而是很短的延迟人眼看到的就是8
yinxiangh 发表于 2012-10-27 19:42 | 显示全部楼层
你的延时还不到1ms
延时时间长点
 楼主| renyaq 发表于 2012-10-27 19:44 | 显示全部楼层
怎么改啊?
kangzj 发表于 2012-10-27 19:45 | 显示全部楼层
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
子程序这样改看一下可不可以
chenjunt 发表于 2012-10-27 19:47 | 显示全部楼层
"
DL05S:  MOV R3,#60H
DL05S1: DJNZ R3,DL05S1
RET
"这个子程序不对,单片机指令周期1微秒,循环六十次,不到0.5毫秒...
P0口数值一直跳变,但太快(小于0.05秒),人眼无法识别...
 楼主| renyaq 发表于 2012-10-27 19:49 | 显示全部楼层
"
DL05S:  MOV R3,#60H
DL05S1: DJNZ R3,DL05S1
RET
"这个子程序不对,单片机指令周期1微秒,循环六十次,不到0.5毫秒...
P0口数值一直跳变,但太快(小于0.05秒),人眼无法识别... ...
chenjunt 发表于 2012-10-27 19:47
嗯,你说的有道理,谢谢了
 楼主| renyaq 发表于 2012-10-27 19:49 | 显示全部楼层
先结贴了
superman2012 发表于 2012-10-27 22:48 | 显示全部楼层
有程序指令问题,可能有些命令没有执行吧
lasbell2012 发表于 2012-10-28 20:47 | 显示全部楼层
没做过汇编 啊
leadman 发表于 2012-10-28 22:42 | 显示全部楼层
可能数码管需要显示的读数变化太快,人眼辨别不出,可以加延时子程序,看看
xiaoqiu123 发表于 2012-10-30 00:32 | 显示全部楼层
没用过汇编啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

700

主题

10138

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部