一个简单的广告灯程序 请高手指点!

andyliu007   2009-11-26 07:53 楼主
1. 实验任务

利用取表的方法,使端口P1做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。
麻烦帮忙检查下下面代码有什么问题,实在看不出来错在哪里
程序代码:
ORG 0
START: MOV DPTR,#TABLE
LOOP: CLR A
MOVC A,@A+DPTR
CJNE A,#01H,LOOP1
JMP START
LOOP1: MOV P1,A
MOV R3,#20
LCALL DELAY
INC DPTR
JMP LOOP
DELAY: MOV R4,#20
D1: MOV R5,#248
DJNZ R5,$
DJNZ R4,D1
DJNZ R3,DELAY
RET
TABLE: DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH
DB 0FEH,0FDH,0FBH,0F7H
DB 0EFH,0DFH,0BFH,07FH
DB 07FH,0BFH,0DFH,0EFH
DB 0F7H,0FBH,0FDH,0FEH
DB 07FH,0BFH,0DFH,0EFH
DB 0F7H,0FBH,0FDH,0FEH
DB 00H, 0FFH,00H, 0FFH
DB 01H
END

回复评论 (4)

你所说的错误是什么?灯亮的不对还是别的?
用单步调试就可以看出哪一句不符合你的要求,延时程序不会有问题。
点赞  2009-11-26 08:21
你的dptr到最大的时候是否应该回复初值!?
点赞  2009-11-26 10:56
程序没有问题啊,如果不是你要的效果 看看你的TABLE表
点赞  2009-11-26 12:03
昨天不知道什么原因这程序在开发板上面没有实验现象 今天突然好了,很诡异....谢谢大家了   
点赞  2009-11-26 13:05
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复