• /  63
  • 下載費用: 24.9積分  

單片機原理及應用7.ppt

'單片機原理及應用7.ppt'
第7章 MCS-51單片機串行口 目 錄7.1 串行通信基本知識7.2 串行口結構及控制7.3 串行口工作方式7.4 串行口應用舉例7.5 單片機與PC機通信的接口電路本章要點 本章主要講述MCS-51單片機串行口的結構、工作原理以及應用。 主要內容包括串行通信基本知識、MCS-51單片機串行口結構、串行口工作方式以及單片機與PC機通信的接口電路。7.1 串行通信基本知識主要內容7.1.1 數據通信7.1.2 異步通信和同步通信7.1.3 波特率7.1.4 通信方向7.1.5 串行通信接口種類7.1.1 數據通信 計算機與外界的信息交換稱為通信?;镜耐ㄐ欧椒ㄓ胁⑿型ㄐ藕痛型ㄐ艃煞N。 1.并行通信 單位信息(通常指一個字節)的各位數據同時傳送的通信方法稱為并行通信。 2.串行通信 單位信息的各位數據被分時一位一位依次順序傳送的通信方式稱為串行通信。 7.1.1 數據通信圖7-1 并行通信示意圖 從圖中可以看出:并行通信連線多,速度快,適合近距離通信;串行通信連線少,速度慢,適合遠距離通信。圖7-1 并行通信示意圖圖7-2 串行通信示意圖 1.異步通信 異步通信中,傳送的數據可以是一個字符代碼或一個字節數據,數據以幀的形式一幀一幀傳送。 7.1.2 異步通信和同步通信圖7-3 異步通信的一幀數據格式 2.同步通信 在同步通信中,每一數據塊發送開始時,先發送一個或兩個同步字符,使發送與接收取得同步,然后再順序發送數據。數據塊的各個字符間取消起始位和停止位,所以通信速度得以提高 。7.1.2 異步通信和同步通信圖7-4 同步通信數據幀格式7.1.3 波特率 在串行通信中,對數據傳送速度有一定要求。波特率表示每秒傳送的位數,單位為b/s(記作波特)。 例如:數據傳送速率為每秒鐘10個字符,若每個字符的一幀為11位,則傳送波持率為: 11b/字符×10字符/s=110b/s 異步通信的傳送速率一般在50~19 200b/s之間 。7.1.4 通信方向 單工方式:一對傳輸線只允許單方向傳送數據; 半雙工方式:一對傳輸線允許向兩個方向中的任一方向傳送數據,但不能同時進行; 全雙工方式:用兩對傳輸線連接在發送器和接收器上,發送和接收能同時進行。7.1.4 通信方向圖7-5 串行通信傳輸方式7.1.5 串行通信接口種類 根據串行通信格式及約定(如同步方式、通信速率、數據塊格式等)不同,形成了許多串行通信接口標準,如常見的: UART(串行異步通信接口)、 USB(通用串行總線接口)、 I2C(集成電路間的串行總線)、 SPI(串行外設總線)、 485總線、CAN總線接口等。7.2 串行口結構及控制主要內容 7.2.1 MCS-51串行口結構 7.2.2 與串行口有關的特殊功能寄存器 7.2.3 波特率設計7.2.1 MCS-51串行口結構圖7-6 串行口方式1、3內部結構示意簡圖7.2.2 與串行口有關的特殊功能寄存器 1.控制狀態寄存器SCON 用于定義串行通信口的工作方式和反映串行口狀態,其字節地址為98H,復位值為0000 0000B,可位尋址格式為:D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRISM0和SM1(SCON.7、SCON.6):串行口工作方式選擇位。 7.2.2 與串行口有關的特殊功能寄存器SM0SM1工作方式功能說明波特率00方式0同步移位寄存器fosc/1201方式18位數據UART可變(T1溢出率/32或/16)10方式29位數據UARTfosc/64或 fosc/3211方式39位數據UART可變(T1溢出率/32或/16)SM2(SCON.5):多機通信控制位,在方式2或3中使用。REN(SCON.4):允許接收控制位,由軟件置1或清0。TB8(SCON.3):發送數據的第9位。RB8(SCON.2):接收數據的第9位。TI(SCON.1):發送中斷標志。RI(SCON.0):接收中斷標志。7.2.2 與串行口有關的特殊功能寄存器 關于TI和RI:串行發送中斷標志TI和接收中斷RI是同一個中斷源,CPU事先不知道是發送中斷標志TI還是接收中斷標志RI產生的中斷請求,所以,在全雙工通信時,必須由軟件來判別。 2.電源控制寄存器PCON 電源控制寄存器PCON (地址為87H)中只有SMOD位與串行口工作有關。 D7D6D5D4D3D2D1D0SMOD---------GF1GF0PDIDL7.2.2 與串行口有關的特殊功能寄存器 SMOD(PCON.7):波特率倍增位。串行口工作于方式1、方式2和方式3時,當SMOD=1時,串行口波特率加倍。復位值為0000 0000B。PCON寄存器不能進行位尋址。GF1,GF0:兩個通用工作標志位,用戶可以自由使用。   PD:掉電模式設定位。   PD=0 單片機處于正常工作狀態。   PD=1 單片機進入掉電(Power Down)模式 ,可由外部中斷或硬件復位模式喚醒,進入掉電模式后,外部晶振停振,CPU、定時器、串行口全部停止工作,只有外部中斷工作。   IDL:空閑模式設定位。   IDL=0 單片機處于正常工作狀態。   IDL=1 單片機進入空閑(Idle)模式,除CPU不工作外,其余仍繼續工作,在空閑模式下可由任一個中斷或硬件復位喚醒 7.2.3 波特率設計 方式0和方式2的波特率是固定的,方式1和方式3的波特率是由定時器T1的溢出率來決定的。在增強型單片機中,也可以使用T2作波特率發生器。 1.方式0的波特率 固定為振蕩頻率的1/12。并不受PCON寄存器中SMOD位的影響。方式0的波特率=fosc/12 2.方式2的波特率 接收與發送的移位時鐘由振蕩頻率fosc的第二節拍P2時鐘(fosc/2)給出,所以,方式2波特率取決于PCON中SMOD位的值:當SMOD=0時,波特率為fosc的1/64;若SMOD=1,則波特率為fosc的1/32。即方式2的波特率= 2SMOD×fosc/647.2.3 波特率設計 3.方式1和方式3的波特率(1)T1作波特率發生器在最典型應用中,定時器T1選用定時器模式2,此時n=8,設定時器的初值為X:于是, X=256 - 方式1、3的波特率= ×(T1溢出速率)即波特率= × ×/(2n -初值)7.2.3 波特率設計 (2)T2作波特率發生器 在增強型單片機中,還可以使用T2作為波特率發生器。當寄存器T2CON的位TCLK=1和(或)RCLK=1時,允許串行口從T2獲得發送和(或)接收的波特率。 串行口方式1、3的波特率=T2溢出率/16 定時器2作波特率發生器時,計數在每個狀態周期遞增。這樣: 方式1、3的波特率=7.2.3 波特率設計 主要內容 7.3.1 串行口方式0 7.3.2 。省略部分。 ;串口初始化,允許接收 MOV R0,#50H ;首地址送R0 MOV R7,#10H ;數據長度送R7WAIT:JNB RI,$ ;等待接收完成 CLR RI ;清中斷標志 MOV A,SBUF ;讀數到累加器7.4.2 異步方式應用 JNB P,PNP ;P=0,轉PNP JNB RB8,ERROR ;P=1,RB8=0,轉出錯 SJMP RIGHTPNP: JB RB8,ERROR ;P=0,RB8=1,轉出錯RIGHT:MOV @R0,A ;存數 INC R0 ;修改地址指針 DJNZ R7,WAIT ;未接收完,繼續 CLR F0 ;置正確接收標志F0=0 RETERROR:SETB F0 ;置錯誤接收標志F0=1 RET7.4.2 異步方式應用 例7-5 用第9個數據位作奇偶校驗位,編制串行口方式3的全雙工通信程序,設雙機將各自鍵盤的按鍵鍵值發送給對方,接收正確后放入緩沖區(可用于顯示或其它處理),晶振為11.059 2 MHz,波特率為9 600b/s。 解:因為是全雙工方式,通信雙方的程序一樣。發送和接收都采用中斷方式。7.4.2 異步方式應用 C語言程序清單:#includechar k;unsigned char buffer;void main(){ SCON=0xd0; //串行口初始化, 允許接收 TMOD=0x20; //定時器初始化 TH1=0xfd; TL1=0xfd; TR1=1; ES=1; //開串行口中斷 EA=1; //開總中斷7.4.2 異步方式應用 while(1) { k=key(); //讀取按鍵按下鍵值 if(k!=-1) //無鍵按下返回-1 { ACC=k; //將鍵值送累加器,取P位 TB8=P; //送TB8 SBUF=ACC; //發送 } display(); //顯示程序 }}7.4.2 異步方式應用void serial_server() interrupt 4{ if(TI) //發送引起,清TI TI=0; else //否則,接收引起 { RI=0; ACC=SBUF; //讀取接收數據 if(RB8==P) //校驗正確, buffer=ACC; //存入緩沖區 }}7.4.2 異步方式應用 匯編語言程序清單: ORG 0000H SJMP MAIN ;跳轉到主程序 ORG 23H LJMP S_SERV ;跳轉到串口中斷服務程序MAIN: MOV SP,#0DFH ;設置堆棧指針 MOV SCON,#0D0H ;串口初始化 MOV TMOD,#20H ;定時器初始化,T1方式2 MOV TH1,#0FDH MOV TL1,#0FDH ;定時器1賦初值7.4.2 異步方式應用 SETB TR1 ;啟動定時器1 SETB ES ;開中斷 SETB EALOOP: LCALL KEY ;讀取按鍵(參看第9章), ;有鍵按下返回鍵值, CJNE A,#0FFH,SEND ;無鍵按下返回0FFH, ;有鍵按下轉發送NEXT: LCALL DISPLAY ;調用顯示 LJMP LOOP ;主程序循環7.4.2 異步方式應用SEND: MOV C,P MOV TB8,C MOV SBUF,A ;帶校驗位發送 LJMP LOOP ;循環S_SERV: JBC RI,RECV ;是接收中斷轉接收處理 CLR TI ; 是發送中斷,清TI RETI 7.4.2 異步方式應用RECV: ;接收處理程序 MOV A,SBUF ;取接收值送A JB P,ONE ;校驗位為1,轉 JB RB8,I_END ;校驗錯,轉中斷返回 SJMP RIGHT ;校驗正確,正確處理ONE: JNB RB8,I_END ;校驗錯,轉中斷返回RIGHT: MOV BUFFER,A ;接收數據送緩沖區I_END: RETI ;中斷返回7.4.2 異步方式應用7.5 單片機與PC機通信的接口電路主要內容7.5.1 MAX232芯片簡介7.5.2 PC機與89C52串行通信的接口電路 利用PC機配置的異步通信適配器,可以很方便地完成PC機與單片機的數據通信。 PC機與89C52單片機最簡單的連接是零調制3線經濟型,這是進行全雙工通信所必須的最少數目的線路。 7.5 單片機與PC機通信的接口電路 串行通信電平:由于89C52單片機輸入、輸出電平為TTL電平,而PC機配置的是RS-232C標準串行接口,二者的電氣規范不一致。 數字值: 1 0 TTL電平: +5V 0V 232電平: -3V~-15V +3V~+15V 串行通信電平轉換:要完成PC機與單片機的數據通信.必須進行電平轉換。MAX232單芯片可實現89C52單片機與PC機的RS-232C之間的電平轉換。7.5 單片機與PC機通信的接口電路7.5.1 MAX232芯片簡介 MAX232芯片:是MAXIM公司生產的、包含兩路接收器和驅動器的IC芯片,適用于各種EIA-232C和V.28/V.24的通信接口。 MAX232芯片的功能: MAX232內部有一個電源電壓變換器,可以把輸入的+5V電源電壓變換成為RS-232C輸出電平所需的±10V電壓。所以,采用此芯片接口的串行通信系統只需單一的+5V電源就可以了。對于沒有±12V電源的場合,其適應性更強。 7.5.1 MAX232芯片簡介圖7-15 MAX232芯片引腳7.5.1 MAX232芯片簡介MAX232原理結構路圖7.5.2 PC機與89C52串行通信的接口電路圖7-17 采用MAX232接口的串行通信電路本章小結 本章介紹了數據通信的一般概念和單片機串行口基本組成與應用。 通信是計算機與外設之間的數據傳送。通信方式有串行通信和并行通信,串行通信又分為同步通信和異步通信。 MCS-51單片機有一個全雙工UART,工作方式有4中,方式0為移位寄存器方式,主要用來進行串行與并行數據的轉換,方式1、2、3為通用的異步傳送方式。本章完
關 鍵 詞:
原理 單片機 應用
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:單片機原理及應用7.ppt
鏈接地址: http://www.476824.live/p-51497433.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 期货配资公司账号 pk10冠亚和赔率稳赚 体育彩票开奖结果全部 福建快3开奖结果查询现场开奖 宁夏11选五购买平台 p2p理财平台有哪些 湖北快三高手 七星彩怎么中奖 股票配资流程图解 山东五开奖结果查询