2022年單片機課件23_第1頁
2022年單片機課件23_第2頁
2022年單片機課件23_第3頁
2022年單片機課件23_第4頁
2022年單片機課件23_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第6章MCS-51串行接口6.1 串行通信的基本知識6.2 串行接口的控制6.3 串行口的波特率6.4 串行口的工作方式及應用并行通信是指數(shù)據(jù)的各位同時進行傳送其優(yōu)點是傳送速度快,其缺點是數(shù)據(jù)有多少位,就要有多少根數(shù)據(jù)傳送線,同時還必須有必要的控制線。并行通信協(xié)議有SPP、EPP、ECP等

6.1 串行通信的基本知識

串行通信指數(shù)據(jù)是一位一位的按順序傳送的通信方式,它的優(yōu)點是只需要很少的傳輸線,是一種低成本遠距離的通信方式。缺點是傳送速度較慢。串行通信協(xié)議有USB、I2C、RS-232、SPI等異步傳送方式的特點是數(shù)據(jù)在線路上傳送是不連續(xù)的。它是以字符為單位來傳送的,數(shù)據(jù)分為一幀一幀地傳送。一個字符由四部分組成:起始位、數(shù)據(jù)位、奇偶校驗位和停止位。同步傳送方式的特點是數(shù)據(jù)是連續(xù)傳送的,數(shù)據(jù)以數(shù)據(jù)塊為單位傳送的。在每個數(shù)據(jù)塊發(fā)送之前,先發(fā)送1~2個同步字符。然后緊接著發(fā)送數(shù)據(jù),要求接收端和發(fā)送端必須有同步時鐘進行同步。8503:并行擴展芯片8255的控制寄存器地址。MOVSBUF,A;ACALLDALAYJNBRB8,ERR;PSW.SETBTR1;單片機與PC機的串行接口波特率可變(T1溢出率*2SMOD/32)實際的波特率為2403.SETBTR1;本實驗板部分數(shù)據(jù)空間已固定分配:3現(xiàn)有二臺單片機進行異步串行通信。串行口有四種工作方式,對應三種波特率。(1)RI=0;DJNZR7,LOOP;未結(jié)束,循環(huán)CPU通過讀或?qū)懖僮鱽磉M行區(qū)別。單工通信:任意時刻,A端為發(fā)送端、B端為接收端,數(shù)據(jù)僅能從A端發(fā)至B端。半雙工通信:數(shù)據(jù)可以從A端發(fā)至B端,也可以從B端發(fā)至A端,但是在同一時間只能作一個方向的傳送。全雙工通信:如果在通信過程的任意時刻,同時存在A到B和B到A的雙向數(shù)據(jù)傳輸。3.數(shù)據(jù)傳輸方向4.波特率什么是波特率?每秒鐘傳送二進制數(shù)碼的位數(shù)。單位:位/秒。1波特=1位/秒=1bit/s=1bps。例:在異步串行通信中每秒鐘傳送速度為240字符/秒,而每個字符又包含10位(包括起始位、停止位及八位數(shù)據(jù)),則波特率為:240字符/秒×10位/字符=2400位/秒=2400波特接收和發(fā)送方必須使用相同的波特率和數(shù)據(jù)格式才能正確傳輸數(shù)據(jù)

6.2串行通信接口的控制概述:MCS-51的串行通信接口是通過引腳RXD(P3.0))和TXD(P3.1)與外界進行串行通信。由三個特殊功能寄存器,即串行口緩沖寄存器SBUF,串行口控制寄存器SCON,電源控制寄存器PCON,對串行口的接收和發(fā)送進行控制。一、串行口緩沖寄存器SBUF功能:進行數(shù)據(jù)的串/并轉(zhuǎn)換并存放將要發(fā)送或接收到的數(shù)據(jù)。注意:發(fā)送寄存器和接收寄存器占用同一個地址。CPU通過讀或?qū)懖僮鱽磉M行區(qū)別。

例:串行數(shù)據(jù)的發(fā)送(寫操作)MOVSBUF,Rn串行數(shù)據(jù)的接收(讀操作)MOVA,SBUF二、串行口控制寄存器SCON

功能:用于串行通信的方式選擇、控制串行口的發(fā)送、接收以及保存串行口的狀態(tài)信息,SCON的地址為98H可位尋址。

圖7-3SCON控制字格式SM0、SM1:串行口方式選擇位。SM2:在方式2和3中用作多機通信控制位。REN:允許接收控制位,軟件置1允許接收,軟件清0禁止接收。TB8:發(fā)送數(shù)據(jù)第九位。在方式2和方式3中存放發(fā)送數(shù)據(jù)第九位。RB8:接收數(shù)據(jù)第九位。在方式2和方式3中存放接收到的第九位數(shù)據(jù)。TI:發(fā)送中斷標志。TI置位表示一幀信息發(fā)送結(jié)束。RI:接收中斷標志。RI置位表示一幀數(shù)據(jù)接收結(jié)束。SM0SM1模式功能波特率000110110123同步移位寄存器8位UART

9位UART9位UART波特率為fosc/12波特率可變(T1溢出率*2SMOD/32)

波特率為2SMOD*fosc/64波特率可變(T1溢出率*2SMOD/32)

SM0SM1:串行口方式選擇位

6.3 串行口的波特率串行口有四種工作方式,對應三種波特率。1.方式0:波特率fsoc/12,不受SMOD位影響。2.方式2:波特率=2SMOD*

fosc/64,受SMOD位影響。

波特率=T1溢出率*2SMOD/32

