版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
關(guān)于串行口工作方式10.05.20231第1頁,課件共75頁,創(chuàng)作于2023年2月MCS-51單片機內(nèi)部集成了一個全雙工異步通信串行口單片機的串行通信使用的是異步串行通信1、并行通信和串行通信1010P1.0P1.1P1.2P1.3RXDTXD單片機外設(shè)1外設(shè)201011010P1.701017.0概述第2頁,課件共75頁,創(chuàng)作于2023年2月異步方式:雙方只有數(shù)據(jù)線而沒有時鐘線。雙方都以自己的時鐘源控制發(fā)送和接收的速率,發(fā)送端和接收端使用的不是同一個時鐘。以字符為單位進行數(shù)據(jù)傳送,每一個字符均按固定的字符格式傳送,又被稱為幀。2、異步方式和同步方式注意:由于通訊雙方系統(tǒng)時鐘往往不同,所以在異步通信中,要想保證通信的成功必須保證兩點: ①通信雙方必須保持相同的傳送、接收速率(波特率); ②雙方必須遵守相同的數(shù)據(jù)格式(字符幀)。優(yōu)點:是不需要傳送同步脈沖,可靠性高,所需設(shè)備簡單;缺點:是傳輸速率低(增加起始位和停止位)。第3頁,課件共75頁,創(chuàng)作于2023年2月同步方式:在物理結(jié)構(gòu)上,通信雙方除了通信的數(shù)據(jù)線外還增加了一個通信用的“時鐘傳輸線clock”。由主控方提供時鐘信號clock。由于有了時鐘信號來“同步”發(fā)送或接收操作,所以被傳送的數(shù)據(jù)不再使用“起始位”和“停止位”,因而提高了傳送速度。因此同步通信常被用于系統(tǒng)內(nèi)部各芯片之間的接口設(shè)計。由于同步通信多了一條“時鐘線”,因此不太適合遠距離的通信。優(yōu)點是數(shù)據(jù)傳輸速率較高;缺點是要求發(fā)送時鐘和接收時鐘保持嚴格同步。主控方被控方dataclock主控方被控方dataclock
主控方發(fā)送數(shù)據(jù)主控方接收數(shù)據(jù)
第4頁,課件共75頁,創(chuàng)作于2023年2月3、串行通信工作方式單工
A
發(fā)
B
收半雙工
A
發(fā)
收
B
收發(fā)廣播電臺收音機對講機全雙工
A
發(fā)收
B
收
發(fā)電話機第5頁,課件共75頁,創(chuàng)作于2023年2月例:異步串行通信的數(shù)據(jù)傳送的速率是120字符/秒,而每個字符規(guī)定包含10位(1個起始位、8個數(shù)據(jù)位、1個停止位)數(shù)字,則傳輸波特率為:
120字符/秒×10位/字符=1200位/秒=1200bps4、波特率用于表征串行通信速率的參數(shù)稱為“波特率”;波特率是指每秒鐘傳送二進制的位數(shù);
(發(fā)送一個二進制位的時間的倒數(shù))
波特率的單位為:位/秒(bit/s);波特(Baud)。波特率取值范圍一般為:0~115200bit/s。影響波特率的主要因素取決于傳輸線的分布電容、通信電平標(biāo)準和傳送距離;第6頁,課件共75頁,創(chuàng)作于2023年2月TTL電平、RS-232、RS-485等通信標(biāo)準。5、串行通信的電平標(biāo)準
TTL電平(0~5V):1.5米以內(nèi)。RS-232標(biāo)準(+12V~-12V):15米之內(nèi)。RS-485標(biāo)準(差分輸入輸出):1200米以上。
TTL電平:邏輯1:5V邏輯0:0VRS-232標(biāo)準:邏輯1:-3~-15V邏輯0:+3V~+15VRS-485標(biāo)準:邏輯1:+(2~6)V邏輯0:-(2~6)V第7頁,課件共75頁,創(chuàng)作于2023年2月MCS-51單片機的異步串行通訊應(yīng)用示意圖MCS-51TXD(甲)RXDRXDMCS-51TXD(乙)單片機甲、乙之間近距離的直接通訊RS-232或485RS-232或485單片機甲乙兩地之間遠距離通訊MCS-51TXD(甲)RXDRXDMCS-51TXD(乙)RS-232PC機COM1,COM2單片機與PC機之間的數(shù)據(jù)通訊MCS-51TXDRXD第8頁,課件共75頁,創(chuàng)作于2023年2月①異步串行UART、同步串行USRT總線接口;②SPI(Microwire)總線接口---同步外設(shè)接口(SPI)是由摩托羅拉公司開發(fā)全雙工同步串行總線。
③I2C總線接口------由PHILIPS公司開發(fā)的兩線式串行總線。
④1-Wire總線接口----是Maxim子公司達拉斯半導(dǎo)體的專利技術(shù),采用單一信號線,
⑤CAN總線接口---1986年德國電氣商博世公司開發(fā)出面向汽車的CAN通信協(xié)議
;⑥USB總線接口---是由Intel、Compaq、Digital、IBM、
Microsoft、NEC、NorthernTelecom等7家世界著名的計算機和通信公司共同推出。6、當(dāng)前嵌入式系統(tǒng)流行的串行接口第9頁,課件共75頁,創(chuàng)作于2023年2月4種工作方式如何設(shè)置波特率如何設(shè)置7.1串行口的結(jié)構(gòu)一、串行口的結(jié)構(gòu)圖:CPU如何查知已發(fā)完或已接收完數(shù)據(jù)如何發(fā)送和接收數(shù)據(jù)第10頁,課件共75頁,創(chuàng)作于2023年2月10.05.202311第11頁,課件共75頁,創(chuàng)作于2023年2月自然優(yōu)先級矢量地址自然優(yōu)先級矢量地址高級中斷請求PCPC斷請求低級中SCON中斷標(biāo)志IPPX01PT0110PX110PS100PT10IEEX0ET0EX1ET1ESTCONIE0TF0IE1TF1TIRIRXTXT11INT10T0INT010源允許總允許優(yōu)先級硬件查詢EAP3.0P3.1P3.5P3.4P3.2P3.3IT0IT1第12頁,課件共75頁,創(chuàng)作于2023年2月2、SCON:串行口控制寄存器98HSM0SM1SM2RENTB8RB8TIRI3、PCON:波特率加倍寄存器87H1、SBUF:串行發(fā)送/接收數(shù)據(jù)緩沖器
99HEA
--ESET1EX1ET0EX04、IE:中斷允許寄存器
A8HSMOD發(fā)送接收5、IP:
中斷優(yōu)先級寄存器-
--PSPT1PX1PT0PX0B8H第13頁,課件共75頁,創(chuàng)作于2023年2月1、SBUF串行發(fā)送/接收數(shù)據(jù)緩沖器
99HSBUF串行發(fā)送/接收數(shù)據(jù)緩沖器是兩個獨立的物理單元,共用一個地址(99H),可同時收、發(fā)數(shù)據(jù)。指注:向發(fā)送緩沖器SBUF寫入數(shù)據(jù)即可發(fā)送數(shù)據(jù);從接收緩沖器SBUF讀出數(shù)據(jù)即可接收數(shù)據(jù)。發(fā)送SBUF接收SBUFMOVSBUF,A
;啟動一次數(shù)據(jù)發(fā)送MOVA,SBUF
;完成一次數(shù)據(jù)接收二、特殊功能寄存器第14頁,課件共75頁,創(chuàng)作于2023年2月
SM2:多機通信控制位(常與RB8配合,決定是否激活RI)多機通信方式2和3中,若SM2=1且接收到的第九位數(shù)據(jù)(RB8)為1,才將接收到的前8位數(shù)據(jù)送入接收緩沖寄存器SBUF中,并置位RI產(chǎn)生中斷請求;否則丟棄前8位數(shù)據(jù)。若SM2=0,則不論第九位數(shù)據(jù)(RB8)為1還是為0,都將前8位送入接收SBUF中,并產(chǎn)生中斷請求。在方式0時,SM2必須置0。2、SCON:串行口控制寄存器98HSM0SM1SM2RENTB8RB8TIRISM0SM1方式功能說明波特率00方式0移位寄存器方式fosc/1201方式18位UART可變(由T1的溢出率決定)10方式29位UARTfosc/64或者fosc/3211方式39位UART可變第15頁,課件共75頁,創(chuàng)作于2023年2月10.05.202316REN:允許接收控制位,軟件置位或清零TB8:將要發(fā)送的第九位數(shù),在執(zhí)行MOVSBUF,A指令之前要事先將TB8設(shè)定好;雙機通信作校驗位,多機通信作地址/數(shù)據(jù)標(biāo)識位。RB8:方式1中放停止位,方式2、3中放接收的第九位數(shù)TI——發(fā)送中斷標(biāo)志位在方式0時,發(fā)送完第8位數(shù)據(jù)后,該位由硬件置位。在其它方式下,于發(fā)送停止位之前,由硬件置位。
TI=1表示幀發(fā)送結(jié)束,其狀態(tài)既可供軟件查詢使用,也可請求中斷。TI由軟件清“0”。RI——接收中斷標(biāo)志位在方式0時,接收完第8位數(shù)據(jù)后,該位由硬件置位。在其它方式下,接收到停止位之前,該位硬件置位。
RI=1表示幀接收結(jié)束,其狀態(tài)既可供軟件查詢使用,也可請求中斷。RI由軟件清“0”。第16頁,課件共75頁,創(chuàng)作于2023年2月SMOD3、PCON:
波特率加倍寄存器87H它的D7位SMOD為串行口波特率控制位,可由軟件置位或清零。若SMOD=1,則使工作在方式1、2、3時的波特率加倍。系統(tǒng)復(fù)位時默認為SMOD=0。第17頁,課件共75頁,創(chuàng)作于2023年2月(1)當(dāng)CPU執(zhí)行:MOVSBUF,A
指令后,便發(fā)送一幀數(shù)據(jù)。1、利用發(fā)送標(biāo)志TI(SCON.1)控制數(shù)據(jù)的發(fā)送操作思考(1)CPU如何發(fā)送數(shù)據(jù)?(2)CPU如何知道已發(fā)送完一幀數(shù)據(jù)?方案一:使用查詢的方式對TI進行檢測:
JNB TI,$
;如果TI≠1則等待
CLRTI
;清楚標(biāo)志位
MOVSBUF,A
;TI=1時發(fā)送下一個數(shù)據(jù)方案二:如果系統(tǒng)中斷是開放的,則TI=1會自動引發(fā)中斷。
CLRTI
;清楚標(biāo)志位
MOVSBUF,A
;在中斷程序中發(fā)送下一個數(shù)據(jù);(2)當(dāng)完成一幀數(shù)據(jù)的發(fā)送后,TI=1,有兩種方案可以知道已發(fā)完一幀數(shù)據(jù)。三、接收和發(fā)送操作第18頁,課件共75頁,創(chuàng)作于2023年2月2、利用接收標(biāo)志RI(SCON.0)控制數(shù)據(jù)的接收操作(1)當(dāng)SUBF從RXD引腳接收完一個完整的數(shù)據(jù)幀時RI=1思考(1)CPU如何知道已接收完一幀數(shù)據(jù)?(2)CPU如何處理接收的數(shù)據(jù)?(2)CPU可以使用兩種方案來處理接收的數(shù)據(jù):方案一:CPU采用查詢RI來控制數(shù)據(jù)的讀取。
JNBRI,$
;如果RI≠1則等待
CLRRI
;清楚標(biāo)志位
MOVA,SBUF
;RI=1時,取SBUF中數(shù)據(jù)送A。方案二:如果中斷是開放的,則RI=1時會自動引發(fā)中斷。
CLRRI
MOVA,SBUF
;中斷方式接收數(shù)據(jù);
第19頁,課件共75頁,創(chuàng)作于2023年2月RXD:接收、發(fā)送的是8位數(shù)據(jù)端,低位在前,波特率固定為fosc/12,接收/發(fā)送完,置位RI/TI,(SM2=0)
TXD:輸出同步移位脈沖
當(dāng)數(shù)據(jù)寫入SBUF后,數(shù)據(jù)從RXD端在移位脈沖(TXD)的控制下,逐位移入74LS164,74LS164能完成數(shù)據(jù)的串并轉(zhuǎn)換。當(dāng)8位數(shù)據(jù)全部移出后,TI由硬件置位,發(fā)生中斷請求。若CPU響應(yīng)中斷,則從0023H單元開始執(zhí)行串行口中斷服務(wù)程序,數(shù)據(jù)由74LS164并行輸出。
7.2串行口的工作方式一、方式0:同步移位寄存器輸入輸出方式第20頁,課件共75頁,創(chuàng)作于2023年2月串行口方式0的時序思考:1、如何啟動發(fā)送過程?2、如何知道發(fā)送完畢?2、多長時間移一位?思考:1、如何啟動接收過程?2、如何知道接收完畢?2、多長時間接收一位?接收條件:
TI=0,置位REN=1發(fā)送條件:TI=0第21頁,課件共75頁,創(chuàng)作于2023年2月3、方式0的應(yīng)用:擴展并行輸入輸出口CB:MOVR7,#0AHMOVR0,#50HMOVSCON,#00HSEND1:MOVA,@R0MOVSBUF,AWAIT:JNBTI,WAIT
CLRTIINCR0DJNZR7,SEND1RET例:將以50H為首地址的10個單元中數(shù)據(jù)由串口送出。第22頁,課件共75頁,創(chuàng)作于2023年2月CB:MOVR7,#05HMOVR0,#30HRE1:MOVSCON,#10HWAIT:JNBRI,WAIT
CLRRIMOVA,SBUFMOV@R0,AINCR0DJNZR7,RE1RET例:從擴展口讀入5個數(shù)據(jù),存到內(nèi)部RAM以30H開始的單元中。第23頁,課件共75頁,創(chuàng)作于2023年2月10.05.20232424*MCS-51串行口方式0驅(qū)動數(shù)碼管
1、LED數(shù)碼管 (1)結(jié)構(gòu)
COM:顯示器位選線a~dp:顯示器段選線第24頁,課件共75頁,創(chuàng)作于2023年2月10.05.20232525
發(fā)光管驅(qū)動額定電流:10~40mA,靜態(tài)取下限。 (2)靜態(tài)顯示及其段碼 靜態(tài)顯示:利用8位鎖存功能的I/O口線驅(qū)動一個數(shù)碼管,多 個數(shù)碼管同時顯示,需增加I/O口線。 段碼形成:在COM送入低電平或高電平,然后控制個各筆 段引腳電平,即可形成相應(yīng)段碼?!纠?-4】:利用P1口并行輸出控制八段數(shù)碼管,設(shè)小數(shù)點暗,采用共陽順序、共陰順序、共陰逆序確定0~9的顯示程序為:
解:1)共陽順序顯示硬件結(jié)構(gòu)如圖:
2)共陽順序、共陰順序、共陰逆序的段碼如下:第25頁,課件共75頁,創(chuàng)作于2023年2月10.05.20232626共陽順序段碼:C0H,F(xiàn)9H,A4H,B0H,99H,92H,82H,F(xiàn)8H,80H,90H共陰順序段碼:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(Dp→a)共陰逆序段碼:FCH,60H,DAH,F(xiàn)2H,66H,B6H,BEH,E0H,F(xiàn)EH,F(xiàn)6H(a→Dp)第26頁,課件共75頁,創(chuàng)作于2023年2月10.05.202327272)并行輸出,循環(huán)顯示0~9秒的顯示程序:DIR: MOV R0,#0 MOV DPTR,#TABLOOP:MOV A,R0 MOVC A,@A+DPTR MOV P1,A LCALL DELAY INC R0 CJNE R0,#0AH,LOOP AJMP DIRTAB:DBC0H,F(xiàn)9H,A4H DBB0H,99H,92H DB82H,F(xiàn)8H,80H,90H第27頁,課件共75頁,創(chuàng)作于2023年2月10.05.202328282、串行口方式0驅(qū)動數(shù)碼管 (1)串行口與并行口轉(zhuǎn)換控制①
串入并出移位寄存器74LS164圖(a)②
并入串出移位寄存器74LS165圖(b)第28頁,課件共75頁,創(chuàng)作于2023年2月10.05.20232929(2)利用74LS164驅(qū)動共陰數(shù)碼管【例】:利用8031串行口控制八段數(shù)碼管,設(shè)小數(shù)點暗,采用共陰逆序,設(shè)計循環(huán)顯示0~9秒的程序。 解:1)硬件結(jié)構(gòu)圖(共陰逆序、小數(shù)點暗)
2)控制流程、程序第29頁,課件共75頁,創(chuàng)作于2023年2月10.05.20233030START:MOV SCON,#00H MOV R0, #00H CLR ES;禁止中斷
MOV DPTR, #TABLE LOOP:MOV A, R0 MOVC A, @A+DPTR CLR TI MOV SBUF, A LCALL DELAY INC R0 CJNE R0, #10, LOOP MOV R0, #00H AJMP LOOPTABLE:DB 0FCH,60H,0DAH,0F2H,66H DB0B6H,0BEH,0E0H,0FEH,0F6HORG 0100HDELAY:1秒延時程序(略)
RET第30頁,課件共75頁,創(chuàng)作于2023年2月1、波特率:(2SMOD×T1的溢出率)/32,可變。
2、數(shù)據(jù)格式:一幀信息10位。D0D1D2D3D4D5D6D7停止位起始位發(fā)送D7D6D5D4D3D2D1D0起始位停止位接收送RB8當(dāng)接收到數(shù)據(jù)后,必須同時滿足以下兩個條件,接收才真正有效:
REN=1,RI=0SM2=0
或接收到的停止位為1。此時,數(shù)據(jù)裝載SBUF,RI置1,停止位進入RB8。
二、方式1:波特率可變的10位異步通信方式
第31頁,課件共75頁,創(chuàng)作于2023年2月注意:何時開始接收信息?檢測到起始位的負跳變時,開始接收。第32頁,課件共75頁,創(chuàng)作于2023年2月
1、波特率:(2SMOD×fosc)/64,固定。
2、一幀信息11位。
D0D1D2D3D4D5D6D7TB8停止位起始位發(fā)送發(fā)送完數(shù)據(jù)置位TI。
TB8D7D6D5D4D3D2D1D0起始位停止位接收接收到有效數(shù)據(jù)完畢,置位RI的條件:
REN=1,RI=0且SM2=0或接收到第9位數(shù)據(jù)為1,此時,數(shù)據(jù)裝載SBUF,RI置1,第9位數(shù)據(jù)(TB8)送入
RB8。
送RB8三、方式2:固定波特率的11位異步接收/發(fā)送方式第33頁,課件共75頁,創(chuàng)作于2023年2月串行口方式2、3的時序1、波特率:(2SMOD×T1的溢出率)/32,可變,同方式1。
2、一幀信息11位。
四、方式3:可變波特率的11位異步接收/發(fā)送方式第34頁,課件共75頁,創(chuàng)作于2023年2月方式0:波特率固定為fosc/12。方式2:波特率由PCON中的選擇位SMOD來決定,可由下式表示:波特率=(2SMOD/64)×fosc
方式1和方式3:波特率是可變的,由定時器T1的溢出率控制。波特率=(2SMOD/32)×定時器T1溢出率
T1溢出率=T1計數(shù)率/產(chǎn)生溢出所需的周期
=(fosc/12)/(28TC)五、串行口的通信波特率第35頁,課件共75頁,創(chuàng)作于2023年2月例:設(shè)晶振fosc為11.0592MHz,選定定時器工作方式2,SMOD=0求:4800bps、9600bps時的初值。解:定時器方式2的初始值X的公式經(jīng)過推導(dǎo)可得到在實際應(yīng)用時,通常是先確定波特率,后根據(jù)波特率求T1定時初值.T1初值=256-2SMOD32×fosc12×波特率故:
X1=256-(11.0592×1)/(384×4800)=FAHX2=256-(11.0592×1)/(384×9600)=FDH第36頁,課件共75頁,創(chuàng)作于2023年2月7.3串行口的應(yīng)用使用串行口的步驟:1、通信雙方的硬件連接2、制定通信協(xié)議工作方式、波特率、數(shù)據(jù)格式、效驗方法等。3、主程序串行口中斷入口處理串口初始化:SCON
PCONT1工作方式及初值、IE、IP4、中斷服務(wù)程序第37頁,課件共75頁,創(chuàng)作于2023年2月一、串口方式0的應(yīng)用例:用8051串行口外接CD4094擴展8位并行輸出口,8位并行口的各位都接一個發(fā)光二極管,要求發(fā)光二極管呈流水燈狀態(tài)(輪流點亮)。
方案一:采用查詢TI決定是否發(fā)送下一幀數(shù)據(jù)方案二:采用中斷決定是否發(fā)送下一幀數(shù)據(jù)第38頁,課件共75頁,創(chuàng)作于2023年2月
RRA
CLRP1.0
SJMPOUT0 DELAY:MOVR7,#250 D1:MOVR6,#250 D2:DJNZR6,D2 DJNZR7,D1 RET END
ORG0000H START:MOVSCON,#00H MOVA,#80H
CLRP1.0
OUT0:MOVSBUF,A
OUT1:JNBTI,OUT1 CLRTI
SETBP1.0
ACALLDELAY
第39頁,課件共75頁,創(chuàng)作于2023年2月P3.0RXDP3.1TXD分析:從串口送出什么樣的數(shù)據(jù)才能顯示0?例:利用串并轉(zhuǎn)換將數(shù)字0~9輸出到LED顯示器上顯示,輸出同一個數(shù)字。
第40頁,課件共75頁,創(chuàng)作于2023年2月
ORG0000HAJMPMAINORG0030HMAIN:MOVSP,#60HMOVSCON,#00H
MOVR1,#00HL1:MOVA,R1MOVDPTR,#TABMOVCA,@A+DPTR
MOVSBUF,AJNBTI,$CLRTI
MOVSBUF,AJNBTI,$CLRTICALLDELAYCJNER1,#9,L2MOVR1,#00HAJMPMAINL2:INCR1AJMPL1TAB:DB03H,9FH,25H,0DH,99H,49HDB41H,1FH,01H,09HDELAY:
END思考:不用串行口發(fā)送數(shù)據(jù),采用某一個輸出口是否也可以完成串并轉(zhuǎn)換?
第41頁,課件共75頁,創(chuàng)作于2023年2月單片機P1.0P1.1P1.2P1.3RXDTXDP3.0P3.1P1.0P1.1P1.2P1.3RXDTXD單片機P3.0P3.1例:采用串行口方式1進行雙機通信,將內(nèi)部RAM中以50H為首地址的連續(xù)10個單元內(nèi)容送出。硬件連接通信協(xié)議方式12400B/S定時器T1方式2晶振12MHZ初值:
二、串口方式1的應(yīng)用通信距離不超過1.5米第42頁,課件共75頁,創(chuàng)作于2023年2月ORG0000HAJMPMAINORG0023HAJMPSINTORG0100HMAIN:MOVTMOD,#00100000BMOVSCON,#40HMOVPCON,#00HMOVTL1,#0F4HMOVTH1,#0F4HSETBESCLRET1SETBTR1SETBEAL1:MOVR0,#50HMOVA,@R0MOVSBUF,AL2:CJNER0,#5AH,L2AJMPL1ORG0200HSINT:CLRTIINCR0MOVA,@R0MOVSBUF,ARETI
END發(fā)送程序第43頁,課件共75頁,創(chuàng)作于2023年2月ORG0000HAJMPMAINORG0023HAJMPSINTORG0100HMAIN:MOVTMOD,#00100000BMOVSCON,#50HMOVPCON,#00HMOVTL1,#0F4HMOVTH1,#0F4HSETBESCLRET1SETBTR1SETBEAMOVR0,#50HSJMP$SINT:CLRRIMOVA,SBUFMOV@R0,AINCR0RETI
END接收程序第44頁,課件共75頁,創(chuàng)作于2023年2月數(shù)據(jù)送累加器ATB8=PMOVSBUF,ATI=1?CLRTINOYES發(fā)送端程序(原始TI=0)RI=1?MOVA,SBUFPSW.P=RB8?出錯處理CLRRIYESNO接收端程序(原始RI=0)NY數(shù)據(jù)送內(nèi)存例:采用方式2奇偶校驗進行雙機通信。三、串口方式2的應(yīng)用第45頁,課件共75頁,創(chuàng)作于2023年2月例:采用方式2奇偶校驗進行雙機通信。SE:MOVA,@R0
MOVC,P
MOVTB8,C
MOVSBUF,AHE:JNBTI,HECLRTIINCR0SJMPSE數(shù)據(jù)送累加器ATB8=PMOVSBUF,ATI=1?CLRTINOYES發(fā)送端程序(原始TI=0)第46頁,課件共75頁,創(chuàng)作于2023年2月例:采用方式2奇偶校驗進行雙機通信,采用偶校驗。RE:JNBRI,REMOVA,SBUFMOVC,P
JNCL1JNBRB8,ERPAJMPL2L1:JBRB8,ERP
CLRRIL2:MOV@R0,AINCR0SJMPRERI=1?MOVA,SBUFPSW.P=RB8?出錯處理CLRRIYESNO接收端程序(原始RI=0)NY數(shù)據(jù)送內(nèi)存第47頁,課件共75頁,創(chuàng)作于2023年2月傳統(tǒng)方式的多路數(shù)據(jù)采集系統(tǒng)單片機系統(tǒng)或微型計算機系統(tǒng)傳感器1傳感器2傳感器3傳感器4傳感器N接口電路
機房或儀表室檢測現(xiàn)場四、串口方式3的應(yīng)用第48頁,課件共75頁,創(chuàng)作于2023年2月采用“智能傳感器”組成的多路數(shù)據(jù)采集系統(tǒng)主機從機N從機4從機3從機2從機1RXDTXDTXDRXD第49頁,課件共75頁,創(chuàng)作于2023年2月TI:發(fā)送中斷標(biāo)志,發(fā)送一幀結(jié)束,TI=1,必須軟件清零
RI:接收中斷標(biāo)志,接收一幀結(jié)束,RI=1,必須軟件清零
RB8:方式1中放停止位,方式2、3中放接收的第九位數(shù)REN:允許接收控制位,軟件置位或清零SM2:多機通信控制位(常與RB8配合,決定是否激活RI)方式3:11,11位UART,其波特率為可變,由定時器控制。多機通信SCON的設(shè)置SM0SM1SM2RENTB8RB8TIRITB8:將要發(fā)送的第九位數(shù),在執(zhí)行MOVSBUF,A指令之前要事先將TB8設(shè)定好;雙機通信作校驗位;多機通信作地址/數(shù)據(jù)標(biāo)識位。第50頁,課件共75頁,創(chuàng)作于2023年2月接收到有效數(shù)據(jù)完畢,置位RI的條件:(1)REN=1,RI=0
(2)且SM2=0或接收到第9位數(shù)據(jù)為1,此時,數(shù)據(jù)裝載SBUF,RI置1,第9位數(shù)據(jù)(TB8)送入
RB8。
在方式2、3中接收到的數(shù)據(jù)是否能裝載SBUF的條件:1、SM2=0:RB8=1或RB8=0
都使RI=1,接收數(shù)據(jù)送入SBUF。2、SM2=1:RB8=1,使RI=1并引發(fā)中斷,接收的數(shù)據(jù)送入SBUF。
RB8=0,信息丟失。第51頁,課件共75頁,創(chuàng)作于2023年2月多機通訊原理1、SM2=0:RB8=1或RB8=0都使RI=1,接收數(shù)據(jù)送入SBUF。2、SM2=1:RB8=1,使RI=1并引發(fā)中斷,接收的數(shù)據(jù)送入SBUF。
RB8=0,信息丟失。主機1、SM2=02、主機發(fā)出地址碼
TB8=13、主機發(fā)出數(shù)據(jù)碼或命令碼TB8=0從機1、SM2=12、從機接收到RB8=1,接收地址碼,判斷是否和本機地址碼相同,若相同,則SM2=0,若不同,則SM2=13、被尋中的從機,接收RB8=0,且SM2=0
將主機發(fā)出的數(shù)據(jù)碼或命令碼送入SBUF,
RI=1,
沒有被尋中的從機,接收RB8=0,且SM2=1,不接收任何數(shù)據(jù)。第52頁,課件共75頁,創(chuàng)作于2023年2月多機通訊中主機與從機之間的控制、狀態(tài)信息主機的控制命令:
00H主機發(fā)送,從機接收;(控制從機的操作)01H主機接收,從機發(fā)送。(命令分類)從機狀態(tài)字:從機向主機發(fā)送的用于表征從機工作狀態(tài)的信息。。ERR·····TRDYRRDY0:合法命令0:發(fā)送未就緒
0:接收未就緒1:非法命令1:發(fā)送就緒
1:接收就緒從機返回的狀態(tài)字例:串口方式3應(yīng)用編程(多機通信)第53頁,課件共75頁,創(chuàng)作于2023年2月主機程序框圖T1為定時,模式2B=1200,啟動T1設(shè)串口為模式3REN=1,SM2=0TB8=1設(shè)定程序數(shù)據(jù):R0~R5停機MCOMMU從機應(yīng)答?地址相符?發(fā)送命令字(TB8=0)從機應(yīng)答?命令正確?命令分類從機接收就緒?從機發(fā)送就緒?RET命令從機復(fù)位發(fā)FFHNNYYNNYYNNYY接收發(fā)送調(diào)用MCOMMU接收數(shù)據(jù)塊發(fā)送數(shù)據(jù)塊發(fā)送從機地址第54頁,課件共75頁,創(chuàng)作于2023年2月(一)主機程序(初始化部分) ORG2000HSTART:MOVTMOD,#20H ;定時器T1為模式2(8位自動重裝)
MOVTH1,#0F4H MOVTL1,#0F4H ;波特率為1200(設(shè)外接6MHz晶體)
SETBTR1 ;啟動T1 MOVSCON,#0D8H ;串口為模式3,REN=1,SM2=0,TB8=1 MOVPCON,#00H ;設(shè)PCON中的SMOD=0 MOVR0,#40H ;發(fā)送數(shù)據(jù)塊首地址送R0指針
MOVR1,#20H ;接收數(shù)據(jù)塊首地址送R1指針
MOVR2,#SLAVE ;被尋從機地址送R2 MOVR3,#00H/#01H ;主發(fā)、從收命令?;蛑魇铡陌l(fā)命令
MOVR4,#14H ;發(fā)送數(shù)據(jù)塊長度送R4(20)計數(shù)器
MOVR5,#14H ;接收數(shù)據(jù)塊長度送R5(20)計數(shù)器
ACALLMCOM ;調(diào)用主機通訊子程序
SJMP$第55頁,課件共75頁,創(chuàng)作于2023年2月(二)主機通訊子程序(MCOM)
ORG2100HMCOM: MOVA,R2 ;取從機地址
MOVSBUF,A JNBRI,$ ;注意:為什么判斷RI而不是TI? CLRRI MOVA,SBUF ;取從機的返回地址
XRLA,R2 ;核對兩個地址
JZMTXD2 ;相符時,轉(zhuǎn)MTXD2MTXD1:MOVSBUF,#0FFH ;返回地址錯誤時,發(fā)送從機復(fù)位信號
SETBTB8 ;設(shè)定地址標(biāo)志
SJMPMCOM;重發(fā)從機地址,所有從機重新判斷地址MTXD2:CLRTB8 ;將TB8=0,準備發(fā)送命令
MOVSBUF,R3 ;送出命令
JNBRI,$ ;等待從機應(yīng)答
CLRRI ;從機應(yīng)答后清標(biāo)志
MOVA,SBUF ;接收從機應(yīng)答命令
JNBACC.7,MTXD3 ;命令無錯時,則命令分類
SJMPMTXD1 ;命令錯返回重新聯(lián)絡(luò)第56頁,課件共75頁,創(chuàng)作于2023年2月MTXD3:CJNER3,#00H,MRXD ;從機發(fā)送主機接收時,轉(zhuǎn)MRXD JNBACC.0,MTXD1 ;從機接收時,若從機未準備好轉(zhuǎn)回MTXD4:MOVSBUF,@R0 ;若從機準備好,則開始發(fā)送
JNBTI,$ CLRTI INCR0 DJNZR4,MTXD4 RETMRXD: JNBACC.1,MTXD1 ;從機發(fā)送未準備好返回MRXD1:JNBRI,$ ;等待接收
CLRRI MOVA,SBUF INCR1 ;接收數(shù)據(jù)區(qū)指針加一
DJNZR5,MRXD1 ;未接收完則繼續(xù)(R5接收數(shù)據(jù)計數(shù)器)
RET END ERR從機返回的狀態(tài)字TRDYRRDY0:合法命令0:發(fā)送未就緒0:接收未就緒1:非法命令1:發(fā)送就緒1:接收就緒第57頁,課件共75頁,創(chuàng)作于2023年2月從機主程序框圖T1為定時,模式2B=1200,啟動T1設(shè)串口為模式3REN=1,SM2=1TB8=1設(shè)定程序參數(shù):R0~R3開串行口中斷動態(tài)停機等待主機發(fā)送地址碼保護現(xiàn)場接收地址符合本機?向主機回送本機地址接收下一字符是命令嗎?命令分類
本機發(fā)送準備就緒?
本機接收準備就緒?發(fā)TRDY=1狀態(tài)字發(fā)RRDY=1狀態(tài)字發(fā)送數(shù)據(jù)接收數(shù)據(jù)發(fā)送完?接收完?保護現(xiàn)場返回NNYY發(fā)送命令接收命令非法命令送TRDY=0送RRDY=0NNNY中斷服務(wù)程序NY接收FFH時第58頁,課件共75頁,創(chuàng)作于2023年2月
ORG0000H LJMPSTART ORG0023H LJMP0100H ORG0040HSTART:MOVTMOD,#20H ;設(shè)定定時器T1為模式2 MOVTH1,#0F4H ;設(shè)定波特率為1200 MOVTL1,#0F4H SETBTR1 ;啟動定時器T1 MOVSCON,#0F8H ;設(shè)串口模式3,REN=1,SM2=1,TB8=1 MOVPCON,#00H MOVR0,#20H ;R0指向發(fā)送數(shù)據(jù)塊首地址
MOVR1,#40H ;R1指向接收數(shù)據(jù)塊首址
MOVR2,#14H ;R2賦發(fā)送數(shù)據(jù)塊長度
MOVR3,#14H ;R3賦接收數(shù)據(jù)塊長度
SETBEA SETBES ;開中斷
CLRRI ;清標(biāo)志RI準備接收數(shù)據(jù)
SJMP$ ;等待中斷(三)從機主程序(初始化)第59頁,課件共75頁,創(chuàng)作于2023年2月(四)從機中斷服務(wù)程序
ORG0100HSINTS: CLRRI ;接收到地址后清RI PUSHACC PUSHPSW ;保護現(xiàn)場
MOVA,SBUF ;接收主機送來得從機地址
XRLA,#SLAVE ;核實從機地址
JZSRXD1 ;若是本機地址轉(zhuǎn)SRXD1RETU: POPPSW ;返回主程序
POPACC ;恢復(fù)現(xiàn)場
RETI ;中斷返回SRXD1:CLRSM2 ;SM2清零,單獨接收主機數(shù)據(jù)/命令
MOVSBUF,#SLAVE ;向主機發(fā)回從機地址
JNBRI,$ ;等待主機的命令
CLRRI ;接收到主機命令后清RI JNBRB8,SRXD2 ;若是命令(RB8=0)則轉(zhuǎn)SRXD2繼續(xù)
SJMPRETU ;接收的不是命令時(RB8=1),返回第60頁,課件共75頁,創(chuàng)作于2023年2月SRXD2:MOVA,SBUF ;將接收到的命令送A CJNEA,#02H,NEXT ;命令合法(A-02H)NEXT: JCSRXD3 ;若命令合法(A<02H)則繼續(xù)
CLRTI ;命令不合法則清TI準備發(fā)回ERR=1 MOVSBUF,#80H ;發(fā)送ERR=1的狀態(tài)字
SETBSM2 ;SM2重新置位
SJMPRETU ;返回主程序SRXD3:JZSCHRX ;若A=00H既主機發(fā)送從機接收轉(zhuǎn)SCHRX JBF0,STXD ;若從機準備好(F0=1)時,轉(zhuǎn)STXD MOVSBUF,#00H ;未準備好時,向主機發(fā)回TRXD=0信息
SETBSM2 SJMPRETU ;返回主程序第61頁,課件共75頁,創(chuàng)作于2023年2月STXD: MOVSBUF,#02H ;向主機發(fā)送TRDY=1的狀態(tài)字
JNBTI,$ ;等待發(fā)送完畢
CLRTI ;發(fā)送完畢后清標(biāo)志TILOOP1:MOVSBUF,@R0 ;開始發(fā)送數(shù)據(jù)塊
JNBTI,$ CLRTI INCR0 DJNZR2,LOOP1 SETBSM2 ;數(shù)據(jù)塊發(fā)送完畢
SJMPRETU ;返回主程序SCHRX:JBPSW.1,SRXD ;本機接收就緒轉(zhuǎn)SRXD(PSW.1:標(biāo)志)
MOVSBUF,#00H ;接收未準備好時,向主機發(fā)RRDY=0 SETBSM2 SJMPRETU ;返回主程序第62頁,課件共75頁,創(chuàng)作于2023年2月SRXD: MOVSBUF,#01H ;向主機發(fā)送RRDY=1狀態(tài)字LOOP2:JNBRI,$ ;等待接收數(shù)據(jù)塊,開始接收數(shù)據(jù)塊
CLRRI MOV@R1,SBUF INCR1 DJNZR3,LOOP2 SETBSM2 ;數(shù)據(jù)塊接收完畢
SJMPRETU ;返回主程序
END第63頁,課件共75頁,創(chuàng)作于2023年2月五、單片機與PC機的通信
單片機與PC機通信種類:雙機通信、多機通信;
近距離通信、遠距離通信。單片機與PC機通信設(shè)計:
1、單片機程序設(shè)計
2、PC機程序設(shè)計
3、電路設(shè)計(電平轉(zhuǎn)換、接口設(shè)計)。不大于15米傳輸距離1200米第64頁,課件共75頁,創(chuàng)作于2023年2月1、單片機接收或發(fā)送程序:
ORG3000H MAIN:MOVTMOD,#20H;在11.0592MHz下,串行口波特率
MOVTH1,#0FDH ;9600bps,方式3 MOVTL1,#0FDH MOVPCON,#00H SETBTR1 MOVSCON,#0D8H LOOP:JBCRI,RECEIVE ;接收到數(shù)據(jù)后立即發(fā)出去
SJMPLOOP RECEIVE:MOVA,SBUF MOVSBUF,A SEND:JBCTI,SENDEND SJMPSEND SENDEND:SJMPLOOP END 第65頁,課件共75頁,創(chuàng)作于2023年2月2、PC機接收或發(fā)送程序:(
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度廁所環(huán)保材料生產(chǎn)與銷售合同2篇
- 2025年度輪胎行業(yè)新能源汽車配套服務(wù)合同4篇
- 2025年度海洋工程裝備采購及租賃服務(wù)合同2篇
- 2025年度教育培訓(xùn)機構(gòu)場地租賃及課程研發(fā)服務(wù)合同3篇
- 2024物業(yè)公司環(huán)保措施合同
- 2025年度林地林木資源調(diào)查與監(jiān)測合同3篇
- 二零二五年房地產(chǎn)面積測繪與銷售備案合同范本3篇
- 2025年度二零二五年度奇幻馬戲團國際巡演合作合同4篇
- 2025年度餐飲廚師個人技能保密及競業(yè)限制合同3篇
- 二零二五版船舶建造質(zhì)量檢測與驗收合同3篇
- 拆遷評估機構(gòu)選定方案
- 床旁超聲監(jiān)測胃殘余量
- 上海市松江區(qū)市級名校2025屆數(shù)學(xué)高一上期末達標(biāo)檢測試題含解析
- 綜合實踐活動教案三上
- 《新能源汽車電氣設(shè)備構(gòu)造與維修》項目三 新能源汽車照明與信號系統(tǒng)檢修
- 2024年新課標(biāo)《義務(wù)教育數(shù)學(xué)課程標(biāo)準》測試題(附含答案)
- 醫(yī)院培訓(xùn)課件:《靜脈中等長度導(dǎo)管臨床應(yīng)用專家共識》
- 趣味知識問答100道
- 中國國際大學(xué)生創(chuàng)新大賽與“挑戰(zhàn)杯”大學(xué)生創(chuàng)業(yè)計劃競賽(第十一章)大學(xué)生創(chuàng)新創(chuàng)業(yè)教程
- 鋼管豎向承載力表
- 2024年新北師大版八年級上冊物理全冊教學(xué)課件(新版教材)
評論
0/150
提交評論