串行口工作方式_第1頁(yè)
串行口工作方式_第2頁(yè)
串行口工作方式_第3頁(yè)
串行口工作方式_第4頁(yè)
串行口工作方式_第5頁(yè)
已閱讀5頁(yè),還剩70頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、關(guān)于串行口工作方式第一張,PPT共七十五頁(yè),創(chuàng)作于2022年6月19.08.20221MCS-51 單片機(jī)內(nèi)部集成了一個(gè)全雙工異步通信串行口單片機(jī)的串行通信使用的是異步串行通信1、并行通信和串行通信1010P1.0P1.1P1.2P1.3RXDTXD單片機(jī)外設(shè)1外設(shè)20 1 0 11 0 1 0P1.70 1 0 17.0 概述第二張,PPT共七十五頁(yè),創(chuàng)作于2022年6月異步方式:雙方只有數(shù)據(jù)線而沒有時(shí)鐘線。雙方都以自己的時(shí)鐘源控制發(fā)送和接收的速率,發(fā)送端和接收端使用的不是同一個(gè)時(shí)鐘。以字符為單位進(jìn)行數(shù)據(jù)傳送,每一個(gè)字符均按固定的字符格式傳送,又被稱為幀。2、異步方式和同步方式注意:由于通訊

2、雙方系統(tǒng)時(shí)鐘往往不同,所以在異步通信中, 要想保證通信的成功必須保證兩點(diǎn): 通信雙方必須保持相同的傳送、接收速率(波特率); 雙方必須遵守相同的數(shù)據(jù)格式(字符幀)。優(yōu)點(diǎn):是不需要傳送同步脈沖,可靠性高,所需設(shè)備簡(jiǎn)單;缺點(diǎn):是傳輸速率低(增加起始位和停止位)。第三張,PPT共七十五頁(yè),創(chuàng)作于2022年6月同步方式:在物理結(jié)構(gòu)上,通信雙方除了通信的數(shù)據(jù)線外還增加了一個(gè)通信用的“時(shí)鐘傳輸線clock”。由主控方提供時(shí)鐘信號(hào)clock。由于有了時(shí)鐘信號(hào)來(lái)“同步”發(fā)送或接收操作,所以被傳送的數(shù)據(jù)不再使用“起始位”和“停止位”,因而提高了傳送速度。因此同步通信常被用于系統(tǒng)內(nèi)部各芯片之間的接口設(shè)計(jì)。由于同步

3、通信多了一條“時(shí)鐘線”,因此不太適合遠(yuǎn)距離的通信。優(yōu)點(diǎn)是數(shù)據(jù)傳輸速率較高;缺點(diǎn)是要求發(fā)送時(shí)鐘和接收時(shí)鐘保持嚴(yán)格同步。主控方被控方dataclock主控方被控方dataclock 主控方發(fā)送數(shù)據(jù)主控方接收數(shù)據(jù) 第四張,PPT共七十五頁(yè),創(chuàng)作于2022年6月3、串行通信工作方式單工 A 發(fā) B 收半雙工 A 發(fā) 收 B 收 發(fā)廣播電臺(tái) 收音機(jī)對(duì)講機(jī)全雙工 A 發(fā) 收 B 收 發(fā)電話機(jī)第五張,PPT共七十五頁(yè),創(chuàng)作于2022年6月例:異步串行通信的數(shù)據(jù)傳送的速率是120字符/秒,而每個(gè)字符規(guī)定包含10位( 1個(gè)起始位、8個(gè)數(shù)據(jù)位、1個(gè)停止位)數(shù)字,則傳輸波特率為: 120字符/秒 10位/字符=12

4、00位/秒= 1200bps4、波特率用于表征串行通信速率的參數(shù)稱為“波特率”;波特率是指每秒鐘傳送二進(jìn)制的位數(shù); (發(fā)送一個(gè)二進(jìn)制位的時(shí)間的倒數(shù)) 波特率的單位為:位/秒(bit / s);波特(Baud)。波特率取值范圍一般為: 0 115200 bit/s。影響波特率的 主要因素取決于傳輸線的分布電容、通信電平標(biāo)準(zhǔn)和傳送距離;第六張,PPT共七十五頁(yè),創(chuàng)作于2022年6月TTL電平、RS-232、RS-485等通信標(biāo)準(zhǔn)。5、串行通信的電平標(biāo)準(zhǔn) TTL電平(05V):1.5米以內(nèi)。RS-232標(biāo)準(zhǔn)(+12V-12V):15米之內(nèi)。RS-485標(biāo)準(zhǔn)(差分輸入輸出):1200米以上。 TTL電

5、平: 邏輯1:5V 邏輯0:0VRS-232標(biāo)準(zhǔn):邏輯1:-3-15V 邏輯0:+3V+15VRS-485標(biāo)準(zhǔn):邏輯1:+(26)V 邏輯0:-(26)V第七張,PPT共七十五頁(yè),創(chuàng)作于2022年6月MCS-51單片機(jī)的異步串行通訊應(yīng)用示意圖MCS-51 TXD(甲) RXD RXD MCS-51 TXD (乙)單片機(jī)甲、乙之間近距離的直接通訊RS-232或485RS-232或485單片機(jī)甲乙兩地之間遠(yuǎn)距離通訊MCS-51 TXD(甲) RXD RXD MCS-51 TXD (乙)RS-232PC機(jī)COM1,COM2單片機(jī)與PC機(jī)之間的數(shù)據(jù)通訊MCS-51 TXDRXD第八張,PPT共七十五頁(yè)

