




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
6.1串行通信的基本概念數據通信并行通信串行通信異步通信同步通信傳輸方式:單工:傳輸信號是單向的半雙工:傳輸信號雙向但不能同時全雙工:傳輸信號雙向且能同時數據數據數據……數據數據……同步字符同步字符1同步字符2圖6.2同步傳送的數據格式1100/10/10/10/10/10/10/10/10/1111起始位停止位奇偶校驗8位數據空閑位空閑位第n個字符100/10/1起始位第n+1個字符0/10/1圖6.1異步通信數據幀格式波特率:每秒傳輸二進制位數的量(kbps或kb/s)。同步通信波特率可達56kbps或更高異步通信波特率可達20kbps6.2MCS-51系列單片機串行通信接口一、串行口的結構與組成SBUFSBUF發送控制接收控制發送端口接收端口≥1波特率控制TXDRXDDBDBTIRI串行中斷寫SBUF讀SBUF1.數據緩沖寄存器SBUF兩個SBUF,一個用于發送(只寫);一個用于接收(只讀)。映象地址均為99H。2.數據發送與接收控制發送控制器在波特率作用下,將發送SBUF中的數據由并到串,一位位地傳輸到發送端口;接收控制器在波特率作用下,將接收接收端口的數據由串到并,存入接收SBUF中。6.2MCS-51系列單片機串行通信接口SM0SM1SM2RENTB8RB8TIRI3.串行口控制寄存器SCONSCON控制串口的工作方式,格式如下:?SM0、SM1:串行口工作方式選擇位,由軟件設定。?SM2:多機通信控制位,由軟件設定。串行口的方式2和方式3適用于多機通信。在方式2或方式3中,當SM2=1,若接收到的第9位數據(RB8)為0,則不能置位RI;只有收到RB8=1,才置位RI。SM2=1用于多機通信中,只接收地址幀,不接收數據幀。而當SM2=0時,只要接收到一幀信息(無論是地址還是數據),RI都被置位。雙機通信時,通常使SM2=0。在方式0中,SM2必須為0。?REN:允許接收控制位,由軟件設定。REN=1時允許接收,REN=0時禁止接收。?TB8:方式2和方式3中要發送的第9位數據,由軟件設定,用作奇偶校驗位或地址/數據標志位,后者多用于多機通信。?RB8:方式2和方式3中接收到的第9位數據,在方式1中,如果SM2=0,則RB8為收到的停止位。方式0不使用RB8。6.2MCS-51系列單片機串行通信接口SM0SM1方式功能說明000移位寄存器輸入/輸出,波特綠為fosc/120118位UART,波特率可變(T1溢出率/n,n=32或16)1029位UART,波特率為fosc/n,n=64或32)1139位UART,波特率可變(T1溢出率/n,n=32或16)3.電源控制寄存器PCON格式如下:SMOD———GF1GF0PDIDL波特率控制:該位為1時,波特率增大一倍!電源控制:在第2章已學6.2MCS-51系列單片機串行通信接口二、串行口的工作方式1.方式0:移位寄存器方式寫SBUF內部移出脈沖RXD(數據輸出)TXD(移位時鐘)TID0D1D2D3D4D5D6D7方式0發送時序:寫SCON,清RI,置REN內部移出脈沖RIRXD(數據輸入)TXD(移位時鐘)D0D1D2D3D4D5D6D7方式0接收時序:6.2MCS-51系列單片機串行通信接口2.方式1
一幀數據為10位:1位起始位、8位數據位和1位停止位。
寫SBUFTXD起始位停止位TID0D1D2D3D4D5D6D7方式1發送時序:起始位停止位RXDRI采樣時間D0D1D2D3D4D5D6D7方式1接收時序:6.2MCS-51系列單片機串行通信接口3.方式2和方式3方式2和方式3適用于多機通信。一幀數據為11位:1位起始位、8位數據位、1位可編程位(第9位數據,用作奇偶校驗或地址/數據選擇)和1位停止位。發送時,第9位數據為TB8,接收時,第9位數據送入RB8。發送與接收時序與方式1相似,僅僅是多了一位數據TB8或RB8。
6.2MCS-51系列單片機串行通信接口三、波特率的設置方式0:波特率是固定的,為fosc/12方式2:SMOD=1時為fosc/32,SMOD=0時為fosc/64方式1和方式3:波特率=2SMODT1溢出率/32T1溢出率=fosc/[3212(28-N)],N為定時器T1的計數初值例:要求串行口以方式1工作,通信波特率為2400b/s,設振蕩頻率fosc為6MHz,請初始化T1和串口。解:若選SMOD=1,則T1時間常數
N=256-216106/(3842400)=242.98≈243=F3H
則,定時器T1和串行口的初始化程序如下:
MOV TMOD,#20H ;設置T1為方式2 MOV TH1,#0F3H ;置時間常數
MOV TL1,#0F3H SETB TR1 ;啟動T1 ORL PCON,#80H ;SMOD=1 MOV SCON,#50H ;設串行口為方式16.2MCS-51系列單片機串行通信接口四、串行通信接口標準1.RS-232C通信接口接口信號:25針和9針D型頭1141325保護地發送數據TXD接收數據RXD請求發送RTS清除發送CTS數據裝置就緒信號地GND載波檢測DCD留作測試用留作測試用未用次信道載波檢測次信道清除發送次信道發送數據發送時鐘次信道接收數據接收時鐘未用次信道請求發送數據終端就緒信號質量檢測振鈴指示數據信號速率選擇發送時鐘未用1569載波檢測DCD接收數據RXD發送數據TXD數據終端就緒信號地GND數據裝置就緒請求發送RTS清除發送CTS振鈴指示6.2MCS-51系列單片機串行通信接口電氣特性:邏輯“1”:-3V~-15V;邏輯“0”:+3V~+15V。傳輸距離≤15米。最大負載電容≤2500pF。波特率≤20kb/s。接受器輸入阻抗:3~7kΩ。驅動器輸出阻抗≤300Ω。驅動器轉換速率≤30V/μs。輸出短路電流≤0.5A。
6.2MCS-51系列單片機串行通信接口電平轉換
計算機電平是TTL電平,它與RS-232C電平不兼容,必須進行電平轉換。電平轉換的電路很多,MAX232是一種新型的專用集成電路,類似的集成電路還很多。C1+C1-C2+C2-VCCV+V-電壓倍增器+5V~+10V電壓反向器+10V~-10V1111+5VT1OUTT2OUTR1OUTR2OUTT1INT2INR1INR2INC1C2C3C4TTL/CMOS輸入TTL/CMOS輸出RS-232C輸出RS-232C輸入MAX232C2-V-C1+V+C1-C2+T2OUTR2INR2OUTT2INT1INR1OUTR1INT1OUTVCCGND123456789101615141312116.2MCS-51系列單片機串行通信接口⒉RS-422A通信接口接口信號:9針D型頭
電氣特性電平轉換3.RS-485通信接口:將RS-422A的發送數據信號正端與接收數據信號正端連起來,發送數據信號負端與接收數據信號負端連起來就成為RS-485通信接口1569發送數據負TX-發送數據正TX+接收數據正RX+接收數據負RX-信號地GND請求發送負RTS-清除發送正CTS+請求發送負RTS+清除發送負CTS–6.2MCS-51系列單片機串行通信接口接口性能RS-232CRS-422ARS-485功能雙向,全雙工雙向,全雙工雙向,半雙工傳輸方式單端差分差分邏輯“0”電平3V~15V2V~6V1.5V~6V邏輯“1”電平-3V~-15V-2V~-6V-1.5V~-6V最大速率20kb/s10Mb/s10Mb/s最大距離30m1200m1200m驅動器加載輸出電壓±5V~±15V±2V±1.5V接受器輸入敏感度±3V±0.2V±0.2V接收器輸入阻抗3~7KΩ>4KΩ>7KΩ組態方式點對點1臺驅動器:10臺接收器32臺驅動器:32臺接收器抗干擾能力弱強強傳輸介質扁平或多芯電纜二對雙絞線一對雙絞線6.3PC機與單片機通信一、PC機串口資源及編程使用方法PC機一般有COM1和COM2兩個串口。
寄存器名稱端口地址復位后初始值COM1COM2發送器保持寄存器(TBR)3F8H2F8HXXXXXXXXB接收器數據寄存器(RBR)3F8H2F8HXXXXXXXXB波特綠因子低位寄存器(DLL)3F8H2F8H00000000B波特綠因子高位寄存器(DLH)3F9H2F9H00000001B中斷允許寄存器(IER)3F9H2F9H00000000B中斷標識寄存器(IIR)3FAH2FAH00000000B線路控制寄存器(LCR)3FBH2FBH01100000B調制解調器控制寄存器(MCR)3FCH2FCHXXXX0000B線路狀態寄存器(LSR)3FDH2FDHXXXXXXXXB調制解調器狀態寄存器(MSR)3FEH2FEHXXXXXXXXB6.3PC機與單片機通信使用串口必須先初始化,有以下4個步驟。DLHDLL波特率DLHDLL波特率DLHDLL波特率09H00H5000HC0H60000H18H480006H00H7500H60H120000H10H720004H17H11000H40H180000H0CH960003H59H134.500H3AH200000H06H1920003H00H15000H30H240000H03H3840001H80H30000H20H360000H01H115200例:設COM1的波特率為9600,則outportb(0x3fb,0x80);/*寫線路控制寄存器,訪問波特率因子寄存器*/
outportb(0x3f8,0x0c);/*寫入波特率因子低字節*/
outportb(0x3f9,0x00);/*寫入波特率因子高字節*/
⒈設置波特率6.3PC機與單片機通信⒉設置數據格式例:設數據為7位,1位起始位,1位停止位,偶校驗,則設置如下:outportb(0x3fb,0x1a);⒊設置操作方式不允許中斷:outportb(0x3fc,0x03);允許中斷:outportb(0x3fc,0x0b);自測試工作方式,且不允許中斷:outportb(0x3fc,0x13);⒋設置中斷允許寄存器開放中斷語句:outportb(0x3f9,0x0f);
6.3PC機與單片機通信舉例:例1將PC機的COM1初始化為9600波特率、7位數據、偶校驗、1位停止位、不中斷,則初始程序如下:initcom1(){outportb(0x3fb,0x80);outportb(0x3f8,0x0c);outportb(0x3f9,0x00);outportb(0x3fb,0x1a);outportb(0x3fc,0x03);}例2PC機從COM1發送一個字符,程序如下:send(charsendchar){int
coms;do{ /*查詢發送緩沖器是否空*/coms=inportb(0x3fd)&0x20;}while(coms!=0x20);outportb(0x3f8,sendchar);}6.3PC機與單片機通信例3PC機從COM1接收一個字符,程序如下:charreceive(){charcoms,receivechar;waitok: /*查詢接收數據是否有效*/coms=inportb(0x3fd);if((coms&0x01)==0)goto
waitok;receivechar=inportb(0x3f8);returnreceivechar;}6.3PC機與單片機通信二、PC機與單片機雙機通信
PC機與單片機構成主從式上下位計算機系統。例:從PC機鍵盤上輸入一個字符,然后將這個字符發送給單片機,單片機接收到這個字符后,不做任何處理,又將它發回給PC機,PC機將這個字符顯示在屏幕上。連接電路如下:PC機RXDTXDMAX232T1OUTR1INT1IN(R1OUTRXDTXDMCS-51約定:波特率:2400b/s信息格式:8位數據,1位停止位傳送方式:PC機采用查詢式收發數據,單片機采用中斷式收發數據
由于PC機是RS-232C電平,單片機是TTL電平,用MAX232進行電平轉換。6.3PC機與單片機通信⒈PC機的通信軟件#include“stdio.h”main(){charc1,c2;
int
coms;outportb(0x3fb,0x80);/*初始化8250*/outportb(0x3f8,0x30);outportb(0x3f9,0x00);outportb(0x3fb,0x03);/*8位數據,1位停止位*/outportb(0x3fc,0x03);c1=getchar();do{ /*查詢發送緩沖器是否空*/coms=inportb(0x3fd)&0x20;}while(coms!=0x20);開始初始化8250有鍵輸入嗎?取鍵盤字符發送寄存器空否?向單片機發送字符接收單片機發回的字符接收的數據有效碼?顯示發回的字符NNNYYY結束6.3PC機與單片機通信outportb(0x3f8,c1);waitok: /*查詢接收數據是否有效*/coms=inportb(0x3fd);if((coms&0x01)==0)goto
waitok;c2=inportb(0x3f8);printf(“Thereturncharis:”);putchar(c2);}6.3PC機與單片機通信⒉MCS-51單片機通信軟件開始初始化定時器T1初始化串行口啟動定時器T1開放中斷主程序踏步中斷服務程序關中斷清接收中斷標志RI保護現場接收PC機發來的字符將字符發送回PC機開中斷,恢復現場中斷返回6.3PC機與單片機通信主程序:
ORG 0000H LJMP MAIN ORG 0023H LJMP SERVEMAIN: MOV TMOD,#20H ;初始化T1 MOV TH1,#0F3H MOV TL1,#0F3H MOV SCON,#50H ;串行口為方式1,REN=1 MOV PCON,#80H ;SMOD=1 SETB TR1 SETB EA SETB ESHERE: SJMP HERE6.3PC機與單片機通信中斷服務程序:SERVE: CLR EA ;中斷服務程序
CLR RI PUSH PSW ;保護現場
SETB RS0 CLR RS1 PUSH ACC MOV A,SBUF ;接收PC機發來的字符
MOV SBUF,A ;將字符回送給PC機WAIT: JNB TI,WAIT ;等待發送完畢
CLR TI POP ACC ;恢復現場
POP PSW SETB EA RETI END6.3PC機與單片機通信三、PC機與單片機通訊多機通信多機通信的關鍵問題:識別單片機!給單片機編號。怎樣識別單片機?起始位D0D1D2D3D4D5D6D7奇偶位停止位起始位D0D1D2D3D4D5D6D7TB8停止位
從PC機和單片機幀格式可知:通過軟件編程,使得PC機在發送地址(單片機編號)時,奇偶位為1,發送數據時為0;單片機接收時,TB8為1表示收到的地址,為0表示收到的數據。
6.3PC機與單片機通信例:從PC機的鍵盤上輸入單片機的編號,要求PC機與該單片機進行通信測試,從鍵盤上輸入一個字符,發送給某單片機,單片機受到該字符后,又發回給PC機,在屏幕上顯示出來。由于RS-232C不能實現多機通信,故采用RS-422標準。電路如下:
PC機TXDRXD……232/422轉換器RXDTXDMCS-5175175751741號RXDTXDMCS-5175175751742號RXDTXDMCS-517517575174n號6.3PC機與單片機通信⒈PC機軟件設計
開始初始化8250輸入單片機編號發送單片機編號接收單片機送回的編號取鍵盤字符編號一致嗎?向單片機發送字符接收單片機發回的字符顯示發回的字符NY結束6.3PC機與單片機通信程序清單:#include“stdio.h”main(){charc1,c2,n1,n2;
int
coms;
outportb(0x3fb,0x80); /*初始化8250*/
outportb(0x3f8,0x30);
outportb(0x3f9,0x00);
outportb(0x3fb,0x2b); /*8位數據,1位停止,奇偶校驗位為1*/
outportb(0x3fc,0x03); /*PC機處于發送地址狀態*/
outportb(0x3f9,0x00); /*禁止8250中斷*/
printf(“PleaseinputthenumberofMCS:\n”);
scanf(“%c”,&n1);
do{ /*查詢發送移位寄存器是否空*/
coms=inportb(0x3fd)&0x40;
}while(coms!=0x40);
outportb(0x3f8,n1); /*PC機發送單片機地址編號*/
outportb(0x3fc,0x01); /*PC機處于接收狀態*/waitok1: /*查詢單片機返回的編號是否有效*/
coms=inportb(0x3fd);
if((coms&0x01)==0)
gotowaitok1;
n2=inportb(0x3f8); /*讀入單片機返回的編號*/6.3PC機與單片機通信if(n1!=n2)
printf(“ThenumberofMCSiserror!\n”);
break;else {outportb(0x3fc,0x03); /*PC機處于發送狀態*/
outportb(0x3fb,0x3b); /*PC機處于發送數據狀態*/c1=getchar();
do{ /*查詢發送移位寄存器是否空*/coms=inportb(0x3fd)&0x40;}while(coms!=0x40);outportb(0x3f8,c1);outportb(0x3fc,0x01); /*PC機處于接收狀態*/waitok2: /*查詢單片機返回的字符是否有效*/coms=inportb(0x3fd);if((coms&0x01)==0)gotowaitok2;c2=inportb(0x3f8);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京市順義區第一中學2024?2025學年高一下學期3月月考 數學試題(含解析)
- 2025年北京中考英語應用文常用句型歸納總結(復習必背)
- 江西傳媒職業學院《建筑結構課程設計》2023-2024學年第二學期期末試卷
- 四川航天職業技術學院《給水排水工程結構》2023-2024學年第二學期期末試卷
- 衢州職業技術學院《口腔材料》2023-2024學年第二學期期末試卷
- 內蒙古包頭一中2025屆高三復習質量監測(五)生物試題文試卷含解析
- 遼寧省葫蘆島市2025年初三下學期期末考試語文試題仿真(B)卷含解析
- 四川外國語大學《醫學分子生物學實驗技術》2023-2024學年第二學期期末試卷
- 山西省朔州市2025屆初三5月月考試題數學試題含解析
- 臺州科技職業學院《物流規劃仿真》2023-2024學年第二學期期末試卷
- 浴池出兌合同協議
- 2025年遼寧能源控股集團所屬鐵法能源公司招聘筆試參考題庫含答案解析
- 跨境物流部門管理制度
- 防空掩體知識培訓課件
- 工業和信息化部產業發展促進中心招聘筆試真題2024
- 2025年醫保知識競賽題庫及答案:新政策調整下的醫保選擇
- 呼吸科知識解剖課件
- 幼兒園教育評估指南解讀
- 模擬雨的形成課件
- 多維數據循環嵌套分析-全面剖析
- 《旅游策劃實務》課件-《秦嶺北望 千古》長安西安五天四晚親子家庭定制游方案
評論
0/150
提交評論