串行口以及串行通信技術(shù)_第1頁(yè)
串行口以及串行通信技術(shù)_第2頁(yè)
串行口以及串行通信技術(shù)_第3頁(yè)
串行口以及串行通信技術(shù)_第4頁(yè)
串行口以及串行通信技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、關(guān)于串行口及串行通信技術(shù)第一張,PPT共七十四頁(yè),創(chuàng)作于2022年6月什么是串行通信?串行通信和并行通信 計(jì)算機(jī)1 GND 計(jì)算機(jī)2 GND并行通信 計(jì)算機(jī)1 GND 計(jì)算機(jī)2 GND發(fā)送接收串行通信并行通信:數(shù)據(jù)的各位同時(shí)傳送;串行通信:數(shù)據(jù)一位一位順序傳送???、多(數(shù)據(jù)線)、近慢、少、遠(yuǎn)第二張,PPT共七十四頁(yè),創(chuàng)作于2022年6月串行通信制式:?jiǎn)喂?a)、半雙工(b)和全雙工(c) (simplex half duplex full duplex)發(fā)送器A站接收器B站單工通信(a)發(fā)收A站發(fā)收B站發(fā)收A站發(fā)收B站(b)(c)第三張,PPT共七十四頁(yè),創(chuàng)作于2022年6月 異步通信,ASY

2、NC (Asynchronous Data Communication):幀格式傳送,信息量不大1個(gè)起始位,058個(gè)數(shù)據(jù)位奇偶校驗(yàn)位12個(gè)停止位,0串行通信的分類(lèi):異步(Asynchronous Communication) 同步(Synchronous Communication) 第四張,PPT共七十四頁(yè),創(chuàng)作于2022年6月 同步通信,SYNC(Synchronous Data Communication):嚴(yán)格同步,發(fā)送同步字符,數(shù)據(jù)連續(xù),信息量大,速度較高按數(shù)據(jù)塊傳送把要傳送的字符順序連接起來(lái)數(shù)據(jù)塊前有同步字符,后有檢驗(yàn)字符同步字符可由通信雙方約定,也可采用ASCII碼中規(guī)定的SYN

3、C代碼,即16H。數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)同步字符同步字符1同步字符2同步傳送時(shí),要求用時(shí)鐘來(lái)實(shí)現(xiàn)發(fā)送端與接收端之間的同步。第五張,PPT共七十四頁(yè),創(chuàng)作于2022年6月波特率(Band rate)數(shù)據(jù)傳送速率:每秒傳送的二進(jìn)制代碼的位數(shù)。波特率反映了串行通信的速率,也反映了對(duì)于傳輸通道的要求。波特率越高,要求傳輸通道的頻率越寬,一般異步通信的波特率在50b/s19200b/s之間。相互通信的甲乙雙方必須具有相同的波特率,否則無(wú)法成功地完成串行數(shù)據(jù)通信。通信線上傳送的所有位信號(hào)都保持一致的信號(hào)持續(xù)時(shí)間,每一位的信號(hào)持續(xù)時(shí)間都由數(shù)據(jù)傳送速度確定。第六張,PPT共七十四頁(yè),創(chuàng)作于2022年6月舉例假如

4、在1秒內(nèi),89C51串口把100個(gè)FFH的數(shù)據(jù)發(fā)送出去,問(wèn)波特率是多少?假若每個(gè)字符是包含一個(gè)起始位、一個(gè)終止位和8個(gè)數(shù)據(jù)位。第七張,PPT共七十四頁(yè),創(chuàng)作于2022年6月根據(jù)串行通信的格式及約定(如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號(hào)電平等)不同,形成了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn)。常見(jiàn)的有:通用異步收發(fā)器(UART)本課程介紹的串口通用串行總線(USB)I2C總線CAN總線SPI總線RS-485,RS-232C,RS422A標(biāo)準(zhǔn)等等串行通信的基本特征是數(shù)據(jù)逐位順序進(jìn)行傳送。第八張,PPT共七十四頁(yè),創(chuàng)作于2022年6月 串行口及串行通信技術(shù)串行通信基本知識(shí)89C51串口及其應(yīng)用兩個(gè)單片機(jī)

5、之間的通信單片機(jī)與PC機(jī)之間的通信第九張,PPT共七十四頁(yè),創(chuàng)作于2022年6月概述有一個(gè)可編程全雙工異步串行通信接口(UART) (Universal Asynchronous Receiver/Transmitter )管腳:TXD(P3.1)、RXD(P3.0)可同時(shí)發(fā)送、接收數(shù)據(jù)(Transmit/Receive)有四種工作方式,幀格式有8、10、11位。波特率(Baud rate)可設(shè)置 波特率:每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù),也叫比特?cái)?shù),單位為b/s,即位/秒。89C51的串行接口第十張,PPT共七十四頁(yè),創(chuàng)作于2022年6月圖7-7return第十一張,PPT共七十四頁(yè),創(chuàng)作于202