6、,創(chuàng)作于2022年6月異步串行UART、同步串行USRT總線接口;SPI(Micro wire)總線接口 -同步外設(shè)接口(SPI)是由摩托羅 拉公司開發(fā)全雙工同步串行總線。 I2C總線接口-由PHILIPS公司開發(fā)的兩線式串行總線。 1-Wire總線接口-是 Maxim 子公司達(dá)拉斯半導(dǎo)體的專利技術(shù),采 用單一信號(hào)線, CAN總線接口 - 1986 年德國(guó)電氣商博世公司開發(fā)出面 向汽車的CAN 通信協(xié)議 ;USB總線接口-是由Intel、 Compaq、Digital、IBM、 Microsoft、NEC、Northern Telecom等7家 世界著名的計(jì)算機(jī)和通信公司共同推出。6、當(dāng)前嵌入

7、式系統(tǒng)流行的串行接口第九張,PPT共七十五頁(yè),創(chuàng)作于2022年6月 4種工作方式如何設(shè)置波特率如何設(shè)置7.1 串行口的結(jié)構(gòu)一、串行口的結(jié)構(gòu)圖:CPU如何查知已發(fā)完或已接收完數(shù)據(jù)如何發(fā)送和接收數(shù)據(jù)第十張,PPT共七十五頁(yè),創(chuàng)作于2022年6月第十一張,PPT共七十五頁(yè),創(chuàng)作于2022年6月19.08.202211自然優(yōu)先級(jí)矢量地址自然優(yōu)先級(jí)矢量地址高級(jí)中斷請(qǐng)求PCPC斷請(qǐng)求低級(jí)中SCON中斷標(biāo)志IPPX01PT0110PX110PS100PT10IEEX0ET0EX1ET1ESTCONIE0TF0IE1TF1TIRIRXTXT11INT10T0INT010源允許總允許優(yōu)先級(jí)硬件查詢EAP3.0P

8、3.1P3.5P3.4P3.2P3.3IT0IT1第十二張,PPT共七十五頁(yè),創(chuàng)作于2022年6月2、SCON:串行口控制寄存器 98HSM0SM1SM2RENTB8RB8 TI RI3、PCON:波特率加倍寄存器 87H1、SBUF:串行發(fā)送 / 接收數(shù)據(jù)緩沖器 99HEA -ESET1EX1ET0EX04、IE:中斷允許寄存器 A8HSMOD發(fā)送接收5、IP: 中斷優(yōu)先級(jí)寄存器- -PSPT1PX1PT0PX0B8H第十三張,PPT共七十五頁(yè),創(chuàng)作于2022年6月1、SBUF 串行發(fā)送 / 接收數(shù)據(jù)緩沖器 99HSBUF 串行發(fā)送 / 接收數(shù)據(jù)緩沖器是兩個(gè)獨(dú)立的物理單元, 共用一個(gè)地址(9

9、9H),可同時(shí)收、發(fā)數(shù)據(jù)。指注:向發(fā)送緩沖器SBUF寫入數(shù)據(jù)即可發(fā)送數(shù)據(jù); 從接收緩沖器SBUF讀出數(shù)據(jù)即可接收數(shù)據(jù)。發(fā)送SBUF接收SBUFMOV SBUF,A ;啟動(dòng)一次數(shù)據(jù)發(fā)送MOV A,SBUF ;完成一次數(shù)據(jù)接收二、特殊功能寄存器第十四張,PPT共七十五頁(yè),創(chuàng)作于2022年6月 SM2:多機(jī)通信控制位(常與RB8配合,決定是否激活RI)多機(jī)通信方式2和3中,若SM21且接收到的第九位數(shù)據(jù)(RB8)為1,才將接收到的前8位數(shù)據(jù)送入接收緩沖寄存器SBUF中,并置位RI產(chǎn)生中斷請(qǐng)求;否則丟棄前8位數(shù)據(jù)。若 SM20,則不論第九位數(shù)據(jù)(RB8)為1還是為0,都將前8位送入接收SBUF中,并產(chǎn)

10、生中斷請(qǐng)求。 在方式0時(shí),SM2必須置0。2、 SCON:串行口控制寄存器 98HSM0SM1SM2RENTB8RB8 TI RISM0 SM1方式功能說明波特率0 0方式0移位寄存器方式fosc/120 1方式18位UART可變(由T1的溢出率決定)1 0方式29位UARTfosc/64 或者fosc/321 1方式39位UART可變第十五張,PPT共七十五頁(yè),創(chuàng)作于2022年6月REN:允許接收控制位,軟件置位或清零TB8:將要發(fā)送的第九位數(shù), 在執(zhí)行 MOV SBUF ,A 指令之前要事先將TB8設(shè)定好;雙機(jī)通信作校驗(yàn)位,多機(jī)通信作地址/數(shù)據(jù)標(biāo)識(shí)位。RB8:方式1中放停止位,方式2、3中

