版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第九章 串行通訊及其接口計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的數(shù)據(jù)交換稱(chēng)為通信。9.1概述9.1.1 串行通信的基本概念通信分為并行通信與串行通信兩種基本方式。9.1.1.1 并行通信和串行通信串行通信:將數(shù)據(jù)分成1位1位的形式在一條傳輸線上逐個(gè)地傳送。并行通信:將數(shù)據(jù)的各位用多條數(shù)據(jù)線同時(shí)進(jìn)行傳送,外加地址線和通信控制線。特點(diǎn):并行通信常用于集成電路芯片的內(nèi)部、同一插件板上各部件之間、同一機(jī)箱內(nèi)各插件板之間的信息交互串行通信常用于設(shè)備之間的信息交互 串行通信1)交互數(shù)據(jù)信息和控制信息 2)有嚴(yán)格的格式(同步和異步) 3)電平需要轉(zhuǎn)換 若接收端與發(fā)送端使用的不是同一時(shí)鐘信號(hào)(但必須同頻率),則
2、為異步通信。 1、異步通信 以字符為單位,一個(gè)字符一個(gè)字符地傳送,并且每一個(gè)字符要有起始符和停止符作為開(kāi)始和結(jié)束的標(biāo)志。(一個(gè)字符就是一幀)9.1.1.2同步通信和異步通信 根據(jù)數(shù)據(jù)傳輸方式的不同,可將串行通信分為同步通信和異步通信。 停止位后面是不定長(zhǎng)的空閑位。數(shù)據(jù)的傳送可以是不連續(xù)的。 每幀數(shù)據(jù)由4部分組成:起始位(占1位)、數(shù)據(jù)位(占位)、奇偶校驗(yàn)位(占位,也可以沒(méi)有校驗(yàn)位)、停止位(占1或2位)。起始位:1位。低電平(邏輯0)。標(biāo)志一個(gè)字符傳送的開(kāi)始。數(shù)據(jù)位: 58位。低位在前,高位在后。字符編碼方式的不同,使得數(shù)據(jù)可以是58位。奇偶校驗(yàn)位:1位。檢查字符傳送的準(zhǔn)確性。有三種方式:奇校
3、驗(yàn)、偶校驗(yàn)和無(wú)校驗(yàn),由用戶決定。停止位: 1位、1位半或者兩位(高電平邏輯1)。標(biāo)志一個(gè)字符傳送的結(jié)束。 發(fā)送方:傳送時(shí)先輸出起始位“”作為聯(lián)絡(luò)信號(hào),接下來(lái)的是數(shù)據(jù)位和奇偶校驗(yàn)位,停止位“1”表示一個(gè)字符的結(jié)束。其中,數(shù)據(jù)的低位在前,高位在后。字符之間允許有不定長(zhǎng)度的空閑位。 接收方:傳送開(kāi)始后,接收設(shè)備不斷檢測(cè)傳輸線的電平狀態(tài),當(dāng)收到一系列的“1”(空閑位或停止位)之后,檢測(cè)到一個(gè)“”,說(shuō)明起始位出現(xiàn),就開(kāi)始接收所規(guī)定的數(shù)據(jù)位和奇偶校驗(yàn)位以及停止位。 特點(diǎn):所需傳輸線少,設(shè)備開(kāi)銷(xiāo)較小,在單片機(jī)控制系統(tǒng)中得到廣泛的應(yīng)用。 但每個(gè)字符要附加23位用于起止位,各幀之間還有間隔,因此傳輸效率不高。工
4、作流程目的:提高可靠性方法:奇偶校驗(yàn)法、校驗(yàn)和方法校驗(yàn)方法基本思想: 依據(jù)偶校驗(yàn)或奇校驗(yàn)原則,比較發(fā)送方和接收方的校驗(yàn)位是否相同。 1. 奇偶校驗(yàn)法 數(shù)據(jù) 校驗(yàn)位(偶校驗(yàn)) 校驗(yàn)位(奇校驗(yàn)) 64H 0110 0100 1 0 偶校驗(yàn):數(shù)據(jù)區(qū)與校驗(yàn)位中1的總數(shù)為偶數(shù)。 奇校驗(yàn):數(shù)據(jù)區(qū)與校驗(yàn)位中1的總數(shù)為奇數(shù)。奇偶校驗(yàn)法的缺點(diǎn): 1. 每次需要傳送檢驗(yàn)位。 2. 不能監(jiān)測(cè)偶數(shù)個(gè)錯(cuò)誤。2. 校驗(yàn)和方法特點(diǎn):校驗(yàn)和方法效率更高,可靠性更高。2、同步通信 同步通信是一種數(shù)據(jù)連續(xù)傳輸?shù)拇型ㄐ欧绞?,通信時(shí)發(fā)送方把需要發(fā)送的多個(gè)字節(jié)數(shù)據(jù)和校驗(yàn)信息連接起來(lái),組成數(shù)據(jù)塊。 發(fā)送時(shí),發(fā)送方只需在數(shù)據(jù)塊前插入12
5、個(gè)特殊的同步字符,然后按特定速率逐位輸出(發(fā)送)數(shù)據(jù)塊內(nèi)的各位數(shù)據(jù)。 接收方在接收到特定的同步字符后,也按相同速率接收數(shù)據(jù)塊內(nèi)的各位數(shù)據(jù)。 在這種通信方式中,數(shù)據(jù)塊內(nèi)的各位數(shù)據(jù)之間沒(méi)有間隔,傳輸效率高;發(fā)送、接收雙方必須保持同步(使用同一時(shí)鐘信號(hào)), 且數(shù)據(jù)塊長(zhǎng)度越大,對(duì)同步要求就越高。同步通信設(shè)備復(fù)雜,成本高,一般只用在高速數(shù)字通信系統(tǒng)中。 9.1.1.3串行通信方式1)單工方式:這種方式只允許數(shù)據(jù)按一個(gè)固定的方向傳輸。數(shù)據(jù)傳輸僅能從發(fā)送設(shè)備傳輸?shù)浇邮赵O(shè)備。2)半雙工方式:數(shù)據(jù)可以從A發(fā)送到B,也可以由B發(fā)送到A。但A、B之間只有一根傳輸線,因此同一時(shí)刻只能作一個(gè)方向的傳送。其傳送方向由收發(fā)
6、控制開(kāi)關(guān)K切換。平時(shí)一般讓A、B方都處于接收狀態(tài),以便能夠隨時(shí)響應(yīng)對(duì)方的呼叫。 兩個(gè)串行通信設(shè)備之間只有一條數(shù)據(jù)線,數(shù)據(jù)傳輸可以沿兩個(gè)方向,但需要分時(shí)進(jìn)行。3)全雙工方式:數(shù)據(jù)可同時(shí)在兩個(gè)方向上傳送。 3種方式中,1)全雙工方式的效率最高;2)半雙工方式配置和編程相對(duì)靈活,傳輸成本較低 ;3)串行通信設(shè)備常選用半雙工方式。9.1.1.5波特率(Baud rate)單位:bps(bit per second)定義:每秒鐘傳送的二進(jìn)制位數(shù)。Baudrate:50 19200 57600 50,100,150,300,600,1200,2400, 4800,9600,19200,38400,5760
7、0,115200 如每秒傳送240個(gè)字符,而每個(gè)字符格式包含10位這時(shí)的波特率為10位(bit)240個(gè)/s = 2400 bit/s。在異步串行通信中,接收方和發(fā)送方應(yīng)使用相同的波特率,才能成功傳送數(shù)據(jù)。Baudrate9600bps 對(duì)應(yīng)于一個(gè)數(shù)據(jù)位寬約為104us。數(shù)據(jù)位寬(每一位代碼的傳輸時(shí)間) Td 1 / Baudrate計(jì)算機(jī)系統(tǒng)中常用串行、并行接口并行:EPP:打印機(jī)IDE:硬盤(pán)、電子盤(pán)IEEE488(GPIB):智能化儀器PCI串行:異步:RS232-C 384Kbps (15 to 20m)RS422、RS485 1.2Mbps (1200m)同步:USB 1.1 12Mb
8、psUSB 2.0 480Mbps1394 400MbpsSPI 26Mbps (Motorola)Microwire 10Mbps (National Semiconductor,國(guó)家半導(dǎo)體公司)I2C 400Kbps (Philips)RS232C 簡(jiǎn)介信號(hào)線25 芯,22 根信號(hào)線,常用9 根線最簡(jiǎn)方式 3 根線RXD:數(shù)據(jù)接收線TXD:數(shù)據(jù)發(fā)送線GND:地線例如 PC 機(jī)上的串口COM1、COM2電平制采用負(fù)邏輯,對(duì)應(yīng)電平如下:1 : 3V 15V0 : 3V 15V常用驅(qū)動(dòng)器典型的線驅(qū)動(dòng)器MC1488(反向驅(qū)動(dòng)) 12V 供電典型的線接收器 MC1489(反向驅(qū)動(dòng))異步串口硬件連線方
9、式常用驅(qū)動(dòng)器Sipex 220常用驅(qū)動(dòng)器Max2321. 4 種工作方式的特點(diǎn)是什么?分別應(yīng)用 于什么場(chǎng)合?2. 如何啟動(dòng)發(fā)送和接收過(guò)程?3. 首先移出或發(fā)送的是D0,還是D7? (9AH10011010B)4. 在接收數(shù)據(jù)過(guò)程中采用了什么措施提 供可靠性?5. TI 標(biāo)志和RI 標(biāo)志何時(shí)會(huì)自動(dòng)置1?6. 哪些情況下傳送的數(shù)據(jù)會(huì)丟失? 全雙工的異步通訊串行口,具有UART的全部功能,能同時(shí)進(jìn)行數(shù)據(jù)的發(fā)送和接收 4種工作方式 ,波特率由片內(nèi)定時(shí)器/計(jì)數(shù)器控制。 每發(fā)送或接收一幀數(shù)據(jù),均可發(fā)出中斷請(qǐng)求。 除用于串行通訊,還可用來(lái)擴(kuò)展并行I/O口,或作為串并轉(zhuǎn)換等。9.2 MCS-51的串行口 MC
10、S-51的串行口主要由兩個(gè)獨(dú)立的串行數(shù)據(jù)緩沖寄存器SBUF(一個(gè)發(fā)送緩沖寄存器,一個(gè)接收緩沖寄存器),發(fā)送控制器、接收控制器、輸入移位寄存器及若干控制門(mén)電路組成。9.2.1 串行口的組成 MCS-51可以通過(guò)特殊功能緩沖器SBUF對(duì)串行接收或串行發(fā)送寄存器進(jìn)行訪問(wèn),兩個(gè)緩沖器共用一個(gè)地址99H,由指令操作決定訪問(wèn)哪一個(gè)緩沖器。 執(zhí)行寫(xiě)時(shí)訪問(wèn)串行發(fā)送緩沖器,讀時(shí)訪問(wèn)接收緩沖器。發(fā)送緩沖器只能寫(xiě)入,不能讀出;接收緩沖器只能讀出,不能寫(xiě)入。 發(fā)送緩沖器:只管發(fā)送數(shù)據(jù),CPU寫(xiě)入SBUF的時(shí)候 (MOV SBUF,A)即為發(fā)送;接收緩沖器:只管接收數(shù)據(jù),CPU讀取SBUF的過(guò)程 (MOV A,SBUF
11、)即為接收。 9.2.1.1控制狀態(tài)寄存器SCON MCS-51串行口工作方式的設(shè)定、接收與發(fā)送控制以及工作狀態(tài)標(biāo)志的設(shè)置都是通過(guò)對(duì)串行口控制寄存器SCON的編程確定的。 SCON地址為98H,可位尋址: (1)SM0、SM1串行口4種工作方式的選擇位 表 串行口的4種工作方式SM0 SM1 方式 功 能 說(shuō) 明 0 0 0 同步移位寄存器方式(用于擴(kuò)展I/O口) 0 1 1 8位異步收發(fā),波特率可變(由定時(shí)器控制) 1 0 2 9位異步收發(fā),波特率為fosc/64或fosc/32 1 1 3 9位異步收發(fā),波特率可變(由定時(shí)器控制)當(dāng)串行口以方式2或方式3接收時(shí), 如果SM2=1,只有當(dāng)接收
12、到的第9位數(shù)據(jù)(RB8)為“1”時(shí),才將接收到的前8位數(shù)據(jù)送入SBUF,并置“1” RI,產(chǎn)生中斷請(qǐng)求;當(dāng)接收到的第9位數(shù)據(jù)(RB8)為“0”時(shí),則將接收到的前8位數(shù)據(jù)丟棄。 如果SM2=0,則不論第9位數(shù)據(jù)是“1”還是“0”,都將前8位數(shù)據(jù)送入SBUF中,并置“1” RI,產(chǎn)生中斷請(qǐng)求。方式1時(shí),如果SM2=1,則只有收到停止位時(shí)才會(huì)激活RI,沒(méi)有收到有效的停止位時(shí),RI清0。方式0時(shí),SM2必須為0。(2)SM2 多機(jī)通信控制位 用于方式2或方式3中。(3)REN允許串行接收位 由軟件置“1”或清“0”。 REN=1 允許串行口接收數(shù)據(jù)。REN=0 禁止串行口接收數(shù)據(jù)。 (4)TB8發(fā)送的
13、第9位數(shù)據(jù) 方式2和3時(shí),TB8是要發(fā)送的第9位數(shù)據(jù),可作為奇偶校驗(yàn)位使用,或在多機(jī)通信中可作為地址幀或數(shù)據(jù)幀的標(biāo)志。 TB8 =1為地址幀, TB8 =0為數(shù)據(jù)幀 (5)RB8接收到的第9位數(shù)據(jù) 方式2和3時(shí),RB8存放接收到的第9位數(shù)據(jù),作為奇偶校驗(yàn)位或地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式1,如果SM2=0,RB8是接收到的停止位。在方式0,不使用RB8。(6)TI發(fā)送中斷標(biāo)志位方式0時(shí),串行發(fā)送第8位數(shù)據(jù)結(jié)束時(shí)由硬件置“1”,其它工作方式,串行口發(fā)送停止位的開(kāi)始時(shí)置“1”。TI=1,表示一幀數(shù)據(jù)發(fā)送結(jié)束,可供軟件查詢,也可申請(qǐng)中斷。CPU響應(yīng)中斷后, 向SBUF寫(xiě)入要發(fā)送的下一幀數(shù)據(jù)。TI必須
14、由軟件清0。(7)RI接收中斷標(biāo)志位 方式0時(shí),接收完第8位數(shù)據(jù)時(shí),RI由硬件置1。其它工作方式,串行接收到停止位時(shí),該位置“1”。RI=1,表示一幀數(shù)據(jù)接收完畢,并申請(qǐng)中斷, CPU從接收SBUF取走數(shù)據(jù)。該位狀態(tài)也可軟件查詢。RI必須由軟件清“0”。SMOD:波特率選擇位。 SMOD=1,波特率加倍。SMOD0,波特率不加倍。 例如:方式1的波特率的計(jì)算公式為: 方式1波特率=(2SMOD/32)定時(shí)器T1的溢出率也稱(chēng)SMOD位為波特率倍增位。9.2.1.2 特殊功能寄存器PCON 字節(jié)地址為87H,沒(méi)有位尋址功能,需要字節(jié)傳送。 MCS-51單片機(jī)串行口共有4種工作方式,SM0、SM1是
15、串行接口的工作方選擇位,如表所示。SM0 SM1方式 功 能 說(shuō) 明 波 特 率 001101010123移位寄存器方式8位異步通訊接口9位異步通訊接口9位異步通訊接口fosc/12可變fosc/64,fosc/32可變 串行接口中的4種工作方式中,串行通信只使用方式1 、方式2、方式3。 方式0主要用于擴(kuò)展并行輸入輸出口。9.2.2 串行口的4種工作方式9.2.2.1 方式0 方式0是把串行接口作為同步移位寄存器使用。其波特率是固定的,為fosc/12,即一個(gè)機(jī)器周期移位一次。 數(shù)據(jù)由RXD端輸出或輸入,同時(shí)由TXD端輸出同步移位脈沖信號(hào)。 移位數(shù)據(jù)的發(fā)送和接收以一個(gè)字符的8位為一組,不設(shè)起
16、始位和停止位。 低位在前,高位在后。其格式為:D0D1D2D3D4D5D6D7 1方式0發(fā)送當(dāng)執(zhí)行任何一條寫(xiě)SBUF的指令時(shí),就啟動(dòng)了串行接口的發(fā)送過(guò)程(如MOV SBUF,A)。內(nèi)部的定時(shí)邏輯在SBUF寫(xiě)入數(shù)據(jù)之后,經(jīng)過(guò)一個(gè)完整的機(jī)器周期,輸出移位寄存器中輸出位的內(nèi)容送RXD引腳輸出;移位脈沖由TXD引腳輸出,它使RXD引腳輸出的數(shù)據(jù)移入外部移位寄存器。8位數(shù)據(jù)以fosc/12的固定波特率從RXD引腳串行輸出。當(dāng)數(shù)據(jù)的最高位D7位移出后,停止發(fā)送數(shù)據(jù)和移位脈沖,就完成了1B的輸出,并把中斷標(biāo)志(TI)置“1”。如要再發(fā)送下一字節(jié)數(shù)據(jù),必須用軟件先將TI清“0”。 時(shí)序如圖所示。 2方式0接收
17、 REN=0,禁止接收。 REN=1,允許接收。 向串口的SCON寫(xiě)入控制字(置為方式0,并置“1”REN位,同時(shí)RI=0)時(shí),產(chǎn)生一個(gè)正脈沖,串行口即開(kāi)始接收數(shù)據(jù)。 RXD為數(shù)據(jù)輸入端,TXD為移位脈沖信號(hào)輸出端 接收器也以fosc/12的固定波特率采樣RXD引腳的數(shù)據(jù)信息,當(dāng)收到8位數(shù)據(jù)時(shí)置“1” RI。表示一幀數(shù)據(jù)接收完。 如要再接收數(shù)據(jù),就再用軟件將RI清“0”。 時(shí)序如下: 方式0下,SCON中的TB8、RB8位沒(méi)有用到,發(fā)送或接收完8位數(shù)據(jù)由硬件置“1”TI或RI,CPU響應(yīng)中斷。TI或RI須由用戶軟件清“0”,可用如下指令:CLR TI;TI位清“0”CLR RI ;RI位清“0
18、” 方式0時(shí),SM2位必須為0。 串行接口為同步移位寄存器的輸入/輸出方式,而不是通信方式,可外接移位寄存器,用于擴(kuò)展并行I/O接口。 數(shù)據(jù)都由RXD(P3.0)引腳輸入或輸出,TXD引腳 總是用于輸出同步移位脈沖。 方式1 波特率可變的8位異步通信串行接口為波特率可變的8位數(shù)據(jù)的異步通信接口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳。傳送1幀數(shù)據(jù)為10位,其中,1位起始位(0),8位數(shù)據(jù)位(低位在先),1位停止位(1)。方式1的波特率由定時(shí)器(T1)的溢出率和SMOD的狀態(tài)決定。 1方式1發(fā)送 方式1輸出時(shí),數(shù)據(jù)由TXD輸出, 當(dāng)執(zhí)行一條數(shù)據(jù)寫(xiě)發(fā)送緩沖器SBUF的指令,就啟動(dòng)發(fā)送。圖中TX
19、時(shí)鐘的頻率就是發(fā)送的波特率。 發(fā)送開(kāi)始時(shí),內(nèi)部發(fā)送控制信號(hào)變?yōu)橛行?。將起始位向TXD輸出,此后,每經(jīng)過(guò)一個(gè)TX時(shí)鐘周期,便產(chǎn)生一個(gè)移位脈沖,并由TXD輸出一個(gè)數(shù)據(jù)位。8位數(shù)據(jù)位全部發(fā)送完畢后,置“1” TI。 如要再發(fā)送下一字節(jié)數(shù)據(jù),必須用軟件先將TI清零。 2方式1接收 數(shù)據(jù)從RXD(P3.0)腳輸入。當(dāng)檢測(cè)到起始位的負(fù)跳變時(shí),開(kāi)始接收數(shù)據(jù)。 定時(shí)控制信號(hào)有兩種 1)接收移位時(shí)鐘(RX時(shí)鐘,頻率和波特率相同) 2)位檢測(cè)器采樣脈沖:接收器以所選擇波特率的16倍速率采樣RXD引腳電平, 接收的值是3次連續(xù)采樣(第7、8、9個(gè)脈沖時(shí)采樣)進(jìn)行表決以確認(rèn)是否是真正的起始位(負(fù)跳變)的開(kāi)始。 當(dāng)一幀
20、數(shù)據(jù)接收完,須同時(shí)滿足兩個(gè)條件,接收才真正有效。 RI=0,即上一幀數(shù)據(jù)接收完成時(shí),RI=1發(fā)出的中斷請(qǐng)求已被響應(yīng),SBUF中的數(shù)據(jù)已被取走,說(shuō)明“接收SBUF”已空。 SM2=0或SM2=1且收到的停止位=1(方式1時(shí),停止位進(jìn)入RB8),則收到的數(shù)據(jù)裝入SBUF和RB8(RB8裝入停止位),置“1”中斷標(biāo)志RI。若這兩個(gè)條件不同時(shí)滿足,收到的數(shù)據(jù)將丟失。 9.2.2.3 方式3 9位異步通信接口。每幀數(shù)據(jù)均為11位,1位起始位0,8位數(shù)據(jù)位(先低位),1位可程控的第9位數(shù)據(jù)和1位停止位。幀格式如下。方式3波特率=(2SMOD/32)定時(shí)器T1的溢出率 1方式3發(fā)送 發(fā)送前,先根據(jù)通訊協(xié)議由
21、軟件設(shè)置TB8(例如,雙機(jī)通訊時(shí)的奇偶校驗(yàn)位或多機(jī)通訊時(shí)的地址/數(shù)據(jù)的標(biāo)志位)。 方式3發(fā)送數(shù)據(jù)波形如圖所示。 例 方式3發(fā)送在雙機(jī)通訊中的應(yīng)用。 發(fā)送中斷服務(wù)程序,是在雙機(jī)通訊中,以TB8作為奇偶校驗(yàn)位,處理方法為數(shù)據(jù)寫(xiě)入SBUF之前,先將數(shù)據(jù)的奇偶校驗(yàn)位寫(xiě)入TB8,以保證采用偶校驗(yàn)發(fā)送。SDTI:PUSH PSW ;現(xiàn)場(chǎng)保護(hù) PUSH Acc SETB SM0 ;設(shè)置方式3發(fā)送 SETB SM1 CLR TI ;發(fā)送中斷標(biāo)志清“0”MOV A,R0;取數(shù)據(jù)MOV C,P ;校驗(yàn)位送TB8,采用偶校驗(yàn) MOV TB8 ,C MOV SBUF,A ;啟動(dòng)發(fā)送 INC R0 ;數(shù)據(jù)指針加1 PO
22、P Acc ;恢復(fù)現(xiàn)場(chǎng) POP PSW RETI ;中斷返回 2方式3接收 SM0、SM1=11,且REN=1。數(shù)據(jù)由RXD端輸入,接收11位信息。當(dāng)位檢測(cè)到RXD從1到0的負(fù)跳變,并判斷起始位有效后,開(kāi)始收一幀信息。 在接收器完第9位數(shù)據(jù)后,需滿足兩個(gè)條件,才能將接收到的數(shù)據(jù)送入SBUF。 (1)RI=0,意味著接收緩沖器為空。 (2)SM2=0或接收到的第9位數(shù)據(jù)位RB8=1時(shí)。 當(dāng)上述兩個(gè)條件滿足時(shí),接收到的數(shù)據(jù)送入SBUF(接收緩沖器),第9位數(shù)據(jù)送入RB8,并置“1”RI。若不滿足兩個(gè)條件,接收的信息將被丟棄。方式3接收數(shù)據(jù)的時(shí)序如圖所示。 PIRI:PUSH PSWPUSH Acc
23、SETB SM0;設(shè)置方式3接收SETB SM1CLR RI MOV A,SBUF;收到數(shù)據(jù)送AMOV C,PJNC L1;P0,跳L1JNB RB8,ERP;P1,RB80,ERP為出錯(cuò)處理程序 AJMP L2 ;P1,RB81,接收數(shù)據(jù)正確 L1: JB RB8,ERP;RB81,跳ERP L2:MOV R0,A INC R0 POP Acc POP PSW ERP: ;出錯(cuò)處理程序段 RETI例 方式3接收在雙機(jī)通訊中的應(yīng)用。與上例相對(duì)應(yīng)。若第9位數(shù)據(jù)為校驗(yàn)位,在接收程序中作偶校驗(yàn)處理,設(shè)1組寄存器區(qū)的R0為數(shù)據(jù)緩沖器指針。 9.2.3波特率的設(shè)定串行通信雙方對(duì)發(fā)送或接收數(shù)據(jù)的波特率事先
24、要約定好保持一致。MCS-51單片機(jī)的波特率設(shè)置與工作方式有關(guān),方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時(shí)器T1的溢出率和SMOD的狀態(tài)決定。定時(shí)器T1產(chǎn)生波特率的計(jì)算(1)方式0波特率時(shí)鐘頻率fosc1/12,不受SMOD位的值的影響。若fosc=12MHz,波特率為fosc/12即1Mb/s。(2)方式2波特率=(2SMOD/64)fosc 若fosc=12MHz: SMOD=0 波特率=187.5kb/s; SMOD=1 波特率=375kb/s (3)方式1或方式3時(shí),波特率為:波特率=(2SMOD/32)T1的溢出率 當(dāng)T1作為波特率發(fā)生器時(shí),常使T1工作
25、在自動(dòng)重裝初值的8位定時(shí)器方式,并禁止T1中斷??杀苊庵匦略O(shè)定定時(shí)初值而產(chǎn)生波特率誤差。TH1從初值計(jì)數(shù)到產(chǎn)生溢出,每秒溢出的次數(shù)稱(chēng)為溢出率。 實(shí)際上是先給定數(shù)據(jù)傳輸速率,根據(jù)速率來(lái)確定計(jì)數(shù)初值N 例 若8031單片機(jī)的時(shí)鐘振蕩頻率為11.0592MHz,選用T1為方式2定時(shí)作為波特率發(fā)生器,波特率為2400b/s,求初值。 這里時(shí)鐘振蕩頻率選為11.0592 MHz,就可使初值為整數(shù),從而產(chǎn)生精確的波特率。在單片機(jī)的應(yīng)用中,相同機(jī)種單片機(jī)的波特率很容易達(dá)到一致,只要晶振頻率相同,可以采用完全一致的設(shè)置參數(shù)。異機(jī)種單片機(jī)的波特率設(shè)置較難達(dá)到一致,這時(shí)的設(shè)計(jì)原則應(yīng)使兩個(gè)通信設(shè)備之間的波特率誤差小
26、于2.5%。常用的串行接口波特率、晶振頻率以及各參數(shù)的關(guān)系如表7所示。串口工作方式及波特率/(bit/s)fosc/MHzSMOD定時(shí)器(T1) C/T工作方式初值方式01MHz12無(wú)關(guān)方式2375kHz121無(wú)關(guān)方式1方式362.5 kHz12102FFH19.2 kHz11.0592102FDH9600Hz11.0592002FDH4800Hz11.0592002FAH2400Hz11.0592002F4H1200Hz11.0592002E8H 4種工作方式的特點(diǎn)是什么?分別應(yīng)用于什么場(chǎng)合? 方式0:并/串轉(zhuǎn)換 利用串口擴(kuò)展并口 方式0,2的波特率固定 方式1,3的波特率可通過(guò)T1,T2
27、(52系列)設(shè)定多個(gè)值 選取原則: 采用奇偶校驗(yàn)時(shí)選用方式3, 9bit UART 不采用奇偶校驗(yàn)時(shí)選用方式1,8bit UART 首先移出或者發(fā)送的是D0,還是D7? (9AH=10011010B) 首先移出D0位 5. TI標(biāo)志和RI標(biāo)志何時(shí)會(huì)自動(dòng)置1? RI置1的時(shí)間和條件: SM2=0時(shí):RI=0,不論第九位數(shù)據(jù)為0或?yàn)?,RI均置1. 數(shù)據(jù)送入SBUF SM2=1時(shí):RI=0,且當(dāng)?shù)诰盼粩?shù)據(jù)為1時(shí),才置RI為1。 數(shù)據(jù)送入SBUF TI置1的時(shí)間和條件: 數(shù)據(jù)發(fā)送個(gè)完畢。例:使用MCS-51單片機(jī)串行工作收發(fā)字節(jié)字符,并要求偶校驗(yàn),要求傳送波特率為1200 baud。 解分析:因要求
28、有校驗(yàn)位,故為串行工作方式2或方式3,又因波特率為1200 baud,故只能在方式3下工作。定義定時(shí)器1采用工作方式2。由表可知,定時(shí)器T1的初始值為0E8H,設(shè)發(fā)送數(shù)據(jù)區(qū)的首地址為20H,接收數(shù)據(jù)后的首地址為40H。主程序:MOV TMOD,#20H ;設(shè)置定時(shí)器1工作方式2MOV TL1,#0E8HMOV TH1,#0E8H MOV R0,#20HMOV R1,#40HSETB TR1 ;啟動(dòng)定時(shí)器1MOV SCON,#ODOH ;設(shè)置串行工作方式3,接收允許SETB EASETB ESACALL SENDSJMP $中斷服務(wù)程序: ORG 0023H ;串行中斷入口 AJMP SERSE
29、R: JNB RI,SEN ;不是RI中斷(即為T(mén)I中斷) 轉(zhuǎn)發(fā)送子程序 ACALL RECIVE ;是RI中斷轉(zhuǎn)接收子程序 SJMP NEXTSEN: ACALL SENDNEXT:RETI發(fā)送子程序:SEND: MOV A,R0 MOV C,P ;置偶校驗(yàn)位 MOV TB8,C INC R0 MOV SBUF,A CLR TI ;TI清零 RET接收子程序:RECIVE:MOV A,SBUF MOV C,RB8 ;取校驗(yàn)位 MOV R1,A INC R1 CLR RI ;RI清0 RET9.2.4 單片機(jī)串行通信 雙機(jī)串行通信 兩臺(tái)MCS-51單片機(jī)可采用三線零調(diào)制解調(diào)方式連接,兩臺(tái)單片機(jī)
30、的發(fā)送端TXD與接收端的RXD交錯(cuò)相連,地線相連,即完成硬件的連接。 兩個(gè)MCS-51單片機(jī)相距在幾米之內(nèi)兩個(gè)MCS-51單片機(jī)相距在幾米以外MCS-51單片機(jī)與PC機(jī)的串行通信 如果雙機(jī)通訊距離在30米之內(nèi),可利用RS-232C標(biāo)準(zhǔn)接口實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的雙機(jī)通訊串行通信方式的應(yīng)用一、串行口數(shù)據(jù)發(fā)送/接收程序的基本結(jié)構(gòu) 數(shù)據(jù)發(fā)送/接收程序的基本結(jié)構(gòu)如圖所示9.3 應(yīng)用程序設(shè)計(jì)波特率的計(jì)算和UART 的初始化串行口工作于方式0:方式2:方式1、3:9.3 應(yīng)用程序設(shè)計(jì)方式1、3的波特率9.3 應(yīng)用程序設(shè)計(jì)例: 用 51 單片機(jī)的UART 傳送數(shù)據(jù),要求采用偶校驗(yàn)方法,波特率為9600bps,試選擇UA
31、RT 的工作方式,并寫(xiě)出初始化代碼。(fosc6MHz ,SMOD1 )解:1)選擇串行口工作方式: 方式3 2)計(jì)算T1 的初值 T1 的分頻值N 有:N60009.61216= 3.255 取 N3 則有 TH10FDH,TL10FDH3)初始化代碼:MOV SCON, #11010000B ; SM0 SM1=1 1 (方式3,9bitUART); SM2=0; REN=1 允許接收MOV PCON, #80H ;1000 0000B, SMOD=1MOV TMOD, #20H ;0010 0000 定時(shí)方式2MOV TH1, #0FDHMOV TL1, #0FDHSETB TR19.3
32、 應(yīng)用程序設(shè)計(jì)查詢方式下數(shù)據(jù)的基本收發(fā)過(guò)程發(fā)送:MOV SBUF, #0AAHJNB TI, $CLR TIMOV SBUF, #55H接收:JNB RI, $CLR RIMOV A, SBUF奇偶校驗(yàn)方法的應(yīng)用采用 9 位UART 方式:1start + 8data + 1parity + 1stop9.3 應(yīng)用程序設(shè)計(jì)例 :閱讀以下代碼段,歸納程序的功能, 并說(shuō)明 R0,R7 的作用。A 機(jī)發(fā)送:SEND: MOV A, R0MOV C, P ; P按偶校驗(yàn)原則置位MOV TB8, C ;存入檢驗(yàn)位MOV SBUF, ASWAIT:JBC TI, NEXTSJMP SWAITNEXT: I
33、NC R0DJNZ R7, SENDRETB 機(jī)接收:RWAIT: JBC RI, REVSJMP RWAITREV: MOV A, SBUFJNB P, ISNP ; P=0JNB RB8, ISERR ; P=1 但RB8=0SJMP SAVE ; P=1 , RB8=1ISNP: JB RB8, ISERR ; P=0, 但RB81SAVE: MOV R0, AINC R0DJNZ R7, RWAITRETISERR: SETB F0 ;PSW.5 置出錯(cuò)標(biāo)志為1SJMP SAVE9.3 應(yīng)用程序設(shè)計(jì)校驗(yàn)和方法的應(yīng)用8 位UART 方式:1start + 8data +1stopA 機(jī)發(fā)送:SEND: MOV A, R0MOV SBUF, AADD A, R2MOV R2, A ;計(jì)算校驗(yàn)和 ;僅保留低 8 位JNB TI, $CLR TI B 機(jī)接收:REV: JNB RI, $CLR RIMOV A, SBUFMOV R0, AADD A, R2 ;計(jì)算校驗(yàn)和MOV R2, A ;接收校驗(yàn)和、比較、設(shè)置標(biāo)志信息JNB RI, $CLR RIMOV A, SBUFCJNE A, 02H, ERR ;默認(rèn)為0 組 ;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五月五端午節(jié)慰問(wèn)信
- 中國(guó)各地酒類(lèi)廣告語(yǔ)
- 個(gè)人購(gòu)房收入證明范本(7篇)
- 個(gè)人工資收入證明范本(6篇)
- 2025云南省面向中央民族大學(xué)選調(diào)畢業(yè)生筆試備考題庫(kù)及答案解析
- 永康市三校聯(lián)考九年級(jí)上學(xué)期語(yǔ)文期中考試卷
- 秋瑾中學(xué)九年級(jí)上學(xué)期語(yǔ)文10月獨(dú)立作業(yè)試卷
- 敦頤學(xué)校九年級(jí)上學(xué)期語(yǔ)文第一次月考試卷
- 四年級(jí)數(shù)學(xué)(小數(shù)加減運(yùn)算)計(jì)算題專(zhuān)項(xiàng)練習(xí)與答案
- 美容院合伙人合同協(xié)議書(shū)范本(2篇)
- 鑄牢中華民族共同體意識(shí)學(xué)習(xí)PPT
- 酒店工程管理的意義
- 高血壓(英文版)-課件
- 冷庫(kù)安裝與維修4-1(冷庫(kù)的安全防護(hù))課件
- 螺紋一螺紋基礎(chǔ)知識(shí)
- 實(shí)驗(yàn)室生物安全組織框架
- DB42T169-2022巖土工程勘察規(guī)程
- 房顫合并心力衰竭的治療課件
- 《建筑制圖基礎(chǔ)實(shí)訓(xùn)》畫(huà)圖大作業(yè)布置
- DB4101-T 25.2-2021物業(yè)服務(wù)規(guī)范 第2部分:住宅-(高清現(xiàn)行)
- 我們的家園-公開(kāi)課獲獎(jiǎng)?wù)n件
評(píng)論
0/150
提交評(píng)論