




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
單片機(jī)應(yīng)用系統(tǒng)設(shè)計單片機(jī)應(yīng)用系統(tǒng)設(shè)計7.1計算機(jī)串行通信基礎(chǔ)
隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計算機(jī)的通信功能愈來愈顯得重要。計算機(jī)通信是指計算機(jī)與外部設(shè)備或計算機(jī)與計算機(jī)之間的信息交換。通信有并行通信和串行通信兩種方式。在多微機(jī)系統(tǒng)以及現(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式。7.1計算機(jī)串行通信基礎(chǔ)隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計算串行接口
第一節(jié)計算機(jī)通訊基礎(chǔ)第二節(jié)8051單片機(jī)串行接口
第三節(jié)串行接口的工作方式
第四節(jié)串口初始化編程
第五節(jié)
RS-232接口
第六節(jié)
串行接口的應(yīng)用串行接口第一節(jié)計算機(jī)通訊基礎(chǔ)本章要點(diǎn)
串行通信的基本概念。
8051單片機(jī)串行接口的結(jié)構(gòu)與工作方式,與PC的通信以及通信程序的編制。遠(yuǎn)程通信概念,RS-232接口。本章要點(diǎn)串行通信的基本概念。7.1計算機(jī)串行通信基礎(chǔ)
隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計算機(jī)的通信功能愈來愈顯得重要。計算機(jī)通信是指計算機(jī)與外部設(shè)備或計算機(jī)與計算機(jī)之間的信息交換。通信有并行通信和串行通信兩種方式。在多微機(jī)系統(tǒng)以及現(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式。7.1計算機(jī)串行通信基礎(chǔ)隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計算計算機(jī)通信是將計算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計算機(jī)與外部設(shè)備或計算機(jī)與計算機(jī)之間的信息交換。可以分為兩大類:并行通信與串行通信。并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時進(jìn)行傳送。并行通信控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難。
計算機(jī)通信是將計算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計算機(jī)與外部串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。串行通信的特點(diǎn):傳輸線少,長距離傳送時成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。
串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳7.1.1串行通信的基本概念
串行異步通信——不傳送時鐘信號串行同步通信——傳送時鐘信號自同步:發(fā)送時將傳送數(shù)據(jù)與時鐘進(jìn)行編碼,接收時解碼單同步雙同步外同步:另用一根時鐘線專門用來傳送時鐘信號7.1.1串行通信的基本概念串行異步通信——不傳送時鐘信7.1.1串行通信的基本概念
一、異步通信與同步通信1、異步通信
異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。
7.1.1串行通信的基本概念
異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系,但同一字符內(nèi)的各位之間的距離均為“位間隔”的整數(shù)倍。異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字異步通信的數(shù)據(jù)格式:異步通信的特點(diǎn):不要求收發(fā)雙方時鐘的嚴(yán)格一致,實現(xiàn)容易,設(shè)備開銷較小,但每個字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。異步通信的數(shù)據(jù)格式:異步通信的特點(diǎn):不要求收發(fā)雙方時鐘的嚴(yán)2、同步通信同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達(dá)到完全同步。此時,傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對接收方的同步可以通過兩種方法實現(xiàn)。雙方使用同一時鐘(主控方提供時鐘,被控方接收時鐘)外同步:時鐘信號另外安排一根傳輸線自同步:發(fā)送時將時鐘信號與數(shù)據(jù)混合編碼,接收時譯碼出時鐘
外同步自同步2、同步通信外同步面向字符的同步格式:
此時,傳送的數(shù)據(jù)和控制信息都必須由規(guī)定的字符集(如ASCII碼)中的字符所組成。圖中幀頭為1個或2個同步字符SYN(ASCII碼為16H)。SOH為序始字符(ASCII碼為01H),表示標(biāo)題的開始,標(biāo)題中包含源地址、目標(biāo)地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送的數(shù)據(jù)塊開始。數(shù)據(jù)塊是傳送的正文內(nèi)容,由多個字符組成。數(shù)據(jù)塊后面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H)。然后是校驗碼。典型的面向字符的同步規(guī)程如IBM的二進(jìn)制同步規(guī)程BSC。
面向字符的同步格式:此時,傳送的數(shù)據(jù)和控制信息都面向位的同步格式:
此時,將數(shù)據(jù)塊看作數(shù)據(jù)流,并用序列01111110作為開始和結(jié)束標(biāo)志。為了避免在數(shù)據(jù)流中出現(xiàn)序列01111110時引起的混亂,發(fā)送方總是在其發(fā)送的數(shù)據(jù)流中每出現(xiàn)5個連續(xù)的1就插入一個附加的0;接收方則每檢測到5個連續(xù)的1并且其后有一個0時,就刪除該0。
典型的面向位的同步協(xié)議如ISO的高級數(shù)據(jù)鏈路控制規(guī)程HDLC和IBM的同步數(shù)據(jù)鏈路控制規(guī)程SDLC。同步通信的特點(diǎn)是以特定的位組合“01111110”作為幀的開始和結(jié)束標(biāo)志,所傳輸?shù)囊粠瑪?shù)據(jù)可以是任意位。所以傳輸?shù)男瘦^高,但實現(xiàn)的硬件設(shè)備比異步通信復(fù)雜。
面向位的同步格式:此時,將數(shù)據(jù)塊看作數(shù)據(jù)流,并用二、串行通信的傳輸方向1、單工單工是指數(shù)據(jù)傳輸僅能沿一個方向,不能實現(xiàn)反向傳輸。2、半雙工半雙工是指數(shù)據(jù)傳輸可以沿兩個方向,但需要分時進(jìn)行。3、全雙工全雙工是指數(shù)據(jù)可以同時進(jìn)行雙向傳輸。
單工半雙工全雙工二、串行通信的傳輸方向單工三、信號的調(diào)制與解調(diào)
利用調(diào)制器(Modulator)把數(shù)字信號轉(zhuǎn)換成模擬信號,然后送到通信線路上去,再由解調(diào)器(Demodulator)把從通信線路上收到的模擬信號轉(zhuǎn)換成數(shù)字信號。由于通信是雙向的,調(diào)制器和解調(diào)器合并在一個裝置中,這就是調(diào)制解調(diào)器MODEM。三、信號的調(diào)制與解調(diào)四、串行通信的錯誤校驗
1、奇偶校驗在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為奇數(shù);偶校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為偶數(shù)。接收字符時,對“1”的個數(shù)進(jìn)行校驗,若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。3、循環(huán)冗余校驗這種校驗是通過某種數(shù)學(xué)運(yùn)算實現(xiàn)有效信息與校驗位之間的循環(huán)校驗,常用于對磁盤信息的傳輸、存儲區(qū)的完整性校驗等。這種校驗方法糾錯能力強(qiáng),廣泛應(yīng)用于同步通信中。2、代碼和校驗代碼和校驗是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個字節(jié)的校驗字符(校驗和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時對數(shù)據(jù)塊(除校驗字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗和”進(jìn)行比較,相符則無差錯,否則即認(rèn)為傳送過程中出現(xiàn)了差錯。四、串行通信的錯誤校驗3、循環(huán)冗余校驗2、代碼和校驗五、傳輸速率與傳輸距離
1、傳輸速率比特率是每秒鐘傳輸二進(jìn)制代碼的位數(shù),單位是:位/秒(bps)。如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位、1個停止位、8個數(shù)據(jù)位),這時的比特率為:
10位×240個/秒=2400bps五、傳輸速率與傳輸距離2、傳輸距離與傳輸速率的關(guān)系串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。當(dāng)傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當(dāng)比特率超過1000bps時,最大傳輸距離迅速下降,如9600bps時最大距離下降到只有76m(約250英尺)。2、傳輸距離與傳輸速率的關(guān)系7.280C51的串行口
有兩個物理上獨(dú)立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H;接收器是雙緩沖結(jié)構(gòu);發(fā)送緩沖器,因為發(fā)送時CPU是主動的,不會產(chǎn)生重疊錯誤。
7.2.180C51串行口的結(jié)構(gòu)
SMOD7.280C51的串行口有兩個物理上獨(dú)立的接SCON是一個特殊功能寄存器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志:
7.2.280C51串行口的控制寄存器
SM0和SM1為工作方式選擇位,可選擇四種工作方式:
SCON是一個特殊功能寄存器,用以設(shè)定串行口的工作●SM2,多機(jī)通信控制位,主要用于方式2和方式3。當(dāng)接收機(jī)的SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=0時不激活RI,收到的信息丟棄;RB8=1時收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI,進(jìn)而在中斷服務(wù)中將數(shù)據(jù)從SBUF讀走)。當(dāng)SM2=0時,不論收到的RB8為0和1,均可以使收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實現(xiàn)多機(jī)通信。在方式0時,SM2必須是0。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1?!馬EN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收?!馭M2,多機(jī)通信控制位,主要用于方式2和方式3。當(dāng)接收機(jī)的●TB8,在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用。可以用作數(shù)據(jù)的奇偶校驗位,或在多機(jī)通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式0和方式1中,該位未用?!馬B8,在方式2或方式3中,是接收到數(shù)據(jù)的第九位,作為奇偶校驗位或地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式1時,若SM2=0,則RB8是接收到的停止位?!馮B8,在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件●TI,發(fā)送中斷標(biāo)志位。在方式0時,當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請。●RI,接收中斷標(biāo)志位。在方式0時,當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清0,取消此中斷申請?!馮I,發(fā)送中斷標(biāo)志位。在方式0時,當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束電源控制寄存器PCON
PCON各位定義
D7D6D5D4 D3D2D1D0 SMOD- - -GF1GF0PDIDL
電源控制寄存器主要用于設(shè)置低功耗模式和掉電保護(hù)工作模式。但其中第7位SMOD用于串口。當(dāng)串口工作于方式1、方式2、方式3時,波特率與SMOD有關(guān),當(dāng)SMOD=1波特率加倍,SMOD=0,則不加倍。
電源控制寄存器PCON
6.2.380C51串行口的工作方式
一、方式0
方式0時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴(kuò)展并行輸入或輸出口。不論是發(fā)送還是接收,數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12
1、方式0輸出6.2.380C51串行口的工作方式一、方式0
2、方式0輸入
方式0接收和發(fā)送電路2、方式0輸入方式0接收和發(fā)送電路
方式0的應(yīng)用
串行口擴(kuò)展為并行輸出口串行口擴(kuò)展為并行輸人口
方式0的應(yīng)用串行口擴(kuò)展為并行輸出口串行口擴(kuò)展為二、方式1
方式1的工作性能
1)波特率可變串口波特率由定時器T1產(chǎn)生,并決定于T1定時時間,而T1的定時時間決定于裝入的時間常數(shù)N,因此可根據(jù)時間常數(shù)N推出波特率,即
2)傳送數(shù)據(jù)為8位,連同一位起始位、一位停止位組成一幀,即一幀為10位,發(fā)送由TXD輸出,接收由RXD輸入,可構(gòu)成全雙工的串行通信端口。
二、方式1
方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,8位數(shù)據(jù)位,1位停止位。1、方式1輸出方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,R
2、方式1輸入
用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負(fù)跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進(jìn)行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF,第9位(停止位)進(jìn)入RB8,并置RI=1,向CPU請求中斷。2、方式1輸入用軟件置REN為1時,接收器三、串口工作方式2、3
方式2、3的工作性能
1)方式2波特率固定,并等于。
方式3波特率計算方法同方式1,即等于。
2)一幀數(shù)據(jù)為11位,包括1位起始位、8位數(shù)據(jù)位、1位可編程位、1位停止位。數(shù)據(jù)位低位在前高位在后,第9位可編程位發(fā)送時從SCON中的TB8取出,接收時第9位存SCON中的RB8。返回本章首頁三、串口工作方式2、3返回本章首頁
三、方式2和方式3
方式2或方式3時為11位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳。
方式2和方式3時起始位1位,數(shù)據(jù)9位(含1位附加的第9位,發(fā)送時為SCON中的TB8,接收時為RB8),停止位1位,一幀數(shù)據(jù)為11位。方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時器T1的溢出率決定。
三、方式2和方式3方式2和方式3時起始位1位,數(shù)
1、方式2和方式3輸出
發(fā)送開始時,先把起始位0輸出到TXD引腳,然后發(fā)送移位寄存器的輸出位(D0)到TXD引腳。每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由TXD引腳輸出。第一次移位時,停止位“1”移入輸出移位寄存器的第9位上,以后每次移位,左邊都移入0。當(dāng)停止位移至輸出位時,左邊其余位全為0,檢測電路檢測到這一條件時,使控制電路進(jìn)行最后一次移位,并置TI=1,向CPU請求中斷。1、方式2和方式3輸出發(fā)送開始時,先把起始位0
2、方式2和方式3輸入
接收時,數(shù)據(jù)從右邊移入輸入移位寄存器,在起始位0移到最左邊時,控制電路進(jìn)行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的第9位數(shù)據(jù)為1)時,接收到的數(shù)據(jù)裝入接收緩沖器SBUF和RB8(接收數(shù)據(jù)的第9位),置RI=1,向CPU請求中斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位RI,繼續(xù)搜索RXD引腳的負(fù)跳變。2、方式2和方式3輸入接收時,數(shù)據(jù)從右邊移入輸入四、波特率的計算在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定。通過軟件可對單片機(jī)串行口編程為四種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。方式0的波特率=fosc/12方式2的波特率=(2SMOD/64)·fosc方式1的波特率=(2SMOD/32)·(T1溢出率)方式3的波特率=(2SMOD/32)·(T1溢出率)四、波特率的計算
當(dāng)T1作為波特率發(fā)生器時,最典型的用法是使T1工作在自動再裝入的8位定時器方式(即方式2,且TCON的TR1=1,以啟動定時器)。這時溢出率取決于TH1中的計數(shù)值。
T1溢出率=fosc/{12×[256-(TH1)]}
在單片機(jī)的應(yīng)用中,常用的晶振頻率為:12MHz和11.0592MHz。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表所示。當(dāng)T1作為波特率發(fā)生器時,最典型的用法是使T1工
串行口工作之前,應(yīng)對其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時器1、串行口控制和中斷控制。具體步驟如下:確定T1的工作方式(編程TMOD寄存器);計算T1的初值,裝載TH1、TL1;啟動T1(編程TCON中的TR1位);確定串行口控制(編程SCON寄存器);串行口在中斷方式工作時,要進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。串行口工作之前,應(yīng)對其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特第四節(jié)串口初始化編程
一、計算波特率串口方式0
串口方式1和串口方式3
串口方式2
第四節(jié)串口初始化編程一、計算波特率二、對SCON、PCON、TMOD初始化 以設(shè)計一8051單片機(jī)控制系統(tǒng)為例,設(shè)主振頻率為12MHz,要求串口發(fā)送數(shù)據(jù)為8位、波特率為1200bps.則初始化步驟為:
1.先按波特率要求,計算T1的時間常數(shù)N,設(shè)SMOD=1。 已知主振頻率為12MHz,波特率為1200bps.,串口工作于方式1,按上一頁公式可求得
N=203.92≈0CCH 2.寫出初始化程序
MOVSCON,#50H;串行口工作于方式1 MOVPCON,#80H;SMOD=1,
MOVTMOD,#20H;T1工作方式2定時方式
MOVTHl,#0CCH;設(shè)置時間常間為N MOVTLl,#0CCH;自動裝入時間常數(shù)
SETBTR1 ;啟動T1返回本章首頁二、對SCON、PCON、TMOD初始化返回本章首頁第五節(jié)
單片機(jī)串行口應(yīng)用舉例
在計算機(jī)組成的測控系統(tǒng)中,經(jīng)常要利用串行通信方式進(jìn)行數(shù)據(jù)傳輸。80C51單片機(jī)的串行口為計算機(jī)間的通信提供了極為便利的條件。利用單片機(jī)的串行口還可以方便地擴(kuò)展鍵盤和顯示器,對于簡單的應(yīng)用非常便利。這里僅介紹單片機(jī)串行口在通信方面的應(yīng)用。第五節(jié)單片機(jī)串行口應(yīng)用舉例在計算機(jī)組成的RS-232
使用RS-232接口可增加串口的驅(qū)動能力、信號幅度與傳輸距離。
直接用單片機(jī)的串口進(jìn)行通信,可以將兩個串口直接相連,RS-232使用RS-232接口可增加串口的驅(qū)動能力、信號幅
RS232芯片MAX232的組成與引腳
引腳內(nèi)部組成RS232芯片MAX232的組成與引腳引腳內(nèi)部組成單片機(jī)與單片機(jī)的通信
一、點(diǎn)對點(diǎn)的通信
1、硬件連接
單片機(jī)與單片機(jī)的通信一、點(diǎn)對點(diǎn)的通信二、多機(jī)通信
1、硬件連接單片機(jī)構(gòu)成的多機(jī)系統(tǒng)常采用總線型主從式結(jié)構(gòu)。所謂主從式,即在數(shù)個單片機(jī)中,有一個是主機(jī),其余的是從機(jī),從機(jī)要服從主機(jī)的調(diào)度、支配。80C51單片機(jī)的串行口方式2和方式3適于這種主從式的通信結(jié)構(gòu)。當(dāng)然采用不同的通信標(biāo)準(zhǔn)時,還需進(jìn)行相應(yīng)的電平轉(zhuǎn)換,有時還要對信號進(jìn)行光電隔離。在實際的多機(jī)應(yīng)用系統(tǒng)中,常采用RS-485串行標(biāo)準(zhǔn)總線進(jìn)行數(shù)據(jù)傳輸。二、多機(jī)通信2、通信協(xié)議所有從機(jī)的SM2位置1,處于接收地址幀狀態(tài)。主機(jī)發(fā)送一地址幀,其中8位是地址,第9位為地址/數(shù)據(jù)的區(qū)分標(biāo)志,該位置1表示該幀為地址幀。所有從機(jī)收到地址幀后,都將接收的地址與本機(jī)的地址比較。對于地址相符的從機(jī),使自己的SM2位置0(以接收主機(jī)隨后發(fā)來的數(shù)據(jù)幀),并把本站地址發(fā)回主機(jī)作為應(yīng)答;對于地址不符的從機(jī),仍保持SM2=1,對主機(jī)隨后發(fā)來的數(shù)據(jù)幀不予理睬。從機(jī)發(fā)送數(shù)據(jù)結(jié)束后,要發(fā)送一幀校驗和,并置第9位(TB8)為1,作為從機(jī)數(shù)據(jù)傳送結(jié)束的標(biāo)志。2、通信協(xié)議主機(jī)接收數(shù)據(jù)時先判斷數(shù)據(jù)接收標(biāo)志(RB8),若RB8=1,表示數(shù)據(jù)傳送結(jié)束,并比較此幀校驗和,若正確則回送正確信號00H,此信號命令該從機(jī)復(fù)位(即重新等待地址幀);若校驗和出錯,則發(fā)送0FFH,命令該從機(jī)重發(fā)數(shù)據(jù)。若接收幀的RB8=0,則存數(shù)據(jù)到緩沖區(qū),并準(zhǔn)備接收下幀信息。主機(jī)收到從機(jī)應(yīng)答地址后,確認(rèn)地址是否相符,如果地址不符,發(fā)復(fù)位信號(數(shù)據(jù)幀中TB8=1);如果地址相符,則清TB8,開始發(fā)送數(shù)據(jù)。從機(jī)收到復(fù)位命令后回到監(jiān)聽地址狀態(tài)(SM2=1)。否則開始接收數(shù)據(jù)和命令。主機(jī)接收數(shù)據(jù)時先判斷數(shù)據(jù)接收標(biāo)志(RB8),若RB8=1,表3、應(yīng)用程序主機(jī)發(fā)送的地址聯(lián)絡(luò)信號為:00H,01H,02H,……(即從機(jī)設(shè)備地址),地址FFH為命令各從機(jī)復(fù)位,即恢復(fù)SM2=1。主機(jī)命令編碼為:01H,主機(jī)命令從機(jī)接收數(shù)據(jù);02H,主機(jī)命令從機(jī)發(fā)送數(shù)據(jù)。其它都按02H對待。RRDY=1:表示從機(jī)準(zhǔn)備好接收。TRDY=1:表示從機(jī)準(zhǔn)備好發(fā)送。ERR=1:表示從機(jī)接收的命令是非法的。
程序分為主機(jī)程序和從機(jī)程序。約定一次傳遞數(shù)據(jù)為16個字節(jié),以01H地址的從機(jī)為例。
3、應(yīng)用程序RRDY=1:表示從機(jī)準(zhǔn)備好接收。1.由上位機(jī)發(fā)送1給單片機(jī)時,蜂鳴器以400ms頻率發(fā)聲,發(fā)2時以200ms頻率發(fā)聲,發(fā)3時以100ms頻率發(fā)聲,發(fā)4時關(guān)閑蜂鳴器。2.以2400bps從計算機(jī)發(fā)送任一字節(jié)數(shù)據(jù),當(dāng)單片機(jī)收到該數(shù)據(jù)后,在此數(shù)據(jù)前加上一序號然后連同此數(shù)據(jù)一起發(fā)送至計算機(jī),當(dāng)序號超過255時歸零。3.以16進(jìn)制發(fā)送一個0-65536之間的任一數(shù),當(dāng)單片機(jī)收到后在數(shù)碼管上動態(tài)顯示出來,波特率自定。4.用AD以1HZ的頻率采集模擬信號,然后轉(zhuǎn)換成數(shù)字量,再將其以1200bps發(fā)送到計算機(jī),在計算機(jī)上顯示。5.按下矩陣鍵盤第一行時以1200bps發(fā)送,1,2,3,4,第二行時以2400bps發(fā)送5,6,7,8,第三行以4800bps發(fā)送,9,10,11,12,第四行以9600pbs發(fā)送,13,14,15,16.1.由上位機(jī)發(fā)送1給單片機(jī)時,蜂鳴器以400ms頻率發(fā)聲,發(fā)單片機(jī)應(yīng)用系統(tǒng)設(shè)計單片機(jī)應(yīng)用系統(tǒng)設(shè)計7.1計算機(jī)串行通信基礎(chǔ)
隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計算機(jī)的通信功能愈來愈顯得重要。計算機(jī)通信是指計算機(jī)與外部設(shè)備或計算機(jī)與計算機(jī)之間的信息交換。通信有并行通信和串行通信兩種方式。在多微機(jī)系統(tǒng)以及現(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式。7.1計算機(jī)串行通信基礎(chǔ)隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計算串行接口
第一節(jié)計算機(jī)通訊基礎(chǔ)第二節(jié)8051單片機(jī)串行接口
第三節(jié)串行接口的工作方式
第四節(jié)串口初始化編程
第五節(jié)
RS-232接口
第六節(jié)
串行接口的應(yīng)用串行接口第一節(jié)計算機(jī)通訊基礎(chǔ)本章要點(diǎn)
串行通信的基本概念。
8051單片機(jī)串行接口的結(jié)構(gòu)與工作方式,與PC的通信以及通信程序的編制。遠(yuǎn)程通信概念,RS-232接口。本章要點(diǎn)串行通信的基本概念。7.1計算機(jī)串行通信基礎(chǔ)
隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計算機(jī)網(wǎng)絡(luò)技術(shù)的普及,計算機(jī)的通信功能愈來愈顯得重要。計算機(jī)通信是指計算機(jī)與外部設(shè)備或計算機(jī)與計算機(jī)之間的信息交換。通信有并行通信和串行通信兩種方式。在多微機(jī)系統(tǒng)以及現(xiàn)代測控系統(tǒng)中信息的交換多采用串行通信方式。7.1計算機(jī)串行通信基礎(chǔ)隨著多微機(jī)系統(tǒng)的廣泛應(yīng)用和計算計算機(jī)通信是將計算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計算機(jī)與外部設(shè)備或計算機(jī)與計算機(jī)之間的信息交換??梢苑譃閮纱箢悾翰⑿型ㄐ排c串行通信。并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時進(jìn)行傳送。并行通信控制簡單、傳輸速度快;由于傳輸線較多,長距離傳送時成本高且接收方的各位同時接收存在困難。
計算機(jī)通信是將計算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計算機(jī)與外部串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳送。串行通信的特點(diǎn):傳輸線少,長距離傳送時成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。
串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個地傳7.1.1串行通信的基本概念
串行異步通信——不傳送時鐘信號串行同步通信——傳送時鐘信號自同步:發(fā)送時將傳送數(shù)據(jù)與時鐘進(jìn)行編碼,接收時解碼單同步雙同步外同步:另用一根時鐘線專門用來傳送時鐘信號7.1.1串行通信的基本概念串行異步通信——不傳送時鐘信7.1.1串行通信的基本概念
一、異步通信與同步通信1、異步通信
異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時鐘控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時鐘盡可能一致。
7.1.1串行通信的基本概念
異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字符之間的間隙(時間間隔)是任意的,但每個字符中的各位是以固定的時間傳送的,即字符之間不一定有“位間隔”的整數(shù)倍的關(guān)系,但同一字符內(nèi)的各位之間的距離均為“位間隔”的整數(shù)倍。異步通信是以字符(構(gòu)成的幀)為單位進(jìn)行傳輸,字符與字異步通信的數(shù)據(jù)格式:異步通信的特點(diǎn):不要求收發(fā)雙方時鐘的嚴(yán)格一致,實現(xiàn)容易,設(shè)備開銷較小,但每個字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。異步通信的數(shù)據(jù)格式:異步通信的特點(diǎn):不要求收發(fā)雙方時鐘的嚴(yán)2、同步通信同步通信時要建立發(fā)送方時鐘對接收方時鐘的直接控制,使雙方達(dá)到完全同步。此時,傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。發(fā)送方對接收方的同步可以通過兩種方法實現(xiàn)。雙方使用同一時鐘(主控方提供時鐘,被控方接收時鐘)外同步:時鐘信號另外安排一根傳輸線自同步:發(fā)送時將時鐘信號與數(shù)據(jù)混合編碼,接收時譯碼出時鐘
外同步自同步2、同步通信外同步面向字符的同步格式:
此時,傳送的數(shù)據(jù)和控制信息都必須由規(guī)定的字符集(如ASCII碼)中的字符所組成。圖中幀頭為1個或2個同步字符SYN(ASCII碼為16H)。SOH為序始字符(ASCII碼為01H),表示標(biāo)題的開始,標(biāo)題中包含源地址、目標(biāo)地址和路由指示等信息。STX為文始字符(ASCII碼為02H),表示傳送的數(shù)據(jù)塊開始。數(shù)據(jù)塊是傳送的正文內(nèi)容,由多個字符組成。數(shù)據(jù)塊后面是組終字符ETB(ASCII碼為17H)或文終字符ETX(ASCII碼為03H)。然后是校驗碼。典型的面向字符的同步規(guī)程如IBM的二進(jìn)制同步規(guī)程BSC。
面向字符的同步格式:此時,傳送的數(shù)據(jù)和控制信息都面向位的同步格式:
此時,將數(shù)據(jù)塊看作數(shù)據(jù)流,并用序列01111110作為開始和結(jié)束標(biāo)志。為了避免在數(shù)據(jù)流中出現(xiàn)序列01111110時引起的混亂,發(fā)送方總是在其發(fā)送的數(shù)據(jù)流中每出現(xiàn)5個連續(xù)的1就插入一個附加的0;接收方則每檢測到5個連續(xù)的1并且其后有一個0時,就刪除該0。
典型的面向位的同步協(xié)議如ISO的高級數(shù)據(jù)鏈路控制規(guī)程HDLC和IBM的同步數(shù)據(jù)鏈路控制規(guī)程SDLC。同步通信的特點(diǎn)是以特定的位組合“01111110”作為幀的開始和結(jié)束標(biāo)志,所傳輸?shù)囊粠瑪?shù)據(jù)可以是任意位。所以傳輸?shù)男瘦^高,但實現(xiàn)的硬件設(shè)備比異步通信復(fù)雜。
面向位的同步格式:此時,將數(shù)據(jù)塊看作數(shù)據(jù)流,并用二、串行通信的傳輸方向1、單工單工是指數(shù)據(jù)傳輸僅能沿一個方向,不能實現(xiàn)反向傳輸。2、半雙工半雙工是指數(shù)據(jù)傳輸可以沿兩個方向,但需要分時進(jìn)行。3、全雙工全雙工是指數(shù)據(jù)可以同時進(jìn)行雙向傳輸。
單工半雙工全雙工二、串行通信的傳輸方向單工三、信號的調(diào)制與解調(diào)
利用調(diào)制器(Modulator)把數(shù)字信號轉(zhuǎn)換成模擬信號,然后送到通信線路上去,再由解調(diào)器(Demodulator)把從通信線路上收到的模擬信號轉(zhuǎn)換成數(shù)字信號。由于通信是雙向的,調(diào)制器和解調(diào)器合并在一個裝置中,這就是調(diào)制解調(diào)器MODEM。三、信號的調(diào)制與解調(diào)四、串行通信的錯誤校驗
1、奇偶校驗在發(fā)送數(shù)據(jù)時,數(shù)據(jù)位尾隨的1位為奇偶校驗位(1或0)。奇校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為奇數(shù);偶校驗時,數(shù)據(jù)中“1”的個數(shù)與校驗位“1”的個數(shù)之和應(yīng)為偶數(shù)。接收字符時,對“1”的個數(shù)進(jìn)行校驗,若發(fā)現(xiàn)不一致,則說明傳輸數(shù)據(jù)過程中出現(xiàn)了差錯。3、循環(huán)冗余校驗這種校驗是通過某種數(shù)學(xué)運(yùn)算實現(xiàn)有效信息與校驗位之間的循環(huán)校驗,常用于對磁盤信息的傳輸、存儲區(qū)的完整性校驗等。這種校驗方法糾錯能力強(qiáng),廣泛應(yīng)用于同步通信中。2、代碼和校驗代碼和校驗是發(fā)送方將所發(fā)數(shù)據(jù)塊求和(或各字節(jié)異或),產(chǎn)生一個字節(jié)的校驗字符(校驗和)附加到數(shù)據(jù)塊末尾。接收方接收數(shù)據(jù)同時對數(shù)據(jù)塊(除校驗字節(jié)外)求和(或各字節(jié)異或),將所得的結(jié)果與發(fā)送方的“校驗和”進(jìn)行比較,相符則無差錯,否則即認(rèn)為傳送過程中出現(xiàn)了差錯。四、串行通信的錯誤校驗3、循環(huán)冗余校驗2、代碼和校驗五、傳輸速率與傳輸距離
1、傳輸速率比特率是每秒鐘傳輸二進(jìn)制代碼的位數(shù),單位是:位/秒(bps)。如每秒鐘傳送240個字符,而每個字符格式包含10位(1個起始位、1個停止位、8個數(shù)據(jù)位),這時的比特率為:
10位×240個/秒=2400bps五、傳輸速率與傳輸距離2、傳輸距離與傳輸速率的關(guān)系串行接口或終端直接傳送串行信息位流的最大距離與傳輸速率及傳輸線的電氣特性有關(guān)。當(dāng)傳輸線使用每0.3m(約1英尺)有50PF電容的非平衡屏蔽雙絞線時,傳輸距離隨傳輸速率的增加而減小。當(dāng)比特率超過1000bps時,最大傳輸距離迅速下降,如9600bps時最大距離下降到只有76m(約250英尺)。2、傳輸距離與傳輸速率的關(guān)系7.280C51的串行口
有兩個物理上獨(dú)立的接收、發(fā)送緩沖器SBUF,它們占用同一地址99H;接收器是雙緩沖結(jié)構(gòu);發(fā)送緩沖器,因為發(fā)送時CPU是主動的,不會產(chǎn)生重疊錯誤。
7.2.180C51串行口的結(jié)構(gòu)
SMOD7.280C51的串行口有兩個物理上獨(dú)立的接SCON是一個特殊功能寄存器,用以設(shè)定串行口的工作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志:
7.2.280C51串行口的控制寄存器
SM0和SM1為工作方式選擇位,可選擇四種工作方式:
SCON是一個特殊功能寄存器,用以設(shè)定串行口的工作●SM2,多機(jī)通信控制位,主要用于方式2和方式3。當(dāng)接收機(jī)的SM2=1時可以利用收到的RB8來控制是否激活RI(RB8=0時不激活RI,收到的信息丟棄;RB8=1時收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI,進(jìn)而在中斷服務(wù)中將數(shù)據(jù)從SBUF讀走)。當(dāng)SM2=0時,不論收到的RB8為0和1,均可以使收到的數(shù)據(jù)進(jìn)入SBUF,并激活RI(即此時RB8不具有控制RI激活的功能)。通過控制SM2,可以實現(xiàn)多機(jī)通信。在方式0時,SM2必須是0。在方式1時,若SM2=1,則只有接收到有效停止位時,RI才置1?!馬EN,允許串行接收位。由軟件置REN=1,則啟動串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。●SM2,多機(jī)通信控制位,主要用于方式2和方式3。當(dāng)接收機(jī)的●TB8,在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用??梢杂米鲾?shù)據(jù)的奇偶校驗位,或在多機(jī)通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式0和方式1中,該位未用?!馬B8,在方式2或方式3中,是接收到數(shù)據(jù)的第九位,作為奇偶校驗位或地址幀/數(shù)據(jù)幀的標(biāo)志位。在方式1時,若SM2=0,則RB8是接收到的停止位?!馮B8,在方式2或方式3中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件●TI,發(fā)送中斷標(biāo)志位。在方式0時,當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行發(fā)送停止位的開始時,由內(nèi)部硬件使TI置1,向CPU發(fā)中斷申請。在中斷服務(wù)程序中,必須用軟件將其清0,取消此中斷申請?!馬I,接收中斷標(biāo)志位。在方式0時,當(dāng)串行接收第8位數(shù)據(jù)結(jié)束時,或在其它方式,串行接收停止位的中間時,由內(nèi)部硬件使RI置1,向CPU發(fā)中斷申請。也必須在中斷服務(wù)程序中,用軟件將其清0,取消此中斷申請。●TI,發(fā)送中斷標(biāo)志位。在方式0時,當(dāng)串行發(fā)送第8位數(shù)據(jù)結(jié)束電源控制寄存器PCON
PCON各位定義
D7D6D5D4 D3D2D1D0 SMOD- - -GF1GF0PDIDL
電源控制寄存器主要用于設(shè)置低功耗模式和掉電保護(hù)工作模式。但其中第7位SMOD用于串口。當(dāng)串口工作于方式1、方式2、方式3時,波特率與SMOD有關(guān),當(dāng)SMOD=1波特率加倍,SMOD=0,則不加倍。
電源控制寄存器PCON
6.2.380C51串行口的工作方式
一、方式0
方式0時,串行口為同步移位寄存器的輸入輸出方式。主要用于擴(kuò)展并行輸入或輸出口。不論是發(fā)送還是接收,數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出,同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12
1、方式0輸出6.2.380C51串行口的工作方式一、方式0
2、方式0輸入
方式0接收和發(fā)送電路2、方式0輸入方式0接收和發(fā)送電路
方式0的應(yīng)用
串行口擴(kuò)展為并行輸出口串行口擴(kuò)展為并行輸人口
方式0的應(yīng)用串行口擴(kuò)展為并行輸出口串行口擴(kuò)展為二、方式1
方式1的工作性能
1)波特率可變串口波特率由定時器T1產(chǎn)生,并決定于T1定時時間,而T1的定時時間決定于裝入的時間常數(shù)N,因此可根據(jù)時間常數(shù)N推出波特率,即
2)傳送數(shù)據(jù)為8位,連同一位起始位、一位停止位組成一幀,即一幀為10位,發(fā)送由TXD輸出,接收由RXD輸入,可構(gòu)成全雙工的串行通信端口。
二、方式1
方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中1位起始位,8位數(shù)據(jù)位,1位停止位。1、方式1輸出方式1是10位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,R
2、方式1輸入
用軟件置REN為1時,接收器以所選擇波特率的16倍速率采樣RXD引腳電平,檢測到RXD引腳輸入電平發(fā)生負(fù)跳變時,則說明起始位有效,將其移入輸入移位寄存器,并開始接收這一幀信息的其余位。接收過程中,數(shù)據(jù)從輸入移位寄存器右邊移入,起始位移至輸入移位寄存器最左邊時,控制電路進(jìn)行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的停止位為1)時,將接收到的9位數(shù)據(jù)的前8位數(shù)據(jù)裝入接收SBUF,第9位(停止位)進(jìn)入RB8,并置RI=1,向CPU請求中斷。2、方式1輸入用軟件置REN為1時,接收器三、串口工作方式2、3
方式2、3的工作性能
1)方式2波特率固定,并等于。
方式3波特率計算方法同方式1,即等于。
2)一幀數(shù)據(jù)為11位,包括1位起始位、8位數(shù)據(jù)位、1位可編程位、1位停止位。數(shù)據(jù)位低位在前高位在后,第9位可編程位發(fā)送時從SCON中的TB8取出,接收時第9位存SCON中的RB8。返回本章首頁三、串口工作方式2、3返回本章首頁
三、方式2和方式3
方式2或方式3時為11位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳。
方式2和方式3時起始位1位,數(shù)據(jù)9位(含1位附加的第9位,發(fā)送時為SCON中的TB8,接收時為RB8),停止位1位,一幀數(shù)據(jù)為11位。方式2的波特率固定為晶振頻率的1/64或1/32,方式3的波特率由定時器T1的溢出率決定。
三、方式2和方式3方式2和方式3時起始位1位,數(shù)
1、方式2和方式3輸出
發(fā)送開始時,先把起始位0輸出到TXD引腳,然后發(fā)送移位寄存器的輸出位(D0)到TXD引腳。每一個移位脈沖都使輸出移位寄存器的各位右移一位,并由TXD引腳輸出。第一次移位時,停止位“1”移入輸出移位寄存器的第9位上,以后每次移位,左邊都移入0。當(dāng)停止位移至輸出位時,左邊其余位全為0,檢測電路檢測到這一條件時,使控制電路進(jìn)行最后一次移位,并置TI=1,向CPU請求中斷。1、方式2和方式3輸出發(fā)送開始時,先把起始位0
2、方式2和方式3輸入
接收時,數(shù)據(jù)從右邊移入輸入移位寄存器,在起始位0移到最左邊時,控制電路進(jìn)行最后一次移位。當(dāng)RI=0,且SM2=0(或接收到的第9位數(shù)據(jù)為1)時,接收到的數(shù)據(jù)裝入接收緩沖器SBUF和RB8(接收數(shù)據(jù)的第9位),置RI=1,向CPU請求中斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位RI,繼續(xù)搜索RXD引腳的負(fù)跳變。2、方式2和方式3輸入接收時,數(shù)據(jù)從右邊移入輸入四、波特率的計算在串行通信中,收發(fā)雙方對發(fā)送或接收數(shù)據(jù)的速率要有約定。通過軟件可對單片機(jī)串行口編程為四種工作方式,其中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可變的,由定時器T1的溢出率來決定。串行口的四種工作方式對應(yīng)三種波特率。由于輸入的移位時鐘的來源不同,所以,各種方式的波特率計算公式也不相同。方式0的波特率=fosc/12方式2的波特率=(2SMOD/64)·fosc方式1的波特率=(2SMOD/32)·(T1溢出率)方式3的波特率=(2SMOD/32)·(T1溢出率)四、波特率的計算
當(dāng)T1作為波特率發(fā)生器時,最典型的用法是使T1工作在自動再裝入的8位定時器方式(即方式2,且TCON的TR1=1,以啟動定時器)。這時溢出率取決于TH1中的計數(shù)值。
T1溢出率=fosc/{12×[256-(TH1)]}
在單片機(jī)的應(yīng)用中,常用的晶振頻率為:12MHz和11.0592MHz。所以,選用的波特率也相對固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表所示。當(dāng)T1作為波特率發(fā)生器時,最典型的用法是使T1工
串行口工作之前,應(yīng)對其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時器1、串行口控制和中斷控制。具體步驟如下:確定T1的工作方式(編程TMOD寄存器);計算T1的初值,裝載TH1、TL1;啟動T1(編程TCON中的TR1位);確定串行口控制(編程SCON寄存器);串行口在中斷方式工作時,要進(jìn)行中斷設(shè)置(編程IE、IP寄存器)。串行口工作之前,應(yīng)對其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特第四節(jié)串口初始化編程
一、計算波特率串口方式0
串口方式1和串口方式3
串口方式2
第四節(jié)串口初始化編程一、計算波特率二、對SCON、PCON、TMOD初始化 以設(shè)計一8051單片機(jī)控制系統(tǒng)為例,設(shè)主振頻率為12MHz,要求串口發(fā)送數(shù)據(jù)為8位、波特率為1200bps.則初始化步驟為:
1.先按波特率要求,計算T1的時間常數(shù)N,設(shè)SMOD=1。 已知主振頻率為12MHz,波特率為1200bps.,串口工作于方式1,按上一頁公式可求得
N=203.92≈0CCH 2.寫出初始化程序
MOVSCON,#50H;串行口工作于方式1 MOVPCON,#80H
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商鋪停止出租協(xié)議書
- 商家房屋轉(zhuǎn)讓協(xié)議書
- 商場事故賠償協(xié)議書
- 醫(yī)院學(xué)科指導(dǎo)協(xié)議書
- 醫(yī)院終止合同協(xié)議書
- 中國歷史上經(jīng)濟(jì)危機(jī)的應(yīng)對措施試題及答案
- 項目資源利用與配置試題及答案
- 2025年財務(wù)管理考前沖刺試題及答案
- 肥胖癥診療中心個性化治療方案的制定
- 水利水電工程個人復(fù)習(xí)計劃試題及答案
- 航道治理工程施工組織設(shè)計
- 馬工程教材《公共財政概論》PPT-第四章 政府消費(fèi)支出
- GB/T 29531-2013泵的振動測量與評價方法
- GB/T 16422.2-2022塑料實驗室光源暴露試驗方法第2部分:氙弧燈
- GA/T 832-2014道路交通安全違法行為圖像取證技術(shù)規(guī)范
- 博士生招生面試評分表
- SWOT分析法很全面課件
- 膀胱造瘺的護(hù)理課件
- 消防應(yīng)急疏散演練人員簽到表(標(biāo)準(zhǔn)通用版)
- 陜旅版五年級英語上冊句型詞匯知識點(diǎn)總結(jié)
- 漢字構(gòu)字的基本原理和識字教學(xué)模式分析
評論
0/150
提交評論