11、放接收的第九位數(shù)TI發(fā)送中斷標(biāo)志位 在方式0時(shí),發(fā)送完第8位數(shù)據(jù)后,該位由硬件置位。 在其它方式下,于發(fā)送停止位之前,由硬件置位。 TI1表示幀發(fā)送結(jié)束,其狀態(tài)既可供軟件查詢使 用,也可請(qǐng)求中斷。TI由軟件清“0”。RI接收中斷標(biāo)志位 在方式0時(shí),接收完第8位數(shù)據(jù)后,該位由硬件置位。 在其它方式下,接收到停止位之前,該位硬件置位。 RI1表示幀接收結(jié)束,其狀態(tài)既可供軟件查詢使 用,也可請(qǐng)求中斷。 RI由軟件清“0”。第十六張,PPT共七十五頁(yè),創(chuàng)作于2022年6月19.08.202216SMOD3、 PCON: 波特率加倍寄存器 87H它的D7位SMOD為串行口波特率控制位,可由軟件置位或清零

12、。若SMOD=1,則使工作在方式1、2、3時(shí)的波特率加倍。系統(tǒng)復(fù)位時(shí)默認(rèn)為SMOD=0。第十七張,PPT共七十五頁(yè),創(chuàng)作于2022年6月(1)當(dāng)CPU執(zhí)行:MOV SBUF,A 指令后,便發(fā)送一幀數(shù)據(jù)。1、利用發(fā)送標(biāo)志 TI (SCON.1)控制數(shù)據(jù)的發(fā)送操作思考(1) CPU如何發(fā)送數(shù)據(jù)? (2)CPU如何知道已發(fā)送完一幀數(shù)據(jù)?方案一:使用查詢的方式對(duì)TI進(jìn)行檢測(cè): JNBTI,$;如果TI1 則等待 CLR TI ;清楚標(biāo)志位 MOV SBUF,A ;TI=1時(shí)發(fā)送下一個(gè)數(shù)據(jù)方案二:如果系統(tǒng)中斷是開放的,則TI=1會(huì)自動(dòng)引發(fā)中斷。 CLR TI ;清楚標(biāo)志位 MOV SBUF, A ;在中

13、斷程序中發(fā)送下一個(gè)數(shù)據(jù);(2)當(dāng)完成一幀數(shù)據(jù)的發(fā)送后,TI=1,有兩種方案可以知 道已發(fā)完一幀數(shù)據(jù)。三、接收和發(fā)送操作第十八張,PPT共七十五頁(yè),創(chuàng)作于2022年6月2、利用接收標(biāo)志 RI (SCON.0)控制數(shù)據(jù)的接收操作(1)當(dāng)SUBF從RXD引腳接收完一個(gè)完整的數(shù)據(jù)幀時(shí)RI=1思考(1)CPU如何知道已接收完一幀數(shù)據(jù)? (2)CPU如何處理接收的數(shù)據(jù)?(2)CPU可以使用兩種方案來(lái)處理接收的數(shù)據(jù):方案一:CPU采用查詢RI來(lái)控制數(shù)據(jù)的讀取。JNB RI,$;如果RI1 則等待 CLR RI ;清楚標(biāo)志位 MOV A,SBUF ;RI=1時(shí),取SBUF中數(shù)據(jù)送A。方案二:如果中斷是開放的,

14、則RI=1時(shí)會(huì)自動(dòng)引發(fā)中斷。 CLR RI MOV A,SBUF ; 中斷方式接收數(shù)據(jù); 第十九張,PPT共七十五頁(yè),創(chuàng)作于2022年6月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ā)生中斷請(qǐng)求。若CPU響應(yīng)中斷,則從0023H單元開始執(zhí)行串行口中斷服務(wù)程序,數(shù)據(jù)由74LS164并行輸出。 7.2 串行口的工作方式

15、一、方式0:同步移位寄存器輸入輸出方式第二十張,PPT共七十五頁(yè),創(chuàng)作于2022年6月串行口方式0的時(shí)序思考:1、如何啟動(dòng)發(fā)送過程?2、如何知道發(fā)送完畢? 2、多長(zhǎng)時(shí)間移一位?思考:1、如何啟動(dòng)接收過程?2、如何知道接收完畢? 2、多長(zhǎng)時(shí)間接收一位?接收條件: TI=0, 置位 REN=1發(fā)送條件:TI=0第二十一張,PPT共七十五頁(yè),創(chuàng)作于2022年6月3、方式0的應(yīng)用:擴(kuò)展并行輸入輸出口 CB: MOV R7,#0AH MOV R0,#50H MOV SCON ,#00HSEND1: MOV A,R0 MOV SBUF ,AWAIT: JNB TI,WAIT CLR TI INC R0 D

