![第6章 89C51的串行口(筆記)_第1頁](http://file4.renrendoc.com/view12/M04/31/26/wKhkGWX8zsSAdmxHAACtg13R7ls411.jpg)
![第6章 89C51的串行口(筆記)_第2頁](http://file4.renrendoc.com/view12/M04/31/26/wKhkGWX8zsSAdmxHAACtg13R7ls4112.jpg)
![第6章 89C51的串行口(筆記)_第3頁](http://file4.renrendoc.com/view12/M04/31/26/wKhkGWX8zsSAdmxHAACtg13R7ls4113.jpg)
![第6章 89C51的串行口(筆記)_第4頁](http://file4.renrendoc.com/view12/M04/31/26/wKhkGWX8zsSAdmxHAACtg13R7ls4114.jpg)
![第6章 89C51的串行口(筆記)_第5頁](http://file4.renrendoc.com/view12/M04/31/26/wKhkGWX8zsSAdmxHAACtg13R7ls4115.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1第6章89C51的串行口
(將單片機的數(shù)據(jù)傳到計算機中)
1內(nèi)容概要:串行口的基本工作原理與串行口有關(guān)的特殊功能寄存器串行口的4種工作方式串行口多機通信的工作原理雙機串行通信的軟件編程。
89C51單片機有一個可編程全雙工的異步通信串行口。全雙工就是兩個單片機之間串行數(shù)據(jù)可同時雙向傳輸。異步通信,就是收、發(fā)雙方使用各自的時鐘控制發(fā)送和接收過程,這樣可省去收、發(fā)雙方的一條同步時鐘信號線,連接簡單且易實現(xiàn)。236.1串行口的結(jié)構(gòu)6.1.1串行口通信概述6.1.289C51內(nèi)部串口結(jié)構(gòu)6.2串行口的工作方式6.2.1方式06.2.2方式16.2.3方式26.2.4方式36.3波特率的制定方法6.4串行口的應(yīng)用和編程6.4.1雙機串行通信的硬件連接6.4.2串行通信設(shè)計需要考慮的問題6.4.3雙機串行通信軟件編程第6章89C51的串行口36.1串行口的結(jié)構(gòu)(一位一位傳送數(shù)據(jù)。)串行通訊:數(shù)據(jù)的各位按時間順序依次在一根傳輸線上傳輸6.1.1
串行通信概述
RD目的TD源011010101、同步通信與異步通信 兩種基本的通信方式:
★
異步通信ASYNC
★
同步通信SYNC4(1)異步通信
兩項約定:
①字符格式
1位起始位,低電平;5-8個數(shù)據(jù)位,(如標(biāo)準(zhǔn)ASCII碼。則為7位);1個奇偶校驗位(作為檢錯用);(只有它可有可無,其余三個必須有。)1,1.5或2個終止位(停止位),高電平。
起始位后面緊跟的是要傳送字符的最低位,每個字符的結(jié)束是一個高電平的終止位,起始位至終止位構(gòu)成一幀。相連兩個字符之間的間隔可以是任意長度的,兩個相鄰字符之間叫空閑位,為高電平。
②波特率(BaudRate)波特率是指單位時間內(nèi)傳送二進制數(shù)據(jù)的位數(shù),以位/秒為單位。<在信號源中這個定義是錯誤的>5
每個數(shù)據(jù)位的傳送時間Td即為波特率的倒數(shù)。
異步通訊常用格式:一個字符幀一幀字符位數(shù)的規(guī)定:數(shù)據(jù)位,校驗位<可選>,起始位和停止位。6例:要求每秒傳送120個字符,每幀為10位。
解:傳送的波特率為:
120×10=1200(位/秒)=1200波特每位的寬度0.83ms
數(shù)據(jù)位傳輸率=120×8(去掉起始位和終止位)=960位/秒例:若某串行異步通信接口設(shè)置為1位奇校驗位,1位終止位,7位數(shù)據(jù)位的工作方式時。寫出發(fā)送字符“9”的幀格式,并畫出數(shù)據(jù)波形圖。發(fā)送字符“9”的幀格式為:0100111011
數(shù)據(jù)波形圖為:7題解:9ASC碼:39H二進制:(39H用7位數(shù)據(jù)位表示)0111001從低到高發(fā)送:0(起始位)100111011(奇校驗位加1,終止位為高位加1)8(2)同步通信(51單片機只有異步通信)在數(shù)據(jù)塊開始處要用同步字符來指明同步傳送速度高于異步傳送速度,可工作在幾十~幾百千波特。要求有時鐘來實現(xiàn)發(fā)送端及接收端之間的同步硬件電路比較復(fù)雜。9
2、串行通信的傳送方向 單工(單方向)、半雙工、全雙工三種:
(1)單工(Simplex)
僅能進行一個方向的傳送。
(2)半雙工(Half-Duplex)
交替地進行雙向數(shù)據(jù)傳送,但兩設(shè)備之間只用一根傳輸線,兩個方向的數(shù)據(jù)傳送不能同時進行。10(3)全雙工(Full-Duplex)
A、B之間有兩條傳輸線,能在兩個方向上同時進行數(shù)據(jù)傳送。
3、信號的調(diào)制與解調(diào)計算機通信傳送的是數(shù)字信號,數(shù)字信號直接進行通信,經(jīng)過傳輸線后必然會產(chǎn)生畸變。在發(fā)送端必需采用調(diào)制器把數(shù)字信號轉(zhuǎn)換為模擬信號,在接收端又必需用解調(diào)器檢出發(fā)送來的模擬信號,恢復(fù)為原來的數(shù)字信號。11
4、異步收發(fā)器UART原理
(1)組成(三部分組成) “接收器”—用來把串行碼轉(zhuǎn)換為并行碼;(串入并出) “發(fā)送器”—用來把并行碼轉(zhuǎn)換為串行碼; “控制器”—用來接收CPU的控制信號,執(zhí)行CPU所要求的操作,并輸出狀態(tài)信息和控制信息。12(2)功能UART的功能是接收異步串行輸入碼并將其轉(zhuǎn)換為CPU所需要的并行碼。將CPU內(nèi)部的并行碼轉(zhuǎn)換為串行碼輸出。UART是用外部時鐘來和接收的數(shù)據(jù)進行同步的。外部時鐘的周期Tc和每個數(shù)據(jù)位的周期Td有以下關(guān)系:
Tc
=Td
/K
K=16
或64(K為波特率因子) 外部時鐘和接收數(shù)據(jù)的同步如圖所示:13
6.1.289C51內(nèi)部串口結(jié)構(gòu)一個可編程的全雙工的異步通信串行口,串行口內(nèi)部結(jié)構(gòu)如圖兩個物理上獨立地接收【讀】和發(fā)送【寫】緩沖器兩個緩沖器共用一個特殊功能寄存器字節(jié)地址:
SBUF(99H)14
兩個控制寄存器:特殊功能寄存器SCON和PCON。
1、串行口控制寄存器SCON
字節(jié)地址98H,可位尋址,格式如圖所示。(1)SM0、SM1——串行口4種工作方式的選擇位SM0SM1
方式
功能說明
00
0
同步移位寄存器方式(用于擴展I/O口)
01
1
8位異步收發(fā),波特率可變(由定時器控制)
10
2
9位異步收發(fā),波特率為fosc/64或fosc/32
11
3
9位異步收發(fā),波特率可變(由定時器控制)15(2)SM2——多機通信控制位
在方式2或方式3接收時:若SM2=1當(dāng)接收到的第9位數(shù)據(jù)(RB8)為“1”時,才將接收到的前8位數(shù)據(jù)送入SBUF,并置“1”RI,產(chǎn)生中斷請求;當(dāng)接收到的第9位數(shù)據(jù)(RB8)為“0”時,則將接收到的前8位數(shù)據(jù)丟棄。若SM2=0
不論第9位數(shù)據(jù)是“1”還是“0”,都將前8位數(shù)據(jù)送入SBUF中,并置“1”RI,產(chǎn)生中斷請求。
方式1時:若SM2=1,則只有收到停止位時才會激活RI(置1)。方式0時:SM2必須為0。16
(3)REN——允許串行接收位
REN=1
允許串行口接收數(shù)據(jù)。
REN=0
禁止串行口接收數(shù)據(jù)。
由軟件置“1”或清“0”。
(4)TB8——發(fā)送的第9位數(shù)據(jù)
方式2和3時,要發(fā)送的第9位數(shù)據(jù)送入TB8,該位可作為
奇偶校驗位使用,也可作為識別地址幀或數(shù)據(jù)幀的標(biāo)志。
(5)RB8——接收到的第9位數(shù)據(jù)
方式2和3時,RB8存放接收到的第9位數(shù)據(jù)。
方式1時,如果SM2=0,RB8是接收到的停止位。
方式0,不使用RB8。17(6)TI——發(fā)送中斷標(biāo)志位
方式0時,串行發(fā)送第8位數(shù)據(jù)結(jié)束時由硬件置“1”,
其它工作方式,串行口發(fā)送停止位的開始時置“1”。
TI=1,表示一幀數(shù)據(jù)發(fā)送結(jié)束,可供軟件查詢,也可申請中斷。CPU響應(yīng)中斷后,向SBUF寫入要發(fā)送的下一幀數(shù)據(jù)。
TI必須由軟件清0。(7)RI——接收中斷標(biāo)志位
方式0時,接收完第8位數(shù)據(jù)時,RI由硬件置1。其它工作方式,串行接收到停止位時,該位置“1”。RI=1,表示一幀數(shù)據(jù)接收完畢,并申請中斷。該位狀態(tài)也可軟件查詢。RI必須由軟件清“0”。18
SMOD:波特率選擇位。
例:方式1的波特率的計算公式為:
方式1波特率=(2SMOD/32)×定時器T1的溢出率(公式很重要)也稱SMOD位為波特率倍增位。2、特殊功能寄存器PCON
字節(jié)地址為87H,沒有位尋址功能。
196.2串行口的工作方式
6.2.1方式0串行口作同步移位寄存器用,串行數(shù)據(jù)通過RXD引腳輸入/輸出,TXD輸出移位時鐘;發(fā)送和接受不能同時進行;發(fā)送或接受均為8位數(shù)據(jù),最低有效位在前,不設(shè)起始位和停止位;波特率固定為fosc/12。常用于外接移位寄存器,以擴展并行I/O口。幀格式如下:
1、方式0發(fā)送
CPU執(zhí)行一條將數(shù)據(jù)寫入SBUF的指令時,產(chǎn)生一個正脈沖,串行口即把SBUF中的8位數(shù)據(jù)以fosc/12的固定波特率從RXD
引腳串行輸出,低位在先。20
TXD(發(fā)送時鐘)引腳輸出同步移位脈沖,發(fā)送完8位數(shù)據(jù)置“1”中斷標(biāo)志位TI。時序如圖所示。21
2、方式0接收REN=1,允許接收數(shù)據(jù)。向串口的SCON寫入控制字(置為方式0,并置“1”REN位,同時RI=0)時,產(chǎn)生一個正脈沖,串行口開始接收數(shù)據(jù)。接收器以fosc/12的固定波特率采樣RXD引腳的數(shù)據(jù)信息,當(dāng)收到8位數(shù)據(jù)時置“1”RI。表示一幀數(shù)據(jù)接收完。TXD為移位脈沖信號輸出端。REN=0,禁止接收時序如下:22方式0下,SCON中的TB8、RB8位沒有用到
發(fā)送或接收完8位數(shù)據(jù)由硬件置“1”TI或RI,CPU響應(yīng)中斷。TI或RI須由用戶軟件清“0”,可用如下指令:
CLRTI ;TI位清“0” CLRRI ;RI位清“0”方式0時,SM2位必須為0。幾點說明:23
6.2.2方式1(必考)
設(shè)置
SM0、SM1=01,為方式1的雙機串行通信方式,一幀數(shù)據(jù)為10位:1個起始位,8個數(shù)據(jù)位,1個停止位。
方式1波特率=(2smod/32)×定時器T1的溢出率幀格式如圖
:TXD腳和RXD腳分別用于發(fā)送和接收數(shù)據(jù)P3.0P3.0P3.1P3.124
1、方式1發(fā)送
方式1輸出,數(shù)據(jù)由TXD輸出,當(dāng)執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器SBUF的指令,就啟動發(fā)送。
發(fā)送開始時,內(nèi)部發(fā)送控制信號變?yōu)橛行?。將起始位向TXD輸出,此后,每經(jīng)過一個TX時鐘周期,便產(chǎn)生一個移位脈沖,并由TXD輸出一個數(shù)據(jù)位,TX時鐘是發(fā)送的波特率。8位數(shù)據(jù)位全部發(fā)送完畢后,(硬件)置“1”TI。方式1發(fā)送數(shù)據(jù)的時序,如圖所示。252、方式1接收數(shù)據(jù)從RXD(P3.0)腳輸入。當(dāng)檢測到起始位的負跳變時,開始接收數(shù)據(jù)。啟動檢測器,以RX時鐘頻率(波特率)的16倍速率采樣RXD腳狀態(tài)(1位RX時鐘脈沖期間,有16個采樣脈沖),接收的值是3次連續(xù)采樣(第7、8、9個脈沖時采樣)中至少兩次相同的值。一幀數(shù)據(jù)接收完,須同時滿足兩個條件,接收才真正有效。⑴RI=0,即上一幀數(shù)據(jù)接收完成時,SBUF中的數(shù)據(jù)已被取走,“接收SBUF”已空。⑵SM2=0或收到的停止位=1(方式1時,停止位已進入RB8
)。26收到的數(shù)據(jù)裝入SBUF和RB8(RB8裝入停止位),且置中斷標(biāo)志RI“1”。若這兩個條件不同時滿足,收到的數(shù)據(jù)將丟失。三次取樣27方式2波特率=(2SMOD/64)×fosc
6.2.3方式29位異步通信接口。一幀數(shù)據(jù)均為11位:1位起始位0,8位數(shù)據(jù)位,1位可程控的第9位數(shù)據(jù)和1位停止位。如圖:1.方式2發(fā)送發(fā)送前,根據(jù)通訊協(xié)議由軟件設(shè)置TB8(例如,雙機通訊時的奇偶校驗位或多機通訊時的地址/數(shù)據(jù)的標(biāo)志位)。波形如圖:28
例7-1:方式2發(fā)送在雙機通訊中的應(yīng)用。雙機通訊中發(fā)送中斷服務(wù)程序,以TB8作為偶校驗位,處理方法為數(shù)據(jù)寫入SBUF之前,先將數(shù)據(jù)的奇偶校驗位寫入TB8,以保證采用偶校驗發(fā)送。PIPTI:PUSH PSWPUSH Acc
SETB RS1CLR RS0
CLR TIMOV A,@R0MOV C,P
MOV TB8,CMOV SBUF,A
INCR0
POPAcc
POPPSW
RETI
現(xiàn)場保護現(xiàn)場恢復(fù)奇偶校驗位292.方式2接收
SM0、SM1=10,且REN=1。數(shù)據(jù)由RXD端輸入,接收11位信息。當(dāng)位檢測到RXD從1到0的負跳變,并判斷起始位有效后,開始收一幀信息。在接收器完第9位數(shù)據(jù)后,需滿足兩個條件,才將接收到的數(shù)據(jù)送入SBUF(接收緩沖器),第9位數(shù)據(jù)送入RB8,并置RI為“1”。方式230
(1)RI=0,意味著接收緩沖器為空。(2)SM2=0或接收到的第9位數(shù)據(jù)位RB8=1時。若不滿足兩個條件,接收的信息將被丟棄。方式2接收數(shù)據(jù)的時序如圖所示。
例7-2:方式2接收在雙機通訊中的應(yīng)用。(考)與例1相對應(yīng)。若第9位數(shù)據(jù)為偶校驗位,在接收程序中作偶校驗處理,設(shè)1組寄存器區(qū)的R0為數(shù)據(jù)緩沖器指針。31PIRI: PUSHPSW PUSHAcc SETBRS0 CLRRS1 CLRRI MOVA,SBUF MOVC,P JNCL1(C為1執(zhí)行) JNBRB8,ERP(C為0執(zhí)行)
AJMPL2L1: JBRB8,ERP L2: MOV@R0,A
INCR0 POPAcc POPPSW AJMPL2ERP:
………
;出錯處理程序段
………
RETIC是A的偶校驗結(jié)果32
方式3波特率
=
(2smod/32
)
定時器T1的溢出率6.2.4方式3
SM0、SM1=11,串口為方式3。波特率可變的9位異步通訊方式,除波特率外,方式3和方式2相同。336.3波特率的設(shè)置串行通信中收、發(fā)雙方發(fā)送或接收的波特率必須一致。方式0和方式2的波特率是固定的;方式1和方式3的波特率是可變的,由T1溢出率確定。定時器的不同工作方式,得到的波特率的范圍不一樣。1、方式0和方式2的波特率(1)方式0時,波特率固定為時鐘頻率fosc的1/12,不受SMOD位值的影響。若fosc
=
12MHz,波特率為1Mbit/s。(2)方式2時,波特率僅與SMOD位的值有關(guān)。方式2波特率
=
fosc
34若fosc
=
12MHz:
SMOD
=
0,波特率
=
187.5kbit/s;
SMOD
=
1,波特率
為375kbit/s。342、方式1和方式3的波特率
波特率
=
定時器T1的溢出率
(1)
T1溢出率和SMOD的值共同決定波特率。實際設(shè)定波特率時,T1常設(shè)置為方式2定時(自動裝初值)??杀苊庖蜍浖匮b初值帶來的定時誤差。設(shè)定時器T1方式2的初值為X,則有:定時器T1的溢出率
=
(2)35將式2代入式1則有:
波特率
=
(3)3536波
特
率foscSMOD位(定時器)方式
初值X62.5kbit/s12MHz12FFH19.2kbit/s11.0592MHz(記)12FDH9.6kbit/s(最常用)11.0592MHz02FDH4.8kbit/s11.0592MHz02FAH2.4kbit/s11.0592MHz02F4H1.2kbit/s11.0592MHz02E8H由上式可見,波特率隨fosc、SMOD和初值X而變化。根據(jù)已知波特率和時鐘頻率fosc來計算T1的初值X。實際使用時,預(yù)先根據(jù)常用的波特率計算初值X列成下表,以供查用。36對上表有兩點需要注意:(1)在使用的時鐘振蕩頻率fosc為12MHz或6MHz時,將初值X和fosc帶入式3中計算出的波特率有一定誤差。消除誤差可采用時鐘頻率11.0592MHz。(2)如果選用很低的波特率,如波特率選為55,可將定時器T1設(shè)置為方式1定時。但在這種情況下,T1溢出時,需在中斷服務(wù)程序中重新裝入初值。中斷響應(yīng)時間和執(zhí)行指令時間會使波特率產(chǎn)生一定的誤差,可用改變初值的方法加以調(diào)整。3737例7-3:
若時鐘頻率為11.0592MHz,選用T1的方式2定時作為波特率發(fā)生器,波特率為2
400bit/s,求初值。設(shè)T1為方式2定時,選SMOD
=
0。將已知條件帶入式3中
波特率
=
=
2400從中解得X
=
244
=
F4H。把F4H裝入TH1和TL1,則T1產(chǎn)生的波特率為2400bit/s。該結(jié)果也可直接從上表中查到。這里時鐘振蕩頻率選為11.0592MHz,就可使初值為整數(shù),從而產(chǎn)生精確的波特率。38386.4串行口的應(yīng)用和編程
利用串行口可實現(xiàn)單片機間的點對點串行通信、多機通信以及單片機與PC機間的單機或多機通信。本節(jié)僅介紹單片機間的雙機串行通信的接口和軟件設(shè)計。
6.4.1雙機串行通信的硬件連接
AT89C51串行口的輸入、輸出均為TTL電平。
抗干擾性差,傳輸距離短,傳輸速率低。
采用標(biāo)準(zhǔn)串行接口,如RS-232、RS-422A、RS-485等。
1.TTL電平通信接口
兩個單片機相距在1.5m之內(nèi),它們的串行口可直接相連,甲機RXD與乙機TXD端相連,乙機RXD與甲機TXD端相連。3939
2.RS-232C雙機通信接口
如果雙機通信距離在1.5~15m之間時,可用RS-232C標(biāo)準(zhǔn)接口實現(xiàn)點對點的雙機通信,接口如圖所示。MAX232A(芯片型號)是美國MAXIM(美信)公司生產(chǎn)的RS-232C雙工發(fā)送器/接收器電路芯片。40P3.1P3.0P3.0P3.140
(記)RS-232C雙機通信接口電路416.4.2串行通信設(shè)計需要考慮的問題(1)確定通信雙方的數(shù)據(jù)傳輸速率。(2)由數(shù)據(jù)傳輸速率確定采用的串行通信接口標(biāo)準(zhǔn)。(3)在通信接口標(biāo)準(zhǔn)允許的范圍內(nèi)確定通信的波特率。為減小波特率的誤差,通常選用11.0592MHz的晶振頻率。(4)根據(jù)任務(wù)需要,確定收發(fā)雙方使用的通信協(xié)議。(5)通信線的選擇,通信線一般選用雙絞線較好,并根據(jù)傳輸?shù)木嚯x選擇纖芯的直徑。如果空間的干擾較多,還要選
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鶴崗貨運考試題目
- 2025年萊蕪貨運資格證安檢考試題
- 小學(xué)二年級數(shù)學(xué)上口算紙
- 2025年濟寧道路客貨運輸從業(yè)資格證b2考試題庫
- 2025年焦作道路運輸從業(yè)人員從業(yè)資格考試
- 電焊工入職合同(2篇)
- 《北魏政治和北方民族大交融》聽課評課記錄2(新部編人教版七年級上冊歷史)
- 2024-2025學(xué)年高中英語Module6TheInternetandTelecommunicationsSectionⅤWriting-正反觀點對比類議論文教案含解析外研版必修1
- 企業(yè)年終工作總結(jié)報告
- 公司人事部門年終工作總結(jié)
- 心理學(xué)基礎(chǔ)知識考試參考題庫500題(含答案)
- 北師大版小學(xué)三年級數(shù)學(xué)下冊全冊教案
- DCMM練習(xí)題練習(xí)試題
- 《工業(yè)化建筑施工階段碳排放計算標(biāo)準(zhǔn)》
- GB/T 33761-2024綠色產(chǎn)品評價通則
- 地下停車場充電樁技術(shù)方案建議書
- 幼兒園設(shè)施設(shè)備安全教育
- 廢舊保溫棉處置合同范例
- 《人工智能簡述》課件
- 《軌道交通工程盾構(gòu)施工技術(shù)》 課件 項目5 盾構(gòu)隧道防水施工
- 2024年數(shù)據(jù)編織價值評估指南白皮書-Aloudata
評論
0/150
提交評論