【问题标题】:8051 microcontroller serial port looping using P08051微控制器串口使用P0循环
【发布时间】:2016-03-25 22:07:27
【问题描述】:

列出了8051和外部设备之间串行通信的部分代码,但我不明白子程序X00D6。由于代码将 R7 设置为 FF 然后与 0 比较,程序如何跳出循环?将 P0 设置为 #10 然后设置为 0 有什么作用? P0 与 R7 有什么关系?看来 R7 只是在其余代码中用作寄存器。

    mov r7,#0ffh    ; 00cf   7f ff      
    mov sbuf,a      ; 00d1   f5 99
    acall   X00d6   ; 00d3   11 d6 
    ret             ; 00d5   22        
X00d6:
    mov p0,#10h     ; 00d6   75 80 10   
    mov p0,#0       ; 00d9   75 80 00   
    cjne r7,#0,X00d6    ; 00dc   bf 00 f7   
    ret         ; 00df   22         

【问题讨论】:

    标签: port uart 8051


    【解决方案1】:

    发现 xood6 子程序将一直等待,直到串行传输线上的中断线被触发(在 sbuf 上发送的数据)。中断会将 R7 重置为 0,从而结束循环。

    【讨论】:

      猜你喜欢
      • 2010-10-28
      • 2015-03-11
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 2011-12-22
      • 1970-01-01
      相关资源
      最近更新 更多