2016-03-25 27 views
1

为8051和外部设备之间的串行通信列出部分代码,但我不明白子程序X00D6。程序如何突破循环,因为代码将R7设置为FF,然后比较为0?将P0设置为#10然后设置为0会做什么? P0与R7有什么关系?看来R7只是在其余代码中使用了Register。8051微控制器串行端口使用P0循环

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   

回答

1

找出xood6子程序将等到串行发送线(在sbuf上发送数据)上触发中断线。中断会将R7重置为0,从而结束循环。