(1)T1溢出率即為一次定時時間的倒數(shù)T1溢出率=1/[(2M-x)·12/fsoc](2)其中x為定時初值,M由T1的工作方式?jīng)Q定。(2)代入(1)得:波特率=例6.1設兩機通信的波特率為2400波特,若晶振為6MHz,串行口工作在方式1,試計算定時器T1的初值。

解:設定時器工作在方式2,M=8,則x為:

2SMOD(6×106)28

2400×384若取SMOD=0,x=249.49≈250SMOD=1,x=242.98≈243=0F3H,舍入誤差較小。實際的波特率為2403.85波特。6.4 串行口的工作方式及應用1.方式0應用同步移位寄存器方式,TXD輸出移位脈沖,RXD輸入/輸出數(shù)據(jù)。方式0應用:利用移位寄存器擴展輸入/輸出口。ORG1000HMOVSCON,#0;設置串行口方式0MOVA,#0FEH;最右一位發(fā)光二極管先亮MOVSBUF,A;開始串行輸出LOOP:JNBTI,LOOP;一幀數(shù)據(jù)未發(fā)送完等待CLRTIACALLDALAYRLA;準備顯示下一位MOVSBUF,A;再一次串行輸出SJMPLOOP其中DALAY為延時程序,延時時間可取為40ms,例:用串行口,工作方式1,波特率2400,晶振fosc=6MHz,編寫初始化程序。由例6.1可知:當SMOD=1,x=242.98≈243=0F3H方式1為8位數(shù)據(jù),方式2,3為9位數(shù)據(jù),方式1,3波特率均為:波特率=T1的溢出率*2SMOD方式2波特率為:波特率=2SMOD*fosc/642、

方式1,2,3及應用初始化程序:INITION:MOVTMOD,#20HMOVTL1,#0F3HMOVTH1,#0F3HSETBTR1;啟動T1MOVPCON,#80HMOVSCON,#40HSETBREN使用串行口方式1,3時,還要對定時器T1初始化例6.3現(xiàn)有二臺單片機進行異步串行通信。

A機作為發(fā)送方,將片內(nèi)RAM60H~6FH中

的數(shù)據(jù)從串行口輸出,定義為方式2發(fā)送。TB8作為奇偶校驗位。B機作為接收方,將A機發(fā)送來的數(shù)據(jù)存入片內(nèi)RAM60H~6FH中,定義為方式2接收,并判奇偶校驗RB8標志,若出錯,則置出錯標志。3.二臺單片機進行異步串行通信TRS:

MOVSCON,#80H;定義方式2

MOVPCON,#00H;波特率為fsoc/64

MOVR0,#60H;設置數(shù)據(jù)地址指針

MOVR7,#10H;設置數(shù)據(jù)長度

LOOP:MOVA,@R0;取數(shù)據(jù)

MOVC,PSW.0;取奇偶校驗位

MOVTB8,C

MOVSBUF,A;啟動發(fā)送

WAIT:JBCTI,NEXT;一幀數(shù)據(jù)發(fā)完否

AJMPWAIT;未完等待

NEXT:INCR0;修改地址指針

DJNZR7,LOOP;未結(jié)束循環(huán)

RETA機發(fā)送程序如下:B機接收程序RECE:MOVSCON,#80HMOVPCON,#00HMOVR0,#60HMOVR7,#10HSETBREN;允許接收LOOP:JBCRI,READ;一幀數(shù)據(jù)收齊跳轉(zhuǎn)AJMPLOOP;未收齊,等待READ:MOVA,SBUF;讀數(shù)據(jù)JNBPSW.0,JUDG;PSW.0=0跳轉(zhuǎn)JNBRB8,ERR;PSW.0=1,RB8=0,出錯SJMPGOOD;兩者均為1,正確JUDG:JBRB8,ERR;PSW.0=0而RB8=1,出錯GOOD:MOV@R0,A;存放接收到數(shù)據(jù)INCR0;修改地址指針DJNZR7,LOOP;未結(jié)束,循環(huán)CLRPSW.5;置正確標志RETERR:SETBPSW.5;置出錯標志RET多機通信要解決的問題主機發(fā)地址幀時,所有的從機都應收到;主機發(fā)送數(shù)據(jù)幀時,只有與本機地址相符的一臺從機能接收到。串行口定義為方式2(或方式3),即九位數(shù)據(jù)傳送方式。

第九位作為地址幀、數(shù)據(jù)幀識別控制位。即當?shù)刂穾诰盼蝗?,數(shù)據(jù)幀第九位取0??紤]數(shù)據(jù)接受有效條件:(1)RI=0;(2)SM2=0或者收到的第九位數(shù)據(jù)等于1。在方式1中是把停止位作為第九位數(shù)據(jù)的,數(shù)據(jù)接受有效條件總是滿足的。而方式2(方式3)存在著真正的第九位數(shù)據(jù),數(shù)據(jù)接受有效條件可由SM2和第九位控制的。

解決的思路解決的方法1.先使所有從機的SM2置1。由于地址幀第九位為1,所有的從機都能收到主機發(fā)來的地址。2.將主機發(fā)來的地址與本機比較,若于本機相符,則該從機SM2置0,否則,保持SM2=1不變。3.主機發(fā)送數(shù)據(jù),由于發(fā)數(shù)據(jù)幀時第九位等于0,此時只有SM2=0的那臺從機能接收到數(shù)據(jù),其它從機均不能收到數(shù)據(jù),直至發(fā)送新的地址幀。習題:本實驗板部分數(shù)據(jù)空間已固定分配:0000--7FFF:32KRAM(62256)空間地址。8501

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論