




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
課題十一單片機串口通信任務(wù)一PC機與單片機串行通信任務(wù)二單片機與單片機串行通信課題十一單片機串口通信任務(wù)一PC機與單片機串行通信單片機系統(tǒng)接收電腦PC機串口發(fā)過來的ASCII碼,并在液晶LCD1602上顯示出來;同時把收到的ASCII碼回傳給PC機串口,以驗證串口接收、發(fā)送數(shù)據(jù)的正確性。單片機LCD顯示電路復(fù)位電路時鐘電路電源電路串行口通信電路圖7.1單片機串行通信控制系統(tǒng)組成方框圖計算機串行通信基礎(chǔ)通信:并行通信與串行通信
并行通信特點:傳送控制簡單、速度快,但傳輸線較多,成本高。
串行通信特點:傳送控制復(fù)雜、速度慢,傳輸線少,成本低異步通信與同步通信收、發(fā)設(shè)備時鐘獨立,以字符(幀)為單位傳輸
1.1串行通信的基本概念異步通信
異步通信幀格式起始位(1位);數(shù)據(jù)位(8位);奇偶校驗位(1位,可無校驗位);停止位(1位)。
特點易于實現(xiàn)效率不高同步通信(發(fā)、收時鐘直接連接,效率高。板內(nèi)元件間的SPI接口)
串行通信的傳輸方向單工
半雙工
全雙工80C51有1個全雙工串行口
信號的調(diào)制與解調(diào)DTE:數(shù)據(jù)終端設(shè)備DCE:數(shù)據(jù)通信設(shè)備調(diào)制解調(diào)器調(diào)制解調(diào)串行通信的錯誤校驗奇偶校驗
發(fā)送字符時,數(shù)據(jù)位尾隨1位奇偶校驗位(1或0)。奇校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為奇數(shù);偶校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為偶數(shù)。接收字符時,對“1”的個數(shù)進行校驗,若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。
代碼和校驗
發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生的校驗和字節(jié)附加到數(shù)據(jù)塊的末尾。接收方在接收數(shù)據(jù)時要對數(shù)據(jù)塊(除校驗字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與收到的“校驗和”進行比較,相符則無差錯,否則就認(rèn)為傳送過程出現(xiàn)了差錯。傳輸速率與傳輸距離傳輸速率比特率:每秒鐘傳送的信息量。單位:位/秒(bps)波特率:每秒鐘傳送碼元數(shù)目,單位:波特(Baud)
基帶傳輸(每個碼元帶有“1”或“0”這1bit信息,傳碼率與傳信率相同),波特率和比特率是相同的。
常用波特率為:2400、4800、9600、14.4K、19.2K等
傳輸距離與傳輸速率的關(guān)系傳輸距離隨波特率的增加而減小。1.2串行通信接口標(biāo)準(zhǔn)RS-232C定義的是DTE與DCE間的接口標(biāo)準(zhǔn)。機械特性DB-25(陽頭)連接器DB-9(陽頭)連接器陽頭通常用于計算機側(cè),陰頭用于連接線側(cè)
功能特性插針序號信號名稱功能信號方向1PGND保護接地2(3)TXD發(fā)送數(shù)據(jù)(串行輸出)DTE→DCE3(2)RXD接收數(shù)據(jù)(串行輸入)DTE←DCE4(7)RTS請求發(fā)送DTE→DCE5(8)CTS允許發(fā)送DTE←DCE6(6)DSRDCE就緒(數(shù)據(jù)建立就緒)DTE←DCE7(5)SGND信號接地8(1)DCD載波檢測DTE←DCE20(4)DTRDTE就緒(數(shù)據(jù)終端準(zhǔn)備就緒)DTE→DCE22(9)RI振鈴指示DTE←DCE電氣特性RS-232C采用負(fù)邏輯電平,規(guī)定(-3~-25V)為邏輯“1”,(+3~+25V)為邏輯“0”。-3V~+3V是未定義的過渡區(qū)。試比較:電平轉(zhuǎn)換電路(如MAX232)。
過程特性遠(yuǎn)程通信,需要調(diào)制解調(diào)器近程通信,不需要調(diào)制解調(diào)器無聯(lián)絡(luò)線方式聯(lián)絡(luò)線短接(偽連接)方式
RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路早期常用MC1488、MC1489近期常用MAXM232:
片內(nèi)帶有自升壓電路僅需+5V電源內(nèi)含2個發(fā)送器,2個接收器
采用RS-232C接口存在的問題傳輸距離短、速率低
通常不超過15米,速率20Kbps有電平偏移
RS-232收發(fā)共地,地電流會使電平偏移出現(xiàn)邏輯錯誤??垢蓴_能力差
RS-232常用單端輸入,易混入干擾。(故用大擺幅)新標(biāo)準(zhǔn)RS-485改善了傳輸特性,應(yīng)用廣泛!
1.280C51單片機的串行口1.2.180C51串行口的結(jié)構(gòu)1個全雙工串口:通信或接口擴展
接收發(fā)送緩沖器邏輯同名、物理分開;接收雙緩沖。
1.2.280C51串行口的控制寄存器串行口控制寄存器SCONSM0和SM1:工作方式選擇位76543210SCONSM0SM1SM2RENTB8RB8TIRI字節(jié)地址:98HSM0SM1方式說明波特率000移位寄存器fosc/1201110位UART(8位數(shù)據(jù))可變10211位UART(9位數(shù)據(jù))fosc/64或fosc/3211311位UART(9位數(shù)據(jù))可變SM2:多機通信控制位SM2=1時,接收機處于地址幀篩選狀態(tài)。若RB8=1,該地址幀信息可進入SBUF,并使RI為1,進而在中斷服務(wù)中再進行地址號比較;若RB8=0,該幀不是地址幀,應(yīng)丟掉,且保持RI=0。SM2=0時,接收機處于地址幀篩選被禁止?fàn)顟B(tài)。不論收到的RB8為0或1,均可以使收到的信息進入SBUF,并使RI=1。此時的RB8通常為校驗位。REN:串行接收使能位,軟件置1時,啟動接收過程。TB8:多機方式發(fā)送的第9位多機方式的地址/數(shù)據(jù)幀標(biāo)志。也可作為奇偶校驗位。
RB8:多機方式接收的第9位多機方式的地址/數(shù)據(jù)幀標(biāo)志。也可作為奇偶校驗位。
TI:發(fā)送中斷標(biāo)志位,要由軟件清0RI:接收中斷標(biāo)志位,要由軟件清0電源控制寄存器PCONSMOD:波特率倍增位。在串行口方式1、方式2、方式3時,波特率與SMOD有關(guān),當(dāng)SMOD=1時,波特率提高一倍。復(fù)位時,SMOD=0。
76543210PCONSMOD字節(jié)地址:97H1.2.380C51串行口的工作方式方式0:同步移位寄存器,用于擴展并行口RXD:輸入或輸出引腳TXD:移位脈沖輸出接收和方式都是8位波特率固定為:fosc/12數(shù)據(jù)輸出:
CLR用于對74LS164清0
74LS164串口轉(zhuǎn)并口程序Led左移:#include<reg52.h>#include<intrins.h>#defineuintunsignedint#defineucharunsignedcharvoidDelay(uintx){ uchari; while(x--) { for(i=0;i<120;i++); }}voidmain(){ ucharc=0x80; SCON=0x00; TI=1; while(1) { c=_crol_(c,1); SBUF=c; while(TI==0); TI=0; Delay(400); }}數(shù)據(jù)輸入:
S/L負(fù)脈沖將并行數(shù)據(jù)裝入,高電平時啟動單片機進行數(shù)據(jù)輸入。
74LS165并口轉(zhuǎn)串口開關(guān)模擬#include<reg52.h>#include<intrins.h>#include<stdio.h>#defineuintunsignedint#defineucharunsignedcharsbitSPL=P2^5;voidDelay(uintx){ uchari; while(x--) { for(i=0;i<120;i++); }}voidmain(){ SCON=0x10; while(1) { SPL=0; SPL=1; while(RI==0); RI=0; P0=SBUF; Delay(20); }}方式1:10位幀,用于雙機通信起始位:1位數(shù)據(jù)位:8位停止位:1位串行發(fā)送:(寫SBUF啟動發(fā)送過程)
串行接收:(置REN=1啟動接收過程)
方式2和方式3:11位幀,用于多機通信起始位:1位數(shù)據(jù)位:9位停止位:1位串行發(fā)送:(寫SBUF啟動發(fā)送過程)
串行接收:(置REN=1啟動接收過程)
1.2.480C51波特率確定與初始化步驟波特率的確定波特率的計算固定波特率:
方式0波特率=fosc/12
方式2波特率=(2SMOD/64)*
fosc可變波特率:
方式1波特率=(2SMOD/32)*(T1溢出率)
方式3波特率=(2SMOD/32)*(T1溢出率)
T1溢出率=fosc/{12×[256-(TH1)]}波特率的選擇波特率要選擇標(biāo)稱值,由于TH1的初值是整數(shù),為了減小波特率計算誤差,晶振頻率要選為11.0592MHz。
方式1和方式3波特率與TH1初值的對應(yīng)關(guān)系:
波特率/(b/s)19.2k9600480024001200TH1初值FDHFDHFAHF4HE8HSMOD10000串行口初始化步驟確定T1的工作方式(TMOD)計算T1的初值,裝載TH1、TL1啟動T1(置位TR1)確定串行口工作方式(SCON)串口中斷設(shè)置(IE、IP)1.3單片機與PC機間的通信硬件連接
直接連接交叉連接圖7.7串行通信模塊與單片機的接口電路原理圖【項目實踐】圖7.5MAX232芯片引腳圖圖7.5MAX232芯片內(nèi)部框圖1.算法設(shè)計編寫單片機異步通信程序步驟如下:(1)設(shè)置串口工作方式。此時需對串行控制器SCON中的SM0、SM1進行設(shè)置。PC機與單片機的通信中一般選擇串口工作在方式1下。串行控制器SCON(98H)的格式如下所示:SM0SMlSM2RENTB8RB8TIRI(2)選擇波特率發(fā)生器。選擇定時器l或定時器2做為其波特率發(fā)生器。
【活動三】軟件設(shè)計(3)設(shè)置定時器工作方式。當(dāng)選擇定時器1做為波特率發(fā)生器時,需設(shè)置其方式寄存器TMOD為計數(shù)方式并選擇相應(yīng)的工作方式(一般選擇方式2以避免重裝定時器初值);當(dāng)選擇定時器2做為波特率發(fā)生器時,需將T2CON設(shè)置為波特率發(fā)生器工作方式。(4)設(shè)置波特率參數(shù)。影響波特率的參數(shù)有二,一是特殊寄存器PCON的SMOD位,另一個是相應(yīng)定時器初值。(5)允許串行中斷。因在程序中我們一般采有中斷接收方式,故應(yīng)設(shè)EA=l、ES=1。(6)允許接收數(shù)據(jù)。設(shè)置SCON中的REN為1。表示允許串行口接收數(shù)據(jù)。(7)允許定時/計數(shù)器工作。此時開啟定時/計數(shù)器,使其產(chǎn)生波特率。(8)編寫串行中斷服務(wù)程序。當(dāng)有數(shù)據(jù)到達串口時,系統(tǒng)將自動執(zhí)行所編寫的中斷服務(wù)程序。(9)收/發(fā)相應(yīng)數(shù)據(jù)。注意的是發(fā)送操作完成需將T1清零,接收工作完成后需將R1清零。串口發(fā)送數(shù)據(jù)用單片機接收:#include<reg51.h>voidmain(){REN=1;SM0=0;SM1=1;TMOD=0X20;TH1=0XFD;TL1=0XFD;TR1=1;if(RI==1){P1=SBUF;RI=0;}}
2.程序設(shè)計(1)主程序設(shè)計主程序主要完成硬件初始化、子程序調(diào)用等功能。①初始化首先調(diào)用LCD子程序,設(shè)置LCD的DDRAM地址。②串口收發(fā)數(shù)據(jù)當(dāng)串口接收到數(shù)據(jù),則繼續(xù)等待串口接收數(shù)據(jù);若RI為1,表明串口成功接收數(shù)據(jù),進入串口中斷服務(wù)子程序,單片機接收數(shù)據(jù)。并將串口成功接收數(shù)據(jù)標(biāo)志位RI清零,調(diào)用LCD顯示接收數(shù)據(jù)子程序,在LCD上顯示單片機從串口接收到的數(shù)據(jù)。主程序設(shè)計流程圖如圖7.5所示?!卷椖繉嵺`】主程序設(shè)計流程圖如圖7.5所示。【項目實踐】圖6.5主程序設(shè)計流程圖【項目實踐】(2)串口接收發(fā)送數(shù)據(jù)中斷服務(wù)子程序設(shè)計TI為0,把串口接收緩沖器SBUF中的數(shù)據(jù)寫入串口接收數(shù)據(jù)單元RECDATA,再把該數(shù)據(jù)送到串口發(fā)送緩沖器SBUF中,傳給PC機,置串口成功接收數(shù)據(jù)標(biāo)志位TI為1,表明串口成功接收發(fā)送數(shù)據(jù),最后中斷子程序返回。串口收發(fā)數(shù)據(jù)。【項目實踐】#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitlcden=P2^2;sbitlcdrs=P2^0;sbitlcdrw=P2^1;ucharnum,shu,recdata;ucharcodetable[]="recdata";voiddelay(uintz){uintx,y;for(x=z;x>0;x--) for(y=110;y>0;y--);}voidwrite_com(ucharcom){lcdrs=0;P1=com; delay(5); lcden=1; delay(5); lcden=0;}
voidinit(){lcden=0; write_com(0x38);write_com(0x0c);write_com(0x0f);write_com(0x06);write_com(0x01);}
voidwrite_data(uchardate){lcdrs=1; P1=date; delay(5); lcden=1; delay(5); lcden=0;}voidmain(){lcdrw=0;init();REN=1;SM0=0;SM1=1;TMOD=0X20;TH1=0XFD;TL1=0XFD;TR1=1;EA=1;ES=1;while(1){write_com(0x80);for(num=0;num<8;num++) {write_data(table[num]);}write_com(0x80+0x40);write_data(shu);}}voidck()interrupt4{RI=0;shu=SBUF;SBUF=shu;}硬件連接近程連接(直連)任務(wù)二單片機與單片機間的通信遠(yuǎn)程連接(電平轉(zhuǎn)換)電平轉(zhuǎn)換器件與接線單片機雙機通信甲機控制乙機LED閃爍,乙機控制甲機數(shù)碼管甲機:#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharsbitLED1=P1^0;sbitLED2=P1^3;sbitK1=P1^7;ucharOperation_NO=0;ucharcodeDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};voidDelay(uintx){ uchari; while(x--) { for(i=0;i<120;i++); }}voidputc_to_SerialPort(ucharc){ SBUF=c; while(TI==0); TI=0;}voidmain(){ LED1=LED2=1; P0=0x00; SCON=0x50;//方式1,REN=1 TMOD=0x20;//T1方式2 PCON=0x00;//SMOD=0 TH1=0xfd; TL1=0xfd; TI=0; RI=0; TR1=1; IE=0x90;//EA=1,ES=1 while(1) { Delay(100); if(K1==0) { while(K1==0); Operation_NO=(Operation_NO+1)%4; switch(Operation_NO) { case0: putc_to_SerialPort('X'); LED1=LED2=1;break; case1: putc_to_SerialPort('A'); LED1=0;LED2=1;break; case2: putc_to_SerialPort('B'); LED2=0;LED1=1;break; case3: putc_to_SerialPort('C'); LED1=0;LED2=0;break;} }}}void
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 吊籃安裝勞務(wù)合同范本
- 發(fā)外加工合同范例
- 變更稅務(wù)合同范本
- 古琴購買合同范例
- 入租房合同范本
- 北京防水合同范本
- sem托管合同范本
- 合同范本書籍
- 合肥官方代理記賬合同范本
- 吊頂材料合同范本
- 中央2025年中國科協(xié)所屬單位招聘社會在職人員14人筆試歷年參考題庫附帶答案詳解-1
- 2024年湖北省聯(lián)合發(fā)展投資集團有限公司人員招聘考試題庫及答案解析
- 造價咨詢服務(wù)方案進度計劃安排及保證措施
- 2024年全國統(tǒng)一高考英語試卷(新課標(biāo)Ⅰ卷)含答案
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識 CCAA年度確認(rèn) 試題與答案
- 2024年濰坊工程職業(yè)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 危大工程管理細(xì)則(廣西區(qū)規(guī)定)
- HALCON手冊簡體中文版
- 聲學(xué)原理及聲學(xué)測試
- 機構(gòu)占比分時指標(biāo)(升級版)源碼作者:羅克hq
- 水利工程竣工決算表格
評論
0/150
提交評論