6、2年6月串行口結(jié)構(gòu) 引腳RXD (P3.0串行數(shù)據(jù)接收端) 引腳TXD (P3.1串行數(shù)據(jù)發(fā)送端) MOV SBUF, A :發(fā)送數(shù)據(jù)到串口引腳 MOV A , SBUF :接收數(shù)據(jù) RI :從串口上接收數(shù)據(jù)到SBUF RI=1 TI :數(shù)據(jù)從SBUF向外發(fā)送完 TI=1第十二張,PPT共七十四頁(yè),創(chuàng)作于2022年6月MCS-51串行接口寄存器SBUF串行口數(shù)據(jù)緩沖器SCON串行口控制寄存器PCON電源及波特率選擇寄存器第十三張,PPT共七十四頁(yè),創(chuàng)作于2022年6月控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式選擇多機(jī)通信控制位允許串行接收位接收數(shù)據(jù)的第9位發(fā)送數(shù)據(jù)的

7、第9位接收中斷標(biāo)志發(fā)送中斷標(biāo)志9FH9EH9DH9CH9BH9AH99H98HSM2置1,多機(jī)通信,用于方式2和方式3D81,地址幀D80,數(shù)據(jù)幀SM2置0,不屬于多機(jī)通信第十四張,PPT共七十四頁(yè),創(chuàng)作于2022年6月SM0 SM1工作方式功能波特率0 0方式08位同步移位寄存器fosc/120 1方式110位UART可變1 0方式211位UARTfosc/64或fosc/321 1方式311位UART可變串行方式的定義例:設(shè)串行口工作在方式1,允許接收,則指令為: MOV SCON,#01010000B第十五張,PPT共七十四頁(yè),創(chuàng)作于2022年6月串行通信只用該位,為1時(shí),波特率2;為0

8、時(shí)不變。電源及波特率選擇寄存器PCONSMODGF1GF0PDIDL87H第十六張,PPT共七十四頁(yè),創(chuàng)作于2022年6月串行口四種工作方式應(yīng)用比較方式的選擇由SM1、SM0實(shí)現(xiàn)。工作方式功能說(shuō)明波特率方式08位同步移位寄存器常用于擴(kuò)展I/O口fosc/12方式110位UART8位數(shù)據(jù)、起始位、結(jié)束位可變(取決于定時(shí)器1溢出率)方式211位UART8位數(shù)據(jù)、起始位0、結(jié)束位1和奇偶校驗(yàn)位fosc/64或fosc/32方式311位UART數(shù)據(jù)、起始、校驗(yàn)、結(jié)束位可變(取決于定時(shí)器1溢出率)波特率的設(shè)定可參見(jiàn)表7.2,實(shí)際無(wú)需計(jì)算。表第十七張,PPT共七十四頁(yè),創(chuàng)作于2022年6月方式0 在方式0

9、下,串行口作同步移位寄存器用,其波特率固定為fosc/12。串行數(shù)據(jù)從RXD(P3.0)端輸入或輸出,同步移位脈沖由TXD(P3.1)送出。這種方式常用于擴(kuò)展I/O口。方式0用于擴(kuò)展I/O口輸出第十八張,PPT共七十四頁(yè),創(chuàng)作于2022年6月方式0用于擴(kuò)展I/O口輸入第十九張,PPT共七十四頁(yè),創(chuàng)作于2022年6月方式110位的幀格式 串行口為波特率可調(diào)的10位通用異步接口UART。每發(fā)送或接收的一幀信息中,包括1位起始位0,8位數(shù)據(jù)位和1位停止位1。第二十張,PPT共七十四頁(yè),創(chuàng)作于2022年6月方式2 串行口為11位UART,傳送波特率與SMOD有關(guān)。發(fā)送或接收的一幀數(shù)據(jù)中包括1位起始位0

10、,8位數(shù)據(jù)位,1位可編程位(用于奇偶校驗(yàn))和1位停止位1。11位的幀格式第二十一張,PPT共七十四頁(yè),創(chuàng)作于2022年6月方式3 方式3為波特率可變的11位UART通信方式,除了波特率以外,方式3和方式2完全相同。第二十二張,PPT共七十四頁(yè),創(chuàng)作于2022年6月MCS-51串行口的波特率1.方式0和方式2的波特率是固定的 在方式2中,波特率取決于PCON中的SMOD值: 當(dāng)SMOD=0時(shí),波特率為fosc/64; 當(dāng)SMOD=1時(shí),波特率為fosc/32.即波特率 = 。oscSMODf642 在方式0中,波特率為時(shí)鐘頻率的1/12,即fosc/12,固定不變圖第二十三張,PPT共七十四頁(yè),

