请问高手下面简单的单片机程序有什么问题?谢谢了

来源:百度知道 编辑:UC知道 时间:2024/06/23 05:39:07
ORG 0000H
CLR P3.0
MOV R2,#00H
LOOP:LCALL DELAY
MOV DPTR,#TAB
MOV A,R2
MOVC A,@A+DPTR
MOV P0,A
INC R2
SJMP LOOP
DELAY:MOV R0,#0FFH
DEL: MOV R1,#0FFH
DELA: DJNZ R1,DELA
DJNZ R0,DEL
RET
END
TAB: DW 0C0H,0F9H,0A4H,0B0H,99H,0H92,82H,0F8H,80H,90H,0FFH,0BFH
END
搞了半天原来问题出在END里,人啊,有时真是糊涂得令人难以置信!!

你的程序不合适的地方太多了,第一,一般存储器的0000H-0026H是用来做中断和开始程序入口地址的,R2没有限制条件,而你又用他的值来查表,理论上说需要256个表值,但你只有12个.
一个程序中不能有超出一个的END,只会编译到第一个为止