16、JNZ R7, SEND1 RET例:將以50H為首地址的10個(gè)單元中數(shù)據(jù)由串口送出。第二十二張,PPT共七十五頁(yè),創(chuàng)作于2022年6月 CB:MOV R7,#05H MOV R0,#30H RE1: MOV SCON ,#10HWAIT: JNB RI,WAIT CLR RI MOV A,SBUF MOV R0 ,A INC R0 DJNZ R7,RE1 RET例:從擴(kuò)展口讀入5個(gè)數(shù)據(jù),存到內(nèi)部RAM以30H開始的單元中。第二十三張,PPT共七十五頁(yè),創(chuàng)作于2022年6月24*MCS-51串行口方式0驅(qū)動(dòng)數(shù)碼管1、LED數(shù)碼管(1)結(jié)構(gòu)COM:顯示器位選線 adp:顯示器段選線第二十四張,P

17、PT共七十五頁(yè),創(chuàng)作于2022年6月19.08.20222425發(fā)光管驅(qū)動(dòng)額定電流:1040mA,靜態(tài)取下限。(2)靜態(tài)顯示及其段碼靜態(tài)顯示:利用8位鎖存功能的I/O口線驅(qū)動(dòng)一個(gè)數(shù)碼管,多個(gè)數(shù)碼管同時(shí)顯示,需增加I/O口線。段碼形成:在COM送入低電平或高電平,然后控制個(gè)各筆段引腳電平,即可形成相應(yīng)段碼。【例5-4】:利用P1口并行輸出控制八段數(shù)碼管,設(shè)小數(shù)點(diǎn)暗,采用共陽(yáng)順序、共陰順序、共陰逆序確定09的顯示程序?yàn)椋航猓?)共陽(yáng)順序顯示硬件結(jié)構(gòu)如圖:2)共陽(yáng)順序、共陰順序、共陰逆序的段碼如下:第二十五張,PPT共七十五頁(yè),創(chuàng)作于2022年6月19.08.20222526共陽(yáng)順序段碼:C0H,F(xiàn)

18、9H,A4H,B0H,99H,92H,82H,F(xiàn)8H,80H,90H共陰順序段碼:3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(Dpa)共陰逆序段碼:FCH,60H,DAH,F(xiàn)2H,66H,B6H,BEH,E0H,F(xiàn)EH,F(xiàn)6H(aDp)第二十六張,PPT共七十五頁(yè),創(chuàng)作于2022年6月19.08.202226272)并行輸出,循環(huán)顯示09秒的顯示程序:DIR:MOV R0,#0 MOV DPTR,#TABLOOP:MOVA,R0MOVCA,A+DPTRMOVP1,ALCALLDELAYINCR0CJNER0,#0AH,LOOPAJMPDIRTAB:DB C0

19、H,F(xiàn)9H,A4HDB B0H,99H,92HDB 82H,F(xiàn)8H,80H,90H 第二十七張,PPT共七十五頁(yè),創(chuàng)作于2022年6月19.08.202227282、串行口方式0驅(qū)動(dòng)數(shù)碼管(1)串行口與并行口轉(zhuǎn)換控制串入并出移位寄存器74LS164 圖(a)并入串出移位寄存器74LS165 圖(b)第二十八張,PPT共七十五頁(yè),創(chuàng)作于2022年6月19.08.20222829(2)利用74LS164驅(qū)動(dòng)共陰數(shù)碼管【例】:利用8031串行口控制八段數(shù)碼管,設(shè)小數(shù)點(diǎn)暗,采用共陰逆序,設(shè)計(jì)循環(huán)顯示09秒的程序。解:1)硬件結(jié)構(gòu)圖(共陰逆序、小數(shù)點(diǎn)暗)2)控制流程、程序第二十九張,PPT共七十五頁(yè),創(chuàng)

20、作于2022年6月19.08.20222930START:MOVSCON,#00HMOVR0,#00HCLRES ;禁止中斷MOVDPTR,#TABLELOOP:MOVA,R0MOVCA,A+DPTRCLRTIMOVSBUF,ALCALLDELAYINCR0CJNER0,#10,LOOPMOVR0,#00HAJMPLOOPTABLE:DB 0FCH,60H,0DAH,0F2H,66H DB 0B6H,0BEH,0E0H,0FEH,0F6H ORG0100H DELAY:1秒延時(shí)程序(略) RET第三十張,PPT共七十五頁(yè),創(chuàng)作于2022年6月19.08.202230 1、波特率:(2SMODT

21、1的溢出率)/ 32 ,可變。 2、 數(shù)據(jù)格式: 一幀信息10位。D0D1D2D3D4D5D6D7停止位起始位發(fā)送D7D6D5D4D3D2D1D0起始位停止位接收送 RB8當(dāng)接收到數(shù)據(jù)后,必須同時(shí)滿足以下兩個(gè)條件,接收才真正有效: REN = 1,RI = 0SM2 = 0 或接收到的停止位為1。此時(shí),數(shù)據(jù)裝載SBUF, RI置1 ,停止位進(jìn)入RB8。 二、方式1:波特率可變的10位異步通信方式 第三十一張,PPT共七十五頁(yè),創(chuàng)作于2022年6月注意:何時(shí)開始接收信息?檢測(cè)到起始位的負(fù)跳變時(shí),開始接收。第三十二張,PPT共七十五頁(yè),創(chuàng)作于2022年6月 1、波特率:(2SMODfosc)/ 6

