看看如下程序:运行没反应啊
ORG 0
START: MOV SCON,#00H ;置串行口工作方式0
MOV A,#80H ;最高位灯先亮
CLR P1.0 ;关闭并行输出(避象传输过程中,各LED的"暗红"现象)
OUT0: MOV SBUF,A ;开始串行输出
OUT1: JNB TI,OUT1 ;输出完否
CLR TI ;完了,清TI标志,以备下次发送
SETB P1.0 ;打开并行口输出
ACALL DELAY ;延时一段时间
RR A ;循环右移
CLR P1.0 ;关闭并行输出
JMP OUT0 ;循环
DELAY:MOV R7,#250
D1: MOV R6,#250
D2
JNZ R6,D2 DJNZ R7,D1
RET
end
[ 本帖最后由 clleady 于 2008-7-26 19:01 编辑 ]


最新回复
budhy (2008-7-26 21:28:59)
QUOTE:
你的程序应该没有问题,可能是因为 DELAY 时间太短,看不出反应来。把你的程序整顿一些,如下:
CODE:
ORG 0
START:
MOV SCON,#00H ;置串行口工作方式0
MOV A,#80H ;最高位灯先亮
CLR P1.0 ;关闭并行输出(避象传输过程中,各LED的"暗红"现象)
OUT0:
MOV SBUF,A ;开始串行输出
JNB TI,$ ;输出完否
CLR TI ;完了,清TI标志,以备下次发送
SETB P1.0 ;打开并行口输出
ACALL DELAY ;延时一段时间
RR A ;循环右移
CLR P1.0 ;关闭并行输出
JMP OUT0 ;循环
DELAY:
MOV R7,#250
D1:
MOV R6,#250
DJNZ R6,$
DJNZ R7,D1
RET
end
budhy (2008-7-26 21:42:47)
CODE:
ORG 0
MOV SCON,#00H ;置串行口工作方式0
START:
MOV A,#80H ;最高位灯先亮
OUT0:
CLR P1.0 ;关闭并行输出(避象传输过程中,各LED的"暗红"现象)
MOV SBUF,A ;开始串行输出
JNB TI,$ ;输出完否
CLR TI ;完了,清TI标志,以备下次发送
SETB P1.0 ;打开并行口输出
ACALL DELAY ;延时一段时间
RR A ;循环右移
JZ START
JMP OUT0 ;循环
DELAY:
MOV R5,#250
D0:
MOV R7,#250
D1:
MOV R6,#250
DJNZ R6,$
DJNZ R7,D1
DJNZ R5,D0
RET
end
budhy (2008-7-26 22:42:43)
clleady (2008-7-28 16:26:28)
budhy (2008-7-28 16:41:40)
QUOTE:
可以的。不过要注意,LED 阳极接 +5V, 阴极串电阻 (220 Ohm)接 74LS164。