<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 關(guān)于串行口控制寄存器SCON

關(guān)于串行口控制寄存器SCON

作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò ) 收藏
在具體操作串口之前需要對單片機的一些與串口有關(guān)的特殊功能寄存器進(jìn)行初始化設置,主要是設置產(chǎn)生波特率的定時(shí)器1、串行口控制和中斷控制。具體步驟如下:

1. 確定T1的工作方式(編程TMOD寄存器)

本文引用地址:http://dyxdggzs.com/article/201612/324164.htm

2. 計算T1的初值,載入TH1、TL1

3. 啟動(dòng)T1(編程TCON中的TR1位)

4. 確定串行口工作方式(編程SCON寄存器)

5. 串行口工作在中斷方式時(shí),要進(jìn)行中斷設置(編程IE,IP)


在第4步初始化當中:
REN=-1;
SM0=0;
SM1=1;

這三位都是串行口控制寄存器SCON里的,單片機剛上電時(shí)SCON被清零,因為串口方式為0,穿行口為同步移位寄存器的輸入/輸出方式,當執行完REN = 1這條語(yǔ)句后,它便直接開(kāi)始從RXD引腳接收數據,并不管它連接的系統有無(wú)發(fā)送數據這是SM0和SM1還未被操作,可單片機串口寄存器已經(jīng)收到數據,并且已經(jīng)產(chǎn)生了串口中斷。
當運行完SM0=0;SM1=1這兩條指令后,串口方式才被設置為工作方式1,這時(shí)才終止串口接收數據。

修改方法:
先設置串口模式,再允許串口接收,這樣就可以避開(kāi)串口方式0接收數據。
SM0=0;
SM1=1;
REN=1;

ES是中斷允許位。如果你ES=0的話(huà)

TI 和RI為1,都不會(huì )去執行串口中斷函數。


TI是發(fā)送標志位。發(fā)送完成,該位置1,他跟ES沒(méi)關(guān)系。

RI是接收標志位,接收完成,該位置1,也跟 ES沒(méi)直接關(guān)系。

一般來(lái)說(shuō),ES就是當有TI或RI事件發(fā)生時(shí),是否跳出當前所在執行的函數到中斷函數里去處理。

REN:允許接收位。

REN用于控制數據接收的允許和禁止,REN=1時(shí),允許接收,REN=0時(shí),禁止接收。


EA (IE.7):

EA=0時(shí),所有中斷禁止(即不產(chǎn)生中斷);EA=1時(shí),各中斷的產(chǎn)生由個(gè)別的允許位決定


ES (IE.4):

串行口中斷充許(ES=1充許,ES=0禁止)

不是執行REN激活的串口中斷4,而是ES =1打開(kāi)的串口中斷4

REN是和中斷無(wú)關(guān)的參數,只是控制串口接收的數據進(jìn)入到BUFFER中,并不產(chǎn)生數據中斷


最后來(lái)看看位于IE寄存器中的ES位,如表12.4所示。

表12.4 中斷允許寄存器IE


IE
D7D6 D5 D4 D3 D2 D1 D0
EA-ET2ESET1 EX1 ET0 EX0
S是串行口中斷允許位,位于地址為0XA8的中斷允許寄存器IE中的第4位。
ES位用來(lái)控制單片機串行口的使能。當ES = 0時(shí),不允許串口中斷,當ES = 1時(shí),則允許串口產(chǎn)生中斷。

串口的中斷同時(shí)還受到單片機的總中斷控制位EA的控制。當EA=0時(shí),單片機屏蔽所有的中斷請求,只有當EA=1,且ES=1時(shí)才允許產(chǎn)生串口中斷。



關(guān)鍵詞: 串行口控制寄存器SCO

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>