11、創(chuàng)作于2022年6月2. 方式1和方式3的波特率可變,由定時(shí)器1的溢出率決定波特率/(b/s)fosc/MHzSMOD定時(shí)器1C/模式初始值方式0:1 M方式2:375 k方式1、3:62.5 k19.2 k9.6 k4.8 k2.4 k1.2 k137.5 k11011012121211.05911.05911.05911.05911.05911.9866121110000000000000000222222221FFHFDHFDHFAHF4HE8H1DH72HFEEBHT波特率=returnRETURN第二十四張,PPT共七十四頁(yè),創(chuàng)作于2022年6月 解決的方法只有調(diào)整單片機(jī)的時(shí)鐘頻率f

12、osc,通常采用11.0592MHz晶振。常用波特率及其產(chǎn)生條件 常用波特率通常按規(guī)范取1200、2400、4800、9600、,若采用晶振12MHz和6MHz,則計(jì)算得出的T1定時(shí)初值將不是一個(gè)整數(shù),產(chǎn)生波特率誤差而影響串行通信的同步性能。第二十五張,PPT共七十四頁(yè),創(chuàng)作于2022年6月四種工作方式應(yīng)用舉例第二十六張,PPT共七十四頁(yè),創(chuàng)作于2022年6月串行口的應(yīng)用編程注意事項(xiàng)設(shè)置串行口工作方式設(shè)置波特率(SMOD,若是方式1、3,設(shè)置TI初值)若串行口接收數(shù)據(jù),REN必須賦值為1TI和RI標(biāo)志,須由軟件清0第9位第二十七張,PPT共七十四頁(yè),創(chuàng)作于2022年6月串行口工作方式0 用于擴(kuò)

13、展I/O口,外接74HC164(串入并出)或165(并入串出)。RXD作為數(shù)據(jù)輸入/輸出端,TXD作為同步時(shí)鐘信號(hào),接至?xí)r鐘端。 8位數(shù)據(jù)為1幀,由低位到高位,無(wú)起始位和停止位。 波特率: fosc/12第二十八張,PPT共七十四頁(yè),創(chuàng)作于2022年6月例用89C51串行口外接CD4049或164串入-并出移位寄存器擴(kuò)展8位并行口;8位并行口的每位都接一個(gè)發(fā)光二極管,要求發(fā)光二極管從左到右以一定延遲輪流顯示,并不斷循環(huán)。設(shè)發(fā)光二極管為共陰極接法。如圖所示。89C51 RXD TXD P1.0DATA CD4049CLK STB 第二十九張,PPT共七十四頁(yè),創(chuàng)作于2022年6月解:設(shè)數(shù)據(jù)串行發(fā)

14、送采用中斷方式,顯示延遲通過(guò)延遲程序DELAY來(lái)實(shí)現(xiàn)。程序清單:ORG 0000H LJMP MAINORG0023HAJMPSBRORG2000HMAIN: MOVSCON, #00H ;串行口方式0初始化MOVA, #80H ;最左一位發(fā)光二極管先亮CLRP1.0 ;關(guān)閉并行輸出MOVSBUF, A ;開(kāi)始串行輸出LOOP: SJMP$ ;等待中斷SBR:SETBP1.0 ;啟動(dòng)并行輸出ACALL DELAY ;顯示延遲一段時(shí)間CLRTI ;清發(fā)送中斷標(biāo)志RRA ;準(zhǔn)備右移一位顯示CLR P1.0 ;關(guān)閉并行輸出MOVSBUF, A ;再一次串行輸出RETI 第三十張,PPT共七十四頁(yè),創(chuàng)

15、作于2022年6月串行口工作方式110位通用異步串行口UART (Universal Asynchronous Receiver / Transmitter) ,1位起始位、8位數(shù)據(jù)、1位停止位。波特率可調(diào),由定時(shí)器T1的溢出率(定時(shí)時(shí)間)決定。 當(dāng)一幀數(shù)據(jù)接收完畢后,必須同時(shí)滿足以下條件,這次接收才真正有效:REN =1RI=0, SBUF為空SM2=0或SM2=1時(shí),收到停止位為1,收到的數(shù)據(jù)才能裝到SBUF里。 第三十一張,PPT共七十四頁(yè),創(chuàng)作于2022年6月串行口工作方式1波特率 (定時(shí)器T1的溢出速率) PCON.7波特率選擇位第三十二張,PPT共七十四頁(yè),創(chuàng)作于2022年6月7位