22、4 ,固定。 2、一幀信息11位。 D0D1D2D3D4D5D6D7TB8停止位起始位發(fā)送發(fā)送完數(shù)據(jù)置位TI。 TB8D7D6D5D4D3D2D1D0起始位停止位接收接收到有效數(shù)據(jù)完畢,置位RI的條件: REN = 1,RI = 0 且SM2 = 0或接收到第9位數(shù)據(jù)為1,此時(shí),數(shù)據(jù)裝載SBUF,RI置1,第9位數(shù)據(jù)(TB8)送入 RB8。 送RB8三、方式2:固定波特率的11位異步接收/發(fā)送方式第三十三張,PPT共七十五頁(yè),創(chuàng)作于2022年6月串行口方式2、3的時(shí)序 1、波特率:(2SMODT1的溢出率)/ 32 ,可變,同方式1。 2、一幀信息11位。 四、方式3:可變波特率的11位異步接

23、收/發(fā)送方式第三十四張,PPT共七十五頁(yè),創(chuàng)作于2022年6月方式0:波特率固定為fosc/12。方式2:波特率由PCON中的選擇位SMOD來(lái)決定,可由下式表示: 波特率=(2SMOD/64)fosc 方式1和方式3:波特率是可變的,由定時(shí)器T1的溢出率控制。 波特率=(2SMOD/32)定時(shí)器T1溢出率 T1溢出率=T1計(jì)數(shù)率/產(chǎn)生溢出所需的周期 =(fosc/12)/(28TC) 五、串行口的通信波特率第三十五張,PPT共七十五頁(yè),創(chuàng)作于2022年6月例:設(shè)晶振fosc為11.0592MHz,選定定時(shí)器工作方式2,SMOD=0求:4800bps、9600bps時(shí)的初值 。解:定時(shí)器方式2的

24、初始值X的公式經(jīng)過推導(dǎo)可得到在實(shí)際應(yīng)用時(shí),通常是先確定波特率,后根據(jù)波特率求T1定時(shí)初值.T1初值 = 256 2SMOD32fosc12 波特率故: X1=256(11.05921)/(3844800)= FAH X2 =256(11.05921)/(3849600)=FDH第三十六張,PPT共七十五頁(yè),創(chuàng)作于2022年6月7.3 串行口的應(yīng)用使用串行口的步驟:1、通信雙方的硬件連接2、制定通信協(xié)議 工作方式、波特率、數(shù)據(jù)格式、效驗(yàn)方法等。3、主程序 串行口中斷入口處理 串口初始化:SCON PCON T1工作方式及初值、IE、IP4、中斷服務(wù)程序第三十七張,PPT共七十五頁(yè),創(chuàng)作于2022

25、年6月一、串口方式0的應(yīng)用例:用8051串行口外接CD4094擴(kuò)展8位并行輸出口,8位并行口的各位都接一個(gè)發(fā)光二極管,要求發(fā)光二極管呈流水燈狀態(tài)(輪流點(diǎn)亮)。 方案一:采用查詢TI決定是否發(fā)送下一幀數(shù)據(jù)方案二:采用中斷決定是否發(fā)送下一幀數(shù)據(jù)第三十八張,PPT共七十五頁(yè),創(chuàng)作于2022年6月 RR A CLR P1.0 SJMP OUT0 DELAY: MOV R7, #250 D1: MOV R6, #250 D2: DJNZ R6, D2 DJNZ R7, D1 RET END ORG 0000H START: MOV SCON, #00H MOV A, #80H CLR P1.0 OUT0

26、: MOV SBUF, A OUT1: JNB TI, OUT1 CLR TI SETB P1.0 ACALL DELAY 第三十九張,PPT共七十五頁(yè),創(chuàng)作于2022年6月P3.0 RXDP3.1 TXD分析: 從串口送出什么樣的數(shù)據(jù)才能顯示 0?例:利用串并轉(zhuǎn)換將數(shù)字 09輸出到LED顯示器上顯示,輸出同一個(gè)數(shù)字。 第四十張,PPT共七十五頁(yè),創(chuàng)作于2022年6月 ORG 0000H AJMP MAIN ORG 0030HMAIN:MOV SP,#60H MOV SCON,#00H MOV R1,#00H L1:MOV A,R1 MOV DPTR,#TAB MOVC A,A+DPTR MO

27、V SBUF ,A JNB TI,$ CLR TI MOV SBUF ,A JNB TI,$ CLR TI CALL DELAY CJNE R1,#9,L2 MOV R1,#00H AJMP MAIN L2:INC R1 AJMP L1TAB:DB 03H,9FH,25H,0DH,99H,49H DB 41H,1FH,01H,09HDELAY: END思考:不用串行口發(fā)送數(shù)據(jù),采用某一個(gè)輸出口是否也可以 完成串并轉(zhuǎn)換? 第四十一張,PPT共七十五頁(yè),創(chuàng)作于2022年6月單片機(jī)P1.0P1.1P1.2P1.3RXDTXDP3.0P3.1P1.0P1.1P1.2P1.3RXDTXD單片機(jī)P3.0P

