




已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2 7串行接口 教學(xué)目的 1 了解單片機(jī)串行通信的基本概念與串行通訊程序的編制2 掌握單片機(jī)的串行通信工作及方式字的設(shè)定3 掌握51單片機(jī)串行口的四種工作方式和對(duì)應(yīng)的波特率的設(shè)定方法重點(diǎn) 單片機(jī)串行口的四種工作方式和對(duì)應(yīng)的波特率的設(shè)定方法難點(diǎn) 串口的工作及方式字的設(shè)定 實(shí)際應(yīng)用中 計(jì)算機(jī)的CPU與其外部設(shè)備之間常常要進(jìn)行信息的交換 計(jì)算機(jī)之間也需要交換信息 所有這些信息的交換均稱為 通信 1 通信的基本方式 并行通信 并行通信 是指數(shù)據(jù)的各位同時(shí)進(jìn)行傳送的方式特點(diǎn) 傳輸速度快 但當(dāng)距離較遠(yuǎn) 位數(shù)又多時(shí)導(dǎo)致了通訊線路復(fù)雜且成本高 如圖所示 2 7 1串行通信的基本概念 串行通信 串行通信 是指數(shù)據(jù)一位一位地順序傳送特點(diǎn) 通訊線路簡(jiǎn)單 只要一對(duì)傳輸線就可以實(shí)現(xiàn)通訊 并可以利用電話線 從而大大地降低了成本 特別適用于遠(yuǎn)距離通訊 但傳送速度慢 如圖所示 2 串行通信中數(shù)據(jù)的傳送方向 單工通信方式 半雙工通信方式 全雙工通訊方式 A端為發(fā)送站 B端為接收站 數(shù)據(jù)僅能從A站發(fā)至B站 數(shù)據(jù)可以從A發(fā)送到B 也可以由B發(fā)送到A 不過同一時(shí)間只能作一個(gè)方向的傳送 其傳送方式由收發(fā)控制開關(guān)K來控制 每個(gè)站 A B 既可同時(shí)發(fā)送 又可同時(shí)接收 3 串行通訊的兩種基本方式 異步通信 同步傳送 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 數(shù)據(jù) 在異步數(shù)據(jù)傳送中 CPU與外設(shè)之間事先必須約定兩項(xiàng)事宜 字符格式 雙方要約好字符的編碼形式 奇偶校驗(yàn)形式 以及起始位和停止位的規(guī)定 波特率 Baudrate 波特率是衡量位傳送速率的指標(biāo) 它要求發(fā)送站和接收站都要以相同的數(shù)據(jù)傳送速率工作 4 波特率 例 假設(shè)傳送速率是120字符 秒 假如每一個(gè)字符為10位 則其傳送的波特率為 10位 字符 120字符 秒 1200位 秒 1200波特 定義 每秒鐘傳送二進(jìn)制代碼的位數(shù) 單位 波特 b s bps 注意 波特率和有效數(shù)據(jù)傳送率并不一致 如上述字符幀的10位中真正有效的數(shù)據(jù)位只有8位 所以 有效數(shù)據(jù)位的傳送速率為 8 120 960位 秒 串行通信的基本特征是數(shù)據(jù)逐位順序進(jìn)行傳送串行通信的格式及約定 如 同步方式 通訊速率 數(shù)據(jù)塊格式 信號(hào)電平 等 不同 形成了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn) 常見的有 通用異步收發(fā)器 UART 51系列單片機(jī)的串口形式 通用串行總線 USB I2C總線 CAN總線 SPI總線 RS 485 RS 232C RS422A標(biāo)準(zhǔn) 等等 2 7 2串行口的結(jié)構(gòu) 1 串行口結(jié)構(gòu) 兩個(gè)同名的接收 發(fā)送緩沖寄存器SBUF指令MOVSBUF A啟動(dòng)一次數(shù)據(jù)發(fā)送 可向SBUF再發(fā)送下一個(gè)數(shù)指令MOVA SBUF完成一次數(shù)據(jù)接收 SBUF可再接收下一個(gè)數(shù) 接收 發(fā)送數(shù)據(jù) 無論是否采用中斷方式工作 每接收 發(fā)送一個(gè)數(shù)據(jù)都必須用指令對(duì)RI TI清0 以備下一次收 發(fā) 串行口相關(guān)的SFR SCON PCON SM0 SM1 串行口4種工作方式的選擇位 00方式0 8位同步移位寄存器 波特率固定為fosc 1201方式1 10位UART 1 8 1位 波特率可變 按公式計(jì)算10方式2 11位UART 1 8 1 1位 波特率固定 foscx 1 32 或 1 64 11方式3 11位UART 1 8 1 1位 波特率可變 按公式計(jì)算 2 串行口控制寄存器SCON 98H SM0 SM1 SM2 TB8 RB8 RI REN SCON 7 SCON 0 SCON 6 TI SM2 串行口多機(jī)通信控制位 若SM2 1 則允許多機(jī)通信 若第9位數(shù)據(jù)為1 說明本幀數(shù)據(jù)為地址 若第9位為0 則本幀為數(shù)據(jù)幀 SM2 0 即不屬于多機(jī)通信 則接收一幀數(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ù) 多機(jī)通信中 TB8 0表示發(fā)送的是數(shù)據(jù) TB8 1表示發(fā)送的是地址 奇偶校驗(yàn) 根據(jù)需要由軟件置位或復(fù)位 RB8 在方式2 3中 是收到的第9位數(shù)據(jù) 在多機(jī)通信中 用作區(qū)別地址幀 數(shù)據(jù)幀的標(biāo)志 奇偶校驗(yàn) TI 發(fā)送中斷標(biāo)志 在一幀數(shù)據(jù)發(fā)送完時(shí)被置位 串行口收 發(fā)數(shù)據(jù)申請(qǐng)中斷標(biāo)志位 在方式0串行發(fā)送到第八位結(jié)束時(shí) 或其他方式串行發(fā)送到停止位的開始時(shí)由硬件置位 可用軟件查詢 必須由軟件清 0 TI 1申請(qǐng)中斷 TI 0不申請(qǐng)中斷 2 串行口控制寄存器SCON 98H SM0 SM1 SM2 TB8 RB8 RI REN SCON 7 SCON 0 TI SM2 SCON 1 RI 接收中斷標(biāo)志 在接收到一幀有效數(shù)據(jù)后由硬件置位 在方式0中第八位數(shù)據(jù)發(fā)送結(jié)束時(shí) 由硬件置位 在其他方式中 則在接收到停止位中間時(shí)由硬件置位 可用軟件查詢 必須由軟件清 0 RI 1申請(qǐng)中斷 RI 0不申請(qǐng)中斷 SMOD 在串行口工作方式1 2 3中 是波特率倍增位SMOD 1時(shí) 波特率加倍SMOD 0時(shí) 波特率不加倍 在PCON中只有這一個(gè)位與串口有關(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輸出移位時(shí)鐘 頻率 fosc1 12 每送出8位數(shù)據(jù)TI就自動(dòng)置1 需要用軟件清零TI 接收 串行數(shù)據(jù)由RxD逐位移入SBUF中 TxD輸出移位時(shí)鐘 頻率 fosc1 12 每接收8位數(shù)據(jù)RI就自動(dòng)置1 需要用軟件清零RI 經(jīng)常配合 串入并出 并入串出 移位寄存器一起使用擴(kuò)展接口 方式0工作時(shí) 多用查詢方式編程 發(fā)送 MOVSBUF A接收 JNBRI JNBTI CLRRICLRTIMOVA SBUF 工作方式0 8位移位寄存器I O方式 續(xù) 復(fù)位時(shí) SCON已經(jīng)被清零 缺省值 方式0 接收前 務(wù)必先置位REN 1允許接收數(shù)據(jù) 數(shù)據(jù)輸出 數(shù)據(jù)輸入 74LS164是串入并出芯片 74LS165是并入串出芯片 串行口方式0的擴(kuò)展應(yīng)用 CLR用于清0 例1 用并行輸入8位移位寄存器74HC165擴(kuò)展16位并行輸入口 編程實(shí)現(xiàn)從16位擴(kuò)展口讀入20個(gè)字節(jié)數(shù)據(jù) S L負(fù)脈沖將并行數(shù)據(jù)裝入 高電平時(shí)啟動(dòng)單片機(jī)進(jìn)行數(shù)據(jù)輸入 MOVR7 20MOVR0 50HSETBF0RCV0 CLRP1 0SETBP1 0RCV1 MOVSCON 10JNBRI CLRRIMOVA SBUFMOV R0 A INCR0CPLF0JBF0 RCV2DECR7SJMPRCV1RCV2 DJNZR7 RCV0 常用于串行通訊 除發(fā) 收8位數(shù)據(jù)外 還在D0位前有一個(gè)起始位 0 在D7位后有一個(gè)停止位 1 方式1工作時(shí) 發(fā)送端自動(dòng)添加一個(gè)起始位和一個(gè)停止位 接收端自動(dòng)去掉一個(gè)起始位和一個(gè)停止位 接收時(shí) 停止位進(jìn)入SCON的RB8 工作方式1 10位UART 1 8 1位 波特率可變 SM0SM1 01 波特率可變 用定時(shí)器T1作波特率發(fā)生器 公式 波特率 2SMOD 32 T1的溢出率 TXD與RXD分別用于發(fā)送與接收數(shù)據(jù) 波特率 2SMOD 32 T1的溢出率 溢出率 T1溢出的頻繁程度即 T1溢出一次所需時(shí)間的倒數(shù) 初值X 2n 2SMOD fosc32 波特率 12 波特率 2SMOD fosc32 12 2n X 其中 X是定時(shí)器初值 初值X 2n 2SMOD fosc32 波特率 12 例 計(jì)算波特率 要求用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啟動(dòng)發(fā)送過程 串行接收 置REN 1啟動(dòng)接收過程 T1作波特率發(fā)生器時(shí)初始化包括 選定時(shí)器工作方式2 TMOD選8位自動(dòng)重裝 將計(jì)算 或查表 出的初值X賦給TH1 TL1 啟動(dòng)T1 SETBTR1 對(duì)T1不要開中斷 工作方式1的接收 發(fā)送 串行口的初始化包括 對(duì)SCON選工作方式對(duì)PCON設(shè)波特率加倍位 SMOD 缺省值 0 如果是接收數(shù)據(jù) 仍要先置 1 REN位 例 要求T1工作于方式2 使串行口工作在方式1時(shí)產(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ù) 由于波特率固定 常用于單片機(jī)間通訊 數(shù)據(jù)由8 1位組成 通常附加的一位 TB8 RB8 用于 奇偶校驗(yàn) 工作方式2 11位UART 1 8 1 1位 兩種波特率 方式2的波特率 fosc 2SMOD 64即 fosc 1 32或fosc 1 64兩種 奇偶校驗(yàn)是檢驗(yàn)串行通信雙方傳輸?shù)臄?shù)據(jù)正確與否的一個(gè)措施 并不能保證通信數(shù)據(jù)的傳輸一定正確 換言之 如果奇偶校驗(yàn)發(fā)生錯(cuò)誤 表明數(shù)據(jù)傳輸一定出錯(cuò)了 如果奇偶校驗(yàn)沒有出錯(cuò) 絕不等于數(shù)據(jù)傳輸完全正確 奇校驗(yàn) 8位有效數(shù)據(jù)連同1位附加位中 二進(jìn)制 1 的個(gè)數(shù)為奇數(shù)偶校驗(yàn) 8位有效數(shù)據(jù)連同1位附加位中 二進(jìn)制 1 的個(gè)數(shù)為偶數(shù) 約定接收采用奇校驗(yàn)若接收到的9位數(shù)據(jù)中 1 的個(gè)數(shù)為奇數(shù) 則表明接收正確 取出8位有效數(shù)據(jù)即可 若接收到的9位數(shù)據(jù)中 1 的個(gè)數(shù)為偶數(shù) 則表明接收出錯(cuò) 應(yīng)當(dāng)進(jìn)行出錯(cuò)處理 約定發(fā)送采用奇校驗(yàn)若發(fā)送的8位有效數(shù)據(jù)中 1 的個(gè)數(shù)為偶數(shù) 則要人為添加一個(gè)附加位 1 一起發(fā)送 若發(fā)送的8位有效數(shù)據(jù)中 1 的個(gè)數(shù)為奇數(shù) 則要人為添加一個(gè)附加位 0 一起發(fā)送 采用偶校驗(yàn)時(shí) 處理方法與奇校驗(yàn)相反 回顧 程序狀態(tài)字寄存器PSW中有一個(gè)奇偶狀態(tài)位P CY AC F0 RS0 OV P RS1 PSW 7 PSW 0 P PSW 0 奇偶狀態(tài)位 P 1表示目前累加器中 1 的個(gè)數(shù)為奇數(shù)P 0表示目前累加器中 1 的個(gè)數(shù)為偶數(shù)CPU隨時(shí)監(jiān)視著Acc的 1 的個(gè)數(shù)并自動(dòng)反映在P 工作方式2的奇偶校驗(yàn)用法 選用偶校驗(yàn)方式發(fā)送PIPL PUSHPSW 保護(hù)現(xiàn)場(chǎng)PUSHACCCLRTI 清發(fā)送中斷標(biāo)志以備下次發(fā)送MOVA R0 取由R0所指向的單元中的數(shù)據(jù)MOVC P 將奇偶標(biāo)志位通過C放進(jìn)TB8MOVTB8 C 一起發(fā)送出去MOVSBUF A 啟動(dòng)發(fā)送INCR0 指針指向下一個(gè)數(shù)據(jù)單元POPACC 恢復(fù)現(xiàn)場(chǎng)POPPSWRETI 中斷返回 串口方式2的奇偶校驗(yàn)用法 選用偶校驗(yàn)方式發(fā)送如果A中1的個(gè)數(shù)是奇數(shù) P 1 將TB8寫成 1 一起發(fā)出去 反之 若 P 0 則寫TB8 0 發(fā)出去 選用偶校驗(yàn)方式接收若收到的數(shù)中P 0 且檢查到RB8 0就可能對(duì)了若收到的數(shù)中P 1 且檢查到RB8 1就可能對(duì)了若P 0且RB8 1或P 1且RB8 0就一定出錯(cuò)了 串口方式2的奇偶校驗(yàn)用法 SM0SM1SM2RENTB8RB8TIR1 SCON 串行口控制寄存器SCON TB8RB8 選用偶校驗(yàn)方式接收 PIPL PUSHPSW 保護(hù)現(xiàn)場(chǎng)PUSHACCCLRRI 清接收中斷標(biāo)志以備下次接收MOVA SBUF 讀進(jìn)收到的數(shù)據(jù)MOVC P 奇偶標(biāo)志位 C JNBP L1JNCL1 C 0時(shí)轉(zhuǎn)到L1P 0時(shí)轉(zhuǎn)到L1JNBRB8 ERR P 1時(shí)轉(zhuǎn)到L2 若RB8 0 出錯(cuò) SJMPL2 RB8 0則表明接收正確 轉(zhuǎn)L2L1 JBRB8 ERR P 0且RB8 1表明 出錯(cuò) L2 MOV R0 A P 0且RB8 0表明接收正確INCR0 指針指向下一個(gè)數(shù)據(jù)單元POPACC 恢復(fù)現(xiàn)場(chǎng)POPPSWRETI 中斷返回ERR 出錯(cuò)處理 RETI 工作方式3 當(dāng)SM0 SM1為11時(shí) 串行口工作于方式311位UART 1 8 1 1位 波特率可變 串口方式3和方式2唯一的區(qū)別是波特率機(jī)制不同 方式2的波特率固定為時(shí)鐘周期的32或64分頻 不可變 此工作方式與其他串行通訊設(shè)備連接困難 因此不常用 方式3的波特率可變 按前面的公式計(jì)算 波特率 2SMOD 32 T1的溢出率 波特率 2SMOD fosc32 12 2n X 其中 X是定時(shí)器初值 波特率的設(shè)計(jì)小結(jié) 根據(jù)串行口的四種工作方式可知 方式0為移位寄存器方式 波特率是固定的 其波特率為fosc 12 方式2為10位UART 波特率為2SMOD 64 fosc 波特率僅與PCON中SMOD的值有關(guān) 當(dāng)SMOD 0時(shí) 波特率為fosc 64 當(dāng)SMOD 1時(shí) 波特率為fosc 32 波特率的設(shè)計(jì)小結(jié) 方式1和方式
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025非住宅小區(qū)房屋買賣合同協(xié)議書范本
- 2025關(guān)于實(shí)習(xí)協(xié)議、就業(yè)協(xié)議和勞動(dòng)合同的差異與對(duì)比
- 2025專業(yè)技術(shù)人員勞動(dòng)合同書范本
- 項(xiàng)目投資的風(fēng)險(xiǎn)管理
- 金牌組長(zhǎng)能力培養(yǎng)體系
- 河南省九師聯(lián)盟2024-2025學(xué)年高二下學(xué)期5月聯(lián)考?xì)v史試卷
- 人教版小學(xué)語文三年級(jí)下冊(cè)第一單元測(cè)試題
- 老年內(nèi)科患者護(hù)理體系
- 海南大學(xué)微生物試題總結(jié)模版
- 電信外線員工作總結(jié)模版
- 近年《高等教育學(xué)》考試真題試題庫(含答案)
- 《大學(xué)生創(chuàng)業(yè)基礎(chǔ)系列課程》課件-第12課-創(chuàng)業(yè)經(jīng)營(yíng)場(chǎng)所-1學(xué)時(shí)
- 電力工程掛靠協(xié)議書
- (高清版)DZT 0227-2010 地質(zhì)巖心鉆探規(guī)程
- TCEATR 0015-2024 擔(dān)架電梯技術(shù)報(bào)告
- 2023CSCO免疫檢查點(diǎn)抑制劑相關(guān)的毒性控制指南(全文)
- 五年級(jí)下冊(cè)分?jǐn)?shù)加減混合運(yùn)算練習(xí)400題及答案
- 下肢動(dòng)脈硬化閉塞癥的護(hù)理查房
- 前置胎盤健康宣教
- 不同行業(yè)安全管理的特點(diǎn)與要求
- 醫(yī)學(xué)人文素質(zhì)教育的跨學(xué)科研究與創(chuàng)新
評(píng)論
0/150
提交評(píng)論