新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機管腳說明(二)

        51單片機管腳說明(二)

        作者: 時間:2012-07-31 來源:網絡 收藏

        2.串行端口的工作方式

        ①方式0

        8位移位寄存器輸入/輸出方式。多用于外接移位寄存器以擴展I/O端口。波特率固定為fosc/12。其中,fosc為時鐘頻率。

        在方式0中,串行端口作為輸出時,只要向串行緩沖器SBUF寫入一字節數據后,串行端口就把此8位數據以等的波特率,從RXD引腳逐位輸出(從低位到高位);此時,TXD輸出頻率為fosc/12的同步移位脈沖。數據發送前,僅管不使用中斷,中斷標志TI還必須清零,8位數據發送完后,TI自動置1。如要再發送,必須用軟件將TI清零。

        串行端口作為輸入時,RXD為數據輸入端,TXD仍為同步信號輸出端,輸出頻率為fosc/12的同步移位脈沖,使外部數據逐位移入RxD。當接收到8位數據(一幀)后,中斷標志RI自動置。如果再接收,必須用軟件先將RI清零。

        串行方式0發送和接收的時序過程見下圖。

        ②方式1

        10位異步通信方式。其中,1個起始位(0),8個數據位(由低位到高位)和1個停止位(1)。波特率由定時器T1的溢出率和SMOD位的狀態確定。

        一條寫SBUF指令就可啟動數據發送過程。在發送移位時鐘(由波特率確定)的同步下,從TxD先送出起始位,然后是8位數據位,最后是停止位。這樣的一幀10位數據發送完后,中斷標志TI置位。

        在允許接收的條件下(REN=1),當RXD出現由1到O的負跳變時,即被當成是串行發送來的一幀數據的起始位,從而啟動一次接收過程。當8位數據接收完,并檢測到高電乎停止位后,即把接收到的8位數據裝入SBUF,置位RI,一幀數據的接收過程就完成了。

        方式1的數據傳送波特率可以編程設置,使用范圍寬,其計算式為:

        波特率=2SMOD/32×(定時器T1的溢出率)

        其中,SMOD是控制寄存器PCON中的一位程控位,其取值有0和l兩種狀態。顯然,當SMOD=0時,波特率=1/32(定時器Tl溢出率),而當SMOD=1時,波特率=1/16(定時器T1溢出率)。所謂定時器的溢出率,就是指定時器一秒鐘內的溢出次數。波特率的算法,以及要求一定波特率時定時器定時初值的求法,后面將詳細討論。 ·

        串行方式1的發送和接收過程的時序見下圖。

        ③方式2,3

        11位異步通信方式。其中,1個起始位(0),8個數據位(由低位到高位),1個附加的第9位和1個停止住(1)。方式2和方式3除波特率不同外,其它性能完全相同。方式2,3的發送、接收時序見下圖。

        由圖可見,方式2和方式3與方式l的操作過程基本相同,主要差別在于方式2,3有第9位數據。

        發送時,發送機的這第9位數據來自該機SCON中的TB8,而接收機將接收到的這第9位數據送入本機SCON中的RB8。這個第9位數據通常用作數據的奇偶檢驗位,或在多機通信中作為地址/數據的特征位。

        方式2和方式3的波特率計算式如下:

        方式2的波特率=2SMOD/64×fosc

        方式3的波特率=2SMOD/32×定時器T1的溢出率

        由此可見,在晶振時鐘頻率一定的條件下,方式2只有兩種波特率,而方式3可通過編程設置成多種波特率,這正是這兩種方式的差別所在。



        關鍵詞: 說明 管腳 單片機

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 绥棱县| 襄樊市| 凤翔县| 合阳县| 甘泉县| 黄平县| 汽车| 阳东县| 嘉峪关市| 虎林市| 西华县| 佛冈县| 德兴市| 宁乡县| 增城市| 济源市| 涟水县| 泰州市| 大兴区| 宁蒗| 琼结县| 兴化市| 贵南县| 亚东县| 马山县| 丹阳市| 岚皋县| 宜黄县| 互助| 清镇市| 报价| 临江市| 波密县| 土默特右旗| 界首市| 咸宁市| 南部县| 台湾省| 扎赉特旗| 阳春市| 岑溪市|