16、ASCII碼+1位奇偶校驗(yàn)位=8A中1的個(gè)數(shù)為奇數(shù),P=1,如果最高位為為P的值,則A的1的個(gè)數(shù)編程偶數(shù),因此,要把P的值取反以后放入ASCII碼最高位,才是奇校驗(yàn)。設(shè)發(fā)送數(shù)據(jù)區(qū)的首地址為20H,接收首地址為40H例 89C51串行口按雙工方式收發(fā)ASCII字符,最高位用作奇校驗(yàn),要求傳送碼率為1200b/s,fosc=11.059MHz。奇偶校驗(yàn)位:數(shù)據(jù)位和奇偶位中1的個(gè)數(shù)偶校驗(yàn):以上1的個(gè)數(shù)為偶數(shù)奇校驗(yàn):以上1的個(gè)數(shù)為奇數(shù)第三十三張,PPT共七十四頁(yè),創(chuàng)作于2022年6月MOV TMOD, #20H; MOV TL1, #0E8H;MOV TH1, #0E8H;SETB TR1;MOV S

17、CON, #50H;MOV R0, #20H;MOV R1, #40H;SETBES;SETBEA;LCALLSOUT;SJMP$;T1為模式2時(shí)間常數(shù),見(jiàn)表7-2重裝時(shí)常啟動(dòng)T1串行口方式1,允許接收發(fā)送數(shù)據(jù)區(qū)首址接收數(shù)據(jù)區(qū)首址串行口開(kāi)中斷CPU開(kāi)中斷發(fā)送一個(gè)字符等待中斷表ORG0000HLJMP MAINORG0050HMAIN:第三十四張,PPT共七十四頁(yè),創(chuàng)作于2022年6月中斷服務(wù)程序ORG0023HLJMP SBR1ORG0100HPUSHACCPUSHPSWJNBRI,SENDLCALLSINSJMP NEXTLCALLSOUTPOPPSWPOPACCRETISBR1:SEND:

18、NEXT:第三十五張,PPT共七十四頁(yè),創(chuàng)作于2022年6月發(fā)送子程序CLRTIMOV A,R0MOV C,PCPLCMOV ACC.7,CMOV SBUF,AINC R0RETSOUT:;若奇數(shù)個(gè)1,P1;取要發(fā)送的數(shù)據(jù);A中的ASCII碼為奇校驗(yàn);發(fā)送;修改發(fā)送數(shù)據(jù)區(qū)指針第三十六張,PPT共七十四頁(yè),創(chuàng)作于2022年6月接收子程序CLR RIMOV A,SBUFJNB P,ERANL A,#7FHMOV R1,AINC R1RETSIN:;若偶數(shù)個(gè)1,出錯(cuò);讀接收到的數(shù)據(jù);數(shù)據(jù)存入接收區(qū);修改接收數(shù)據(jù)區(qū)指針;若奇數(shù)個(gè)1,ACC.7清0ER:;處理出錯(cuò)程序第三十七張,PPT共七十四頁(yè),創(chuàng)作于

19、2022年6月串行口工作方式2和方式3每幀11位:1位起始位,9位數(shù)據(jù)(D8D0),1位停止位;第9位數(shù)據(jù)作為奇偶校驗(yàn)位或地址/數(shù)據(jù)標(biāo)志位;發(fā)送時(shí),第9位(D8)數(shù)據(jù)裝入TB8;-串口自動(dòng)完成MOV A ,DATAMOV TB8, CMOV SBUF, A接收時(shí),第9位(D8)數(shù)據(jù)裝入RB8;D0D7 SBUFD8RB8RI =1多機(jī)通信第三十八張,PPT共七十四頁(yè),創(chuàng)作于2022年6月串行口工作方式2和方式3方式2,波特率位fosc/32或fosc/64;方式3,波特率可調(diào),同方式1。第三十九張,PPT共七十四頁(yè),創(chuàng)作于2022年6月用第9個(gè)數(shù)據(jù)位作奇偶校驗(yàn)位, 編制串行口方式2的發(fā)送程序。

20、例:設(shè)計(jì)一個(gè)發(fā)送程序,將片內(nèi)RAM 50H5FH中的數(shù)據(jù)串行發(fā)送;串行口設(shè)定為方式2狀態(tài),TB8作奇偶校驗(yàn)位,采用偶校驗(yàn)。串行口初始化地址指針R0長(zhǎng)度計(jì)數(shù)器R7置初值取數(shù)據(jù)APTB8ASBUFTI =1?0TI,指針R0+1(R7)-1=0?返回YYNN第四十張,PPT共七十四頁(yè),創(chuàng)作于2022年6月程序清單TRT: MOV SCON, #80H ;方式2設(shè)定 MOV PCON, #80H ; 波特率=fosc/32 MOV R0,#50H ;首地址R0 MOV R7, #10H ;數(shù)據(jù)長(zhǎng)度LOOP:MOV A,R0 ;取數(shù)據(jù) MOV C, PSW.0 ;PTB8 MOV TB8, C MOV