28、3.1例:采用串行口方式1進(jìn)行雙機(jī)通信,將內(nèi)部RAM中以50H為首地址的連續(xù)10個(gè)單元內(nèi)容送出。硬件連接通信協(xié)議方式1 2400B/S定時(shí)器T1 方式2 晶振12MHZ初值: 二、串口方式1的應(yīng)用通信距離不超過1.5米第四十二張,PPT共七十五頁(yè),創(chuàng)作于2022年6月 ORG 0000H AJMP MAIN ORG 0023H AJMP SINT ORG 0100HMAIN:MOV TMOD,#00100000B MOV SCON,#40H MOV PCON,#00H MOV TL1,#0F4H MOV TH1,#0F4H SETB ES CLR ET1 SETB TR1 SETB EAL1:

29、 MOV R0,#50H MOV A,R0 MOV SBUF,AL2: CJNE R0,#5AH,L2 AJMP L1 ORG 0200HSINT:CLR TI INC R0 MOV A,R0 MOV SBUF,A RETI END發(fā)送程序第四十三張,PPT共七十五頁(yè),創(chuàng)作于2022年6月 ORG 0000H AJMP MAIN ORG 0023H AJMP SINT ORG 0100HMAIN:MOV TMOD,#00100000B MOV SCON,#50H MOV PCON,#00H MOV TL1,#0F4H MOV TH1,#0F4H SETB ES CLR ET1 SETB TR1

30、 SETB EAMOV R0,#50H SJMP $SINT:CLR RI MOV A,SBUF MOV R0,A INC R0 RETI END接收程序第四十四張,PPT共七十五頁(yè),創(chuàng)作于2022年6月數(shù)據(jù)送累加器ATB8=PMOV SBUF,ATI=1 ?CLR TINOYES發(fā)送端程序(原始TI=0)RI=1 ?MOV A,SBUFPSW.P=RB8?出錯(cuò)處理CLR RIYESNO接收端程序(原始RI=0)NY數(shù)據(jù)送內(nèi)存例:采用方式2奇偶校驗(yàn)進(jìn)行雙機(jī)通信。三、串口方式2的應(yīng)用第四十五張,PPT共七十五頁(yè),創(chuàng)作于2022年6月例:采用方式2奇偶校驗(yàn)進(jìn)行雙機(jī)通信。SE: MOV A,R0 M

31、OV C,P MOV TB8,C MOV SBUF,AHE: JNB TI ,HE CLR TI INC R0 SJMP SE數(shù)據(jù)送累加器ATB8=PMOV SBUF,ATI=1 ?CLR TINOYES發(fā)送端程序(原始TI=0)第四十六張,PPT共七十五頁(yè),創(chuàng)作于2022年6月例:采用方式2奇偶校驗(yàn)進(jìn)行雙機(jī)通信,采用偶校驗(yàn)。RE:JNB RI,RE MOV A,SBUF MOV C,P JNC L1 JNB RB8,ERP AJMP L2L1:JB RB8,ERP CLR RIL2:MOV R0,A INC R0 SJMP RERI=1 ?MOV A,SBUFPSW.P=RB8?出錯(cuò)處理CL

32、R RIYESNO接收端程序(原始RI=0)NY數(shù)據(jù)送內(nèi)存第四十七張,PPT共七十五頁(yè),創(chuàng)作于2022年6月傳統(tǒng)方式的多路數(shù)據(jù)采集系統(tǒng)單片機(jī)系統(tǒng)或微型計(jì)算機(jī)系統(tǒng)傳感器 1傳感器 2傳感器 3傳感器 4傳感器 N接口電路 機(jī)房 或 儀表室檢測(cè)現(xiàn)場(chǎng)四、串口方式3的應(yīng)用第四十八張,PPT共七十五頁(yè),創(chuàng)作于2022年6月采用“智能傳感器”組成的多路數(shù)據(jù)采集系統(tǒng)主機(jī)從機(jī) N從機(jī) 4從機(jī) 3從機(jī) 2從機(jī) 1RXDTXDTXDRXD第四十九張,PPT共七十五頁(yè),創(chuàng)作于2022年6月 TI :發(fā)送中斷標(biāo)志,發(fā)送一幀結(jié)束,TI=1,必須軟件清零 RI :接收中斷標(biāo)志,接收一幀結(jié)束,RI=1,必須軟件清零 RB8

33、:方式1中放停止位,方式2、3中放接收的第九位數(shù)REN:允許接收控制位,軟件置位或清零SM2:多機(jī)通信控制位(常與RB8配合,決定是否激活RI)方式3 :11,11位UART,其波特率為可變,由定時(shí)器控制。多機(jī)通信SCON的設(shè)置SM0SM1SM2RENTB8RB8 TI RITB8:將要發(fā)送的第九位數(shù), 在執(zhí)行 MOV SBUF ,A 指令之前 要事先將TB8設(shè)定好;雙機(jī)通信作校驗(yàn)位; 多機(jī)通信作地址/數(shù)據(jù)標(biāo)識(shí)位。第五十張,PPT共七十五頁(yè),創(chuàng)作于2022年6月接收到有效數(shù)據(jù)完畢,置位RI的條件:(1) REN = 1,RI = 0 (2)且SM2 = 0或接收到第9位數(shù)據(jù)為1,此時(shí),數(shù)據(jù)裝載

