版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
關(guān)于串行口及串行通信技術(shù)什么是串行通信?串行通信和并行通信
計(jì)算機(jī)1GND
計(jì)算機(jī)2GND并行通信
計(jì)算機(jī)1GND
計(jì)算機(jī)2GND發(fā)送接收串行通信并行通信:數(shù)據(jù)的各位同時傳送;串行通信:數(shù)據(jù)一位一位順序傳送。快、多(數(shù)據(jù)線)、近慢、少、遠(yuǎn)第2頁,共74頁,2024年2月25日,星期天串行通信制式:單工(a)、半雙工(b)和全雙工(c)(simplexhalfduplexfullduplex)發(fā)送器A站接收器B站單工通信(a)發(fā)收A站發(fā)收B站發(fā)收A站發(fā)收B站(b)(c)第3頁,共74頁,2024年2月25日,星期天
異步通信,ASYNC(AsynchronousDataCommunication):幀格式傳送,信息量不大1個起始位,05~8個數(shù)據(jù)位奇偶校驗(yàn)位1~2個停止位,0串行通信的分類:異步(AsynchronousCommunication)
同步(SynchronousCommunication)
第4頁,共74頁,2024年2月25日,星期天
同步通信,SYNC(SynchronousDataCommunication):嚴(yán)格同步,發(fā)送同步字符,數(shù)據(jù)連續(xù),信息量大,速度較高按數(shù)據(jù)塊傳送——把要傳送的字符順序連接起來 數(shù)據(jù)塊前有同步字符,后有檢驗(yàn)字符同步字符可由通信雙方約定,也可采用ASCII碼中規(guī)定的SYNC代碼,即16H。數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)……數(shù)據(jù)數(shù)據(jù)……同步字符同步字符1同步字符2同步傳送時,要求用時鐘來實(shí)現(xiàn)發(fā)送端與接收端之間的同步。第5頁,共74頁,2024年2月25日,星期天波特率(Bandrate)數(shù)據(jù)傳送速率:每秒傳送的二進(jìn)制代碼的位數(shù)。波特率反映了串行通信的速率,也反映了對于傳輸通道的要求。波特率越高,要求傳輸通道的頻率越寬,一般異步通信的波特率在50b/s~19200b/s之間。相互通信的甲乙雙方必須具有相同的波特率,否則無法成功地完成串行數(shù)據(jù)通信。通信線上傳送的所有位信號都保持一致的信號持續(xù)時間,每一位的信號持續(xù)時間都由數(shù)據(jù)傳送速度確定。第6頁,共74頁,2024年2月25日,星期天舉例假如在1秒內(nèi),89C51串口把100個FFH的數(shù)據(jù)發(fā)送出去,問波特率是多少?假若每個字符是包含一個起始位、一個終止位和8個數(shù)據(jù)位。第7頁,共74頁,2024年2月25日,星期天根據(jù)串行通信的格式及約定(如:同步方式、通訊速率、數(shù)據(jù)塊格式、信號電平……等)不同,形成了多種串行通信的協(xié)議與接口標(biāo)準(zhǔn)。常見的有:?通用異步收發(fā)器(UART)——本課程介紹的串口?通用串行總線(USB)?I2C總線?CAN總線?SPI總線?RS-485,RS-232C,RS422A標(biāo)準(zhǔn)……等等串行通信的基本特征是數(shù)據(jù)逐位順序進(jìn)行傳送。第8頁,共74頁,2024年2月25日,星期天
串行口及串行通信技術(shù)串行通信基本知識89C51串口及其應(yīng)用兩個單片機(jī)之間的通信單片機(jī)與PC機(jī)之間的通信第9頁,共74頁,2024年2月25日,星期天概述有一個可編程全雙工異步串行通信接口(UART)(UniversalAsynchronousReceiver/Transmitter
)管腳:TXD(P3.1)、RXD(P3.0)可同時發(fā)送、接收數(shù)據(jù)(Transmit/Receive)有四種工作方式,幀格式有8、10、11位。波特率(Baudrate)可設(shè)置
波特率:每秒鐘傳送二進(jìn)制數(shù)碼的位數(shù),也叫比特?cái)?shù),單位為b/s,即位/秒。89C51的串行接口第10頁,共74頁,2024年2月25日,星期天圖7-7return第11頁,共74頁,2024年2月25日,星期天串行口結(jié)構(gòu)
引腳RXD(P3.0串行數(shù)據(jù)接收端)
引腳TXD(P3.1串行數(shù)據(jù)發(fā)送端)MOVSBUF,A:發(fā)送數(shù)據(jù)到串口引腳
MOVA,SBUF:接收數(shù)據(jù)
RI:從串口上接收數(shù)據(jù)到SBUFRI=1TI:數(shù)據(jù)從SBUF向外發(fā)送完
TI=1第12頁,共74頁,2024年2月25日,星期天MCS-51串行接口寄存器SBUF——串行口數(shù)據(jù)緩沖器SCON——串行口控制寄存器PCON——電源及波特率選擇寄存器第13頁,共74頁,2024年2月25日,星期天控制寄存器SCONSM0SM1SM2RENTB8RB8TIRI工作方式選擇多機(jī)通信控制位允許串行接收位接收數(shù)據(jù)的第9位發(fā)送數(shù)據(jù)的第9位接收中斷標(biāo)志發(fā)送中斷標(biāo)志9FH9EH9DH9CH9BH9AH99H98HSM2置1,多機(jī)通信,用于方式2和方式3D8=1,地址幀D8=0,數(shù)據(jù)幀SM2置0,不屬于多機(jī)通信第14頁,共74頁,2024年2月25日,星期天SM0SM1工作方式功能波特率00方式08位同步移位寄存器fosc/1201方式110位UART可變10方式211位UARTfosc/64或fosc/3211方式311位UART可變串行方式的定義例:設(shè)串行口工作在方式1,允許接收,則指令為:
MOVSCON,#01010000B第15頁,共74頁,2024年2月25日,星期天串行通信只用該位,為1時,波特率×2;為0時不變。電源及波特率選擇寄存器PCONSMOD×××GF1GF0PDIDL87H第16頁,共74頁,2024年2月25日,星期天串行口四種工作方式應(yīng)用比較方式的選擇由SM1、SM0實(shí)現(xiàn)。工作方式功能說明波特率方式08位同步移位寄存器常用于擴(kuò)展I/O口fosc/12方式110位UART8位數(shù)據(jù)、起始位、結(jié)束位可變(取決于定時器1溢出率)方式211位UART8位數(shù)據(jù)、起始位0、結(jié)束位1和奇偶校驗(yàn)位fosc/64或fosc/32方式311位UART數(shù)據(jù)、起始、校驗(yàn)、結(jié)束位可變(取決于定時器1溢出率)波特率的設(shè)定可參見表7.2,實(shí)際無需計(jì)算。表第17頁,共74頁,2024年2月25日,星期天方式0
在方式0下,串行口作同步移位寄存器用,其波特率固定為fosc/12。串行數(shù)據(jù)從RXD(P3.0)端輸入或輸出,同步移位脈沖由TXD(P3.1)送出。這種方式常用于擴(kuò)展I/O口。方式0用于擴(kuò)展I/O口輸出第18頁,共74頁,2024年2月25日,星期天方式0用于擴(kuò)展I/O口輸入第19頁,共74頁,2024年2月25日,星期天方式110位的幀格式
串行口為波特率可調(diào)的10位通用異步接口UART。每發(fā)送或接收的一幀信息中,包括1位起始位0,8位數(shù)據(jù)位和1位停止位1。第20頁,共74頁,2024年2月25日,星期天方式2
串行口為11位UART,傳送波特率與SMOD有關(guān)。發(fā)送或接收的一幀數(shù)據(jù)中包括1位起始位0,8位數(shù)據(jù)位,1位可編程位(用于奇偶校驗(yàn))和1位停止位1。11位的幀格式第21頁,共74頁,2024年2月25日,星期天方式3
方式3為波特率可變的11位UART通信方式,除了波特率以外,方式3和方式2完全相同。第22頁,共74頁,2024年2月25日,星期天MCS-51串行口的波特率1.方式0和方式2的波特率是固定的
在方式2中,波特率取決于PCON中的SMOD值:當(dāng)SMOD=0時,波特率為fosc/64;當(dāng)SMOD=1時,波特率為fosc/32.即波特率=。oscSMODf642
在方式0中,波特率為時鐘頻率的1/12,即fosc/12,固定不變圖第23頁,共74頁,2024年2月25日,星期天2.方式1和方式3的波特率可變,由定時器1的溢出率決定波特率/(b/s)fosc/MHzSMOD定時器1C/模式初始值方式0:1M方式2:375k方式1、3:62.5k19.2k9.6k4.8k2.4k1.2k137.5k11011012121211.05911.05911.05911.05911.05911.986612×1110000000××000000000××222222221××FFHFDHFDHFAHF4HE8H1DH72HFEEBHT波特率=returnRETURN第24頁,共74頁,2024年2月25日,星期天
解決的方法只有調(diào)整單片機(jī)的時鐘頻率fosc,通常采用11.0592MHz晶振。常用波特率及其產(chǎn)生條件
常用波特率通常按規(guī)范取1200、2400、4800、9600、…,若采用晶振12MHz和6MHz,則計(jì)算得出的T1定時初值將不是一個整數(shù),產(chǎn)生波特率誤差而影響串行通信的同步性能。第25頁,共74頁,2024年2月25日,星期天四種工作方式應(yīng)用舉例第26頁,共74頁,2024年2月25日,星期天串行口的應(yīng)用編程注意事項(xiàng)設(shè)置串行口工作方式設(shè)置波特率(SMOD,若是方式1、3,設(shè)置TI初值)若串行口接收數(shù)據(jù),REN必須賦值為1TI和RI標(biāo)志,須由軟件清0第9位第27頁,共74頁,2024年2月25日,星期天串行口工作方式0
用于擴(kuò)展I/O口,外接74HC164(串入并出)或165(并入串出)。RXD作為數(shù)據(jù)輸入/輸出端,TXD作為同步時鐘信號,接至?xí)r鐘端。
8位數(shù)據(jù)為1幀,由低位到高位,無起始位和停止位。波特率:fosc/12第28頁,共74頁,2024年2月25日,星期天例用89C51串行口外接CD4049或164串入-并出移位寄存器擴(kuò)展8位并行口;8位并行口的每位都接一個發(fā)光二極管,要求發(fā)光二極管從左到右以一定延遲輪流顯示,并不斷循環(huán)。設(shè)發(fā)光二極管為共陰極接法。如圖所示。89C51RXDTXDP1.0DATACD4049CLKSTB
第29頁,共74頁,2024年2月25日,星期天解:設(shè)數(shù)據(jù)串行發(fā)送采用中斷方式,顯示延遲通過延遲程序DELAY來實(shí)現(xiàn)。程序清單:
ORG0000HLJMPMAIN
ORG 0023H AJMP SBR ORG 2000HMAIN:MOV SCON,#00H
;串行口方式0初始化
MOV A,#80H
;最左一位發(fā)光二極管先亮
CLR P1.0
;關(guān)閉并行輸出
MOV SBUF,A
;開始串行輸出LOOP:SJMP $;等待中斷SBR: SETB P1.0
;啟動并行輸出
ACALLDELAY
;顯示延遲一段時間
CLR TI
;清發(fā)送中斷標(biāo)志
RR A
;準(zhǔn)備右移一位顯示
CLR P1.0
;關(guān)閉并行輸出
MOV SBUF,A
;再一次串行輸出
RETI
第30頁,共74頁,2024年2月25日,星期天串行口工作方式110位通用異步串行口UART(UniversalAsynchronousReceiver/Transmitter),1位起始位、8位數(shù)據(jù)、1位停止位。波特率可調(diào),由定時器T1的溢出率(定時時間)決定。當(dāng)一幀數(shù)據(jù)接收完畢后,必須同時滿足以下條件,這次接收才真正有效:REN=1RI=0,SBUF為空SM2=0或SM2=1時,收到停止位為1,收到的數(shù)據(jù)才能裝到SBUF里。第31頁,共74頁,2024年2月25日,星期天串行口工作方式1波特率(定時器T1的溢出速率)
PCON.7波特率選擇位第32頁,共74頁,2024年2月25日,星期天7位ASCII碼+1位奇偶校驗(yàn)位=8A中1的個數(shù)為奇數(shù),P=1,如果最高位為為P的值,則A的1的個數(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的個數(shù)偶校驗(yàn):以上1的個數(shù)為偶數(shù)奇校驗(yàn):以上1的個數(shù)為奇數(shù)第33頁,共74頁,2024年2月25日,星期天MOV TMOD,#20H;MOV TL1,#0E8H;MOV TH1,#0E8H;SETB TR1;MOV SCON,#50H;MOV R0,#20H;MOV R1,#40H;SETB ES;SETB EA;LCALL SOUT;SJMP $;T1為模式2時間常數(shù),見表7-2重裝時常啟動T1串行口方式1,允許接收發(fā)送數(shù)據(jù)區(qū)首址接收數(shù)據(jù)區(qū)首址串行口開中斷CPU開中斷發(fā)送一個字符等待中斷表ORG 0000HLJMP MAINORG 0050HMAIN:第34頁,共74頁,2024年2月25日,星期天中斷服務(wù)程序ORG 0023HLJMP SBR1ORG 0100HPUSH ACCPUSH PSWJNB RI,SENDLCALL SINSJMP NEXTLCALL SOUTPOP PSWPOP ACCRETISBR1:SEND:NEXT:第35頁,共74頁,2024年2月25日,星期天發(fā)送子程序CLR TIMOV A,@R0MOV C,PCPL CMOV ACC.7,CMOVSBUF,AINCR0RETSOUT:;若奇數(shù)個1,P=1;取要發(fā)送的數(shù)據(jù);A中的ASCII碼為奇校驗(yàn);發(fā)送;修改發(fā)送數(shù)據(jù)區(qū)指針第36頁,共74頁,2024年2月25日,星期天接收子程序CLR RIMOVA,SBUFJNB P,ERANL A,#7FHMOV@R1,AINC R1RET……SIN:;若偶數(shù)個1,出錯;讀接收到的數(shù)據(jù);數(shù)據(jù)存入接收區(qū);修改接收數(shù)據(jù)區(qū)指針;若奇數(shù)個1,ACC.7清0ER:;處理出錯程序第37頁,共74頁,2024年2月25日,星期天串行口工作方式2和方式3每幀11位:1位起始位,9位數(shù)據(jù)(D8~D0),1位停止位;第9位數(shù)據(jù)作為奇偶校驗(yàn)位或地址/數(shù)據(jù)標(biāo)志位;發(fā)送時,第9位(D8)數(shù)據(jù)裝入TB8;--串口自動完成MOVA,DATAMOVTB8,CMOVSBUF,A接收時,第9位(D8)數(shù)據(jù)裝入RB8;D0~D7SBUFD8RB8RI=1多機(jī)通信第38頁,共74頁,2024年2月25日,星期天串行口工作方式2和方式3方式2,波特率位fosc/32或fosc/64;方式3,波特率可調(diào),同方式1。第39頁,共74頁,2024年2月25日,星期天用第9個數(shù)據(jù)位作奇偶校驗(yàn)位,編制串行口方式2的發(fā)送程序。例:設(shè)計(jì)一個發(fā)送程序,將片內(nèi)RAM50H~5FH中的數(shù)據(jù)串行發(fā)送;串行口設(shè)定為方式2狀態(tài),TB8作奇偶校驗(yàn)位,采用偶校驗(yàn)。串行口初始化地址指針R0長度計(jì)數(shù)器R7置初值取數(shù)據(jù)
APTB8ASBUFTI=1?0TI,指針R0+1(R7)-1=0?返回YYNN第40頁,共74頁,2024年2月25日,星期天程序清單TRT: MOVSCON,#80H;方式2設(shè)定
MOVPCON,#80H;波特率=fosc/32 MOVR0,#50H;首地址
R0MOVR7,#10H;數(shù)據(jù)長度LOOP:MOVA,@R0 ;取數(shù)據(jù)
MOVC,PSW.0;PTB8 MOVTB8,C MOVSBUF,A;數(shù)據(jù)SBUF,啟動發(fā)送WAIT:JBCTI,CONT;判斷發(fā)送中斷標(biāo)志
SJMPWAITCONT:INCR0 DJNZR7,LOOP RET 第41頁,共74頁,2024年2月25日,星期天
串行口及串行通信技術(shù)串行通信基本知識89C51串口及其應(yīng)用兩個單片機(jī)之間的通信單片機(jī)與PC機(jī)之間的通信第42頁,共74頁,2024年2月25日,星期天兩個單片機(jī)之間的通信通信協(xié)議:幀格式、校驗(yàn)方式等
波特率第43頁,共74頁,2024年2月25日,星期天雙機(jī)通信軟件編程查詢方式
1)甲機(jī)發(fā)送編程將甲機(jī)片外1000H~101FH單元的數(shù)據(jù)塊從串行口輸出。定義方式2發(fā)送,TB8為奇偶校驗(yàn)位。發(fā)送波特率375kb/s,晶振為12MHz,SMOD=1。第44頁,共74頁,2024年2月25日,星期天參考發(fā)送子程序如下:
MOV SCON,#80H;設(shè)置串行口為方式2 MOV PCON,#80H;SMOD=1 MOV DPTR,#1000H;設(shè)數(shù)據(jù)塊指針
MOV R7,#20H;設(shè)數(shù)據(jù)塊長度
START:MOVXA,@DPTR;取數(shù)據(jù)給A MOV C,P MOV TB8,C;奇偶位P送給TB8MOV SBUF,A;數(shù)據(jù)送SBUF,啟動發(fā)送
WAIT:JBCTI,CONT;判斷一幀是否發(fā)送完。若送完,清TI,取下一個數(shù)據(jù)
AJMPWAIT;未完等待
CONT:INCDPTR;更新數(shù)據(jù)單元
DJNZR7,START;循環(huán)發(fā)送至結(jié)束
RET第45頁,共74頁,2024年2月25日,星期天2)乙機(jī)接收編程使乙機(jī)接收甲機(jī)發(fā)送過來的數(shù)據(jù)塊,并存入片內(nèi)50H~6FH單元。接收過程要求判斷RB8,若出錯置F0標(biāo)志為1,正確則置F0標(biāo)志為0,然后返回。在進(jìn)行雙機(jī)通信時,兩機(jī)應(yīng)采用相同的工作方式和波特率。第46頁,共74頁,2024年2月25日,星期天參考接收子程序如下:
MOVSCON,#80H ;設(shè)置串行口為方式2
MOVPCON,#80H ;SMOD=1
MOVR0,#50H ;設(shè)置數(shù)據(jù)塊指針
MOVR7,#20H ;設(shè)置數(shù)據(jù)塊長度
SETBREN ;啟動接收
WAIT:JBCRI,READ;判斷是否接收完一幀。若完,清RI,讀入數(shù)據(jù)
AJMPWAIT;未完等待
READ:MOVA,SBUF;讀入一幀數(shù)據(jù)a
JNBPSW.0,PZ;奇偶位為0則轉(zhuǎn)
JNBRB8,ERR;P=1,RB8=0,則出錯
SJMPRIGHT;二者全為1,則正確
PZ:JBRB8,ERR;P=0,RB8=1,則出錯
RIGHT:MOV@R0,A ;正確,存放數(shù)據(jù)
INCR0 ;更新地址指針
DJNZR7,WAIT ;判斷數(shù)據(jù)塊是否接收完
CLRPSW.5 ;接收正確,且接收完清F0標(biāo)志
RET ;返回
ERR:SETBPSW.5 ;出錯,置F0標(biāo)志為1
RET ;返回第47頁,共74頁,2024年2月25日,星期天7.3多個89C51通信多機(jī)通信步驟:主機(jī)SM2=0,所有從機(jī)的SM2=1,以便接收主機(jī)發(fā)來的地址。主機(jī)發(fā)送地址,其中D8=1。所有從機(jī)接收主機(jī)發(fā)來的地址,進(jìn)入中斷服務(wù)程序,并和本機(jī)地址比較,確認(rèn)是否是被尋址從機(jī)。被尋址從機(jī)清除SM2,以便接收數(shù)據(jù),并向主機(jī)發(fā)回從機(jī)地址,供主機(jī)核對。其他從機(jī)保持SM2=1,并退出中斷服務(wù)程序。數(shù)據(jù)通信完畢,被尋址從機(jī)SM2=1,退出中斷服務(wù)程序,等待下次通信。第48頁,共74頁,2024年2月25日,星期天
串行口及串行通信技術(shù)串行通信基本知識89C51串口及其應(yīng)用兩個單片機(jī)之間的通信單片機(jī)與PC機(jī)之間的通信第49頁,共74頁,2024年2月25日,星期天PC機(jī)與單片機(jī)通信PC機(jī)是國內(nèi)目前使用應(yīng)用最廣泛的微機(jī),在與單片機(jī)串行接口后,可以方便地構(gòu)成主從分布式多機(jī)系統(tǒng)。從機(jī)(單片機(jī))作數(shù)據(jù)采集或?qū)崟r控制,主機(jī)作數(shù)據(jù)處理或中央管理等。這種多機(jī)系統(tǒng)在過程控制、儀表生產(chǎn)、生產(chǎn)自動化和企業(yè)管理等方面都有廣泛的應(yīng)用。此外微機(jī)和單片機(jī)串行接口后,可以大大方便單片機(jī)的開發(fā)過程。第50頁,共74頁,2024年2月25日,星期天7.489C51與PC機(jī)通信電氣規(guī)范不一致,TTL與RS232電平轉(zhuǎn)換,1488、148989C51第51頁,共74頁,2024年2月25日,星期天采用MAX232芯片接口的PC機(jī)與89C51單片機(jī)串行通信接口電路只需單一的+5V電源即可Tin、Rout-------接單片機(jī)Rin、Tout--------接PC機(jī)
Tin、Tout成對使用
Rin、Rout成對使用
T、R是針對單片機(jī)的動作命名的第52頁,共74頁,2024年2月25日,星期天PC機(jī)一般使用通用異步接收器/發(fā)送器(8250)或16c550/作為串行通訊的控制器,使用9針或25針的接插件將串行口的信號送出。第53頁,共74頁,2024年2月25日,星期天一、PC機(jī)串口資源及編程使用方法
PC機(jī)一般有COM1和COM2兩個串口。
寄存器名稱端口地址復(fù)位后初始值COM1COM2發(fā)送器保持寄存器(TBR)3F8H2F8HXXXXXXXXB接收器數(shù)據(jù)寄存器(RBR)3F8H2F8HXXXXXXXXB波特率因子低位寄存器(DLL)3F8H2F8H00000000B波特率因子高位寄存器(DLH)3F9H2F9H00000001B中斷允許寄存器(IER)3F9H2F9H00000000B中斷標(biāo)識寄存器(IIR)3FAH2FAH00000000B線路控制寄存器(LCR)3FBH2FBH01100000B調(diào)制解調(diào)器控制寄存器(MCR)3FCH2FCHXXXX0000B線路狀態(tài)寄存器(LSR)3FDH2FDHXXXXXXXXB調(diào)制解調(diào)器狀態(tài)寄存器(MSR)3FEH2FEHXXXXXXXXB8250系列寄存器的定義:第54頁,共74頁,2024年2月25日,星期天使用串口必須先初始化,有以下4個步驟DLHDLL波特率DLHDLL波特率DLHDLL波特率09H00H5000HC0H60000H18H480006H00H7500H60H120000H10H720004H17H11000H40H180000H0CH960003H59H134.500H3AH200000H06H1920003H00H15000H30H240000H03H3840001H80H30000H20H360000H01H115200例:設(shè)COM1的波特率為9600,則outportb(0x3fb,0x80);/*寫線路控制寄存器,訪問波特率因子寄存器*/
outportb(0x3f8,0x0c);/*寫入波特率因子低字節(jié)*/
outportb(0x3f9,0x00);/*寫入波特率因子高字節(jié)*/
⒈設(shè)置波特率PC機(jī)串口初始化第55頁,共74頁,2024年2月25日,星期天⒉設(shè)置數(shù)據(jù)格式例:設(shè)數(shù)據(jù)為7位,1位起始位,1位停止位,偶校驗(yàn),則設(shè)置如下:outportb(0x3fb,0x1a);⒊設(shè)置操作方式不允許中斷:outportb(0x3fc,0x03);允許中斷:outportb(0x3fc,0x0b);自測試工作方式,且不允許中斷:outportb(0x3fc,0x13);⒋設(shè)置中斷允許寄存器開放中斷語句:outportb(0x3f9,0x0f);PC機(jī)串口初始化第56頁,共74頁,2024年2月25日,星期天例1將PC機(jī)的COM1初始化為9600波特率、7位數(shù)據(jù)、偶校驗(yàn)、1位停止位、不中斷,則初始程序如下:initcom1(){outportb(0x3fb,0x80);/*寫線路控制寄存器,訪問波特率因子寄存器*/
outportb(0x3f8,0x0c);/*寫入波特率因子低字節(jié)*/outportb(0x3f9,0x00);/*寫入波特率因子高字節(jié)*/
outportb(0x3fb,0x1a);/*設(shè)數(shù)據(jù)為7位,1位起始位,1位停止位,偶校驗(yàn)*/outportb(0x3fc,0x03);/*不允許中斷*/}PC機(jī)的發(fā)送、接收程序第57頁,共74頁,2024年2月25日,星期天例2PC機(jī)從COM1發(fā)送一個字符,程序如下:send(charsendchar){Intcoms;do{ /*查詢發(fā)送緩沖器是否空*/coms=inportb(0x3fd);}while(coms!=0x20);查詢等待com1的線路狀態(tài)寄存器(LSR)的第五位的狀態(tài)是否為1,即發(fā)送保持寄存器是否為空?outportb(0x3f8,sendchar);}第58頁,共74頁,2024年2月25日,星期天例3PC機(jī)從COM1接收一個字符,程序如下:charreceive(){charcoms,receivechar;waitok: /*查詢接收數(shù)據(jù)是否有效*/coms=inportb(0x3fd);if((coms&0x01)==0)gotowaitok;receivechar=inportb(0x3f8);returnreceivechar;}第59頁,共74頁,2024年2月25日,星期天二、PC機(jī)與單片機(jī)雙機(jī)通信
PC機(jī)與單片機(jī)構(gòu)成主從式上下位計(jì)算機(jī)系統(tǒng)。例:從PC機(jī)鍵盤上輸入一個字符,然后將這個字符發(fā)送給單片機(jī),單片機(jī)接收到這個字符后,不做任何處理,又將它發(fā)回給PC機(jī),PC機(jī)將這個字符顯示在屏幕上。連接電路如下: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ì)第60頁,共74頁,2024年2月25日,星期天⒈PC機(jī)的通信軟件#include“stdio.h”main(){charc1,c2;
intcoms;outportb(0x3fb,0x80);/*初始化8250*/outportb(0x3f8,0x30);outportb(0x3f9,0x00);outportb(0x3fb,0x03);/*8位數(shù)據(jù),1位停止位*/outportb(0x3fc,0x03);c1=getchar();開始初始化8250有鍵輸入嗎?取鍵盤字符發(fā)送寄存器空否?向單片機(jī)發(fā)送字符接收單片機(jī)發(fā)回的字符接收的數(shù)據(jù)有效碼?顯示發(fā)回的字符NNNYYY結(jié)束PC機(jī)發(fā)送程序第61頁,共74頁,2024年2月25日,星期天開始初始化定時器T1初始化串行口啟動定時器T1開放中斷主程序踏步中斷服務(wù)程序關(guān)中斷清接收中斷標(biāo)志RI保護(hù)現(xiàn)場接收PC機(jī)發(fā)來的字符將字符發(fā)送回PC機(jī)開中斷,恢復(fù)現(xiàn)場中斷返回MCS-51單片機(jī)通信軟件主程序中斷服務(wù)程序第62頁,共74頁,2024年2月25日,星期天主程序:
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 HERE單片機(jī)接收程序第63頁,共74頁,2024年2月25日,星期天中斷服務(wù)程序:SERVE: CLR EA ;中斷服務(wù)程序
CLR RI PUSH PSW ;保護(hù)現(xiàn)場
PUSH ACC MOV A,SBUF ;接收PC機(jī)發(fā)來的字符
MOV SBUF,A ;將字符回送給PC機(jī)WAIT:JNB TI,WAIT ;等待發(fā)送完畢
CLR TI POP ACC ;恢復(fù)現(xiàn)場
POP PSW SETB EA RETI END第64頁,共74頁,2024年2月25日,星期天三、PC機(jī)與單片機(jī)通訊多機(jī)通信多機(jī)通信的關(guān)鍵問題:識別單片機(jī)!給單片機(jī)編號。怎樣識別單片機(jī)?起始位D0D1D2D3D4D5D6D7奇偶位停止位起始位D0D1D2D3D4D5D6D7TB8停止位
從PC機(jī)和單片機(jī)幀格式可知:通過軟件編程,使得PC機(jī)在發(fā)送地址(單片機(jī)編號)時,奇偶位為1,發(fā)送數(shù)據(jù)時為0;單片機(jī)接收時,TB8為1表示收到的地址,為0表示收到的數(shù)據(jù)。
PC機(jī)與單片機(jī)通訊多機(jī)通信第65頁,共74頁,2024年2月25日,星期天例:從PC機(jī)的鍵盤上輸入單片機(jī)的編號,要求PC機(jī)與該單片機(jī)進(jìn)行通信測試,從鍵盤上輸入一個字符,發(fā)送給某單片機(jī),單片機(jī)受到該字符后,又發(fā)回給PC機(jī),在屏幕上顯示出來。由于RS-232C不能實(shí)現(xiàn)多機(jī)通信,故采用RS-422標(biāo)準(zhǔn)。電路如下:PC機(jī)TXDRXD……232/422轉(zhuǎn)換器RXDTXDMCS-5175175751741號RXDTXDMCS-5175175751742號RXDTXDMCS-517517575174n號PC機(jī)與單片機(jī)的多機(jī)通信圖中75174是長線發(fā)送器,它將單端輸入信號變成差動輸出信號,并增強(qiáng)驅(qū)動能力。75175是長線接收器,它將差動輸入信號變成單端輸出信號。第66頁,共74頁,2024年2月25日,星期天什么是差分信號?一個差分信號是用一個數(shù)值來表示兩個物理量之間的差異。一個差分信號作用在兩個導(dǎo)體上,信號值是兩個導(dǎo)體間的電壓差。采用差分信號有什么好處?因?yàn)槟阍诳刂啤鶞?zhǔn)’電壓,所以能夠很容易地識別小信號。它對外部電磁干擾(EMI)是高度免疫的。在一個單電源系統(tǒng),能夠從容精確地處理'雙極'信號第67頁,共74頁,2024年2月25日,星期天開始初始化8250輸入單片機(jī)編號發(fā)送單片機(jī)編號接收單片機(jī)送回的編號取鍵盤字符編號一致嗎?向單片機(jī)發(fā)送字符接收單片機(jī)發(fā)回的字符顯示發(fā)回的字符NY結(jié)束多機(jī)通訊程序設(shè)計(jì)第68頁,共74頁,2024年2月25日,星期天程序清單:#include“stdio.h”main(){charc1,c2,n1,n2;
intcoms;
outportb(0x3fb,0x80); /*初始化8250*/outportb(0x3f8,0x30);
outportb(0x3f9,0x00);
outportb(0x3fb,0x2b); /*8位數(shù)據(jù),1位停止,奇偶校驗(yàn)位為1*/outportb(0x3fc,0x03); /*PC機(jī)處于發(fā)送地址狀態(tài)*/outportb(0x3f9,0x00); /*禁止8250中斷*/printf(“PleaseinputthenumberofMCS:\n”);
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中自我介紹合集15篇
- 學(xué)生感恩父母的演講稿9篇
- 房地產(chǎn)銷售辭職報告(15篇)
- 升職轉(zhuǎn)正自我鑒定合集4篇
- 假如給我三天光明讀書心得500字10篇
- 會計(jì)專業(yè)自我鑒定模板集錦10篇
- 五年級下冊教師教學(xué)計(jì)劃
- 2024年九年級道德與法治下冊 第3單元 放飛美好夢想 第5課 百年夢尋 第3站樹立總體國家安全觀教學(xué)思路 北師大版
- 倍的認(rèn)識 (教學(xué)實(shí)錄)-2024-2025學(xué)年三年級上冊數(shù)學(xué)人教版
- 七年級生物下冊 第四單元 生物圈中的人 第一章 人的由來 第三節(jié) 青春期教學(xué)實(shí)錄設(shè)計(jì)(新版)新人教版
- DWI高信號常見疾病的鑒別診斷課件-2
- 家庭教育教師培訓(xùn)會(3篇模板)
- 關(guān)于菜鳥驛站轉(zhuǎn)讓合同范本
- 2024年江西生物科技職業(yè)學(xué)院單招職業(yè)技能測試題庫帶解析答案
- 廣東省湛江市寸金培才學(xué)校2022-2023學(xué)年下學(xué)期七年級數(shù)學(xué)期末試卷
- 頑固性高血壓的基因治療新進(jìn)展
- 《征兵入伍應(yīng)征公民體格檢查標(biāo)準(zhǔn)條文釋義》
- 新一代大學(xué)英語基礎(chǔ)篇視聽說教程1答案
- 消防安全臺賬模板
- 醫(yī)院藥劑科年終總結(jié)
- 紅色美術(shù)鑒賞智慧樹知到期末考試答案2024年
評論
0/150
提交評論