21、 SBUF, A ;數(shù)據(jù)SBUF,啟動(dòng)發(fā)送WAIT: JBC TI, CONT ;判斷發(fā)送中斷標(biāo)志 SJMP WAITCONT: INC R0 DJNZ R7, LOOP RET第四十一張,PPT共七十四頁(yè),創(chuàng)作于2022年6月 串行口及串行通信技術(shù)串行通信基本知識(shí)89C51串口及其應(yīng)用兩個(gè)單片機(jī)之間的通信單片機(jī)與PC機(jī)之間的通信第四十二張,PPT共七十四頁(yè),創(chuàng)作于2022年6月兩個(gè)單片機(jī)之間的通信通信協(xié)議:幀格式、校驗(yàn)方式等 波特率第四十三張,PPT共七十四頁(yè),創(chuàng)作于2022年6月雙機(jī)通信軟件編程查詢方式 1) 甲機(jī)發(fā)送 編程將甲機(jī)片外1000H101FH單元的數(shù)據(jù)塊從串行口輸出。定義方式2

22、發(fā)送,TB8為奇偶校驗(yàn)位。發(fā)送波特率375 kb/s,晶振為12 MHz, SMOD=1。第四十四張,PPT共七十四頁(yè),創(chuàng)作于2022年6月參考發(fā)送子程序如下: MOV SCON,#80H ;設(shè)置串行口為方式2 MOV PCON,#80H ;SMOD=1 MOV DPTR,#1000H ;設(shè)數(shù)據(jù)塊指針 MOV R7,#20H ;設(shè)數(shù)據(jù)塊長(zhǎng)度 START: MOVX A,DPTR ;取數(shù)據(jù)給A MOV C,P MOV TB8,C ;奇偶位P送給TB8 MOV SBUF,A ;數(shù)據(jù)送SBUF,啟動(dòng)發(fā)送 WAIT: JBC TI,CONT ;判斷一幀是否發(fā)送完。若送完,清TI,取下一個(gè)數(shù)據(jù) AJMP

23、 WAIT ;未完等待 CONT: INC DPTR ;更新數(shù)據(jù)單元 DJNZ R7,START ;循環(huán)發(fā)送至結(jié)束 RET 第四十五張,PPT共七十四頁(yè),創(chuàng)作于2022年6月2) 乙機(jī)接收 編程使乙機(jī)接收甲機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)塊,并存入片內(nèi)50H6FH單元。接收過(guò)程要求判斷RB8,若出錯(cuò)置F0標(biāo)志為1,正確則置F0標(biāo)志為0,然后返回。 在進(jìn)行雙機(jī)通信時(shí),兩機(jī)應(yīng)采用相同的工作方式和波特率。第四十六張,PPT共七十四頁(yè),創(chuàng)作于2022年6月參考接收子程序如下: MOV SCON,#80H ;設(shè)置串行口為方式2 MOV PCON,#80H ;SMOD=1MOV R0,#50H ;設(shè)置數(shù)據(jù)塊指針MOV R

24、7,#20H ;設(shè)置數(shù)據(jù)塊長(zhǎng)度SETB REN ;啟動(dòng)接收WAIT:JBC RI,READ ;判斷是否接收完一幀。若完,清RI,讀入數(shù)據(jù)AJMP WAIT ;未完等待READ:MOV A,SBUF ;讀入一幀數(shù)據(jù)aJNB PSW.0,PZ ;奇偶位為0則轉(zhuǎn)JNB RB8, ERR ;P=1,RB8=0,則出錯(cuò) SJMP RIGHT ;二者全為1,則正確 PZ: JB RB8, ERR ;P=0,RB8=1,則出錯(cuò)RIGHT: MOV R0, A ;正確,存放數(shù)據(jù)INC R0 ;更新地址指針DJNZ R7, WAIT ;判斷數(shù)據(jù)塊是否接收完CLR PSW.5 ;接收正確,且接收完清F0標(biāo)志RET

25、 ;返回 ERR: SETB PSW.5 ;出錯(cuò),置F0標(biāo)志為1RET ;返回第四十七張,PPT共七十四頁(yè),創(chuàng)作于2022年6月7.3 多個(gè)89C51通信多機(jī)通信步驟:主機(jī)SM20,所有從機(jī)的SM21,以便接收主機(jī)發(fā)來(lái)的地址。主機(jī)發(fā)送地址,其中D81。所有從機(jī)接收主機(jī)發(fā)來(lái)的地址,進(jìn)入中斷服務(wù)程序,并和本機(jī)地址比較,確認(rèn)是否是被尋址從機(jī)。被尋址從機(jī)清除SM2,以便接收數(shù)據(jù),并向主機(jī)發(fā)回從機(jī)地址,供主機(jī)核對(duì)。其他從機(jī)保持SM21,并退出中斷服務(wù)程序。數(shù)據(jù)通信完畢,被尋址從機(jī)SM21,退出中斷服務(wù)程序,等待下次通信。第四十八張,PPT共七十四頁(yè),創(chuàng)作于2022年6月 串行口及串行通信技術(shù)串行通信基本

