




已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
2 7串行接口 教學(xué)目的 1 了解單片機串行通信的基本概念與串行通訊程序的編制2 掌握單片機的串行通信工作及方式字的設(shè)定3 掌握51單片機串行口的四種工作方式和對應(yīng)的波特率的設(shè)定方法重點 單片機串行口的四種工作方式和對應(yīng)的波特率的設(shè)定方法難點 串口的工作及方式字的設(shè)定 實際應(yīng)用中 計算機的CPU與其外部設(shè)備之間常常要進行信息的交換 計算機之間也需要交換信息 所有這些信息的交換均稱為 通信 1 通信的基本方式 并行通信 并行通信 是指數(shù)據(jù)的各位同時進行傳送的方式特點 傳輸速度快 但當距離較遠 位數(shù)又多時導(dǎo)致了通訊線路復(fù)雜且成本高 如圖所示 2 7 1串行通信的基本概念 串行通信 串行通信 是指數(shù)據(jù)一位一位地順序傳送特點 通訊線路簡單 只要一對傳輸線就可以實現(xiàn)通訊 并可以利用電話線 從而大大地降低了成本 特別適用于遠距離通訊 但傳送速度慢 如圖所示 2 串行通信中數(shù)據(jù)的傳送方向 單工通信方式 半雙工通信方式 全雙工通訊方式 A端為發(fā)送站 B端為接收站 數(shù)據(jù)僅能從A站發(fā)至B站 數(shù)據(jù)可以從A發(fā)送到B 也可以由B發(fā)送到A 不過同一時間只能作一個方向的傳送 其傳送方式由收發(fā)控制開關(guān)K來控制 每個站 A B 既可同時發(fā)送 又可同時接收 3 串行通訊的兩種基本方式 異步通信 同步傳送 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 在異步數(shù)據(jù)傳送中 CPU與外設(shè)之間事先必須約定兩項事宜 字符格式 雙方要約好字符的編碼形式 奇偶校驗形式 以及起始位和停止位的規(guī)定 波特率 Baudrate 波特率是衡量位傳送速率的指標 它要求發(fā)送站和接收站都要以相同的數(shù)據(jù)傳送速率工作 4 波特率 例 假設(shè)傳送速率是120字符 秒 假如每一個字符為10位 則其傳送的波特率為 10位 字符 120字符 秒 1200位 秒 1200波特 定義 每秒鐘傳送二進制代碼的位數(shù) 單位 波特 b s bps 注意 波特率和有效數(shù)據(jù)傳送率并不一致 如上述字符幀的10位中真正有效的數(shù)據(jù)位只有8位 所以 有效數(shù)據(jù)位的傳送速率為 8 120 960位 秒 串行通信的基本特征是數(shù)據(jù)逐位順序進行傳送串行通信的格式及約定 如 同步方式 通訊速率 數(shù)據(jù)塊格式 信號電平 等 不同 形成了多種串行通信的協(xié)議與接口標準 常見的有 通用異步收發(fā)器 UART 51系列單片機的串口形式 通用串行總線 USB I2C總線 CAN總線 SPI總線 RS 485 RS 232C RS422A標準 等等 2 7 2串行口的結(jié)構(gòu) 1 串行口結(jié)構(gòu) 兩個同名的接收 發(fā)送緩沖寄存器SBUF指令MOVSBUF A啟動一次數(shù)據(jù)發(fā)送 可向SBUF再發(fā)送下一個數(shù)指令MOVA SBUF完成一次數(shù)據(jù)接收 SBUF可再接收下一個數(shù) 接收 發(fā)送數(shù)據(jù) 無論是否采用中斷方式工作 每接收 發(fā)送一個數(shù)據(jù)都必須用指令對RI TI清0 以備下一次收 發(fā) 串行口相關(guān)的SFR SCON PCON SM0 SM1 串行口4種工作方式的選擇位 00方式0 8位同步移位寄存器 波特率固定為fosc 1201方式1 10位UART 1 8 1位 波特率可變 按公式計算10方式2 11位UART 1 8 1 1位 波特率固定 foscx 1 32 或 1 64 11方式3 11位UART 1 8 1 1位 波特率可變 按公式計算 2 串行口控制寄存器SCON 98H SM0 SM1 SM2 TB8 RB8 RI REN SCON 7 SCON 0 SCON 6 TI SM2 串行口多機通信控制位 若SM2 1 則允許多機通信 若第9位數(shù)據(jù)為1 說明本幀數(shù)據(jù)為地址 若第9位為0 則本幀為數(shù)據(jù)幀 SM2 0 即不屬于多機通信 則接收一幀數(shù)據(jù)后 不管第9位數(shù)值是0還是1 都置RI 1 接收到的數(shù)據(jù)裝入SBUF中 作為方式2 方式3的附加控制位 2 串行口控制寄存器SCON 98H SM0 SM1 SM2 TB8 RB8 RI REN SCON 7 SCON 0 TI SCON 5 SM2 REN 串行口接收允許控制位 REN 1表示允許接收 REN 0禁止接收 由軟件置 1 或清 0 2 串行口控制寄存器SCON 98H SM0 SM1 SM2 TB8 RB8 RI REN SCON 7 SCON 0 TI SCON 3 SM2 SCON 4 SCON 2 TB8 方式2 3中 是要發(fā)送的第9位數(shù)據(jù) 多機通信中 TB8 0表示發(fā)送的是數(shù)據(jù) TB8 1表示發(fā)送的是地址 奇偶校驗 根據(jù)需要由軟件置位或復(fù)位 RB8 在方式2 3中 是收到的第9位數(shù)據(jù) 在多機通信中 用作區(qū)別地址幀 數(shù)據(jù)幀的標志 奇偶校驗 TI 發(fā)送中斷標志 在一幀數(shù)據(jù)發(fā)送完時被置位 串行口收 發(fā)數(shù)據(jù)申請中斷標志位 在方式0串行發(fā)送到第八位結(jié)束時 或其他方式串行發(fā)送到停止位的開始時由硬件置位 可用軟件查詢 必須由軟件清 0 TI 1申請中斷 TI 0不申請中斷 2 串行口控制寄存器SCON 98H SM0 SM1 SM2 TB8 RB8 RI REN SCON 7 SCON 0 TI SM2 SCON 1 RI 接收中斷標志 在接收到一幀有效數(shù)據(jù)后由硬件置位 在方式0中第八位數(shù)據(jù)發(fā)送結(jié)束時 由硬件置位 在其他方式中 則在接收到停止位中間時由硬件置位 可用軟件查詢 必須由軟件清 0 RI 1申請中斷 RI 0不申請中斷 SMOD 在串行口工作方式1 2 3中 是波特率倍增位SMOD 1時 波特率加倍SMOD 0時 波特率不加倍 在PCON中只有這一個位與串口有關(guān) 2 電源控制寄存器PCON 87H SMOD PCON 7 PCON 0 2 7 3串行口工作方式 工作方式0 8位移位寄存器I O方式 SM0SM1 00 發(fā)送 SBUF中的串行數(shù)據(jù)由RxD逐位移出 低位在前 高位在后 TxD輸出移位時鐘 頻率 fosc1 12 每送出8位數(shù)據(jù)TI就自動置1 需要用軟件清零TI 接收 串行數(shù)據(jù)由RxD逐位移入SBUF中 TxD輸出移位時鐘 頻率 fosc1 12 每接收8位數(shù)據(jù)RI就自動置1 需要用軟件清零RI 經(jīng)常配合 串入并出 并入串出 移位寄存器一起使用擴展接口 方式0工作時 多用查詢方式編程 發(fā)送 MOVSBUF A接收 JNBRI JNBTI CLRRICLRTIMOVA SBUF 工作方式0 8位移位寄存器I O方式 續(xù) 復(fù)位時 SCON已經(jīng)被清零 缺省值 方式0 接收前 務(wù)必先置位REN 1允許接收數(shù)據(jù) 數(shù)據(jù)輸出 數(shù)據(jù)輸入 74LS164是串入并出芯片 74LS165是并入串出芯片 串行口方式0的擴展應(yīng)用 CLR用于清0 例1 用并行輸入8位移位寄存器74HC165擴展16位并行輸入口 編程實現(xiàn)從16位擴展口讀入20個字節(jié)數(shù)據(jù) S L負脈沖將并行數(shù)據(jù)裝入 高電平時啟動單片機進行數(shù)據(jù)輸入 MOVR7 20MOVR0 50HSETBF0RCV0 CLRP1 0SETBP1 0RCV1 MOVSCON 10JNBRI CLRRIMOVA SBUFMOV R0 A INCR0CPLF0JBF0 RCV2DECR7SJMPRCV1RCV2 DJNZR7 RCV0 常用于串行通訊 除發(fā) 收8位數(shù)據(jù)外 還在D0位前有一個起始位 0 在D7位后有一個停止位 1 方式1工作時 發(fā)送端自動添加一個起始位和一個停止位 接收端自動去掉一個起始位和一個停止位 接收時 停止位進入SCON的RB8 工作方式1 10位UART 1 8 1位 波特率可變 SM0SM1 01 波特率可變 用定時器T1作波特率發(fā)生器 公式 波特率 2SMOD 32 T1的溢出率 TXD與RXD分別用于發(fā)送與接收數(shù)據(jù) 波特率 2SMOD 32 T1的溢出率 溢出率 T1溢出的頻繁程度即 T1溢出一次所需時間的倒數(shù) 初值X 2n 2SMOD fosc32 波特率 12 波特率 2SMOD fosc32 12 2n X 其中 X是定時器初值 初值X 2n 2SMOD fosc32 波特率 12 例 計算波特率 要求用T1工作于方式2來產(chǎn)生波特率1200 已知晶振頻率 6MHz 要求出T1的初值 初值X 28 20 6 10632 1200 12 256 256 13 02 6 106460800 243 0F3H 結(jié)果后面要用到 串行發(fā)送 寫SBUF啟動發(fā)送過程 串行接收 置REN 1啟動接收過程 T1作波特率發(fā)生器時初始化包括 選定時器工作方式2 TMOD選8位自動重裝 將計算 或查表 出的初值X賦給TH1 TL1 啟動T1 SETBTR1 對T1不要開中斷 工作方式1的接收 發(fā)送 串行口的初始化包括 對SCON選工作方式對PCON設(shè)波特率加倍位 SMOD 缺省值 0 如果是接收數(shù)據(jù) 仍要先置 1 REN位 例 要求T1工作于方式2 使串行口工作在方式1時產(chǎn)生波特率1200bps 已知fosc 6MHz SM0SM1SM2RENTB8RB8TIR1 SCON 01010000 MAIN ORG0023HMOVTMOD 20HSBR1 JNBRI SENDMOVTL1 0F3HLCALLSINMOVTH1 0F3HSJMPNEXTSETBTR1SEND LCALLSOUTMOVSCON 50HNEXT RETI SETBEASIN SETBESRETLCALLSOUTSOUT SJMP RET 發(fā)送子程序接收子程序SOUT SIN MOVA R0MOVA SBUFINCR0MOV R1 AMOVSBUF AINCR1CLRTICLRRIRETRET 例 續(xù) 由于波特率固定 常用于單片機間通訊 數(shù)據(jù)由8 1位組成 通常附加的一位 TB8 RB8 用于 奇偶校驗 工作方式2 11位UART 1 8 1 1位 兩種波特率 方式2的波特率 fosc 2SMOD 64即 fosc 1 32或fosc 1 64兩種 奇偶校驗是檢驗串行通信雙方傳輸?shù)臄?shù)據(jù)正確與否的一個措施 并不能保證通信數(shù)據(jù)的傳輸一定正確 換言之 如果奇偶校驗發(fā)生錯誤 表明數(shù)據(jù)傳輸一定出錯了 如果奇偶校驗沒有出錯 絕不等于數(shù)據(jù)傳輸完全正確 奇校驗 8位有效數(shù)據(jù)連同1位附加位中 二進制 1 的個數(shù)為奇數(shù)偶校驗 8位有效數(shù)據(jù)連同1位附加位中 二進制 1 的個數(shù)為偶數(shù) 約定接收采用奇校驗若接收到的9位數(shù)據(jù)中 1 的個數(shù)為奇數(shù) 則表明接收正確 取出8位有效數(shù)據(jù)即可 若接收到的9位數(shù)據(jù)中 1 的個數(shù)為偶數(shù) 則表明接收出錯 應(yīng)當進行出錯處理 約定發(fā)送采用奇校驗若發(fā)送的8位有效數(shù)據(jù)中 1 的個數(shù)為偶數(shù) 則要人為添加一個附加位 1 一起發(fā)送 若發(fā)送的8位有效數(shù)據(jù)中 1 的個數(shù)為奇數(shù) 則要人為添加一個附加位 0 一起發(fā)送 采用偶校驗時 處理方法與奇校驗相反 回顧 程序狀態(tài)字寄存器PSW中有一個奇偶狀態(tài)位P CY AC F0 RS0 OV P RS1 PSW 7 PSW 0 P PSW 0 奇偶狀態(tài)位 P 1表示目前累加器中 1 的個數(shù)為奇數(shù)P 0表示目前累加器中 1 的個數(shù)為偶數(shù)CPU隨時監(jiān)視著Acc的 1 的個數(shù)并自動反映在P 工作方式2的奇偶校驗用法 選用偶校驗方式發(fā)送PIPL PUSHPSW 保護現(xiàn)場PUSHACCCLRTI 清發(fā)送中斷標志以備下次發(fā)送MOVA R0 取由R0所指向的單元中的數(shù)據(jù)MOVC P 將奇偶標志位通過C放進TB8MOVTB8 C 一起發(fā)送出去MOVSBUF A 啟動發(fā)送INCR0 指針指向下一個數(shù)據(jù)單元POPACC 恢復(fù)現(xiàn)場POPPSWRETI 中斷返回 串口方式2的奇偶校驗用法 選用偶校驗方式發(fā)送如果A中1的個數(shù)是奇數(shù) P 1 將TB8寫成 1 一起發(fā)出去 反之 若 P 0 則寫TB8 0 發(fā)出去 選用偶校驗方式接收若收到的數(shù)中P 0 且檢查到RB8 0就可能對了若收到的數(shù)中P 1 且檢查到RB8 1就可能對了若P 0且RB8 1或P 1且RB8 0就一定出錯了 串口方式2的奇偶校驗用法 SM0SM1SM2RENTB8RB8TIR1 SCON 串行口控制寄存器SCON TB8RB8 選用偶校驗方式接收 PIPL PUSHPSW 保護現(xiàn)場PUSHACCCLRRI 清接收中斷標志以備下次接收MOVA SBUF 讀進收到的數(shù)據(jù)MOVC P 奇偶標志位 C JNBP L1JNCL1 C 0時轉(zhuǎn)到L1P 0時轉(zhuǎn)到L1JNBRB8 ERR P 1時轉(zhuǎn)到L2 若RB8 0 出錯 SJMPL2 RB8 0則表明接收正確 轉(zhuǎn)L2L1 JBRB8 ERR P 0且RB8 1表明 出錯 L2 MOV R0 A P 0且RB8 0表明接收正確INCR0 指針指向下一個數(shù)據(jù)單元POPACC 恢復(fù)現(xiàn)場POPPSWRETI 中斷返回ERR 出錯處理 RETI 工作方式3 當SM0 SM1為11時 串行口工作于方式311位UART 1 8 1 1位 波特率可變 串口方式3和方式2唯一的區(qū)別是波特率機制不同 方式2的波特率固定為時鐘周期的32或64分頻 不可變 此工作方式與其他串行通訊設(shè)備連接困難 因此不常用 方式3的波特率可變 按前面的公式計算 波特率 2SMOD 32 T1的溢出率 波特率 2SMOD fosc32 12 2n X 其中 X是定時器初值 波特率的設(shè)計小結(jié) 根據(jù)串行口的四種工作方式可知 方式0為移位寄存器方式 波特率是固定的 其波特率為fosc 12 方式2為10位UART 波特率為2SMOD 64 fosc 波特率僅與PCON中SMOD的值有關(guān) 當SMOD 0時 波特率為fosc 64 當SMOD 1時 波特率為fosc 32 波特率的設(shè)計小結(jié) 方式1和方式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 未來城市治理中的公共政策試題及答案
- 2025年網(wǎng)絡(luò)直播行業(yè)自律規(guī)范與內(nèi)容監(jiān)管策略研究
- 新手備考西方政治考試的建議試題及答案
- 機電工程分析工具試題及答案
- 農(nóng)業(yè)產(chǎn)業(yè)集群形成與發(fā)展機制可持續(xù)發(fā)展研究報告
- 機電工程英語學(xué)習(xí)的必要性及試題與答案
- 西方國家的民主監(jiān)督機制試題及答案
- 政治理念與西方教育體制的試題及答案
- 軟件測試中的用戶需求分析試題及答案
- 計算機三級軟件測試中的團隊協(xié)作試題及答案
- 《創(chuàng)傷失血性休克中國急診專家共識(2023)》解讀課件
- 2024年四川省南充市中考英語試卷真題(含官方答案及解析)
- 【真題】2024年常州市中考英語試卷(含答案解析)
- 2024全國能源行業(yè)火力發(fā)電集控值班員理論知識技能競賽題庫(多選題)
- JGT 352-2017 現(xiàn)澆混凝土空心結(jié)構(gòu)成孔芯模
- 第18講 八下課標文言文復(fù)習(xí)(練習(xí))-2024年中考語文一輪復(fù)習(xí)講練測(全國)(原卷版)
- 山東省濟南市平陰縣2023-2024學(xué)年八年級下學(xué)期期末數(shù)學(xué)試題
- 2024全新股份合作協(xié)議樣板下載
- 礫巖和角礫巖課件
- 上海市虹口區(qū)2023-2024學(xué)年八年級下學(xué)期期末考試語文試題
- 小升初古詩閱讀專項訓(xùn)練合集(含答案)
評論
0/150
提交評論