【求助】看看这个串行口小程序


看看如下程序:运行没反应啊
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
D2JNZ R6,D2
DJNZ R7,D1
RET
end


7.JPG



[ 本帖最后由 clleady 于 2008-7-26 19:01 编辑 ]

我也来说两句 查看全部回复

最新回复

  • budhy (2008-7-26 21:28:59)

    QUOTE:

    原帖由 clleady 于 2008-7-26 19:00 发表
    看看如下程序:运行没反应啊
    ...
    你的程序应该没有问题,可能是因为 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)

    补充一下,刚才我只关看你的程序,明日又注意到你的线路,依我看你用 4049 不合适,这个 CMOS 芯片点不亮 LED的。
  • clleady (2008-7-28 16:26:28)

    那用什么?74LS164可以嘛
  • budhy (2008-7-28 16:41:40)

    QUOTE:

    原帖由 clleady 于 2008-7-28 16:26 发表
    那用什么?74LS164可以嘛
    可以的。不过要注意,LED 阳极接 +5V, 阴极串电阻 (220 Ohm)接 74LS164。