新聞中心

什么是SBUF

作者: 時(shí)間:2016-11-17 來源:網(wǎng)絡(luò) 收藏
SBUF---即串口數(shù)據(jù)緩沖寄存器

MCS-51串行口有兩個(gè)在物理上獨(dú)立的串行數(shù)據(jù)緩沖寄存器SBUF, 這兩個(gè)緩沖寄存器共用一個(gè)地址99H,(它們都是字節(jié)尋址的寄存器,字節(jié)地址均為99H。)這個(gè)重疊的地址靠讀/寫指令加以區(qū)別.

本文引用地址:http://butianyuan.cn/article/201611/315565.htm

區(qū)分:串行發(fā)送時(shí),CPU向SBUF寫入數(shù)據(jù),此時(shí)99H表示發(fā)送SBUF;串行接收時(shí),CPU從SBUF讀出數(shù)據(jù),此時(shí)99H表示接收SBUF。

其中:發(fā)送緩沖寄存器SBUF只能寫,不能讀;接收緩沖寄存器SBUF只能讀,不能寫.

即:若要通過串口發(fā)送數(shù)據(jù),只需要往sbuf里寫數(shù)據(jù),發(fā)送完畢后會(huì)引起串口中斷。
發(fā)送指令:MOV SBUF,A;CPU把累加器A中的內(nèi)容寫入發(fā)送的SBUF(99H),再由TXD引腳一位一位地向外發(fā)送,

即:若接收數(shù)據(jù),只需要在串口中斷標(biāo)志位置位后(通過中斷方式或查詢方式),就可讀取sbuf中的內(nèi)容了。
接收指令:MOV A, SBUF ;接收端RXD一位一位地接收數(shù)據(jù),直到收到一個(gè)完整的字符數(shù)據(jù)后,則通知CPU,再通過這條指令CPU從SBUF(99H)中讀出數(shù)據(jù),并送到累加器中.



評(píng)論


技術(shù)專區(qū)

關(guān)閉