26、知識(shí)89C51串口及其應(yīng)用兩個(gè)單片機(jī)之間的通信單片機(jī)與PC機(jī)之間的通信第四十九張,PPT共七十四頁(yè),創(chuàng)作于2022年6月PC機(jī)與單片機(jī)通信 PC機(jī)是國(guó)內(nèi)目前使用應(yīng)用最廣泛的微機(jī),在與單片機(jī)串行接口后,可以方便地構(gòu)成主從分布式多機(jī)系統(tǒng)。從機(jī)(單片機(jī))作數(shù)據(jù)采集或?qū)崟r(shí)控制,主機(jī)作數(shù)據(jù)處理或中央管理等。 這種多機(jī)系統(tǒng)在過(guò)程控制、儀表生產(chǎn)、生產(chǎn)自動(dòng)化和企業(yè)管理等方面都有廣泛的應(yīng)用。此外微機(jī)和單片機(jī)串行接口后,可以大大方便單片機(jī)的開(kāi)發(fā)過(guò)程。第五十張,PPT共七十四頁(yè),創(chuàng)作于2022年6月7.4 89C51與PC機(jī)通信電氣規(guī)范不一致,TTL與RS232電平轉(zhuǎn)換,1488、148989C51第五十一張,PP

27、T共七十四頁(yè),創(chuàng)作于2022年6月采用MAX232芯片接口的PC機(jī)與89C51單片機(jī)串行通信接口電路只需單一的+5V電源即可Tin、Rout-接單片機(jī)Rin、Tout-接PC機(jī) Tin、Tout成對(duì)使用 Rin、Rout成對(duì)使用 T、R是針對(duì)單片機(jī)的動(dòng)作命名的第五十二張,PPT共七十四頁(yè),創(chuàng)作于2022年6月PC機(jī)一般使用通用異步接收器/發(fā)送器(8250) 或16c550/作為串行通訊的控制器,使用9針或25針的接插件將串行口的信號(hào)送出。第五十三張,PPT共七十四頁(yè),創(chuàng)作于2022年6月一、PC機(jī)串口資源及編程使用方法 PC機(jī)一般有COM1和COM2兩個(gè)串口。 寄存器名稱端口地址復(fù)位后初始值C

28、OM1COM2發(fā)送器保持寄存器(TBR)3F8H2F8HXXXXXXXXB接收器數(shù)據(jù)寄存器(RBR)3F8H2F8HXXXXXXXXB波特率因子低位寄存器(DLL)3F8H2F8H00000000B波特率因子高位寄存器(DLH)3F9H2F9H00000001B中斷允許寄存器(IER)3F9H2F9H00000000B中斷標(biāo)識(shí)寄存器(IIR)3FAH2FAH00000000B線路控制寄存器(LCR)3FBH2FBH01100000B調(diào)制解調(diào)器控制寄存器(MCR)3FCH2FCHXXXX0000B線路狀態(tài)寄存器(LSR)3FDH2FDHXXXXXXXXB調(diào)制解調(diào)器狀態(tài)寄存器(MSR)3FEH2F

29、EHXXXXXXXXB8250系列寄存器的定義: 第五十四張,PPT共七十四頁(yè),創(chuàng)作于2022年6月使用串口必須先初始化,有以下4個(gè)步驟DLHDLL波特率DLHDLL波特率DLHDLL波特率09H00H5000HC0H60000H18H480006H00H7500H60H120000H10H720004H17H11000H40H180000H0CH960003H59H134.500H3AH200000H06H1920003H00H15000H30H240000H03H3840001H80H30000H20H360000H01H115200例:設(shè)COM1的波特率為9600,則outportb(0

30、 x3fb,0 x80);/*寫(xiě)線路控制寄存器,訪問(wèn)波特率因子寄存器*/ outportb(0 x3f8,0 x0c);/*寫(xiě)入波特率因子低字節(jié)*/ outportb(0 x3f9,0 x00);/*寫(xiě)入波特率因子高字節(jié)*/ 設(shè)置波特率PC機(jī)串口初始化第五十五張,PPT共七十四頁(yè),創(chuàng)作于2022年6月 設(shè)置數(shù)據(jù)格式 例:設(shè)數(shù)據(jù)為7位,1位起始位,1位停止位,偶校驗(yàn),則設(shè)置如下:outportb(0 x3fb,0 x1a); 設(shè)置操作方式不允許中斷:outportb(0 x3fc,0 x03);允許中斷:outportb(0 x3fc,0 x0b);自測(cè)試工作方式,且不允許中斷:outportb

31、(0 x3fc,0 x13); 設(shè)置中斷允許寄存器開(kāi)放中斷語(yǔ)句:outportb(0 x3f9,0 x0f); PC機(jī)串口初始化第五十六張,PPT共七十四頁(yè),創(chuàng)作于2022年6月例1 將PC機(jī)的COM1初始化為9600波特率、7位數(shù)據(jù)、偶校驗(yàn)、1位停止位、不中斷,則初始程序如下:initcom1()outportb(0 x3fb,0 x80); /*寫(xiě)線路控制寄存器,訪問(wèn)波特率因子寄存器*/ outportb(0 x3f8,0 x0c); /*寫(xiě)入波特率因子低字節(jié)*/ outportb(0 x3f9,0 x00); /*寫(xiě)入波特率因子高字節(jié)*/ outportb(0 x3fb,0 x1a);

32、/*設(shè)數(shù)據(jù)為7位,1位起始 位,1位停止位,偶校驗(yàn)*/ outportb(0 x3fc,0 x03); /*不允許中斷*/PC機(jī)的發(fā)送、接收程序第五十七張,PPT共七十四頁(yè),創(chuàng)作于2022年6月例2 PC機(jī)從COM1發(fā)送一個(gè)字符,程序如下:send(char sendchar)Int coms;do/*查詢發(fā)送緩沖器是否空*/coms=inportb(0 x3fd);while(coms!=0 x20);查詢等待com1的線路狀態(tài)寄存器(LSR)的第五位的狀態(tài)是否為1,即發(fā)送保持寄存器是否為空?outportb(0 x3f8,sendchar);第五十八張,PPT共七十四頁(yè),創(chuàng)作于2022年6

33、月例3 PC機(jī)從COM1接收一個(gè)字符,程序如下:char receive() char coms,receivechar;waitok:/*查詢接收數(shù)據(jù)是否有效*/coms=inportb(0 x3fd);if(coms&0 x01)=0)goto waitok;receivechar= inportb(0 x3f8);return receivechar;第五十九張,PPT共七十四頁(yè),創(chuàng)作于2022年6月二、PC機(jī)與單片機(jī)雙機(jī)通信 PC機(jī)與單片機(jī)構(gòu)成主從式上下位計(jì)算機(jī)系統(tǒng)。 例:從PC機(jī)鍵盤(pán)上輸入一個(gè)字符,然后將這個(gè)字符發(fā)送給單片機(jī),單片機(jī)接收到這個(gè)字符后,不做任何處理,又將它發(fā)回給PC機(jī),

