首頁  >  文章  >  控制串列口工作方式的暫存器是什麼

控制串列口工作方式的暫存器是什麼

WBOY
WBOY原創
2022-07-22 10:53:268788瀏覽

控制串列口工作方式的暫存器是SCON,也即串列口控制暫存器;SCON用來控制串列通訊的方式選擇、接收和發送,指示串口的狀態,SCON既可以字節尋址也可以位元尋址,位元組位址為“98H”,位址位元為“98H~9FH”。

控制串列口工作方式的暫存器是什麼

本教學操作環境:windows10系統、DELL G3電腦。

控制序列埠工作方式的暫存器是什麼

控制序列埠工作方式的暫存器是SCON

SCON(Serial Control Register)串行口控制暫存器,用於控制串行通訊的方式選擇、接收和發送,指示串口的狀態。 SCON既可以位元組尋址,也可以位元尋址,其位元組位址為98H,位址位元為98H~9FH。

結構:

控制串列口工作方式的暫存器是什麼

#工作方式(SM0 SM1)

#(1)方式0( SM0 SM1 :0 0):串列口的工作方式0為移位暫存器I/O方式,可外接移位暫存器,一擴充I/O口,也可外接同步I/O裝置。發送操作:執行一條「MOVSBUF,A」指令時,啟動發送操作,由TXD輸出移位脈衝,由RXD串列SBUF中的資料。發送完8位元資料後自動置TI=1.請求中斷。要繼續發送時,TI必須有指令清除。接收操作:REN是串列埠接收允許控制位元。 REN=0時禁止接收;REN=1時允許接收。當軟體將REN置「1」時,即開始從RXD連接埠以fosc/12波特率輸入數據,當接收到8位元數據時,中斷標誌RI置「1」。再次接收資料前,必須用軟體將RI清0。

(2)方式1 ( SM0 SM1 :0 1) :串列口為10位元通用非同步介面。發送或接收一幀資料資訊為10位,包括1位起始位「0」、8位資料位、1位停止位「1」。傳送資料:資料從TXD連接埠輸出,當資料寫入傳送緩衝器SBUF時,就會啟動傳送器傳送。傳送完一幀資料後,置中斷標誌TI=1,申請中斷,通知CPU可以傳送下一個資料了。接收數據:首先使REN=1(允許接收數據),串行口從RXD接收數據,當採樣到1至0跳變時,確認是起始位“0”,就開始接收一幀數據,當接收完一幀資料時,置中斷標誌RI=1,申請中斷,通知CPU從SBUF取走接收到的資料。

(3)方式2 ( SM0 SM1 :1 0) :串列口為11位元非同步通訊介面。傳送或接收一幀資訊包括1位元起始位元「0」、8位元資料位元、1位元可程式位元、1位元停止位元「1」。發送資料:發送前,先根據通訊協定由軟體設定TB8為“奇偶校驗位”或“資料識別位”,然後將要傳送的資料寫入SBUF,即能啟動傳送器。發送過程是由執行任何一條以SBUF為目的暫存器的指令而啟動的,把8位元資料裝入SBUF,同時也把TB8裝到發送移位暫存器的第9位上,然後從TXD(P3.1)連接埠輸出一幀資料。接收資料:先置REN=1,使串列口為允許接收狀態,同時也要將RI清「0」。然後再根據SM2的狀態和所接收到的RB8的狀態決定此串列口在資訊到來後是否置RI=1,併申請中斷,通知CPU接收資料。當SM2=0時,不管RB8為“0”或為“1”,都置RI=1,此串列口將會接收傳送來的訊息。當SM2=1時,且RB8=1,表示在多機通訊情況下,接收的訊息為「位址訊框」, 此時置RI=1,序列埠將接收發送的位址。當SM2=1時,且RB8=0,表示在多機通訊情況下,接收的訊息為“資料訊框”, 但不是發給本從機的,此時RI不置為“1”,因而SBUF中接收的資料幀將會遺失。

(4)方式3 ( SM0 SM1 :1 1) :為波特率可變的11位元非同步通訊方式,除了波特率有所區別之外,其餘方式都與方式2相同。

更多相關知識,請造訪常見問題欄位!

以上是控制串列口工作方式的暫存器是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn