




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.7.1 計(jì)算機(jī)串行通信基礎(chǔ)計(jì)算機(jī)串行通信基礎(chǔ) 計(jì)算機(jī)與外界進(jìn)行信息交換稱為計(jì)算機(jī)與外界進(jìn)行信息交換稱為通信通信。 通信的基本方式:通信的基本方式:并行通信并行通信 串行通信(串行通信(單片機(jī)中主要采用)單片機(jī)中主要采用) 并并 行行 數(shù)數(shù) 據(jù)據(jù) 傳傳 送送串行數(shù)據(jù)傳送:同步和異步串行數(shù)據(jù)傳送:同步和異步原原 理理各數(shù)據(jù)位同時(shí)傳送各數(shù)據(jù)位同時(shí)傳送數(shù)據(jù)位按位順序進(jìn)行數(shù)據(jù)位按位順序進(jìn)行優(yōu)優(yōu) 點(diǎn)點(diǎn)傳送速度快、效率高傳送速度快、效率高速度慢速度慢缺缺 點(diǎn)點(diǎn)數(shù)據(jù)位數(shù)數(shù)據(jù)位數(shù)傳輸線根數(shù):成本高傳輸線根數(shù):成本高最少只需一根傳輸線即可完成:成本低最少只需一根傳輸線即可完成:成本低應(yīng)應(yīng) 用用傳送距離傳送距離3
2、0米,用于計(jì)算機(jī)內(nèi)部米,用于計(jì)算機(jī)內(nèi)部幾米幾千公里,用于計(jì)算機(jī)與外設(shè)之間幾米幾千公里,用于計(jì)算機(jī)與外設(shè)之間.一、異步通信與同步通信一、異步通信與同步通信1、異步通信、異步通信 異步通信異步通信是指通信雙方是指通信雙方使用各自的時(shí)鐘使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和控制數(shù)據(jù)的發(fā)送和接收過程。為使雙方的收發(fā)協(xié)調(diào),要求收、發(fā)雙方的時(shí)鐘盡可接收過程。為使雙方的收發(fā)協(xié)調(diào),要求收、發(fā)雙方的時(shí)鐘盡可能一致,能一致,以起始位、停止位保持通信同步。其數(shù)據(jù)傳送以起始位、停止位保持通信同步。其數(shù)據(jù)傳送以幀為以幀為單位傳送單位傳送。每。每1幀數(shù)據(jù)由幀數(shù)據(jù)由1個(gè)字符代碼組成,每個(gè)字符代碼組成,每1個(gè)字符代碼由個(gè)字符代碼由起
3、始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位組成。起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位組成。.2、同步通信、同步通信 以一串字符為一個(gè)傳送單位,字符間不加標(biāo)識(shí)位,字符串開以一串字符為一個(gè)傳送單位,字符間不加標(biāo)識(shí)位,字符串開始用同步字符標(biāo)識(shí)(一般約定為始用同步字符標(biāo)識(shí)(一般約定為12個(gè)字符),以觸發(fā)同步時(shí)個(gè)字符),以觸發(fā)同步時(shí)鐘開始發(fā)送或接收數(shù)據(jù);多字節(jié)數(shù)據(jù)之間不允許有空隙,每位占鐘開始發(fā)送或接收數(shù)據(jù);多字節(jié)數(shù)據(jù)之間不允許有空隙,每位占用的時(shí)間相等;空閑位需發(fā)送同步字符。用的時(shí)間相等;空閑位需發(fā)送同步字符。 硬件要求高,通訊雙方須嚴(yán)格同步,適用于成批數(shù)據(jù)傳送。硬件要求高,通訊雙方須嚴(yán)格同步,適用于成批數(shù)據(jù)傳送
4、。 單片機(jī)不用該方式。單片機(jī)不用該方式。 異步通信對(duì)硬件要求較低,實(shí)現(xiàn)起來比較簡(jiǎn)單、靈活,異步通信對(duì)硬件要求較低,實(shí)現(xiàn)起來比較簡(jiǎn)單、靈活,適用于數(shù)據(jù)的隨機(jī)發(fā)送適用于數(shù)據(jù)的隨機(jī)發(fā)送/接收,但因每個(gè)字節(jié)都要建立一次同接收,但因每個(gè)字節(jié)都要建立一次同步,即每個(gè)字符都要額外附加兩位,所以工作速度較低,在步,即每個(gè)字符都要額外附加兩位,所以工作速度較低,在單片機(jī)中主要采用異步通信方式。單片機(jī)中主要采用異步通信方式。.二、串行通信的制式二、串行通信的制式 串行通信按照數(shù)據(jù)傳送方向可分為三種制式:串行通信按照數(shù)據(jù)傳送方向可分為三種制式:?jiǎn)螁?工:工: 數(shù)據(jù)傳輸僅能沿?cái)?shù)據(jù)傳輸僅能沿一個(gè)方向一個(gè)方向傳輸。傳輸。
5、半雙工:數(shù)據(jù)傳輸可以沿半雙工:數(shù)據(jù)傳輸可以沿兩個(gè)方向兩個(gè)方向,但分時(shí)進(jìn)行。,但分時(shí)進(jìn)行。全雙工:全雙工:數(shù)據(jù)可以數(shù)據(jù)可以同時(shí)進(jìn)行雙向同時(shí)進(jìn)行雙向傳輸。傳輸。.三、串行通信波特率三、串行通信波特率 波特率波特率bps(bit per second)定義定義: 每秒傳輸數(shù)據(jù)的位數(shù)。每秒傳輸數(shù)據(jù)的位數(shù)。 波特率的倒數(shù)即為每位傳輸所需的時(shí)間。波特率的倒數(shù)即為每位傳輸所需的時(shí)間。 相互通信的甲乙雙方必須具有相同的波特率,否則無法成相互通信的甲乙雙方必須具有相同的波特率,否則無法成功地完成串行數(shù)據(jù)通信。功地完成串行數(shù)據(jù)通信。 如每秒鐘傳送如每秒鐘傳送240個(gè)字符,而每個(gè)字符格式包含個(gè)字符,而每個(gè)字符格式包
6、含10位位(1個(gè)個(gè)起始位、起始位、1個(gè)停止位、個(gè)停止位、8個(gè)數(shù)據(jù)位個(gè)數(shù)據(jù)位),這時(shí)的波特率為:,這時(shí)的波特率為: 10位位240個(gè)個(gè)/秒秒 = 2400 bps.7.2 80C51的串行口的串行口 兩個(gè)物理上獨(dú)立的接收、發(fā)送數(shù)據(jù)緩沖器兩個(gè)物理上獨(dú)立的接收、發(fā)送數(shù)據(jù)緩沖器SBUF,占用同,占用同一地址一地址99H ;接收器是雙緩沖結(jié)構(gòu);接收器是雙緩沖結(jié)構(gòu),即在接收一個(gè)數(shù)據(jù)字節(jié)后,即在接收一個(gè)數(shù)據(jù)字節(jié)后,能接收第二個(gè)數(shù)據(jù)字節(jié),但它完成接收第二個(gè)數(shù)據(jù)字節(jié)之后,能接收第二個(gè)數(shù)據(jù)字節(jié),但它完成接收第二個(gè)數(shù)據(jù)字節(jié)之后,第一個(gè)字節(jié)仍未取走,則該字節(jié)數(shù)據(jù)丟失;發(fā)送緩沖器,因?yàn)榈谝粋€(gè)字節(jié)仍未取走,則該字節(jié)數(shù)據(jù)丟
7、失;發(fā)送緩沖器,因?yàn)榘l(fā)送時(shí)發(fā)送時(shí)CPU是主動(dòng)的,不會(huì)產(chǎn)生重疊錯(cuò)誤。是主動(dòng)的,不會(huì)產(chǎn)生重疊錯(cuò)誤。 7.2.1 7.2.1 80C51串行口的結(jié)構(gòu)串行口的結(jié)構(gòu) 8051系列單片機(jī)有一個(gè)全雙工的串行口,可以實(shí)現(xiàn)異步串系列單片機(jī)有一個(gè)全雙工的串行口,可以實(shí)現(xiàn)異步串行通信。也可用做同步移位寄存器。行通信。也可用做同步移位寄存器。. SCON 是一個(gè)特殊功能寄存器,用以設(shè)定串行口的工是一個(gè)特殊功能寄存器,用以設(shè)定串行口的工作方式、接收作方式、接收/發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志:發(fā)送控制以及設(shè)置狀態(tài)標(biāo)志: 7.2.2 7.2.2 80C51串行口的控制寄存器串行口的控制寄存器 SM0和和SM1為工作方式選擇位,
8、可選擇四種工作方式:為工作方式選擇位,可選擇四種工作方式: .TB8,在方式,在方式2或方式或方式3中,是發(fā)送數(shù)據(jù)的第九位中,是發(fā)送數(shù)據(jù)的第九位,可以用軟件規(guī)定其作用。可以用作數(shù)據(jù)的奇偶校驗(yàn)可以用軟件規(guī)定其作用。可以用作數(shù)據(jù)的奇偶校驗(yàn)位,或在多機(jī)通信中,作為地址幀位,或在多機(jī)通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位。數(shù)據(jù)幀的標(biāo)志位。在方式在方式0和方式和方式1中,該位未用。中,該位未用。RB8,在方式,在方式2或方式或方式3中,是接收到數(shù)據(jù)的第中,是接收到數(shù)據(jù)的第9位位,可作為奇偶校驗(yàn)位或地址幀可作為奇偶校驗(yàn)位或地址幀/數(shù)據(jù)幀的標(biāo)志位。數(shù)據(jù)幀的標(biāo)志位。在方在方式式1時(shí),接收到的是停止位時(shí),接收到的是
9、停止位。l REN,允許串行接收位。由軟件置,允許串行接收位。由軟件置REN=1,則啟,則啟動(dòng)串行口接收數(shù)據(jù);若軟件置動(dòng)串行口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。,則禁止接收。.SM2,方式方式2和方式和方式3中中多機(jī)通信允許控制位多機(jī)通信允許控制位 方式方式0時(shí),時(shí),SM2=0; 方式方式1時(shí),時(shí),SM2=1,只有接收到有效停止位時(shí),只有接收到有效停止位時(shí),RI才置才置1, SM2=0,停止位為,停止位為0或或1, RI都置都置1; 方式方式2和方式和方式3時(shí),當(dāng)時(shí),當(dāng)SM2=1,如果接收到的第如果接收到的第9位位數(shù)據(jù)數(shù)據(jù)RB80,則,則RI清清0,如果接收到的第,如果接收到的第9位數(shù)
10、據(jù)位數(shù)據(jù)RB81,則,則RI置置1,即由,即由RB8控制是否激活控制是否激活RI。當(dāng)。當(dāng)SM2=0時(shí),不論收到的時(shí),不論收到的RB8為為0和和1,均可以使收到的數(shù)據(jù)進(jìn)入,均可以使收到的數(shù)據(jù)進(jìn)入SBUF,并激活,并激活RI(即此時(shí)(即此時(shí)RB8不具有控制不具有控制RI激活的功激活的功能)。通過控制能)。通過控制SM2,可以實(shí)現(xiàn)多機(jī)通信。,可以實(shí)現(xiàn)多機(jī)通信。.TI,發(fā)送中斷標(biāo)志位,發(fā)送中斷標(biāo)志位。在方式。在方式0時(shí),當(dāng)串行時(shí),當(dāng)串行發(fā)送第發(fā)送第8位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行發(fā)送停止位的開始時(shí),由內(nèi)部硬件使行發(fā)送停止位的開始時(shí),由內(nèi)部硬件使TI置置1,向向CPU發(fā)中
11、斷申請(qǐng)。在中斷服務(wù)程序中,必發(fā)中斷申請(qǐng)。在中斷服務(wù)程序中,必須用軟件將其清須用軟件將其清0,取消此中斷申請(qǐng)。,取消此中斷申請(qǐng)。RI,接收中斷標(biāo)志位,接收中斷標(biāo)志位。在方式。在方式0時(shí),當(dāng)串時(shí),當(dāng)串行接收第行接收第8位數(shù)據(jù)結(jié)束時(shí),或在其它方式,位數(shù)據(jù)結(jié)束時(shí),或在其它方式,串行接收停止位的中間時(shí),由內(nèi)部硬件使串行接收停止位的中間時(shí),由內(nèi)部硬件使RI置置1,向,向CPU發(fā)中斷申請(qǐng)。也必須在中斷服發(fā)中斷申請(qǐng)。也必須在中斷服務(wù)程序中,用軟件將其清務(wù)程序中,用軟件將其清0,取消此中斷申,取消此中斷申請(qǐng)。請(qǐng)。.PCON中只有一位中只有一位SMOD與串行口工作有關(guān)與串行口工作有關(guān) : SMOD()() 波特率
12、倍增位。在串行口方式波特率倍增位。在串行口方式1、方式方式2、方式、方式3時(shí),波特率與時(shí),波特率與SMOD有關(guān),當(dāng)有關(guān),當(dāng)SMOD=1時(shí),波特率提高一倍。復(fù)位時(shí),時(shí),波特率提高一倍。復(fù)位時(shí),SMOD=0。. 7.2.3 7.2.3 80C51串行口的工作方式串行口的工作方式 一、一、方式方式0 方式方式0時(shí),串行口為同步移位寄存器的輸入輸時(shí),串行口為同步移位寄存器的輸入輸出方式。主要用于擴(kuò)展出方式。主要用于擴(kuò)展I/O口。串行數(shù)據(jù)由口。串行數(shù)據(jù)由RXD()()引腳輸入或輸出,同步移位脈沖由引腳輸入或輸出,同步移位脈沖由TXD()引腳輸()引腳輸出,作為外接部件的同步信號(hào)。發(fā)送和接收均為出,作為外
13、接部件的同步信號(hào)。發(fā)送和接收均為8位數(shù)據(jù),低位在先,高位在后。波特率固定為位數(shù)據(jù),低位在先,高位在后。波特率固定為fosc/12。 用的少。用的少。. 二、方式二、方式1 方式方式1是是10位通用異步串行接口。位通用異步串行接口。TXD為數(shù)據(jù)發(fā)為數(shù)據(jù)發(fā)送引腳,送引腳,RXD為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式為數(shù)據(jù)接收引腳,傳送一幀數(shù)據(jù)的格式如圖所示。其中如圖所示。其中1位起始位,位起始位,8位數(shù)據(jù)位,位數(shù)據(jù)位,1位停止位。位停止位。 此方式的傳送波特率可調(diào)。此方式的傳送波特率可調(diào)。.1、方式、方式1發(fā)送發(fā)送 當(dāng)執(zhí)行數(shù)據(jù)寫入發(fā)送緩沖器當(dāng)執(zhí)行數(shù)據(jù)寫入發(fā)送緩沖器SBUF的命令時(shí),將的命令時(shí),將1寫入
14、發(fā)寫入發(fā)送移位寄存器的第送移位寄存器的第9位,并通知發(fā)送控制器有發(fā)送請(qǐng)求,就啟位,并通知發(fā)送控制器有發(fā)送請(qǐng)求,就啟動(dòng)發(fā)送器開始發(fā)送。發(fā)送移位時(shí)鐘由定時(shí)器動(dòng)發(fā)送器開始發(fā)送。發(fā)送移位時(shí)鐘由定時(shí)器T1送來的溢出信送來的溢出信號(hào)經(jīng)號(hào)經(jīng)16分頻或分頻或32分頻而取得。該移位時(shí)鐘就是發(fā)送波特率。分頻而取得。該移位時(shí)鐘就是發(fā)送波特率。T1的溢出率可設(shè)置,所以波特率是可變的。發(fā)送開始時(shí)將起的溢出率可設(shè)置,所以波特率是可變的。發(fā)送開始時(shí)將起始位向始位向TXD輸出,此后每過一個(gè)移位時(shí)鐘周期送出一位數(shù)據(jù)輸出,此后每過一個(gè)移位時(shí)鐘周期送出一位數(shù)據(jù)位,位,8位數(shù)據(jù)全部發(fā)送完后,置位數(shù)據(jù)全部發(fā)送完后,置TI位,申請(qǐng)中斷,
15、并置位,申請(qǐng)中斷,并置TXD為為1作為停止位。作為停止位。. 2、方式、方式1接收接收 用軟件置用軟件置SCON寄存器的寄存器的REN為為1的前提下,接收端在每個(gè)采的前提下,接收端在每個(gè)采樣周期對(duì)樣周期對(duì)RXD引腳采樣,若引腳為高電平,即發(fā)送端未發(fā)送數(shù)據(jù),引腳采樣,若引腳為高電平,即發(fā)送端未發(fā)送數(shù)據(jù),接收端什么也不干。若采樣到接收端什么也不干。若采樣到RXD引腳輸入電平發(fā)生負(fù)跳變時(shí),引腳輸入電平發(fā)生負(fù)跳變時(shí),立即啟動(dòng)一次接收,同時(shí)復(fù)位立即啟動(dòng)一次接收,同時(shí)復(fù)位16分頻計(jì)數(shù)器,使輸入位的邊沿與分頻計(jì)數(shù)器,使輸入位的邊沿與時(shí)鐘對(duì)齊,并將時(shí)鐘對(duì)齊,并將1FF寫入接收移位寄存器,使波特率發(fā)生器從當(dāng)寫入
16、接收移位寄存器,使波特率發(fā)生器從當(dāng)前采樣脈沖開始每隔前采樣脈沖開始每隔16個(gè)采樣脈沖產(chǎn)生一個(gè)移位脈沖,每個(gè)移位個(gè)采樣脈沖產(chǎn)生一個(gè)移位脈沖,每個(gè)移位脈沖到來,接收端將接收移位寄存器左移一位,原來寫入的脈沖到來,接收端將接收移位寄存器左移一位,原來寫入的1從從左邊移出,且將引腳左邊移出,且將引腳RXD上的狀態(tài)移入移位寄存器。當(dāng)起始位移上的狀態(tài)移入移位寄存器。當(dāng)起始位移到最左邊時(shí),接收控制器將控制進(jìn)行最后一次移位,若該位為到最左邊時(shí),接收控制器將控制進(jìn)行最后一次移位,若該位為1,把接收到第把接收到第9位數(shù)據(jù)送到接收位數(shù)據(jù)送到接收SBUF和和RB8,且置位,且置位RI,若為,若為0,則則S M2=0時(shí)
17、,把接收到第時(shí),把接收到第9位數(shù)據(jù)送到接收位數(shù)據(jù)送到接收SBUF和和RB8,且置,且置位位RI,若,若SM2=1,接收到的第,接收到的第9位為位為0,不申請(qǐng)中斷(,不申請(qǐng)中斷(RI=0),表),表明傳送產(chǎn)生誤差,可采取糾錯(cuò)方法進(jìn)行重發(fā),第明傳送產(chǎn)生誤差,可采取糾錯(cuò)方法進(jìn)行重發(fā),第9位為位為1,則表明,則表明一個(gè)數(shù)據(jù)的接收過程結(jié)束,接收端為接收下一個(gè)數(shù)據(jù)做準(zhǔn)備。這一個(gè)數(shù)據(jù)的接收過程結(jié)束,接收端為接收下一個(gè)數(shù)據(jù)做準(zhǔn)備。這個(gè)過程包括:將移位寄存器中的數(shù)據(jù)送入輸入緩沖器,向個(gè)過程包括:將移位寄存器中的數(shù)據(jù)送入輸入緩沖器,向CPU申申請(qǐng)中斷,輸入端又在采樣脈沖的控制下不斷采樣引腳請(qǐng)中斷,輸入端又在采樣脈
18、沖的控制下不斷采樣引腳RXD。.為接收準(zhǔn)確無誤,在正式接收數(shù)據(jù)之前,還必須判斷起始位是否由干擾引起為接收準(zhǔn)確無誤,在正式接收數(shù)據(jù)之前,還必須判斷起始位是否由干擾引起的。在這位中間,即移位數(shù)據(jù)采樣的。在這位中間,即移位數(shù)據(jù)采樣16次,對(duì)第次,對(duì)第7、8及及9次連續(xù)值中,取其中兩次連續(xù)值中,取其中兩次相等的值作為該位值。這樣能較好的消除干擾的影響,當(dāng)確認(rèn)是真正的起次相等的值作為該位值。這樣能較好的消除干擾的影響,當(dāng)確認(rèn)是真正的起始位后,就開始接收一幀數(shù)據(jù)。當(dāng)一幀數(shù)據(jù)接收完畢后,必須滿足兩個(gè)條件,始位后,就開始接收一幀數(shù)據(jù)。當(dāng)一幀數(shù)據(jù)接收完畢后,必須滿足兩個(gè)條件,這次接收才真正有效。即:這次接收才真
19、正有效。即:RI=0(即上一幀數(shù)據(jù)接收完成時(shí),即上一幀數(shù)據(jù)接收完成時(shí),RI發(fā)出的中斷請(qǐng)發(fā)出的中斷請(qǐng)求已被響應(yīng),求已被響應(yīng),SBUF中的數(shù)據(jù)已被取走。由軟件使中的數(shù)據(jù)已被取走。由軟件使RI=0,以便提供,以便提供“接收接收SBUF已空的信息已空的信息);SM2=0(或接收到的停止位為(或接收到的停止位為1)時(shí),將接收到的前)時(shí),將接收到的前8位位數(shù)據(jù)裝入接收數(shù)據(jù)裝入接收SBUF,第,第9位(停止位)進(jìn)入位(停止位)進(jìn)入RB8,并置,并置RI=1,向,向CPU請(qǐng)求中請(qǐng)求中斷。如果上述條件不滿足,則該幀丟失。斷。如果上述條件不滿足,則該幀丟失。. 三、方式三、方式2和方式和方式3 方式方式2或方式或
20、方式3時(shí)為時(shí)為11位數(shù)據(jù)的異步通信口。位數(shù)據(jù)的異步通信口。TXD為數(shù)據(jù)發(fā)為數(shù)據(jù)發(fā)送引腳,送引腳,RXD為數(shù)據(jù)接收引腳為數(shù)據(jù)接收引腳 。 方式方式2和方式和方式3每幀均為每幀均為11位,位, 1位起始位,位起始位, 8位數(shù)據(jù)位,位數(shù)據(jù)位,一位可編程的第一位可編程的第9位(發(fā)送時(shí)軟件設(shè)置為位(發(fā)送時(shí)軟件設(shè)置為SCON中的中的TB8位,位,接收時(shí)進(jìn)入接收時(shí)進(jìn)入SCON中的中的RB8位),位), 1位停止位。位停止位。方式方式2的波特的波特率固定為晶振頻率的率固定為晶振頻率的1/64或或1/32,方式,方式3的波特率由定時(shí)器的波特率由定時(shí)器T1的溢出率決定。的溢出率決定。 . 1、方式、方式2和方式和
21、方式3發(fā)送發(fā)送發(fā)送前,先根據(jù)用戶約定的通信協(xié)議由軟件設(shè)置發(fā)送前,先根據(jù)用戶約定的通信協(xié)議由軟件設(shè)置TB8的值,的值,然后把要發(fā)送的數(shù)據(jù)寫入然后把要發(fā)送的數(shù)據(jù)寫入SBUF啟動(dòng)發(fā)送過程,先把起始位啟動(dòng)發(fā)送過程,先把起始位0輸出到輸出到TXD引腳,然后發(fā)送移位寄存器的輸出位(引腳,然后發(fā)送移位寄存器的輸出位(D0)到)到TXD引腳。每一個(gè)移位脈沖都使輸出移位寄存器的各位右移引腳。每一個(gè)移位脈沖都使輸出移位寄存器的各位右移一位,并由一位,并由TXD引腳輸出。引腳輸出。 第一次移位時(shí),停止位第一次移位時(shí),停止位“1”移入輸出移位寄存器的第移入輸出移位寄存器的第9位位上上 ,以后每次移位,左邊都移入,以后
22、每次移位,左邊都移入0。當(dāng)停止位移至輸出位時(shí),。當(dāng)停止位移至輸出位時(shí),左邊其余位全為左邊其余位全為0,檢測(cè)電路檢測(cè)到這一條件時(shí),使控制電,檢測(cè)電路檢測(cè)到這一條件時(shí),使控制電路進(jìn)行最后一次移位,并置路進(jìn)行最后一次移位,并置TI=1,向,向CPU請(qǐng)求中斷。請(qǐng)求中斷。 . 2、方式、方式2和方式和方式3接收接收 接收時(shí),先置位接收時(shí),先置位SCON的的REN位,允許串口接收。位,允許串口接收。當(dāng)檢測(cè)到當(dāng)檢測(cè)到RXD端有負(fù)跳變時(shí),使數(shù)據(jù)從右邊移入移位端有負(fù)跳變時(shí),使數(shù)據(jù)從右邊移入移位寄存器,在起始位寄存器,在起始位0移到最左邊時(shí),控制電路進(jìn)行最移到最左邊時(shí),控制電路進(jìn)行最后一次移位。當(dāng)后一次移位。當(dāng)R
23、I=0,且,且SM2=0(或接收到的第(或接收到的第9位位數(shù)據(jù)為數(shù)據(jù)為1)時(shí),接收到的數(shù)據(jù)裝入接收緩沖器)時(shí),接收到的數(shù)據(jù)裝入接收緩沖器SBUF和和RB8(接收數(shù)據(jù)的第(接收數(shù)據(jù)的第9位),置位),置RI=1,向,向CPU請(qǐng)求中請(qǐng)求中斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位斷。如果條件不滿足,則數(shù)據(jù)丟失,且不置位RI,繼,繼續(xù)搜索續(xù)搜索RXD引腳的負(fù)跳變。引腳的負(fù)跳變。.四、波特率的計(jì)算四、波特率的計(jì)算 在串行通信中,收發(fā)雙方對(duì)發(fā)送或接收數(shù)在串行通信中,收發(fā)雙方對(duì)發(fā)送或接收數(shù)據(jù)的速率要有約定。其中方式據(jù)的速率要有約定。其中方式0和方式和方式2的波的波特率是固定的,方式特率是固定的,方式1和方式
24、和方式3的波特率是可的波特率是可變的,由定時(shí)器變的,由定時(shí)器T1的溢出率來決定。的溢出率來決定。 方式方式0中移位脈沖由中移位脈沖由CPU時(shí)鐘(機(jī)器周期)時(shí)鐘(機(jī)器周期)給出,每個(gè)機(jī)器周期產(chǎn)生一個(gè)移位脈沖,發(fā)給出,每個(gè)機(jī)器周期產(chǎn)生一個(gè)移位脈沖,發(fā)送或接收一位數(shù)據(jù)。送或接收一位數(shù)據(jù)。 波特率波特率 = fosc/12 方式方式2的波特率的波特率 =(2SMOD/64) fosc .方式方式1和方式和方式3的波特率由定時(shí)器的波特率由定時(shí)器T1的溢出率與的溢出率與SMOD值確定。值確定。 v方式方式1的波特率的波特率 =(2SMOD/32)(T1溢出率)溢出率)v方式方式3的波特率的波特率 =(2S
25、MOD/32)(T1溢出率)溢出率) T1溢出率取決于溢出率取決于T1的工作方式、時(shí)鐘頻率和的工作方式、時(shí)鐘頻率和TI預(yù)預(yù)置值,定時(shí)器置值,定時(shí)器T1作波特率發(fā)生器使用時(shí),通常選用定作波特率發(fā)生器使用時(shí),通常選用定時(shí)器(對(duì)內(nèi)部機(jī)器周期計(jì)數(shù))模式時(shí)器(對(duì)內(nèi)部機(jī)器周期計(jì)數(shù))模式2,即自動(dòng)重裝在,即自動(dòng)重裝在方式,另外要禁止方式,另外要禁止TI中斷,以免中斷,以免T1溢出時(shí)產(chǎn)生不必要溢出時(shí)產(chǎn)生不必要的中斷。的中斷。v方式方式1和方式和方式3的波特率的波特率 =(2SMOD fosc /32 12 (2n-初值初值).在單片機(jī)的應(yīng)用中,常用的晶振頻率為:在單片機(jī)的應(yīng)用中,常用的晶振頻率為:12MHz和
26、。和。所以,選用的波特率也相對(duì)固定。常用的串行口波所以,選用的波特率也相對(duì)固定。常用的串行口波特率以及各參數(shù)的關(guān)系如表所示。特率以及各參數(shù)的關(guān)系如表所示。. 串行口工作之前,應(yīng)對(duì)其進(jìn)行初始化,主串行口工作之前,應(yīng)對(duì)其進(jìn)行初始化,主要是設(shè)置產(chǎn)生波特率的定時(shí)器要是設(shè)置產(chǎn)生波特率的定時(shí)器1、串行口控、串行口控制和中斷控制。具體步驟如下:制和中斷控制。具體步驟如下:v確定確定T1的工作方式的工作方式(編程(編程TMOD寄存器);寄存器);v計(jì)算計(jì)算T1的初值的初值,裝載,裝載TH1、TL1;v啟動(dòng)啟動(dòng)T1(編程(編程TCON中的中的TR1位);位);v確定確定串行口控制串行口控制(編程(編程SCON寄
27、存器);寄存器);串行口在中斷方式工作時(shí),要進(jìn)行中斷設(shè)置串行口在中斷方式工作時(shí),要進(jìn)行中斷設(shè)置(編程(編程IE、IP寄存器)。寄存器)。.7.3 單片機(jī)串行口應(yīng)用舉例單片機(jī)串行口應(yīng)用舉例 在計(jì)算機(jī)分布式測(cè)控系統(tǒng)中,經(jīng)常要利用在計(jì)算機(jī)分布式測(cè)控系統(tǒng)中,經(jīng)常要利用串行通信方式進(jìn)行數(shù)據(jù)傳輸。串行通信方式進(jìn)行數(shù)據(jù)傳輸。80C51單片機(jī)的單片機(jī)的串行口為計(jì)算機(jī)間的通信提供了極為便利的條串行口為計(jì)算機(jī)間的通信提供了極為便利的條件。件。例:?jiǎn)纹瑱C(jī)例:?jiǎn)纹瑱C(jī)1內(nèi)部?jī)?nèi)部RAM20H-23H中有中有4個(gè)數(shù)據(jù)個(gè)數(shù)據(jù)要發(fā)給單片機(jī)要發(fā)給單片機(jī)2,單片機(jī)單片機(jī)2接收到后存入其內(nèi)部接收到后存入其內(nèi)部RAM的的33H-36H
28、中。晶振都為中。晶振都為6M,要求用要求用4800bps通信,收發(fā)雙方都采用串口方式通信,收發(fā)雙方都采用串口方式1.單片機(jī)間的通信單片機(jī)間的通信 1、硬件連接、硬件連接 TXD8051RXDTXD8051RXDVCCVCCVSSVSS 兩個(gè)單片機(jī)的接收端都接兩個(gè)單片機(jī)的接收端都接一個(gè)上拉電阻,以保證單片機(jī)一個(gè)上拉電阻,以保證單片機(jī)上電后串口檢測(cè)機(jī)構(gòu)在該接收上電后串口檢測(cè)機(jī)構(gòu)在該接收端上檢測(cè)到的信號(hào)為空閑狀態(tài)。端上檢測(cè)到的信號(hào)為空閑狀態(tài)。 由于兩個(gè)系統(tǒng)上電后各自由于兩個(gè)系統(tǒng)上電后各自都需要初始化,事先無法預(yù)料都需要初始化,事先無法預(yù)料哪個(gè)系統(tǒng)先初始化好,所以發(fā)哪個(gè)系統(tǒng)先初始化好,所以發(fā)送端在發(fā)送
29、數(shù)據(jù)之前應(yīng)先發(fā)送送端在發(fā)送數(shù)據(jù)之前應(yīng)先發(fā)送一個(gè)聯(lián)絡(luò)信號(hào)詢問接收端是否一個(gè)聯(lián)絡(luò)信號(hào)詢問接收端是否準(zhǔn)備好。假如發(fā)送準(zhǔn)備好。假如發(fā)送01010101為為詢問信號(hào)。接收端在接收到這詢問信號(hào)。接收端在接收到這個(gè)信號(hào)后也回應(yīng)一個(gè)個(gè)信號(hào)后也回應(yīng)一個(gè)01010101表示接收端準(zhǔn)備好,然后發(fā)送表示接收端準(zhǔn)備好,然后發(fā)送端開始發(fā)送數(shù)據(jù),接收端開始端開始發(fā)送數(shù)據(jù),接收端開始接收數(shù)據(jù)。單片機(jī)接收數(shù)據(jù)。單片機(jī)1中用程序狀中用程序狀態(tài)字態(tài)字PSW中的用戶標(biāo)志位中的用戶標(biāo)志位F0指指示單片機(jī)示單片機(jī)2是否處于準(zhǔn)備好狀態(tài),是否處于準(zhǔn)備好狀態(tài),單片機(jī)單片機(jī)2中用中用F0指示單片機(jī)指示單片機(jī)1送送來的數(shù)據(jù)是查詢信息還是有效來的數(shù)
30、據(jù)是查詢信息還是有效數(shù)據(jù)。數(shù)據(jù)。系統(tǒng)1系統(tǒng)2.2、程序、程序ORG 0000HLJMP MAINORG 0023H LJMP SUB1MAIN: MOV SCON, #50H; 設(shè)置串口工作方式設(shè)置串口工作方式1,不允許多機(jī)通信,允許接收,不允許多機(jī)通信,允許接收,TB,RB方式方式1 ;中未用;串口發(fā)送無中斷,接收無請(qǐng)求中未用;串口發(fā)送無中斷,接收無請(qǐng)求 MOV TMOD, #20H;定時(shí)器;定時(shí)器1工作在方式工作在方式2; MOV TL1, #0FDH MOV TH1, #0FDH MOV IE, #90H;打開全局和串口中斷;打開全局和串口中斷 SETB TR1; 啟動(dòng)定時(shí)器啟動(dòng)定時(shí)器1,使波特率發(fā)生器產(chǎn)生移位和采樣脈沖,使波特率發(fā)生器產(chǎn)生移位和采樣脈沖INI: MOV SBUF, #55H;發(fā)送到緩沖器;發(fā)送到緩沖器 MOV R1, #0FFH:為下面循環(huán)設(shè)置循環(huán)次數(shù):為下面循環(huán)設(shè)置循環(huán)次數(shù);延時(shí)應(yīng)大于單片機(jī)延時(shí)應(yīng)大于單片機(jī)1,2串口串口LOOP:NOP ;中斷服務(wù)程序處理時(shí)間之和;中斷服務(wù)程序處理時(shí)間之和 DJNZ R1, LOOP JNB F0, INI ;為;為0接收端為準(zhǔn)備好,否則再發(fā)送詢問信號(hào)接收端為準(zhǔn)備好,否則再發(fā)送詢問信號(hào) MOV R0,#21H; 設(shè)下次發(fā)送的地址指針設(shè)下次發(fā)送的地址指
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 度校企合作合同書(三):人才培養(yǎng)與交流
- 兒童健康食品供應(yīng)合同
- 醫(yī)療中心服務(wù)合同樣本
- 環(huán)保工程項(xiàng)目?jī)?nèi)部承包合同范本
- 北京市全日制用工勞動(dòng)合同模板
- 標(biāo)準(zhǔn)版租賃與購銷合同范本
- 雙方合作經(jīng)營(yíng)合同示范文本
- 城市住宅房屋買賣合同范本
- 文化機(jī)械產(chǎn)品用戶體驗(yàn)評(píng)估方法考核試卷
- 工業(yè)機(jī)器人協(xié)作機(jī)器人技術(shù)考核試卷
- 個(gè)人合伙開店合同范本
- 2024年設(shè)備監(jiān)理師考試題庫及答案參考
- 2025年一次性死亡賠償協(xié)議模板(2篇)
- 第6課 識(shí)別界限 拒絕性騷擾 課件 2024-2025學(xué)年人教版(2024)初中體育與健康七年級(jí)全一冊(cè)
- 【MOOC】《思想道德與法治》(東南大學(xué))章節(jié)中國大學(xué)慕課答案
- 廣州電視塔鋼結(jié)構(gòu)施工方案
- 中山2024年廣東中山市人民政府東區(qū)街道辦事處所屬事業(yè)單位第二期招聘3人筆試歷年典型考點(diǎn)(頻考版試卷)附帶答案詳解
- 小學(xué)二年級(jí)100以內(nèi)進(jìn)退位加減法800道題
- 艾滋病丙肝梅毒
- CNAS-CL01-G001:2024檢測(cè)和校準(zhǔn)實(shí)驗(yàn)室能力認(rèn)可準(zhǔn)則的應(yīng)用要求
- 通信網(wǎng)絡(luò)習(xí)題(附答案)
評(píng)論
0/150
提交評(píng)論