版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MCS-51單片機(jī)的串行接口6.5 MCS - 51單片機(jī)的串行接口單片機(jī)的串行接口 6.5.1 串行通信的基本概念串行通信的基本概念 并行并行 和和 串行串行 并行通信的優(yōu)點(diǎn)是速度快,效率高,確點(diǎn)是不適合遠(yuǎn)距離通信。串行通信剛好相反。單工、半雙工單工、半雙工 和和 全雙工全雙工 單工:信息只能沿著一個(gè)方向傳播 半雙工:信息可以沿一條線雙向傳播,但不能同時(shí)實(shí) 現(xiàn)雙向傳播。 全雙工:使用兩條獨(dú)立的數(shù)據(jù)通道,收發(fā)可同時(shí)進(jìn)行。MCS-51單片機(jī)的串行接口 同步方式和異步方式同步方式和異步方式 (1) 同步方式是將一大批數(shù)據(jù)分成幾個(gè)數(shù)據(jù)塊, 數(shù)據(jù)塊之間用同步字符予以隔開(kāi), 而傳輸?shù)母魑欢M(jìn)制碼之間都沒(méi)
2、有間隔。 其基本特征是發(fā)送與接收時(shí)鐘始終保持嚴(yán)格同步。 (2)異步通信是按幀傳送數(shù)據(jù), 它利用每一幀的起、止信號(hào)來(lái)建立發(fā)送與接收之間的同步,每幀內(nèi)部各位均采用固定的時(shí)間間隔, 但幀與幀之間的時(shí)間間隔是隨機(jī)的。其基本特征是每個(gè)字符必須用起始位和停止位作為字符開(kāi)始和結(jié)束的標(biāo)志, 它是以字符為單位一個(gè)個(gè)地發(fā)送和接收的。 MCS-51單片機(jī)的串行接口6.5.2 與串行口有關(guān)的特殊功能寄存器與串行口有關(guān)的特殊功能寄存器 1. 數(shù)據(jù)緩沖器數(shù)據(jù)緩沖器SBUF 串行口緩沖器SBUF是可直接尋址的特殊功能寄存器, 其內(nèi)部RAM字節(jié)地址是99H。在物理上, 它對(duì)應(yīng)著兩個(gè)獨(dú)立的寄存器, 一個(gè)發(fā)送寄存器, 一個(gè)接收寄
3、存器。發(fā)送時(shí), 就是CPU寫 SBUF的時(shí)候(51 系列單片機(jī)沒(méi)有專門的啟動(dòng)發(fā)送狀態(tài)的指令); 接收時(shí), 就是讀取SBUF的過(guò)程, 接收寄存器是雙緩沖的, 以避免在接收下一幀數(shù)據(jù)之前, CPU未能及時(shí)響應(yīng)接收器的中斷, 沒(méi)有把上一幀數(shù)據(jù)讀走, 而產(chǎn)生兩幀數(shù)據(jù)重疊的問(wèn)題。 MCS-51單片機(jī)的串行接口 2. 串行口控制寄存器串行口控制寄存器SCON SCON用于控制和監(jiān)視串行口的工作狀態(tài), 其各位定義如圖 5.3 所示。相應(yīng)的各位功能介紹如下: SM0、SM1: 用于定義串行口的操作模式, 兩個(gè)選擇位對(duì)應(yīng) 4 種模式,見(jiàn)表6.2。其中fOSC是振蕩器頻率, UART為通用異步接收和發(fā)送器的英文縮
4、寫。 SM2: 多機(jī)通信時(shí)的接收允許標(biāo)志位。 在模式 2 和 3 中, 若SM2 = 1, 且接收到的第 9 位數(shù)據(jù)(RB8)是 0, 則接收中斷標(biāo)志(RI)不會(huì)被激活。在模式1中, 若SM2=1 且沒(méi)有接收到有效的停止位, 則 RI不會(huì)被激活。 在模式 0 中, SM2 必須是 0。 MCS-51單片機(jī)的串行接口表6.2 串行口操作模式選擇 SM0 SM1 模式 功 能 波特率 0 00 11 01 10101同步移位寄存器 8位UART 9位UART 9位UART fOSC/12 可變(T1溢出率) fOSC/64 或fOSC/32 可變(T1溢出率) MCS-51單片機(jī)的串行接口 3.
5、電源控制寄存器電源控制寄存器PCON 特殊功能寄存器PCON中, 只有一位(最高位)SMOD與串行口的工作有關(guān), 該位是串行口波特率系數(shù)的控制位: SMOD=1 時(shí), 波特率加倍, 否則不加倍。 PCON的地址為 87H, 不可位尋址, 因此初始化時(shí)需要字節(jié)傳送。 MCS-51單片機(jī)的串行接口6.5.3 串行口的串行口的 4 種工作模式種工作模式 模式模式 0 同步移位寄存器輸入輸出模式,可外接移位寄存器,以擴(kuò)展I/O口。 (1) 模式模式 0 輸出狀態(tài)。輸出狀態(tài)。 圖 6.8 外接移位寄存器輸出 MCS-51單片機(jī)的串行接口(2) 模式模式 0 輸入狀態(tài)。輸入狀態(tài)。當(dāng)滿足RI=0且REN0時(shí)
6、,就啟動(dòng)一次接收過(guò)程。 圖6.9 外接移位寄存器輸入 MCS-51單片機(jī)的串行接口 2. 模式模式 1 串行口工作于模式 1 時(shí), 為波特率可變的 8 位異步位異步通信接口。數(shù)據(jù)位由 P3.0 (RXD)端接收, 由P3.1(TXD)端發(fā)送。 傳送一幀信息為 10 位: 一位起始位(0), 8 位數(shù)據(jù)位(低位在前)和一位停止位(1)。波特率是可變的, 它取決于定時(shí)器 T1 的溢出速率及SMOD的狀態(tài)。 (1) 模式 1 發(fā)送過(guò)程。 用軟件清除 TI后, CPU執(zhí)行任何一條以 SBUF為目標(biāo)寄存器的指令, 就啟動(dòng)發(fā)送過(guò)程。數(shù)據(jù)由 TXD引腳輸出, 此時(shí)的發(fā)送移位脈沖是由定時(shí)器 /計(jì)數(shù)器 T1 送
7、來(lái)的溢出信號(hào)經(jīng)過(guò) 16 或 32 分頻而取得的。一幀信號(hào)發(fā)送完時(shí), 將置位發(fā)送中斷標(biāo)志TI=1, 向CPU申請(qǐng)中斷, 完成一次發(fā)送過(guò)程。 MCS-51單片機(jī)的串行接口 (2) 模式 1 接收過(guò)程。 用軟件清除 RI后, 當(dāng)允許接收位 REN被置位 1 時(shí), 接收器以選定波特率的 16 倍的速率采樣 RXD引腳上的電平, 即在一個(gè)數(shù)據(jù)位期間有 16 個(gè)檢測(cè)脈沖, 并在第 7、 8、9 個(gè)脈沖期間采樣接收信號(hào), 然后用三中取二的原則確定檢測(cè)值, 以抑制干擾。 并且采樣是在每個(gè)數(shù)據(jù)位的中間, 避免了信號(hào)邊沿的波形失真造成的采樣錯(cuò)誤。當(dāng)檢測(cè)到有從“1”到“0”的負(fù)跳變時(shí), 則啟動(dòng)接收過(guò)程, 在接收移位
8、脈沖的控制下, 接收完一幀信息。 當(dāng)最后一次移位脈沖產(chǎn)生時(shí)能滿足下列兩個(gè)條件: RI=0; 接收到的停止位為 1 或 SM2=0。 MCS-51單片機(jī)的串行接口 則停止位送入RB8,8位數(shù)據(jù)進(jìn)入SBUF,并置RI1,完成一次接收過(guò)程。否則,所接收到的一楨信息將丟失,接收器復(fù)位,并從新開(kāi)始檢測(cè)負(fù)跳變,以便接收下一楨信息。 注意:接收中斷標(biāo)志RI應(yīng)由軟件清除。MCS-51單片機(jī)的串行接口 3. 模式模式 2 和模式和模式 3。 串行口工作于模式 2 和模式 3 時(shí), 被定義為 9 位異步位異步通信接口。 它們的每幀數(shù)據(jù)結(jié)構(gòu)是 11 位的: 最低位是起始位(0), 其后是 8 位數(shù)據(jù)位(低位在先),
9、 第 10 位是用戶定義位(SCON中的 TB8或 RB8), 最后一位是停止位(1)。模式 2 和模式3 工作原理相似, 唯一的差別是模式 2 的波特率是固定的, 即為 f / 32或 fOSC / 64; 而模式 3的波特率是可變的, 與定時(shí)器 T1的溢出率有關(guān)。 MCS-51單片機(jī)的串行接口 (1) 模式 2和模式 3的發(fā)送過(guò)程。 發(fā)送過(guò)程是由執(zhí)行任何一條 SBUF為目的寄存器的指令來(lái)啟動(dòng)的。 由“寫入SBUF”信號(hào)把 8位數(shù)據(jù)裝入 SBUF, 同時(shí)還把 TB8 裝入發(fā)送移位寄存器的第 9 位, 并通知發(fā)送控制器要求進(jìn)行一次發(fā)送。發(fā)送開(kāi)始, 把一個(gè)起始位(0)送到 TXD端。 移位后,
10、數(shù)據(jù)由移位寄存器送到TXD端。再過(guò)一位, 出現(xiàn)第一個(gè)移位脈沖。 第一次移位時(shí), 把一個(gè)停止位“1”由控制器的停止位發(fā)生端送入移位寄存器的第 9 位。 此后, 每次移位時(shí), 把 0 送入第 9 位。因此, 當(dāng) TB8 的內(nèi)容送到移位寄存器的輸出位置時(shí), 其左面一位是停止位“1”, 而再往左的所有位全為“0”。 這種狀態(tài)由零檢測(cè)器檢測(cè)到后, 就通知發(fā)送控制器作最后一次移位, 然后置 TI=1, 請(qǐng)求申請(qǐng)中斷。第 9 位數(shù)據(jù)(TB8)由軟件置位或清零, 可以作為數(shù)據(jù)的奇偶校驗(yàn)位, 也可以作為多機(jī)通信中的地址、數(shù)據(jù)標(biāo)志位。如把 TB8 作為奇偶校驗(yàn)位, 可以在發(fā)送程序中, 在數(shù)據(jù)寫入 SBUF之前,
11、先將數(shù)據(jù)位寫入 TB8。 MCS-51單片機(jī)的串行接口 (2) 模式2和模式3接收過(guò)程。 與模式 1類似, 模式 2和模式 3接收過(guò)程始于在 RXD端檢測(cè)到負(fù)跳變時(shí),為此, CPU以波特率 16倍的采樣速率對(duì) RXD端不斷采樣。一檢測(cè)到負(fù)跳變, 16分頻計(jì)數(shù)器就立刻復(fù)位, 同時(shí)把1FFH寫入輸入移位寄存器。計(jì)數(shù)器的16個(gè)狀態(tài)把一位時(shí)間等分成16份, 在每一位的第7、8、9個(gè)狀態(tài)時(shí), 位檢測(cè)器對(duì) RXD端的值采樣。如果所接收到的起始位無(wú)效(為1),則復(fù)位接收電路, 等待另一個(gè)負(fù)跳變的到來(lái)。 若起始位有效(為 0)則起始位移入移位寄存器, 并開(kāi)始接收這一幀的其余位。 當(dāng)起始位 0 移到最左面時(shí),
12、通知接收控制器進(jìn)行最后一次移位。 把 8 位數(shù)據(jù)裝入接收緩沖器 SBUF, 第 9 位數(shù)據(jù)裝入SCON中的 RB8, 并置中斷標(biāo)志RI=1。 MCS-51單片機(jī)的串行接口 裝入 SBUF和 RB8以及置位 RI的信號(hào)只有在產(chǎn)生最后一個(gè)移位脈沖且同滿足下列兩個(gè)條件, 才會(huì)產(chǎn)生: RI=0; SM2 =0 或接收到的第 9 位數(shù)據(jù)為“1”。 上述兩個(gè)條件中任一個(gè)不滿足, 所接收的數(shù)據(jù)幀就會(huì)丟失, 不再恢復(fù)。 兩者都滿足時(shí), 第 9 位數(shù)據(jù)裝入 TB8, 前 8 位數(shù)據(jù)裝入 SBUF。 請(qǐng)注意: 與模式 1 不同, 模式 2 和 3 中裝入 RB8 的是第 9 位數(shù)據(jù), 而不是停止位。所接收的停止位
13、的值與SBUF、 RB8 和 RI都沒(méi)有關(guān)系, 利用這一特點(diǎn)可用于多機(jī)通信中。 MCS-51單片機(jī)的串行接口6.5.4 多機(jī)通信多機(jī)通信 圖 6.10 多處理機(jī)通信系統(tǒng) MCS-51單片機(jī)的串行接口 6.5.5 波特率波特率 串行口每秒鐘發(fā)送或接收的數(shù)據(jù)位數(shù)稱為波特率。 假設(shè)發(fā)送一位數(shù)據(jù)所需時(shí)間為T, 則波特率為 1/T。 (1) 模式 0 的波特率等于單片機(jī)晶振頻率的 1/12, 即每個(gè)機(jī)器周期接收或發(fā)送一位數(shù)據(jù)。 (2) 模式 2 的波特率與電源控制器PCON的最高位SMOD的寫入值有關(guān): 即SMOD=0, 波特率為(1/64) fOSC; SMOD=1, 波特率為(1/32)fOSC。
14、6422SMOD晶振頻率的波特率模式MCS-51單片機(jī)的串行接口 (3) 模式 1 和模式 3 的波特率除了與SMOD位有關(guān)之外, 還與定時(shí)器 T1 的溢出率有關(guān)。 定時(shí)器 T1 作為波特率發(fā)生器, 常選用定時(shí)方式 2( 8 位重裝載初值方式), 并且禁止 T1 中斷。此時(shí) TH1 從初值計(jì)數(shù)到產(chǎn)生溢出, 它每秒鐘溢出的次數(shù)稱為溢出率。 于是 ) 1256(12322322131THfTOSCSMODSMOD的溢出率的波特率或模式MCS-51單片機(jī)的串行接口表表 6.3 定時(shí)器定時(shí)器T1產(chǎn)生的常用波特率產(chǎn)生的常用波特率 MCS-51單片機(jī)的串行接口 假設(shè)某MCS - 51 單片機(jī)系統(tǒng), 串行口
15、工作于模式 3, 要求傳送波特率為1 200 Hz, 作為波特率發(fā)生器的定時(shí)器T1工作在方式 2 時(shí), 請(qǐng)求出計(jì)數(shù)初值為多少? 設(shè)單片機(jī)的振蕩頻率為6 MHz。 因?yàn)榇锌诠ぷ饔谀J?3 時(shí)的波特率為 ) 1256(123223THfOSCSMOD的波特率模式所以 )2/32(122561SMODOSCfTH波特率MCS-51單片機(jī)的串行接口當(dāng)SMOD=0 時(shí), 初值TH1=256-6106/(1 2001232/1) =243=0F3H當(dāng)SMOD=1 時(shí), 初值TH1=256-6106/(12001232/2) =230=0E6H MCS-51單片機(jī)的串行接口6.6 串行口的應(yīng)用串行口的應(yīng)用
16、 一、一、 串行口的編程串行口的編程 串行口需初始化后, 才能完成數(shù)據(jù)的輸入、輸出。其初始化過(guò)程如下: (1) 按選定串行口的操作模式設(shè)定SCON的SM0、SM1兩位二進(jìn)制編碼。 (2) 對(duì)于操作模式 2 或 3, 應(yīng)根據(jù)需要在 TB8 中寫入待發(fā)送的第 9 位數(shù)據(jù)。 (3) 若選定的操作模式不是模式 0, 還需設(shè)定接收/發(fā)送的波特率。 設(shè)定SMOD的狀態(tài), 以控制波特率是否加倍。 若選定操作模式1或3, 則應(yīng)對(duì)定時(shí)器 T1進(jìn)行初始化以設(shè)定其溢出率。 MCS-51單片機(jī)的串行接口二、二、 串行口的應(yīng)用串行口的應(yīng)用 例例1 用 8051 串行口外接 74LS165 移位寄存器擴(kuò)展8位輸入口, 輸
17、入數(shù)據(jù)由 8 個(gè)開(kāi)關(guān)提供, 另有一個(gè)開(kāi)關(guān) K提供聯(lián)絡(luò)信號(hào)。電路示意如圖6.11 所示。當(dāng)開(kāi)關(guān)K合上時(shí), 表示要求輸入數(shù)據(jù)。輸入 8 位開(kāi)關(guān)量, 處理不同的程序。 圖 6.11 MCS-51單片機(jī)的串行接口程序如下程序如下: START: JB P1.0, $ ; 開(kāi)關(guān)K未合上, 等待 SETB P1.1 ; 165并行輸入數(shù)據(jù) CLR P1.1 ; 開(kāi)始串行移位 MOV SCON, 10H ; 串行口模式 0并啟動(dòng)接收 JNB RI, $ ; 查詢RI CLR RI ; 查詢結(jié)束, 清RI MOV A, SBUF ; 輸入數(shù)據(jù) ; 根據(jù) A處理不同任務(wù) SJMP START ; 準(zhǔn)備下一次接收
18、。 MCS-51單片機(jī)的串行接口例例 2 利用串行口進(jìn)行雙機(jī)通信。利用串行口進(jìn)行雙機(jī)通信。 圖 6.12 雙機(jī)通信系統(tǒng) MCS-51單片機(jī)的串行接口甲機(jī)發(fā)送(采用查詢方式): MOV SCON, 80H ; 設(shè)置工作方式2 MOV PCON, 00; 置SMOD=0, 波特率不加倍 MOV R0, 40H ; 數(shù)據(jù)區(qū)地址指針 MOVR2, 10H ; 數(shù)據(jù)長(zhǎng)度LOOP: MOV A, R0 ; 取發(fā)送數(shù)據(jù) MOV C, P ; 奇偶位送TB8 MOVTB8, C MOV SBUF, A ; 送串口并開(kāi)始發(fā)送數(shù)據(jù) MCS-51單片機(jī)的串行接口WAIT: JBCTI, NEXT ; 檢測(cè)是否發(fā)送結(jié)束并清TI SJMP WAITNEXT: INC R0; 修改發(fā)送數(shù)據(jù)地址指針 DJNZR2, LOOP RET乙機(jī)接收(查詢方式):MOV SCON, 90H; 模作模式2, 并
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 平行進(jìn)口車賣車合同范例
- 外貿(mào)噴壺采購(gòu)合同范例
- 商鋪聯(lián)營(yíng)租賃合同范例
- 工地井蓋采購(gòu)合同模板
- 農(nóng)村家庭財(cái)產(chǎn)買賣合同范例
- 2024年建筑抹灰合同
- 工程設(shè)備買賣合同范例
- 委托入學(xué)合同范例
- 國(guó)家技術(shù)合同模板
- 2024年抖音游戲聯(lián)運(yùn)合同
- 職業(yè)生涯規(guī)劃概述課件
- 九年級(jí)英語(yǔ)《Unit 6 When was it invented》說(shuō)課稿
- 陶行知與鄉(xiāng)村教育智慧樹(shù)知到期末考試答案2024年
- 2024屆高考英語(yǔ)復(fù)習(xí)語(yǔ)法填空課件
- 原地8字舞龍課課件高一上學(xué)期體育與健康人教版
- MOOC 大學(xué)生創(chuàng)新創(chuàng)業(yè)熱點(diǎn)問(wèn)題-福建師范大學(xué) 中國(guó)大學(xué)慕課答案
- 如何有效應(yīng)對(duì)學(xué)習(xí)中的困難和挑戰(zhàn)
- 《說(shuō)話要算數(shù)》示范課件第1課時(shí)
- 醫(yī)院感染管理培訓(xùn)課件消毒劑的選擇與使用
- 平臺(tái)分銷返傭合作協(xié)議
- 中國(guó)城市行政代碼
評(píng)論
0/150
提交評(píng)論