0
我正在使用UART和中斷研究8051中的串行通信。今天,我偶然發現這段代碼中,作者說他不斷transfering數據來P0口的方式轉移正在發生,我認爲是voilating串行通信的規則在8051串行通信8051
org 00h
ljmp main
org 23h
ljmp serial_ISR
org 30h
main:
mov TMOD,#20h
mov TH1,#-03h
mov SCON,#50h
setb IE.7
setb IE.4
setb TR1
back:
mov A,P0
mov SBUF,A
sjmp back
serial_ISR:
jb TI,trans
mov R0,SBUF
clr RI
RETI
trans:
clr TI
RETI
這是令人困惑的事情來了我在back
標籤上,我們經常在SBUF寄存器上寫這個標籤,這意味着我們不應該在SBUF上寫入規則,直到先前的數據已經發送(TI標誌通知)爲止。
在上面的代碼中SBUF寄存器上的數據是否不斷寫入有效? UART將發送正確的數據?
問候