一个小问题,
这个程序有点问题,可以帮一下忙看看吗,谢谢不要笑我呀, 我是菜鸟呀,刚学51单片机,碰到了困难,身边现在没有朋友, 所以就来找大家了,
ORG 00H ;起始地址
START: MOV DPTR,#TABLE ;把TABLE表的地址存入数据指针 //将16位的常数存入数据指针
LOOP: CLR A ;清除ACC使A中的值为0
MOVC A,@A+DPTR ;到数据指针所指的地址取码 累加器的值再加数据指针寄存器的值为其所指定的地址
;将该地址的
CJNE A,#01, LOOP1 ;取出的码是否为01H?不是则跳到LOOP1
JMP START
LOOP1: MOV P1, A ;将A输出至P1
MOV R3,#20 ;延时0.2秒
CALL DELAY
INC DPTR ;数据指针加1,取下一个码
JMP LOOP
DELAY: MOV R4,#20 ;10毫秒 延时子程序
D1: MOV R5,#248
DJNZ R5,$ ;DJNZ Rn REL将寄存器的内减1,不等天刚跳至后面的REL所指的相地址
DJNZ R4,D1
DJNZ R3,DELAY
RET
TABLE: DB 0FEH,0FDH,0FBH,0F7H ;左移
DB 0EFH,0DFH,0BFH,7FH
DB 0FEH,0FDH,0FBH,0F7H ;左移
DB 0EFH,0DFH,0BFH,7FH
DB 7FH,0BFH,0DFH,0EFH ;右移
DB 0F7H,0FBH,0FDH,0FEH
DB 7FH,0BFH,0DFH,0EFH ;右移
DB 0F7H,0FBH,0FDH,0FEH
DB 00H,0FFH,00H,0FFH ;闪烁两次
DB 01H ;结束码
END
发表时间:2003年4月19日22:04:11