34、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,信息丟失。第五十一張,PPT共七十五頁(yè),創(chuàng)作于2022年6月多機(jī)通訊原理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,信息丟失。主機(jī)1、SM2=02、主機(jī)發(fā)出地址碼 TB8=13、主機(jī)發(fā)出數(shù)據(jù)碼 或命令碼TB8

35、=0從機(jī)1、SM2=12、從機(jī)接收到RB8=1,接收地址碼, 判斷是否和本機(jī)地址碼相同, 若相同,則SM2=0,若不同,則SM2=13、被尋中的從機(jī),接收RB8=0,且SM2=0 將主機(jī)發(fā)出的數(shù)據(jù)碼或命令碼送入SBUF, RI=1, 沒有被尋中的從機(jī),接收RB8=0,且SM2=1, 不接收任何數(shù)據(jù)。第五十二張,PPT共七十五頁(yè),創(chuàng)作于2022年6月多機(jī)通訊中主機(jī)與從機(jī)之間的控制、狀態(tài)信息主機(jī)的控制命令: 00H 主機(jī)發(fā)送,從機(jī)接收; (控制從機(jī)的操作) 01H 主機(jī)接收,從機(jī)發(fā)送。(命令分類)從機(jī)狀態(tài)字:從機(jī)向主機(jī)發(fā)送的用于表征從機(jī)工作狀態(tài)的信息。ERRTRDYRRDY0:合法命令 0:發(fā)送未

36、就緒 0:接收未就緒1:非法命令 1:發(fā)送就緒 1:接收就緒從機(jī)返回的狀態(tài)字例:串口方式3應(yīng)用編程 (多機(jī)通信)第五十三張,PPT共七十五頁(yè),創(chuàng)作于2022年6月主機(jī)程序框圖T1為定時(shí),模式2B=1200,啟動(dòng)T1設(shè)串口為模式3REN=1,SM2=0TB8=1設(shè)定程序數(shù)據(jù):R0R5停機(jī)MCOMMU從機(jī)應(yīng)答?地址相符?發(fā)送命令字(TB8=0)從機(jī)應(yīng)答?命令正確?命令分類從機(jī)接收就緒?從機(jī)發(fā)送就緒?RET命令從機(jī)復(fù)位發(fā)FFHNNYYNNYYNNYY接收發(fā)送調(diào)用MCOMMU接收數(shù)據(jù)塊發(fā)送數(shù)據(jù)塊發(fā)送從機(jī)地址第五十四張,PPT共七十五頁(yè),創(chuàng)作于2022年6月(一)主機(jī)程序(初始化部分)ORG 2000H

37、START:MOV TMOD,#20H;定時(shí)器T1為模式2(8位自動(dòng)重裝)MOV TH1,#0F4HMOV TL1,#0F4H;波特率為1200(設(shè)外接MHz晶體)SETB TR1;啟動(dòng)T1MOV SCON,#0D8H;串口為模式3,REN=1,SM2=0,TB8=1MOV PCON,#00H;設(shè)PCON中的SMOD=0MOV R0,#40H;發(fā)送數(shù)據(jù)塊首地址送R0指針MOV R1,#20H;接收數(shù)據(jù)塊首地址送R1指針MOV R2,#SLAVE;被尋從機(jī)地址送R2MOV R3,#00H/#01H;主發(fā)、從收命令?;蛑魇铡陌l(fā)命令MOV R4,#14H;發(fā)送數(shù)據(jù)塊長(zhǎng)度送R4(20)計(jì)數(shù)器MOV

38、R5,#14H;接收數(shù)據(jù)塊長(zhǎng)度送R5(20)計(jì)數(shù)器ACALL MCOM;調(diào)用主機(jī)通訊子程序SJMP $第五十五張,PPT共七十五頁(yè),創(chuàng)作于2022年6月(二)主機(jī)通訊子程序( MCOM)ORG 2100HMCOM:MOV A,R2;取從機(jī)地址MOV SBUF,AJNB RI,$;注意:為什么判斷RI而不是TI ?CLR RIMOV A,SBUF;取從機(jī)的返回地址XRL A,R2;核對(duì)兩個(gè)地址JZ MTXD2;相符時(shí),轉(zhuǎn)MTXD2MTXD1:MOV SBUF,#0FFH;返回地址錯(cuò)誤時(shí),發(fā)送從機(jī)復(fù)位信號(hào)SETB TB8;設(shè)定地址標(biāo)志SJMP MCOM ; 重發(fā)從機(jī)地址,所有從機(jī)重新判斷地址MTX