34、PC機(jī)將這個(gè)字符顯示在屏幕上。連接電路如下: PC機(jī)RXDTXDMAX232T1OUTR1INT1IN(R1OUTRXDTXDMCS-51約定:波特率:2400b/s信息格式:8位數(shù)據(jù),1位停止位傳送方式:PC機(jī)采用查詢式收發(fā)數(shù)據(jù),單片機(jī)采用中斷式收發(fā)數(shù)據(jù) 由于PC機(jī)是RS-232C電平,單片機(jī)是TTL電平,用MAX232進(jìn)行電平轉(zhuǎn)換。PC機(jī)與單片機(jī)通信設(shè)計(jì)第六十張,PPT共七十四頁(yè),創(chuàng)作于2022年6月 PC機(jī)的通信軟件 #include “stdio.h”main() char c1,c2; int coms;outportb(0 x3fb,0 x80);/*初始化8250*/outpor

35、tb(0 x3f8,0 x30); outportb(0 x3f9,0 x00);outportb(0 x3fb,0 x03);/*8位數(shù)據(jù),1位停止位*/outportb(0 x3fc,0 x03);c1=getchar();開(kāi) 始初始化8250有鍵輸入嗎?取鍵盤(pán)字符發(fā)送寄存器空否?向單片機(jī)發(fā)送字符接收單片機(jī)發(fā)回的字符接收的數(shù)據(jù)有效碼?顯示發(fā)回的字符NNNYYY結(jié) 束PC機(jī)發(fā)送程序第六十一張,PPT共七十四頁(yè),創(chuàng)作于2022年6月開(kāi) 始初始化定時(shí)器T1初始化串行口啟動(dòng)定時(shí)器T1開(kāi)放中斷主程序踏步中斷服務(wù)程序關(guān)中斷清接收中斷標(biāo)志RI保護(hù)現(xiàn)場(chǎng)接收PC機(jī)發(fā)來(lái)的字符將字符發(fā)送回PC機(jī)開(kāi)中斷,恢復(fù)現(xiàn)場(chǎng)

36、中斷返回MCS-51單片機(jī)通信軟件主程序中斷服務(wù)程序第六十二張,PPT共七十四頁(yè),創(chuàng)作于2022年6月主程序:ORG0000HLJMPMAINORG0023HLJMPSERVEMAIN: MOVTMOD,#20H ;初始化T1MOVTH1,#0F3HMOVTL1,#0F3HMOVSCON,#50H;串行口為方式1,REN=1MOVPCON,#80H;SMOD=1SETBTR1SETBEASETBESHERE: SJMPHERE單片機(jī)接收程序第六十三張,PPT共七十四頁(yè),創(chuàng)作于2022年6月中斷服務(wù)程序:SERVE:CLREA;中斷服務(wù)程序CLRRIPUSHPSW;保護(hù)現(xiàn)場(chǎng)PUSHACCMOVA

37、,SBUF;接收PC機(jī)發(fā)來(lái)的字符MOVSBUF,A;將字符回送給PC機(jī)WAIT:JNBTI,WAIT;等待發(fā)送完畢CLRTIPOPACC;恢復(fù)現(xiàn)場(chǎng)POPPSWSETBEARETIEND第六十四張,PPT共七十四頁(yè),創(chuàng)作于2022年6月三、PC機(jī)與單片機(jī)通訊多機(jī)通信多機(jī)通信的關(guān)鍵問(wèn)題:識(shí)別單片機(jī)!給單片機(jī)編號(hào)。怎樣識(shí)別單片機(jī)?起始位D0D1D2D3D4D5D6D7奇偶位停止位起始位D0D1D2D3D4D5D6D7TB8停止位 從PC機(jī)和單片機(jī)幀格式可知:通過(guò)軟件編程,使得PC機(jī)在發(fā)送地址(單片機(jī)編號(hào))時(shí),奇偶位為1,發(fā)送數(shù)據(jù)時(shí)為0;單片機(jī)接收時(shí),TB8為1表示收到的地址,為0表示收到的數(shù)據(jù)。 P

38、C機(jī)與單片機(jī)通訊多機(jī)通信第六十五張,PPT共七十四頁(yè),創(chuàng)作于2022年6月例:從PC機(jī)的鍵盤(pán)上輸入單片機(jī)的編號(hào),要求PC機(jī)與該單片機(jī)進(jìn)行通信測(cè)試,從鍵盤(pán)上輸入一個(gè)字符,發(fā)送給某單片機(jī),單片機(jī)受到該字符后,又發(fā)回給PC機(jī),在屏幕上顯示出來(lái)。 由于RS-232C不能實(shí)現(xiàn)多機(jī)通信,故采用RS-422標(biāo)準(zhǔn)。電路如下: PC機(jī)TXDRXD232/422轉(zhuǎn)換器RXDTXDMCS-5175175751741號(hào)RXDTXDMCS-5175175751742號(hào)RXDTXDMCS-517517575174n號(hào)PC機(jī)與單片機(jī)的多機(jī)通信圖中75174是長(zhǎng)線發(fā)送器,它將單端輸入信號(hào)變成差動(dòng)輸出信號(hào),并增強(qiáng)驅(qū)動(dòng)能力。75

39、175是長(zhǎng)線接收器,它將差動(dòng)輸入信號(hào)變成單端輸出信號(hào)。第六十六張,PPT共七十四頁(yè),創(chuàng)作于2022年6月什么是差分信號(hào)?一個(gè)差分信號(hào)是用一個(gè)數(shù)值來(lái)表示兩個(gè)物理量之間的差異。一個(gè)差分信號(hào)作用在兩個(gè)導(dǎo)體上,信號(hào)值是兩個(gè)導(dǎo)體間的電壓差。采用差分信號(hào)有什么好處 ?因?yàn)槟阍诳刂苹鶞?zhǔn)電壓,所以能夠很容易地識(shí)別小信號(hào)。 它對(duì)外部電磁干擾(EMI)是高度免疫的。 在一個(gè)單電源系統(tǒng),能夠從容精確地處理雙極信號(hào) 第六十七張,PPT共七十四頁(yè),創(chuàng)作于2022年6月開(kāi) 始初始化8250輸入單片機(jī)編號(hào)發(fā)送單片機(jī)編號(hào)接收單片機(jī)送回的編號(hào)取鍵盤(pán)字符編號(hào)一致嗎?向單片機(jī)發(fā)送字符接收單片機(jī)發(fā)回的字符顯示發(fā)回的字符NY結(jié) 束多機(jī)

40、通訊程序設(shè)計(jì)第六十八張,PPT共七十四頁(yè),創(chuàng)作于2022年6月程序清單:#include “stdio.h”main() char c1,c2,n1,n2; int coms; outportb(0 x3fb,0 x80);/*初始化8250*/ outportb(0 x3f8,0 x30); outportb(0 x3f9,0 x00); outportb(0 x3fb,0 x2b);/*8位數(shù)據(jù),1位停止,奇偶校驗(yàn)位為1*/ outportb(0 x3fc,0 x03);/*PC機(jī)處于發(fā)送地址狀態(tài)*/ outportb(0 x3f9,0 x00);/*禁止8250中斷*/ printf(“Please input the number of MCS:n”); scanf(“%c”,&n1); do/*查詢發(fā)送移

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論