




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
6.6MCS-51單片機內部串行口及其應用6.6.1.8051串行口結構1.串行數據發送電路由“SBUF(發送)”、“零檢測器”和“發送控制器“等電路組成,用于串行口的發送;2.串行數據接收電路由“SBUF(接收)”、“接收移位寄存器”和“接收控制器”等組成,用于串行口的接收。
SBUF(發送)和SBUF(接收),
8位緩沖寄存器,共用一個端口地址99H3.數據緩沖寄存器SBUFMOVSBUF,A(發送)產生寫SBUF脈沖,SBUF(發送)存放將要發送的字符數據
MOVA,SBUF(接收)產生讀SBUF脈沖,SBUF(接收)存放串行口接收到的字符數據4.串行通信時鐘
發送和接收都是在發送時鐘和接收時鐘控制下進行的,發送時鐘和接收時鐘都必須同字符位數的波特率保持一致。
時鐘可由主機頻率fosc經過分頻后提供,也可由內部定時器T1溢出率經過16分頻后提供,定時器T1的溢出率受SMOD觸發器狀態的控制,SMOD位于電源控制寄存器PCON的最高位串行口的發送
MOVSBUF,A自動在發送字符前后添加起始位、停止位和其它控制位。
5.串行口數據發送與接收串行口的接收
啟動發送
接收電路連續接收到一幀字符后就自動的去掉起始位,并使接收中斷標志位RI=1,該標志位可供查詢,也可以向CPU提出中斷請求。CPU響應中斷后可以通過接收指令(MOVA,SBUF)把接收到的數據送入指定單元。6.6.2.串行口的工作方式控制8051單片機串行口包含4種工作方式1.方式0:同步移位收發方式。
在方式0下串行口SBUF用作移位寄存器,為8051單片機提供了連接串行設備的接口。此方式下TxD(P3.1)引腳輸出外部串行設備的移位脈沖,RxD(P3.0)引腳用作串行數據的輸入和輸出,其波特率固定為fosc/12,但是由于信號的衰減,傳輸距離一般不超過2米。2.方式1:雙機異步通信方式。方式1是雙機異步通信方式。字符幀格式為10位(8位數據位、1位起始位和1位停止位),波特率由定時器T1的溢出率決定。
其中SMOD為波特率倍增選擇,由PCON寄存器的最高位設置;fosc為8051單片機主時鐘頻率,一般選6MHz或12MHz;K為定時器T1的計數器長度,T1若選工作方式2,則K=8,N為定時器計數初值。
方式2和方式3字符幀格式為11位(比方式1多1個第9位:TB8/RB8),除波特率設置方式不同外其它無差別。方式3的波特率由定時器T1(溢出率/n)確定,方式2的波特率由2SMOD×fosc/64確定;方式2和方式3雖為多機異步通信方式,但是也可用于雙機之間通信,多機通信時TB8/RB8為多機通信控制位,雙機之間通信TB8/RB8可作其它用途(如奇偶校驗位)。3.方式2和方式3:多機異步通信方式。6.6.3.8051串行口工作方式設置1.串行口控制寄存器SCON(98H)(1)SM0和SM1:串行口方式控制位,設定串行口的工作方式
(2)SM2:多機通信控制位,方式2、3下用于多機通信時的狀態設置,其它方式應設置為0狀態。(3)REN:允許接收控制位。REN=0,則禁止串行口接收REN=1,則允許串行口接收(4)TB8:發送數據第9位,方式2、3時存放發送數據第9位。TB8由軟件置位或復位。2.電源控制寄存器PCON
其最高位SMOD可以設置串行口波特率倍數,SMOD=1,方式1、方式2和方式3下波特率加倍。發送(TI=0)MOVSBUF,AA數據送入SBUF(發送)
RxD線發出8位數據,TxD線發送同步脈沖。8位數據發送完后,TI由硬件置位,向CPU請求中斷(若中斷開放)。CPU響應中斷后先用軟件使TI清零,然后再給“SBUF(發送)”送下一個欲發送字符。6.6.4.8051串行口工作過程及應用
1.工作方式0。
SM2、TB8、RB8不起作用,應設置“0”態接收(RI=0和REN=1)串行數據由RxD線輸入,TxD線輸出同步脈沖。接收電路接收到8位數據后,RI自動置“1”并發出串行口中斷請求(若中斷開放)。CPU查詢到RI=1或響應中斷后便可通過MOVA,SBUF將
SBUF(接收)數據送入A。
例8051單片機系統晶振頻率fosc=6MHz,根據圖示線路連接,請編出發光二極管自左至右循環點亮的程序,設循環周期為8S。ORG0000HLJMPSTARTORG0100HSTART:MOVSCON,#00HCLRP1.0MOVA,#01HMOVSBUF,ASETBP1.0WAIT:JBCTI,SBVSJMPWAITSBV:LCALLDELAY1SCLRTIRLACLRP1.0MOVSBUF,ASJMPWAITENDORG0300HDELAY1S:MOVR7,#14HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBTR0HERETF0,CONSJMPHERECON:DJNZR7,NEXTRETNEXT:MOVTH0,#3CHMOVTL0,#0B0HSJMPHERE定時器T0的1S延時子程序ORG0000HLJMPSTARTORG0023H
LJMPSBVORG0100HSTART:MOVSCON,#00HCLRP1.0MOVA,#01H
MOVIE,#90HMOVSBUF,ASETBP1.0WAIT:SJMPWAITORG0200HSBV:LCALL
DELAY1SCLRTIRLACLRP1.0MOVSBUF,ASJMPWAITEND例
根據圖示電路,編出8051單片機串行輸入開關量并把它存入20H單元的程序。要求控制開關KC=1時,8051單片機處于等待狀態,KC=0時,8051單片機輸入開關量。
ORG0000HLJMPSTARTORG0100H
START:SETBP1.1
JBP1.0,
$CLRP1.1
MOVSCON,#10H
JNBRI,$
CLRRI
MOVA,
SBUF
MOV20H,A
SJMPSTART
END2.工作方式1。
接收電路確定RxD線上的起始位后,在移位脈沖的作用下依次接收數據幀,把停止位送入RB8中,而后將接收到的8位數據存入SBUF并置位接收中斷標志位RI,RI=1可向CPU發出中斷請求也可供查詢。
發送電路自動在8位發送數據前后分別添加1位起始位和1位停止位,而后在移位脈沖作用下通過TxD線依次發送數據幀,發送完成后TxD線恢復高電平且置位發送中斷標志位TI,TI=1可向CPU發出中斷請求也可供查詢。發送(TI=0)MOVSBUF,A接收(RI=0、REN=1和SM2=0)例已知8051單片機串行口采用方式1進行通信,設單片機主頻為6MHz,定時器T1用作波特率發生器(方式2),要求通信波特率為9600bps。被發送數據塊在內部RAM的地址為TBLOCK單元,字符塊長度為LEN,字符塊長度LEN率先發送,用查詢法編寫串行口方式1發送程序。ORG0000HLJMPSTARTORG0100HTBLOCKDATA20HLENDATA14HSTART:MOVTMOD,#20HMOVTL1,#0FDHMOVTH1,#0FDHMOVPCON,#80HSETBTR1MOVSCON,#40HMOVR0,#TBLOCKMOVA,#LENMOVR2,AMOVSBUF,AHERE:JBCTI,TXSVESJMPHERETXSVE:CLRTIMOVA,@R0MOVSBUF,A
WAIT:JBCTI,NEXTSJMPWAITDJNZR2,NEXTSJMPSTOPNEXT:INCR0SJMPTXSVESTOP:SJMPSTOPEND例
已知8051單片機串行口采用方式1進行通信,設單片機主頻為6MHz,定時器T1用作波特率發生器(方式2),要求通信波特率為9600bps。接收數據塊在內部RAM的首地址為RBLOCK單元,接收數據塊長度為LEN,用中斷法編寫串行口方式1下的接收程序。ORG0000HLJMPSTARTORG0023HLJMPREPORG0100HRBLOCKDATA30HLENDATA14HSTART:MOVTMOD,#20HMOVTL1,#0FDHMOVTH1,#0FDHMOVPCON,#80HSETBTR1MOVSCON,#50HMOVR0,#RBLOCKSETBEASETBESHERE:SJMPHEREORG0200H
REP:MOVR2,SBUFCLREARXD:CLRRIWAIT:JNBRI,WAITMOVA,SBUFMOV@R0,AINCR0DJNZR2,RXDSETBEARETIEND
多機通信時,SM2=0、REN=1、TB8/RB8做多機通信控制位。
雙機之間通信時,SM2=0、REN=1、TB8/RB8可做奇偶位。3.工作方式2和方式3。發送(TI=0)發送前要求把第9位數據位預先裝入SCON的TB8,由用戶安排,可以是奇偶校驗位或其他控制位。
SETBTB8
CLRTB8
MOVSBUF,A接收(RI=0\REN=1\SM2=0)RB8存放第9數據位。例
主從式8051單片機構成的多機通信系統如圖所示,設單片機主頻為6MHz,定時器T1用作波特率發生器(方式2),要求通信波特率為9600bps。請編出主機和從機的通信程序(1)主機SM2設為0,所有從機SM2設為1,以便接收主機發來的地址,主從機的REN均設為1。(2)主機向尋址從機發送地址時,第9數據位(TB8)設為1發送,以指示所有從機接收此地址。(3)所有從機在SM2=1、RB8=1和RI=0時,接收主機發來的從機地址,進入相應的中斷服務程序,并和本機地址比較以確認是否為被尋址從機。(4)被尋址從機通過指令清除SM2,以正常接收數據,并向主機發回接收到的從機地址,供主機核對。未被尋址的從機保持SM2=1,并退出各自中斷服務程序。(5)完成主機和被尋址從機之間的數據通信,被尋址從機在通信完成后重新使SM2=1,并退出中斷服務程序,等待下次通信。
在多機通信中,主機通常把從機地址作為8位數據(TB8=1)發送。因此,8051構成的多機通信系統最多允許255臺從機(地址為00H-FEH),FFH作為復位控制命令由主機發送給從機,以便使被尋址從機的SM2=1。
在多機通信中,須傳送供主機或從機識別的命令或狀態字。
①
兩條控制命令為:00H-主機發送從機接收命令;01H-從機發送主機接收命令。以數據形式發送(既第9數據位TB8設為0)。
②
從機狀態字。該狀態字由被尋址從機發送,為主機所接收,用于指示從機的工作狀態。(1)主機程序。由主機程序和主機通信子程序組成。主程序用于定時器T1初始化、串行口初始化和傳遞主機通信子程序所需入口參數。通信子程序用于主機和從機間一個數據塊的傳送。程序中所用寄存器分配如下:
R0:存放主機發送數據塊始址
R1:存放主機接收數據塊始址
R2:存放被尋址的從機地址
R3:存放主機發出的命令
R4:存放發送數據塊長度
R5:存放接收數據塊長度ORG0000HLJMPSTART
ORG0100H
SLAVEDATA00H
COMMANDDATA00H/01HSTART:MOVTMOD,#20H
MOVTH1,#0F4H
MOVTL1,#0F4H
SETBTR1
MOVSCON,#0D8H
MOVPCON,#00H
MOVR0,#40HMOVR1,#20HMOVR2,#SLAVE
MOVR3,#COMMAND
MOVR4,#20
MOVR5,#20
LCALLMCOMMU
SJMP$
ORG0200HMCOMMU:MOVA,R2
MOVSBUF,A
JNBRI,
$
CLRRIMOVA,SBUFXRLA,R2
JZMTXD2
MTXD1:MOVSBUF,#0FFH
SETBTB8SJMPMCOMMU
MTXD2:CLRTB8
MOVSBUF,R3
JNBRI,$
CLRRIMOVA,SBUFJNBACC.7,MTXD3
SJMPMTXD11)主機主程序2)主機通信子程序
MTXD3:CJNER3,#00H,MRXDJNBACC.0,MTXD1
MTXD4:MOVSBUF,@R0
JNBTI,$
CLRTI
INCR0
DJNZR4,MTXD4
RETMRXD:JNBACC.1,MTXD1
MRXD1:JNBRI,$
CLRRIMOVA,SBUFMOV@R1,A
INCR1DJNZR5,MRXD1
RETEND(2)從機程序從機程序有從機主程序和從機中斷服務程序組成。主程序用于定時器T1初始化、串行口初始化和中斷初始化。中斷服務程序用于對主機的通信。在中斷服務程序中,SLAVE是從機的本機地址,F0H(即PSW.5)為本機發送就緒位地址,PSW.1=1為本機接收就緒位地址。寄存器分配為:
R0:存放發送數據塊始址
R1:存放接收數據塊始址
R2:存放發送數據塊長度
R3:存放接收數據塊長度
ORG0000HLJMPSTARTORG0023HLJMPSINTSBV
ORG0100H
SLAVEDATA00HSTART:MOVTMOD,#20HMOVTH1,#0F4H
MOVTL1,#0F4H
SETBTR1
MOVSCON,#0F8H
MOVPCON,#00HMOVR0,#20H
MOVR1,#40H
MOVR2,#20MOVR3,#20SETBEA
SETBES
CLRRISJMP$1)從機主程序LOOP1:MOVSBUF,@R0
JNBTI,$
CLRTIINCR0DJNZR2,LOOP1
SETBSM2SJMPRETURNSCHRX:JBPSW.1,SRXDMOVSBUF,#00HSETBSM2SJMPRETURN
SRXD:MOVSBUF,#01HLOOP2:JNBRI,$
CLRRIMOV@R1,SBUF
INCR1DJNZR3,LOOP2
SETBSM2SJMPRETURN
END
SRXD2:MOVA,SBUFCJNEA,#02H,NEXT
NEXT:JCSRXD3
CLRTIMOVSBUF,#80H
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 茂名二模文綜政治試題
- JavaScript Vue.js前端開發任務驅動式教程-課件 仇善梁 模塊1-8 JavaScript知識入門及應用 - Vue.js基礎知識及應用
- 老年骨科護理課件
- 老年術后護理課件
- 老年護理案例分析課件
- 出租車司機權益保障及服務質量提升合同
- 餐飲店加盟與承包合同規范
- 成品柴油零售連鎖經營合同
- 車棚施工安全標準與環境保護合同
- 老人二便護理課件
- 幕墻工安全技術交底
- 集裝箱七點檢查表
- 部編初一語文閱讀理解最全答題模板與技巧+專項訓練練習題
- 2023年湖北省高中學業水平合格性考試數學試題試卷及答案解析
- 保定一中1+3物理試卷
- 弟子規注音A4直接打印版
- 金融學原理重點總結彭興韻
- Cmk設備能力指數分析表
- J17J177 鋼絲網架珍珠巖復合保溫外墻板建筑構造
- 水泥檢測培訓試題(附答案)
- 譯林版三年級英語上冊《全冊課件》ppt
評論
0/150
提交評論