版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、普通高等教育“十一五”國家級規(guī)劃教材單片微型計(jì)算機(jī)原理與接口技術(shù)(第二版) 編著科學(xué)出版社北京片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用第七章80C51單片微機(jī)的串行口原理及應(yīng)用 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用通信:計(jì)算機(jī)與外界的數(shù)據(jù)傳送。 單臺儀器儀表或控制器往往會帶有不止一個的單片微機(jī), 多個智能儀器儀表或控制器在單片微機(jī)應(yīng)用系統(tǒng)中又常常會構(gòu)成一個分布式采集、控制系統(tǒng),上層由PC進(jìn)行集中管理等。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用7.1 串行數(shù)據(jù)通信概述 傳送方式 并行傳送方式在數(shù)據(jù)傳輸時,一個
2、數(shù)據(jù)編碼字符的所有各位都同時發(fā)送、并排傳輸,又同時被接收。并行傳送方式要求物理信道為并行內(nèi)總線或者并行外總線。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 串行傳送方式在數(shù)據(jù)傳輸時,一個數(shù)據(jù)編碼字符的所有各位按一定順序,一位接著一位在信道中被發(fā)送和接收。串行傳送方式的物理信道為串行總線。 計(jì)算機(jī)與外界的數(shù)據(jù)傳送大多是串行的,其傳送距離可以從幾米直到幾千公里。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 單工方式、半雙工方式、全雙工方式 單工方式信號(不包括聯(lián)絡(luò)信號) 在信道中只能沿一個方向傳送。 半雙工方式通信的雙方均具有發(fā)送和接收信息的能力,
3、信道也具有雙向傳輸性能,通信的任何一方在指定的時刻,只能沿某一個方向傳送信息。 全雙工方式 若信號在通信雙方之間沿兩個方向同時傳送,任何一方在同一時刻既能發(fā)送又能接收信息。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 異步傳輸和同步傳輸在數(shù)據(jù)通信中,要保證發(fā)送的信號在接收端能被正確地接收,必須采用同步技術(shù)。常用的同步技術(shù)有兩種方式,一種稱為異步傳輸也稱起止同步方式,另一種稱為同步傳輸也稱同步字符同步方式。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 異步傳輸以字符為單位進(jìn)行數(shù)據(jù)傳輸,每個字符都用起始位、停止位包裝起來,在字符間允許有長短不一的間
4、隙。 同步傳輸對數(shù)據(jù)塊進(jìn)行傳輸,一個數(shù)據(jù)塊中包含著許多連續(xù)的字符,在字符之間沒有空閑。同步傳輸可以方便地實(shí)現(xiàn)某一通信協(xié)議要求的幀格式。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 波特率(BAUD RATE)串行通信的傳送速率用于說明數(shù)據(jù)傳送的快慢,“波特率”表示每秒種傳輸離散信號事件的個數(shù),或每秒信號電平的變化次數(shù),單位為band(波特)?!氨忍芈省笔侵该棵雮魉投M(jìn)制數(shù)據(jù)的位數(shù),單位為比特/秒,記作bits/s或b/s或bps。在二進(jìn)制的情況下,波特率與比特率數(shù)值相等。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用串行通信常用的標(biāo)準(zhǔn)波特率在RS
5、-232C標(biāo)準(zhǔn)中已有規(guī)定,如波特率為600、1200、2400、4800、9600、19200等等。假若數(shù)據(jù)傳送速率為120字符/s,而每一個字符幀已規(guī)定為10個數(shù)據(jù)位,則傳輸速率為120101200bit/s,即波特率為1200,每一位數(shù)據(jù)傳送的時間為波特率的倒數(shù): T112000.833ms片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 7.2 80C51串行口及控制7.2.1 80C51串行口結(jié)構(gòu) 串行數(shù)據(jù)通信主要有兩個技術(shù)問題,一個是數(shù)據(jù)傳送,另一個是數(shù)據(jù)轉(zhuǎn)換。數(shù)據(jù)傳送主要解決傳送中的標(biāo)準(zhǔn)、數(shù)據(jù)幀格式及工作方式等。數(shù)據(jù)轉(zhuǎn)換要解決把數(shù)據(jù)進(jìn)行串、并行的轉(zhuǎn)換,這種轉(zhuǎn)換通
6、常由通用異步接收發(fā)送器(UART) 電路來完成。數(shù)據(jù)發(fā)送端,要把并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù),而在數(shù)據(jù)接收端,要把串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)。80C51中已集成有UART。8XC552中就增加了具有I2C總線功能的串行口。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用80C51中的串行口是一個全雙工的異步串行通信接口,它可作UART(通用異步接收和發(fā)送器)用,也可作同步移位寄存器用??趦?nèi)的接收緩沖器和發(fā)送緩沖器在物理上是隔離的??梢酝ㄟ^訪問特殊功能寄存器SBUF,來訪問接收緩沖器和發(fā)送緩沖器。接收緩沖器具有雙緩沖的功能,即它在接收第一個數(shù)據(jù)字節(jié)后,能接收笫二個數(shù)據(jù)字節(jié)。但是在接收完
7、第二個字節(jié)后,若笫一個數(shù)據(jù)字節(jié)還未取走,那么該數(shù)據(jù)字節(jié)將丟失。80C51串行口基本結(jié)構(gòu)如圖71所示。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 波特率發(fā)生器由T1、T2 及內(nèi)部的一些控制開關(guān)和分頻器所組成。它提供串行口的時鐘信號為 TXCLOCK和 RXCLOCK。 控制波特率發(fā)生器的特殊功能寄存器:TMOD、TCON、T2CON、PCON、TL1、TH1、TL2、TH2等。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 串行口內(nèi)部 串行數(shù)據(jù)緩沖寄存器SBUF有接收緩沖器SBUF和發(fā)送緩沖器SBUF,占用同一個地址(99H) 。 串行口控制寄
8、存器SCON片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 串行數(shù)據(jù)輸入輸出引腳接收方式下,串行數(shù)據(jù)從RXD引腳輸入,串行口內(nèi)部在接收緩沖器之前還有移位寄存器,從而構(gòu)成了串行接收的雙緩沖結(jié)構(gòu),可以避免在數(shù)據(jù)接收過程中出現(xiàn)幀重疊錯誤。在發(fā)送方式下,串行數(shù)據(jù)通過TXD引腳輸出。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 串行口控制邏輯接受來自波特率發(fā)生器的時鐘信號TXCLOCK和RXCLOCK;控制內(nèi)部的輸入移位寄存器將外部的串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù);控制內(nèi)部的輸出移位寄存器將內(nèi)部的并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)輸出;控制串行中斷(RI和TI)。 片微型計(jì)算機(jī)
9、原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 7.2.2 80C51串行口控制 串行口狀態(tài)控制寄存器 SCON控制串行通信的方式選擇、接收,指示串行口的中斷狀態(tài)。位地址 9FH 9EH9DH9CH 9BH9AH 99H 98H位功能SM0SM1SM2REN TB8 RB8 TI RI片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 SM0、SM1 串行口工作方式選擇位。其功能見表71。SM2 允許方式2、3中的多處理機(jī)通信位。方式0時,SM20。方式1時,若SM2l,只有接收到有效的停止位,接收中斷RI才置1。方式2和方式3時,SM21,則只有當(dāng)接收到的第9位數(shù)
10、據(jù)RB8為1時,才將接收到的前8位數(shù)據(jù)送入緩沖器SBUF中,并把RI置1、同時向CPU申請中斷;如果接收到的第9位數(shù)據(jù)RB8為0,RI置0,將接收到的前8位數(shù)據(jù)丟棄。SM20時,則不論接收到的笫9位數(shù)據(jù)是0或1,都將前8位數(shù)據(jù)裝入SBUF中,并申請中斷。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用REN 允許串行接收位。 REN1時,允許串行接收;REN0時,禁止串行接收。TB8 方式2和方式3中要發(fā)送的第9位數(shù)據(jù)。在通信協(xié)議中,常規(guī)定TB8作為奇偶校驗(yàn)位。在80C51多機(jī)通信中,TB8=0用來表示數(shù)據(jù)幀;TB8=1表示是地址幀。RB8 方式2和方式3中接收到的第9位
11、數(shù)據(jù)。方式1中接收到的是停止位。方式0中不使用這一位。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用TI 發(fā)送中斷標(biāo)志位。方式 0中,在發(fā)送第 8位末尾置位;在其它方式時,在發(fā)送停止位開始時設(shè)置。由硬件置位,用軟件清除。RI 接收中斷標(biāo)志位。方式 0中,在接收第 8位末尾置位;在其它方式時,在接收停止位中間設(shè)置。由硬件置位,用軟件清除。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 電源控制及波特率選擇寄存器 PCON最高位SMOD與串行口控制有關(guān),其它位與低功耗工作方式有關(guān)。 D7 D6 D5 D4 D3 D2 D1 D0SMOD WLF GF1
12、 GF0 PD IDLSMOD 串行通信波特率系數(shù)控制位。當(dāng)SMOD1時,使波特率加倍。復(fù)位后,SMOD0。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 串行數(shù)據(jù)寄存器SBUF包含在物理上是隔離的兩個8位寄存器:發(fā)送數(shù)據(jù)寄存器和接收數(shù)據(jù)寄存器,它們共用一個地址99H。 D7 D6 D5 D4 D3 D2 D1 D0 SD7 SD6 SD5 SD4 SD3 SD2 SD1 SD0讀SBUF(MOVA,SBUF),則訪問接收數(shù)據(jù)寄存器; 寫SBUF(MOV SBUF,A),則訪問發(fā)送數(shù)據(jù)寄存器。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用7.3
13、串行口的工作方式 在串行口控制寄存器SCON中,SM0和SM1位決定串行口的工作方式。80C51串行口共有4種工作方式。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 7.3.1 串行口方式0 同步移位寄存器方式 SM00、SM10。同步移位寄器方式。數(shù)據(jù)傳輸波特率固定為(112)fosc。由RXD引腳輸入或輸出數(shù)據(jù),由TXD引腳輸出同步移位時鐘。接收發(fā)送的是8位數(shù)據(jù),傳輸時低位在前。幀格式如圖72所示。 方式0時工作原理圖的如圖73所示。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用發(fā)送當(dāng)執(zhí)行任何一條寫SBUF的指令(MOV SBUF,A)時,
14、就啟動串行數(shù)據(jù)的發(fā)送。在執(zhí)行寫入SBUF的指令時,選通內(nèi)部D觸發(fā)器置1 ,構(gòu)成發(fā)送移位寄存器的第9位,并使發(fā)送控制器開始發(fā)送。當(dāng)發(fā)送脈沖有效之后,移位寄存器的內(nèi)容由RXD引腳串行移位輸出;移位脈沖由TXD引腳輸出。在發(fā)送有效的期間,每個機(jī)器周期,發(fā)送移位寄存器右移一位,在其左邊補(bǔ)0。當(dāng)數(shù)據(jù)最高位移到移位寄存器的輸出位時,原寫入第9位的 l正好移到最高位的左邊一位,由此向左的所有位均為 0,零檢測器通知發(fā)送控制器要進(jìn)行最后一次移位,并撤銷發(fā)送有效,同時使發(fā)送中斷標(biāo)志TI置位,若CPU響應(yīng)中斷,則執(zhí)行從0023H開始的串行口發(fā)送中斷服務(wù)程序。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串
15、行口原理及應(yīng)用接收當(dāng)REN1 且RI位清除時,就會啟動一次接收過程。在下一機(jī)器周期的S6P2時刻,接收控制器將1111 1110寫入接收移位寄存器,并在下一時鐘周期S1P1使接收控制器的接收有效,打開“與非門” ,同時由TXD引腳輸出移位脈沖。在移位脈沖控制下,接收移位寄存器的內(nèi)容每一個機(jī)器周期左移一位,同時由RXD引腳接收一位輸入信號。每當(dāng)接收移位寄存器左移一位,原寫入的1111 1110也左移一位。當(dāng)最右邊的0移到最左邊時,標(biāo)志著接收控制器要進(jìn)行最后一次移位。在最后一次移位即將結(jié)束時,接收移位寄存器的內(nèi)容送入接收數(shù)據(jù)緩沖寄存器SBUF,然后在啟動接收的第10個機(jī)器周期的S1P1時,清除接收
16、信號,置位SCON中的RI,發(fā)出中斷申請。完成一幀數(shù)據(jù)的接收過程。若CPU響應(yīng)中斷,則執(zhí)行從0023H開始的串行口接收中斷服務(wù)程序片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 7.3.2 串行口方式18位UART SM00、SM1l。 數(shù)據(jù)傳輸波特率由T1和T2的溢出決定,可用程序設(shè)定。當(dāng)T2CON寄存器中的RCLK和TCLK置位時,采用T2作為串行口接收和發(fā)送的波特率發(fā)生器。而當(dāng)RCLK和TCLK都為零時,采用T1作為串行口接收和發(fā)送的波特率發(fā)生器。由 TXD引腳發(fā)送數(shù)據(jù)。由 RXD引腳接收數(shù)據(jù)。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用發(fā)
17、送或接收一幀信息為10位:1位起始位(0)、8位數(shù)據(jù)位(低位在前)和l位停止位(1)。幀格式如圖74所示。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用發(fā)送:方式1時,發(fā)送的工作原理圖如圖75所示。當(dāng)執(zhí)行任何一條寫 SBUF的指令時,就啟動串行數(shù)據(jù)的發(fā)送。在執(zhí)行寫入SBUF的指令時,也將1寫入發(fā)送移位寄存器的第9位(由SBUF和1個獨(dú)立的D觸發(fā)器構(gòu)成),并通知發(fā)送控制器有發(fā)送請求。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用開始發(fā)送后的一個位周期,發(fā)送信號有效,開始將起始位送TXD引腳。一位時間后,數(shù)據(jù)信號有效。發(fā)送移位寄存器將數(shù)據(jù)由低位到高位順
18、序輸出至TXD引腳。一位時間后,第一個移位脈沖出現(xiàn)將最低數(shù)據(jù)位從右邊移出,同時0從左邊擠入。當(dāng)最高數(shù)據(jù)位移至發(fā)送移位寄存器的出端時,先前裝入的第9位的l,正好在最高數(shù)據(jù)位的左邊,而它的右邊全部為0。這種狀態(tài)被零檢測器檢測到,在第10個位周期(16分頻計(jì)數(shù)器回0時),發(fā)送控制器進(jìn)行最后一次移位,清除發(fā)送信號,同時使SCON寄存器中TI置位,完成了一幀數(shù)據(jù)發(fā)送的全過程。若CPU響應(yīng)中斷,則執(zhí)行從0023H開始的串行口發(fā)送中斷服務(wù)程序。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用接收方式1時,接收的工作原理圖如圖76所示。當(dāng)REN1且清除RI后,若在RXD引腳上檢測到一個1到
19、0的跳變,立即啟動一次接收。同時,復(fù)位16分頻計(jì)數(shù)器,使輸入位的邊沿與時鐘對齊,并將1FFH(即9個l)寫入接收移位寄存器。接收控制器以波特率的16倍的速率繼續(xù)對RXD引腳進(jìn)行檢測,計(jì)數(shù)器的16個狀態(tài)把每一位的時間分為16份,對每一位時間的第7、8、9個計(jì)數(shù)狀態(tài),位檢測器對RXD端的值采樣,這3個狀態(tài)理論上對應(yīng)于每一位的中央值。若發(fā)送端與接收端的波特率有差異,就會發(fā)生偏移,只要這種差異在允許范圍內(nèi),就不至于發(fā)生錯位或漏碼。在上述3個狀態(tài)下,取得3個采樣值,其中至少有兩個值是一致的,即采用3取2的多數(shù)表決法,可抑制噪聲。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用如果在
20、第1個時鐘周期中接收到的不是0,說明它不是一幀數(shù)據(jù)的起始位,則復(fù)位接收電路,繼續(xù)檢測RXD引腳上l到0的跳變。如果接收到的是起始位,就將其移入接收移位寄存器,然后接收該幀的其它位。接收到的位從右邊移入,原來寫入的1,從左邊移出,當(dāng)起始位移到最左邊時,接收控制器將控制進(jìn)行最后一次移位,把接收到的9位數(shù)據(jù)送入接收數(shù)據(jù)緩沖器SBUF和RB8,而且置位RI。在進(jìn)行最后一次移位時,能將數(shù)據(jù)送入接收數(shù)據(jù)緩沖器SBUF和RB8,而且置位RI的條件是: RI0 即上一幀數(shù)據(jù)接收完成時發(fā)出的中斷請求已被響應(yīng),SBUF中數(shù)據(jù)已被取走。 SM20或接收到的停止位1。若以上兩個條件中有一個不滿足,將不可恢復(fù)地丟失接收
21、到的這一幀信息。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 7.3.3 串行口方式2和3 9位UART SM01、SM10,選擇方式2;SM11、SM01,選擇方式3。由TXD引腳發(fā)送數(shù)據(jù)。由RXD引腳接收數(shù)據(jù)。發(fā)送或接收一幀信息為11位:1位起始位(0)、8位數(shù)據(jù)位(低位在前) 、1位可編程位和1位停止位(l)。發(fā)送時可編程位TB8可設(shè)置為1或0,接收時可編程位進(jìn)入SCON寄存器的RB8位。方式2的波特率是固定的,為振蕩器頻率的1/32或1/64。.方式3的波特率則由T1和T2的溢出決定,可用程序設(shè)定。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原
22、理及應(yīng)用幀格式如如圖 7-7所示。方式 2時的工作原理圖如圖 7-8所示。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用在進(jìn)行最后一次移位時,能將數(shù)據(jù)送入接收數(shù)據(jù)緩沖器SBUF和RB8,而且置位RI的條件是:RI0;SM20或接收到的停止位1。 若以上兩個條件中有一個不滿足,將不可恢復(fù)地丟失接收到的這一幀信息。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 7.4 多處理機(jī)通信方式 SM2:多處理機(jī)通信位。當(dāng)串行口以方式2或方式3接收時,若SM21,只有當(dāng)接收到的第9位數(shù)據(jù)RB8為1時,才將數(shù)據(jù)送入接收緩沖器SBUF,并使RI置1,申請中斷,否則數(shù)
23、據(jù)將丟失;若SM20,則無論第9位數(shù)據(jù)RB8是1還是0,都能將數(shù)據(jù)裝入SBUF,并且發(fā)中斷。利用這一特性,便可實(shí)現(xiàn)主機(jī)與多個從機(jī)之間的串行通信。圖79為多機(jī)通信連線示意圖,系統(tǒng)中左邊的80C51為主機(jī),其余的為1n號從機(jī),并保證每臺從機(jī)在系統(tǒng)中的編號是惟一的。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用系統(tǒng)初始化時,將所有從機(jī)中的SM2位均設(shè)置為1,并處于允許串行口中斷接收狀態(tài)。主機(jī)欲與某從機(jī)通信,先向所有從機(jī)發(fā)出所選從機(jī)的地址,從機(jī)地址符合后,接著才發(fā)送命令或數(shù)據(jù)。 在主機(jī)發(fā)地址時,置第9位數(shù)據(jù)(RB8)為1,表示主機(jī)發(fā)送的是地址幀;當(dāng)主機(jī)呼叫某從機(jī)聯(lián)絡(luò)正確后,主機(jī)發(fā)
24、送命令或數(shù)據(jù)幀時,將第9位數(shù)據(jù)(RB8)清0。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用各從機(jī)由于SM2置1,將響應(yīng)主機(jī)發(fā)來的第9位數(shù)據(jù)(RB8)為1的地址信息。從機(jī)響應(yīng)中斷后,有兩種不同的操作: 若從機(jī)的地址與主機(jī)點(diǎn)名的地址不相同,則該從機(jī)將繼續(xù)維持SM2為l,從而拒絕接收主機(jī)后面發(fā)來的命令或數(shù)據(jù)信息,等待主機(jī)的下一次點(diǎn)名。若從機(jī)的地址與主機(jī)點(diǎn)名的地址相同,該從機(jī)將本機(jī)的SM2清0,繼續(xù)接收主機(jī)發(fā)來的命令或數(shù)據(jù),響應(yīng)中斷。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用7.5串行口的應(yīng)用 7.5.1串行口的波特率發(fā)生器及波特率計(jì)算 串行口的波
25、特率發(fā)生器如圖7-10所示。方式0時的波特率由振蕩器的頻率(fosc)所確定:波特率為fosc/12。方式2時的波特率由振蕩器的頻率(fosc)和SMOD位確定: 當(dāng)SMOD位1時,波特率fosc/32;當(dāng)SMOD0時,波特率fosc/64。 方式1和3時的波特率由定時器T1和T2的溢出率和SMOD確定。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用(1)用定時器T1(0)產(chǎn)生波特率 定時器T1工作于方式0:T1為13位計(jì)數(shù)器。 式中:TC13位計(jì)數(shù)器初值; X中斷服務(wù)程序的機(jī)器周期數(shù),在中斷服務(wù)程序中重新對定時器置數(shù)。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)
26、的串行口原理及應(yīng)用定時器T1工作于方式1:T1為16位的計(jì)數(shù)器。式中:TC16位計(jì)數(shù)器初值; X中斷服務(wù)程序的機(jī)器周期數(shù),在中斷服務(wù)程序中重新對定時器置數(shù)。定時器Tl工作于方式2:T1為8位可重裝的方式,用TL1計(jì)數(shù),用TH1裝初值。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 7.5.2 方式0的編程和應(yīng)用 例: 使用74LS164的并行輸出端接8只發(fā)光二極管,利用它的串入并出功能,把發(fā)光二極管從左向右依次點(diǎn)亮,并不斷循環(huán)之。發(fā)光二極管擴(kuò)展連接路如圖7-11所示。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用MOVSCON,#00H;設(shè)串行口
27、為方式0,CLRES;禁止串行口中斷MOVA,#80H;先顯示最左邊發(fā)光二極管LED:MOVSBUF,A;串行輸出JNBTI,$;輸出等待CLRTI ;軟件清中斷標(biāo)志ACALLDELAY;輪顯間隔RRA;發(fā)光右移AJMPLED;循環(huán)DELAY:;延時子程序RET片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用7.5.3 方式1的編程和應(yīng)用 例:試編寫雙機(jī)通信程序。甲、乙雙機(jī)均為串行口方式1,并以定時器T1的方式2為波特率發(fā)生器,波特率為2400。波特率的計(jì)算:這里使用6MHz晶振,以T1的方式2制定波特率。計(jì)算定時器T1的計(jì)數(shù)初值:波特率= 2smod fosc 132 1
28、2 28 TH1TH1=28(2SMODfosc)(波特率3212) =256(206106)(24003212) =2566.5=249.5=FAH 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 甲機(jī)發(fā)送:將以片內(nèi)RAM的78H及77H的內(nèi)容為首地址、以76H及75H的內(nèi)容減1為末地址的數(shù)據(jù)塊內(nèi)容,通過串行口傳至乙機(jī)。例:(78H) 20H;首地址高位(77H)00H(76H)20H;末地址高位 (75H)20H 即要求程序?qū)⑵釸AM的2000H20lFH中的內(nèi)容輸出到串行口。對數(shù)據(jù)塊首、末地址的傳送以查詢方式進(jìn)行,而數(shù)據(jù)的傳送以中斷方式進(jìn)行。 片微型計(jì)算機(jī)原理與接
29、口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用ORG0000HSJMPTRANSORG 0023H ;串行口中斷入口 AJMP SINTORG0030HTRANS:MOV TMOD,20H;置T1為定時器方式2 MOVTL1,0FAH ;置T1定時常數(shù)(波特率為;2400) MOV TH1,0FAH SETB EA ;允許中斷 CLR ES ;關(guān)串行口中斷片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 MOVPCON,#00H;波特率不倍增CLR TI ;清發(fā)送中斷MOV SCON,40H ;置串行口方式1MOV SBUF,78H ;輸出首地址WAIT1:JNB TI,
30、WAITI ;查詢等待發(fā)送結(jié)束 CLR TIMOVSBUF,77HWAIT2:JNB TI,WAIT2 ;查詢等待發(fā)送結(jié)束 CLR TI 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用MOV SBUF,76H ;輸出末地址WAIT3:JNB TI,WAIT3 CLR TIMOV SBUF,75HWAIT4:JNB TI,WAIT4 CLR TISETB ES ;允許串行口中斷片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用MOV DPH,78H;輸出數(shù)據(jù)塊中第1個數(shù)據(jù) MOV DPL,77H MOVX A,DPTR CLR TI MOV SBUF,A
31、SJMP$;中斷等待片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用ORG0200H;串行口中斷服務(wù)程序SINT:PUSH DPL ;保護(hù)現(xiàn)場 PUSH DPH PUSH AINC77H;地址加1MOVA,77HJNZJP1INC78H 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用JP1:MOV A,78H CJNE A,76H,END1 ;判數(shù)據(jù)傳送是否結(jié)束,未;結(jié)束則轉(zhuǎn)END1MOV A,77HCJNE A,75H,END1 CLR ES ;結(jié)束,關(guān)串行口中斷片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用ESCOM:POP
32、A;恢復(fù)現(xiàn)場 POP DPH POP DPL RETIEND1:MOV DPH,78H;數(shù)據(jù)輸出未結(jié)束,則繼續(xù)發(fā)送 MOV DPL,77H MOVX A,DPTR CLR TI MOV SBUF,A RETI 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用 乙機(jī)接收乙機(jī)通過RXD引腳接收甲機(jī)發(fā)來的數(shù)據(jù),接收波特率與甲機(jī)一樣。接收的第1、2字節(jié)是數(shù)據(jù)塊的首地址,第3、4字節(jié)是數(shù)據(jù)塊的末地址減1,第5字節(jié)開始是數(shù)據(jù),接收到的數(shù)據(jù)依次存入數(shù)據(jù)塊首地址開始的存儲器中。 ORG0000HSJMPRECEIVE;乙機(jī)接收ORG0023HAJMPRSINT;串行口中斷入口片微型計(jì)算機(jī)原
33、理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用ORG0030HRECEIVE:MOV TMOD,#20H;設(shè)T1為定時器方式2MOVTL1,0FAH ;置T1定時常數(shù) MOV TH1,0FAH SETB EA ;允許中斷 SETB ES ;允許串行口中斷CLR TI ;清發(fā)送中斷 MOV SCON,50H ;置串行口方式1、接收CLR 20H ;置地址標(biāo)志(20H0,為;地址;20H1,為數(shù)據(jù)) 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用MOV 70H,78H SJMP$;中斷等待 ORG0200HRSINT:PUSH DPL ;保護(hù)現(xiàn)場 PUSH DPH P
34、USH ACC MOV A,R0 PUSH ACC JB 20H,DATA ;判別接收的是地址還是數(shù)據(jù),;是數(shù)據(jù),轉(zhuǎn)移 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用MOV R0,70H ;是地址,分別送入78H75H中去 MOV A,SBUF MOV R0,ADEC 70HCLR RI MOV A, 74H CJNE A,70H,RETURN ;是地址,轉(zhuǎn)結(jié)束 SETB 20H;地址已接收完,置接收數(shù)據(jù)標(biāo)志 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用RETURN:POP ACC ;恢復(fù)現(xiàn)場 MOV R0,A POP ACC POP DPH PO
35、P DPLRETIDATA:MOV DPH,78H;接收數(shù)據(jù) MOV DPL,77H 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用MOV A,SBUF MOVX DPTR,A ;將數(shù)據(jù)送入片外RAM CLR RI INC 77H ;地址加 1 MOV A,77H JNZ DATA1 INC 78H 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用DATA1MOV A,76H CJNZ A,78H,RETURN MOVA,75H CJNE A,77H,RETURN CLR ES ;結(jié)束,關(guān)串行口中斷 AJMP RETURN 片微型計(jì)算機(jī)原理與接口技術(shù)第
36、二版80C51單片微機(jī)的串行口原理及應(yīng)用ASCII碼由7位組成,其最高位可作為奇偶校驗(yàn)位用。數(shù)據(jù)塊通過串行口發(fā)送和接收,采用8位異步通信,波特率為1200,已知fosc11.0592MHz。從內(nèi)部RAM單元20H3FH中取出ASCII碼加上奇偶校驗(yàn)位之后發(fā)出。設(shè)串行口為方式1,T1為方式2作為串行口的波特率發(fā)生器。SMOD0TH1232E8H 例 通過串行口發(fā)送帶奇偶校驗(yàn)位的數(shù)據(jù)塊片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用ORG0000HMOVTMOD,#20H;設(shè)T1為方式2MOVTL1,#0E8H;T1定時常數(shù)MOVTH1,#0E8HMOVSCON,#010000
37、00B;設(shè)串行口為方式1MOVR0,#20H;設(shè)發(fā)送數(shù)據(jù)區(qū)首址MOVR7,#32;發(fā)送32個ASCII碼數(shù)據(jù)片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用LOOP:MOV A,R0;取ASCII碼數(shù)據(jù)ACALLSP-OUT;調(diào)用串行口發(fā)送子程序INCR0;未發(fā)送完,則繼續(xù)DJNZR7,LOOP片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用串行口發(fā)送子程序SP-OUT:MOV C,P;設(shè)奇校驗(yàn)位CPLCMOVACC.7,CMOVSBUF,A;帶校驗(yàn)位發(fā)送JNBTI,$;發(fā)送等待CLRTIRET片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原
38、理及應(yīng)用把接收到的32個字節(jié)數(shù)據(jù)存放到20H3FH中,波特率為1200,若奇校驗(yàn)出錯,將進(jìn)位標(biāo)志C置1 。ORG0000HMOVTMOD,#20H;設(shè)T1為定時器方式2 MOVTL1,#0E8H;設(shè)T1時間常數(shù)MOVTH1,#0E8HMOVR0,#20H;接收緩沖區(qū)首址MOVR7,#32;接收字節(jié)計(jì)數(shù)器 例 通過串行口接收帶奇偶校驗(yàn)位的數(shù)據(jù)塊片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用LOOP:ACALLSP-IN;調(diào)用帶奇校驗(yàn)的串行口接; 收子程序 JCERROR;校驗(yàn)錯,轉(zhuǎn)出錯處理MOVR0,A;存入INCR0DJNZR7,LOOP;未接收完,則繼續(xù)ERROR:;校
39、驗(yàn)錯,處理片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用SP-IN:MOV SCON,#01010000B;設(shè)串行口為方式; 1,啟動接收J(rèn)NBRI,$CLRRIMOV A,SBUF;接收一個字節(jié)MOV C,P;檢查奇校驗(yàn)位,若出錯,C=1CPLCANLA,#7FH;去掉校驗(yàn)位后的ASCII碼數(shù)據(jù)RET片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用7.5.4 方式2和3的編程和應(yīng)用 方式2接收發(fā)送的一幀信息是11位:第0位是起始位(0);第18位是數(shù)據(jù)位;第9位是程控位,可由用戶置TB8決定;第10位是停止位。 方式2的波特率為:波特率振蕩器頻率/n
40、其中:當(dāng) SMOD0時,n64 ; 當(dāng) SMODl時,n32。 方式2和方式3基本一樣,僅波特率設(shè)置不同。片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用工作方式2發(fā)送的一幀信息為11位:1位起始位,8位數(shù)據(jù)位,1位可編程為1或0的第9位(可用作奇偶校驗(yàn)位或數(shù)據(jù)地址標(biāo)志位)和1位停止位。奇偶校驗(yàn)位的發(fā)送是在將發(fā)送數(shù)據(jù)寫入發(fā)送緩沖器SBUF之前,先將奇偶標(biāo)志寫入SCON的TB8位。例: 試編寫串行接口以工作方式2發(fā)送數(shù)據(jù)的中斷服務(wù)程序片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用ORG0023HAJMPSPINTSPINT:CLR EA;關(guān)中斷PUSH
41、PSW ;保護(hù)現(xiàn)場PUSH ACC SETB EA ;開中斷 SETB PSW.4 ;切換寄存器工作組 CLR TI ;清除發(fā)送中斷請求標(biāo)志 MOV A,R0 ;取數(shù)據(jù),置奇偶標(biāo)志位 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用MOV C,P ;奇偶標(biāo)志位P送TB8 MOV TB8,CMOV SBUF,A;數(shù)據(jù)寫入發(fā)送緩沖器,啟動發(fā)送 INC R0;數(shù)據(jù)地址指針加1 CLR 0AFH;恢復(fù)現(xiàn)場 POP ACC POP PSW SETB 0AFH CLR PSW .4 ;切換寄存器工作組 RETI ;中斷返回 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理
42、及應(yīng)用例: 方式3和方式1的不同在于接收發(fā)送的信息位數(shù)不同,而與方式2的不同僅在于波特率設(shè)置不同。 這里以雙機(jī)通信為例。串行口以方式3進(jìn)行接收和發(fā)送,以T1為波特率發(fā)生器,選擇定時器方式2。 程序首先發(fā)送數(shù)據(jù)存放地址,而地址的高位存放在78H中,地址的低位存放在77H中;然后發(fā)送00H,01H,02H,F(xiàn)EH,共255個數(shù)據(jù)以后結(jié)束。 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用甲機(jī)的發(fā)送程序:ORG0023HCLR TI RETI TRANSFER:MOV TMOD,20H ;置T1為定時方式 2 MOV TL1, 0F0H ;置T1定時常數(shù)MOV TH1, 0F0H
43、 SETB EA ;允許中斷 CLR ES ;禁止串行口中斷 CLR ET1 ;禁止定時器T1中斷 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用MOV SCON,0E0H ;置串行口方式 3 SETB TB8 ;表示發(fā)送的是地址 MOV SBUF,78H ;發(fā)送地址 JNB TI, CLR TI MOV SBUF,77HJNBTI,$CLRTI MOV IE,90H ;允許串行口中斷 CLR SM2 ;以后發(fā)送的是數(shù)據(jù) 片微型計(jì)算機(jī)原理與接口技術(shù)第二版80C51單片微機(jī)的串行口原理及應(yīng)用MOV A,00H;發(fā)送數(shù)據(jù) LOOP:MOVSBUF,AINCAJNBTI,$CLRTICJNZ A,0FFH,LOOP;判是否結(jié)束 CLR ES ;禁止串行口中斷 CLR EA ;關(guān)中斷HERE:AJMP
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《HR職業(yè)心態(tài)和素養(yǎng)》課件
- 《螞蟻和西瓜》繪本故事原版未修改
- 《藥品開發(fā)與上量》課件
- 單位管理制度收錄大全【職員管理篇】
- 北交所研究月報(bào):北交所首例回購增持專項(xiàng)貸款落地
- 財(cái)務(wù)和會計(jì)基礎(chǔ)-理財(cái)規(guī)劃師課件
- 研究院0805J1微尺度科學(xué)與技術(shù)報(bào)錄數(shù)據(jù)分析報(bào)告初試+復(fù)試+1
- 2025年煤炭行業(yè)紅利當(dāng)先成長其后
- 連除應(yīng)用題課件
- 潮玩行業(yè)研究報(bào)告:IP起萬物生
- 《生物制品技術(shù)》課程標(biāo)準(zhǔn)
- 腎陰虛中醫(yī)養(yǎng)生改善腎陰虛帶來的不適
- 《人工智能課件-基礎(chǔ)入門》
- 骨科手術(shù)的術(shù)中應(yīng)急處理與糾正
- 漁業(yè)安全與事故預(yù)防
- 山東省濟(jì)南市2022年中考英語情景運(yùn)用練習(xí)
- GB/T 16462.1-2023數(shù)控車床和車削中心檢驗(yàn)條件第1部分:臥式機(jī)床幾何精度檢驗(yàn)
- 截止閥使用說明書
- 廣東省深圳市南山區(qū)2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(含解析)
- 建筑施工春節(jié)安全生產(chǎn)培訓(xùn)嚴(yán)格操作規(guī)范守護(hù)施工一線
- 品質(zhì)體系規(guī)劃
評論
0/150
提交評論