新聞中心

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

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

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

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

        本文引用地址:http://www.104case.com/article/201612/324164.htm

        2. 計(jì)算T1的初值,載入TH1、TL1

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

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

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


        在第4步初始化當(dāng)中:
        REN=-1;
        SM0=0;
        SM1=1;

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

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

        ES是中斷允許位。如果你ES=0的話

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


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

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

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

        REN:允許接收位。

        REN用于控制數(shù)據(jù)接收的允許和禁止,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禁止)

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

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


        最后來(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)控制單片機(jī)串行口的使能。當(dāng)ES = 0時(shí),不允許串口中斷,當(dāng)ES = 1時(shí),則允許串口產(chǎn)生中斷。

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



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

        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 文水县| 嘉善县| 望都县| 蓬安县| 鄢陵县| 望奎县| 金华市| 榆中县| 民丰县| 泾源县| 博客| 潞城市| 普兰店市| 五常市| 南乐县| 庆元县| 如东县| 麻阳| 凤山县| 正阳县| 怀安县| 兴文县| 沾化县| 康保县| 禹州市| 大港区| 云阳县| 娱乐| 柞水县| 长泰县| 都安| 天峨县| 扎囊县| 饶阳县| 罗源县| 连江县| 新安县| 广安市| 正安县| 宾阳县| 揭东县|