什么是SBUF
MCS-51串行口有兩個在物理上獨立的串行數據緩沖寄存器SBUF, 這兩個緩沖寄存器共用一個地址99H,(它們都是字節尋址的寄存器,字節地址均為99H。)這個重疊的地址靠讀/寫指令加以區別.
本文引用地址:http://www.104case.com/article/201611/315565.htm區分:串行發送時,CPU向SBUF寫入數據,此時99H表示發送SBUF;串行接收時,CPU從SBUF讀出數據,此時99H表示接收SBUF。
其中:發送緩沖寄存器SBUF只能寫,不能讀;接收緩沖寄存器SBUF只能讀,不能寫.
即:若要通過串口發送數據,只需要往sbuf里寫數據,發送完畢后會引起串口中斷。
發送指令:MOV SBUF,A;CPU把累加器A中的內容寫入發送的SBUF(99H),再由TXD引腳一位一位地向外發送,
即:若接收數據,只需要在串口中斷標志位置位后(通過中斷方式或查詢方式),就可讀取sbuf中的內容了。
接收指令:MOV A, SBUF ;接收端RXD一位一位地接收數據,直到收到一個完整的字符數據后,則通知CPU,再通過這條指令CPU從SBUF(99H)中讀出數據,并送到累加器中.
評論