80C51單片機串行口寄存器結構
80C51單片機串行口是由發(fā)送緩沖寄存器SBUF、發(fā)送控制器、發(fā)送控制門、接收緩沖寄存器SBUF、接收控制寄存器、移位寄存器和中斷等部分組成。1.SBUF
在邏輯上,SBUF只有一個,既表示發(fā)送寄存器,又表示接收寄存器。具有同一個單元地址99H。在物理上,SBUF有兩個,一個是發(fā)送寄存器,另一個是接收寄存器。在邏輯上,SBUF只有一個,既表示發(fā)送寄存器,又表示接收寄存器。具有同一個單元地址99H。在物理上,SBUF有兩個,一個是發(fā)送寄存器,另一個是接收寄存器。
2.控制寄存器
與串行通信有關的控制寄存器共有三個。
(1)串行控制寄存器SCON
SCON是80C51的一個可位尋址的專用寄存器,用于串行數據通信的控制。單元地址98H,位地址9FH-98H。寄存器及位地址表示如下:
位址址<?XML:NAMESPACE PREFIX = O /> | 9F | 9E | 9D | 9C | 9B | 9A | 99 | 98 |
位符號 | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
①SM0 SM1--- 串行口工作方式選擇位
串口4種工作方式不同之處在于其通信協(xié)議不同,即幀格式與波特率的不同。4種工作方式與其對應的幀格式與波特率如下:
其中,SMOD為電源控制寄存器PCON 的最高位,f為系統(tǒng)主頻,T1溢出率的概念在后文中介紹。
②SM2--- 多機通信控制位
在進行多機通信時,需要用SM2控制從機是準備接收地址還是接收數據。當串行口以方式2或方式3接收時,若SM2=1,則只有當接收到的第九位數據(RB8)為1,才將接收到的前8位地址送入SBUF,并置位RI產生中斷請求;否則,將接收到的8位地址丟棄。而當SM2=0時,則不論第九位數據為0還是為1,都將前8位數據裝入SBUF中,并產生中斷請求。在方式0,1時,SM2必須為0。
③REN--- 允許接收位
REN位用于對串行數據的接收進行控制:
REN=0 禁止接收
REN=1 允許接收
該位由軟件置位或復位。
④TB8 --- 發(fā)送數據的第9位
在方式2和方式3時,TB8是發(fā)送的第9位數據。在多機通信中,以TB8位的狀態(tài)表示主機發(fā)送的是地址還是數據;TB8=0為數據,TB8=1為地址。該位由軟件置位或復位。
⑤RB8--- 接收數據位的第9位數據
在方式2或方式3時,RB8存放接收到的第9位數據,代表著接收的某種特征,故應根據其狀態(tài)對接收數據進行操作。
⑥TI --- 發(fā)送中斷標志
當方式0時,發(fā)送完第8位數據后,該位由硬件置位。在其它方式下,于發(fā)送停止位之前,由硬件置位。因此TI=1,表示幀發(fā)送結束,其狀態(tài)既可供軟件查詢使用,也可請求中斷。TI位由軟件清0。
⑦RI --- 接收中斷標志
當方式0時,接收完第8位數據后,該位由硬件置位。在其它方式下,當接收到停止位時,該位由硬件置位。因此RI=1,表示幀接收結束。其狀態(tài)既可供軟件查詢使用,也可以請求中斷。RI位由軟件清0。
(2)電源控制寄存器PCON
PCON主要是為CHMOS型單片機的電源控制而設置的專用寄存器。單元地址為87H。其內容如下:
在HMOS的單片機中,該寄存器中除最高位之外,其它位都是虛設的。最高位(SMOD)是串行口波特率的倍增位,當SMOD=1時串行口波特率加倍。系統(tǒng)復位時,SMOD=0。PCON寄存器不能進行位尋址,因此表中寫了“位序”而不是“位地址”。
編輯:admin 最后修改時間:2018-06-27