版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
§第六章串行接口
MCS-51單片機(jī)內(nèi)部有一個(gè)功能很強(qiáng)的全雙工串行口,可同時(shí)接收和發(fā)送數(shù)據(jù)。此串行口能方便地與其他計(jì)算機(jī)或外部設(shè)備實(shí)現(xiàn)數(shù)據(jù)通信,也可用于輸入/輸出口的擴(kuò)展。一、串行通信的基本概念
基本方式:
并行:8位或16位數(shù)據(jù)同時(shí)傳送,速度快、傳輸線多、傳輸距離近。串行:數(shù)據(jù)按位傳輸,速度慢、傳輸線少、傳輸距離遠(yuǎn)。
一、串行通信的基本概念
串行通信方向:
單工:只能單方向傳送數(shù)據(jù)半雙工:同一時(shí)間只能作一個(gè)方向的傳送全雙工:雙向同時(shí)收發(fā)數(shù)據(jù)接收器接收器
發(fā)送器發(fā)送器
數(shù)據(jù)流
半雙工方式發(fā)送器接收器數(shù)據(jù)流接收器發(fā)送器全雙工方式一、串行通信的基本概念
串行通信方式:
異步傳送方式:數(shù)據(jù)按字符為單位傳送,每幀數(shù)據(jù)含起始位(0)、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位(1)4部分組成。同步傳送方式:數(shù)據(jù)按塊傳送,數(shù)據(jù)塊起始處發(fā)同步字符(SYN)。SYN同步字符CRC終止字符開始終止數(shù)據(jù)塊同步通信數(shù)據(jù)格式二、MCS-51單片機(jī)的串行口
1、功能與結(jié)構(gòu):
MCS-51系列單片機(jī)內(nèi)部有一個(gè)全雙工的串行端口:P3.0(RXD)、P3.1(TXD),有4種工作方式。二、MCS-51單片機(jī)的串行口①串行口有兩個(gè)獨(dú)立的接收、發(fā)送緩沖器:SBUF,占用同一地址(99H)。發(fā)送時(shí),只寫不讀;接收時(shí),只讀不寫;中斷標(biāo)志是RI/TI。串行口控制寄存器SCON:
SM0、SM1:串行口工作方式設(shè)置位SM2:方式2和方式3的多機(jī)通訊控制位(方式0不用)REN:串行接收允許位,0-禁止接收,1-允許接收TB8:在方式2、3中,是要發(fā)送的第9位數(shù)據(jù)。RB8:在方式2、3中,是要接收的第9位數(shù)據(jù)。(TB8和RB8在方式0中均不用)TI:發(fā)送中斷標(biāo)志,須由軟件清零。RI:接收中斷標(biāo)志,須由軟件清零。
③電源控制寄存器PCON
字節(jié)地址87H,無(wú)位地址。其中與串行接口有關(guān)的只有D7位(PCON的最高位)SMOD:波特率加倍位,1-加倍,0-不加倍
2、串行口的四種工作方式
SM0SMl工作方式方式簡(jiǎn)單描述波特率000移位寄存器I/O振蕩頻率/1201110位UART可變10211位UART振蕩頻率/32或振蕩頻率/6411311位UART可變方式110位異步通信方式:1個(gè)起始位(0)、8個(gè)數(shù)據(jù)位(低位在前)、1個(gè)停止位(1)TXD端發(fā)送數(shù)據(jù),RXD端接收數(shù)據(jù)方式1波特率可變:波特率=2SMOD/32×(T1的溢出率)溢出率:每秒鐘溢出的次數(shù),定時(shí)時(shí)間的倒數(shù)。
方式2、311位異步通信方式:1個(gè)起始位(0)、8個(gè)數(shù)據(jù)位(低位在前)、1個(gè)附加的第9位和1個(gè)停止位(1)
TXD端發(fā)送數(shù)據(jù),RXD端接收數(shù)據(jù)方式2只有兩種波特率:fosc/32或fosc/64。(2SMOD/64×fosc)。方式3波特率可變:波特率=2SMOD/32×(T1的溢出率)
3、多機(jī)通信主從式多機(jī)通信系統(tǒng)如下圖。利用SM2控制位實(shí)現(xiàn)
主機(jī)TXDRXDTXDRXDRXDRXDTXDTXD從機(jī)2從機(jī)1從機(jī)n三、串行口應(yīng)用舉例
串行口信號(hào)發(fā)送流程:置串口方式(SCON)清中斷標(biāo)志TI發(fā)送數(shù)據(jù)送SBUF等待TI為1(查詢方式或中斷方式)清TI,重復(fù)發(fā)送數(shù)據(jù)三、串行口應(yīng)用舉例
串行口信號(hào)接收流程:置串口方式(SCON)置REN=1,清中斷標(biāo)志RI等待RI為1(查詢方式或中斷方式)從SBUF取數(shù)據(jù)清RI,重復(fù)接收數(shù)據(jù)例1:由串行口發(fā)送帶偶校驗(yàn)位的ASCⅡ碼數(shù)據(jù)塊。設(shè)數(shù)據(jù)塊在片內(nèi)30H~3FH單元。
解:設(shè)單片機(jī)采用12MHZ晶振,串行口工作于方式1,T1用作波特率發(fā)生器,工作于方式2,PCON中的SMOD位為0,發(fā)送的波特率為1200。
例1:另:根據(jù)題意,TMOD的方式控制字為20H(方式2)串行口SCON方式控制字為40H(方式1)相應(yīng)的發(fā)送程序如下:例1:Tstart:MovTMOD,#20HMovTL1,#0E6H MovTH1,#0E6H MovSCON,#40h MovR0,#30h MovR7,#10H
SETBTR1Loop:MOVA,@R0 Movc,p MovACC.7,c MovSBUF,AWait: jnbTI,Wait ClrTi IncR0 DjnzR7,loop Ret例2:由串行口接受帶偶校驗(yàn)位的ASCⅡ碼數(shù)據(jù)塊。設(shè)接受的數(shù)據(jù)塊共10H個(gè)字節(jié),存放于片內(nèi)40H~4FH單元中。解:設(shè)單片機(jī)采用的晶振頻率、波特率、SMOD位的值等均同上題。相應(yīng)的接收子程序如下:
例3:設(shè)T1選工作方式2,fosc=11.0592MHz,SMOD=0,串行口工作于方式1,試設(shè)計(jì)一個(gè)波特率為2400的發(fā)生器。解:2400=n/32 有n=76800
T1的溢出率:N=1/t=fosc/12x(256-x)
故x=244D=0F4H
MOVSCON,#40H MOV TMOD,#20H MOV PCON,#00H MOV TL1,#0F4H MOV TH1,#0F4H SETB TR1例4:編寫發(fā)送程序,將60H~6FH的數(shù)據(jù)塊從串行口輸出。將串行口定義為工作方式2發(fā)送,TB8作奇偶校驗(yàn)位。 MOV SCON,#80H MOV PCON,#80H MOV R0,#60H MOV R7,#10HLOOP: MOV A,@R0 MOV C,PSW.0 MOV TB8,C MOV SBUF,AWAIT:JBC TI,CONT SJMP WAIT CONT:INC R0 DJNZ R7,LOOP RET例5:設(shè)串行口外接一個(gè)串行輸入設(shè)備,單片機(jī)和該設(shè)備采用11位異步通信方式,波特率2400,晶振為11.0592MHz,串行口選擇工作方式3,定時(shí)器T1選工作方式2,SMOD=0時(shí),計(jì)算得TL1初始值為0F4H。編制其接收程序。
PVE: MOV TMOD,#20H MOV PCON,#00H MOV TH1,#0F4H MOV TL1,#0F4H SETR TR1 MOV R0,#50H MOV R7,#10H MOV SCON,#0D0HWAIT: JBC RI,PRI SJMP WAITPRI: MOV A,SBUF JNB PSW.0,PNP JNB RB8,PER SJMP RIGHTPNP: JB RB8,PERRIGHT: MOV @R0,A INC R0 DJNZ R7,WAIT CLR PSW.5 ;奇偶校驗(yàn)正確 RETPER: SETB PSW.5 ;奇偶校驗(yàn)出錯(cuò) RET四﹑串行擴(kuò)展I/O接口:1.利用SPI擴(kuò)展I/O接口:
⑴擴(kuò)展并行輸出口:
利用SPI擴(kuò)展并行輸出口示意圖,見圖6-41。
如圖6-41,通過并行口輸出片內(nèi)RAM中20H和21H兩個(gè)單元數(shù)據(jù)。MOVR7,#2;置計(jì)數(shù)器MOVR0,#20H;緩沖區(qū)指針MOVSCON,#00H;設(shè)置串行口為方式0CLRP1.0;允許串行接收OUT1:MOVA,@R0;取數(shù)據(jù)MOVSBUF,A;啟動(dòng)發(fā)送過程JNBTI,$;等待一幀發(fā)送結(jié)束CLRTIINCR0;指向下一數(shù)據(jù)DJNZR7,OUT1SETBP1.0;送出并行數(shù)據(jù)RET⑵擴(kuò)展并行輸入口:
利用SPI擴(kuò)展并行輸入口的示意圖,見圖6-42。
圖6-42中,經(jīng)串行口從16位的并行擴(kuò)展口讀入2個(gè)字節(jié)數(shù)據(jù),并存入片內(nèi)RAM的20H和21H單元中。MOVR7,#2;置計(jì)數(shù)器MOVR0,#20H;緩沖區(qū)指針CLRP1.0;置入并行數(shù)據(jù)SETBP1.0;允許串行移位MOVSCON,#10H串行口方式0,允許接收stop:JNBRI,$;等待一幀接收結(jié)束CLRRIMOVA,SBUF;讀入數(shù)據(jù)MOV@R0,A;送入緩存區(qū)INCR0;調(diào)整指針DJNZR7,stop;未完,繼續(xù)RET例6.5:用中斷法編寫串行口方式1下發(fā)送程序。設(shè)單片機(jī)主頻為6MHz,定時(shí)器T1用作波特率發(fā)生器,波特率為2400bps,發(fā)送字符塊在內(nèi)部RAM的起始地址為BLOCK單元,字符塊長(zhǎng)度為L(zhǎng)EN。要求奇校驗(yàn)位在數(shù)據(jù)的第7位發(fā)送,字符塊長(zhǎng)度LEN先發(fā)送。解:為使發(fā)送波特率為2400bps,取SMOD=1,計(jì)算得TH1和TL1的時(shí)間常數(shù)初值為0F4H。本程序由主程序和發(fā)送子程序兩部分組成。其流程圖如圖6-13所示。主程序用于定時(shí)器T1和串行口初始化、發(fā)送字符塊長(zhǎng)度字節(jié)LEN、中斷系統(tǒng)初始化;中斷服務(wù)程序用于形成奇校驗(yàn)位并加到發(fā)送數(shù)據(jù)第7位和發(fā)送這個(gè)字符。ORG2000HBLOCKDATA20HLENDATA14HSTART:MOVTMOD,#20H;定時(shí)器T1為方式2M0VTL1,#0F4H;波特率為2400MOVTH1,#0F4H;給TH1送重裝初值MOVPCON,#80H;令SMOD=1SETBTR1;啟動(dòng)T1MOVSCON,#40H;串行口為方式1MOVR0,#BLOCK;字符塊起始址送R0MOVA,#LENM0VR1,A;字符塊長(zhǎng)度字節(jié)送R1MOVSBUF,A;發(fā)送LEN字節(jié)SETBEA;開CPU中斷SETBES;允許串行口中斷WAIT:SJMPWAIT;等待中斷發(fā)送子程序:
ORG0023HLJMPTXSVE;轉(zhuǎn)發(fā)送服務(wù)程序ORG2160TXSVE:CLRES;關(guān)串行口中斷CLRTI;清TI
MOVA,@R0;發(fā)送字符送AMOVC,PSW.0;奇偶校驗(yàn)位送CCPLC;形成奇校驗(yàn)位送CMOVACC.7,C;使A中最高位為奇校驗(yàn)位MOVSBUF,A;啟動(dòng)發(fā)送DJNZR1,NEXT;所有字符發(fā)完停止發(fā)送INCR0;未完,字符塊指針加1SJMPENDTNEXT:CLRESENDT:RETI;中斷返回例6.6:用查詢法編寫串行口在方式3下的接收程序。設(shè)單片機(jī)主頻為6MHz,波特率為2400bps,接收數(shù)據(jù)區(qū)起始地址為RBLOCK(內(nèi)部RAM),接收數(shù)據(jù)塊長(zhǎng)度由始發(fā)端發(fā)送。解:本程序由主程序和接收子程序組成。ORG2000HTBLOCKDATA40START:MOVTMOD,#20H;T1工作于方式2MOVTH1,#0F4H;設(shè)置時(shí)間常數(shù)初值MOVTL1,#0F4HSETBTR1;啟動(dòng)T1MOVSCON,#0D0H;串行口工作于方式3接收MOVPCON,#80H;使SMOD=1MOVR0,RBLOCK;接收數(shù)據(jù)區(qū)起始址送R0MOVR3,#00H;累加和寄存器清零ACALLRISV;調(diào)接收子程序::SJMP$;動(dòng)態(tài)暫停接收子程序:接收子程序流程圖如圖6-14(b)所示。參考程序?yàn)椋篟ISV:CLRRI;清RILEN:JNBRI,RXLEN;等待接收數(shù)據(jù)塊長(zhǎng)度字節(jié)CLRRI;接收完后清RIMOVA,SBUF;數(shù)據(jù)塊長(zhǎng)度字節(jié)送A
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 消防安全網(wǎng)格化培訓(xùn)
- 酒店禮賓服務(wù)計(jì)劃培訓(xùn)
- 2024教師安全培訓(xùn)
- 數(shù)控車削加工技術(shù) 課件 項(xiàng)目五 數(shù)控車床的面板操作
- 四川省成都市西藏中學(xué)2024-2025高一(6-7班)10月月考英語(yǔ) - 副本
- 湖北省鄂東南省級(jí)示范高中教育教學(xué)改革聯(lián)盟學(xué)校2025屆高三上學(xué)期期中聯(lián)考語(yǔ)文試卷(含答案)
- 2024-2025學(xué)年江蘇省揚(yáng)州市邗江區(qū)維揚(yáng)中學(xué)八年級(jí)(上)10月月考數(shù)學(xué)試卷(含答案)
- 獸醫(yī)專業(yè)基礎(chǔ)理論知識(shí)單選題100道及答案解析
- 部編版六年級(jí)語(yǔ)文上冊(cè)第七單元口語(yǔ)交際《聊聊書法》教學(xué)課件
- 第二-商品和貨幣
- 兼職潛水教練合同
- 防寒潮安全教育
- 中藥基礎(chǔ)知識(shí)培訓(xùn)試題
- 華為認(rèn)證數(shù)通高級(jí) HCIE-Datacom H12-891考試題庫(kù)-上(單選、多選題匯總)
- 增資擴(kuò)產(chǎn)政府措施
- 2024年安徽合肥興泰商業(yè)保理有限公司招聘筆試參考題庫(kù)含答案解析
- 《釬焊方法及工藝》課件
- 住宅小區(qū)人群分析報(bào)告
- 第10課《興趣是個(gè)好老師》課件
- 四年級(jí)上冊(cè)綜合實(shí)踐課課件
- 醫(yī)療標(biāo)書的供貨方案
評(píng)論
0/150
提交評(píng)論