39、D2:CLR TB8;將TB8=0,準(zhǔn)備發(fā)送命令MOV SBUF,R3;送出命令JNB RI,$;等待從機(jī)應(yīng)答CLR RI;從機(jī)應(yīng)答后清標(biāo)志MOV A,SBUF;接收從機(jī)應(yīng)答命令JNB ACC.7,MTXD3;命令無(wú)錯(cuò)時(shí),則命令分類SJMP MTXD1;命令錯(cuò)返回重新聯(lián)絡(luò)第五十六張,PPT共七十五頁(yè),創(chuàng)作于2022年6月MTXD3:CJNE R3,#00H,MRXD;從機(jī)發(fā)送主機(jī)接收時(shí),轉(zhuǎn)MRXDJNB ACC.0,MTXD1;從機(jī)接收時(shí),若從機(jī)未準(zhǔn)備好轉(zhuǎn)回MTXD4:MOV SBUF,R0;若從機(jī)準(zhǔn)備好,則開始發(fā)送JNB TI,$CLR TIINC R0DJNZ R4,MTXD4RETMRX

40、D:JNB ACC.1,MTXD1;從機(jī)發(fā)送未準(zhǔn)備好返回MRXD1:JNB RI,$;等待接收CLR RIMOV A,SBUFINC R1;接收數(shù)據(jù)區(qū)指針加一DJNZ R5,MRXD1;未接收完則繼續(xù)(R5接收數(shù)據(jù)計(jì)數(shù)器)RETENDERR從機(jī)返回的狀態(tài)字TRDYRRDY0:合法命令 0:發(fā)送未就緒 0:接收未就緒1:非法命令 1:發(fā)送就緒 1:接收就緒第五十七張,PPT共七十五頁(yè),創(chuàng)作于2022年6月從機(jī)主程序框圖T1為定時(shí),模式2B=1200,啟動(dòng)T1設(shè)串口為模式3REN=1,SM2=1TB8=1設(shè)定程序參數(shù):R0R3開串行口中斷動(dòng)態(tài)停機(jī)等待主機(jī)發(fā)送地址碼保護(hù)現(xiàn)場(chǎng)接收地址符合本機(jī)? 向主機(jī)

41、回送本機(jī)地址接收下一字符是命令嗎? 命令分類 本機(jī)發(fā)送準(zhǔn)備就緒? 本機(jī)接收準(zhǔn)備就緒? 發(fā)TRDY=1狀態(tài)字發(fā)RRDY=1狀態(tài)字發(fā)送數(shù)據(jù)接收數(shù)據(jù)發(fā)送完? 接收完? 保護(hù)現(xiàn)場(chǎng)返回NNYY發(fā)送命令接收命令非法命令送TRDY=0送RRDY=0NNNY中斷服務(wù)程序NY接收FFH時(shí)第五十八張,PPT共七十五頁(yè),創(chuàng)作于2022年6月ORG 0000HLJMP STARTORG 0023HLJMP 0100HORG 0040HSTART:MOV TMOD,#20H;設(shè)定定時(shí)器T1為模式2MOV TH1,#0F4H;設(shè)定波特率為1200MOV TL1,#0F4HSETB TR1;啟動(dòng)定時(shí)器T1MOV SCON,

42、#0F8H;設(shè)串口模式3,REN=1,SM2=1,TB8=1MOV PCON,#00HMOV R0,#20H;R0指向發(fā)送數(shù)據(jù)塊首地址MOV R1,#40H;R1指向接收數(shù)據(jù)塊首址MOV R2,#14H;R2賦發(fā)送數(shù)據(jù)塊長(zhǎng)度MOV R3,#14H;R3賦接收數(shù)據(jù)塊長(zhǎng)度SETB EASETB ES;開中斷CLR RI ;清標(biāo)志RI準(zhǔn)備接收數(shù)據(jù)SJMP $;等待中斷(三) 從機(jī)主程序(初始化)第五十九張,PPT共七十五頁(yè),創(chuàng)作于2022年6月(四)從機(jī)中斷服務(wù)程序ORG 0100HSINTS:CLR RI;接收到地址后清RI PUSH ACCPUSH PSW;保護(hù)現(xiàn)場(chǎng)MOV A,SBUF;接收主機(jī)

43、送來(lái)得從機(jī)地址XRL A,#SLAVE;核實(shí)從機(jī)地址JZ SRXD1;若是本機(jī)地址轉(zhuǎn)SRXD1RETU:POP PSW;返回主程序POP ACC;恢復(fù)現(xiàn)場(chǎng)RETI;中斷返回SRXD1:CLR SM2;SM2清零,單獨(dú)接收主機(jī)數(shù)據(jù)/命令MOV SBUF,# SLAVE;向主機(jī)發(fā)回從機(jī)地址JNB RI,$;等待主機(jī)的命令CLR RI;接收到主機(jī)命令后清RIJNB RB8,SRXD2;若是命令(RB8=0)則轉(zhuǎn)SRXD2繼續(xù)SJMP RETU;接收的不是命令時(shí)(RB8=1),返回第六十張,PPT共七十五頁(yè),創(chuàng)作于2022年6月SRXD2:MOV A,SBUF;將接收到的命令送ACJNE A,#02H,NEXT;命令合法(A-02H)NEXT:JC SRXD3;若命令合法(A2) Instring=MSComm1.Input End Sub Sub command2_Click() MSComm1.PortOpen=FALSE UnLoad

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論