單片機原理與應用設計張毅剛等編著電子教案第7章_第1頁
單片機原理與應用設計張毅剛等編著電子教案第7章_第2頁
單片機原理與應用設計張毅剛等編著電子教案第7章_第3頁
單片機原理與應用設計張毅剛等編著電子教案第7章_第4頁
單片機原理與應用設計張毅剛等編著電子教案第7章_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第第7 7章章 89C51 89C51的串行口的串行口全雙工全雙工的的異步異步通訊串行口通訊串行口4 4種工作方式種工作方式 , ,波特率由片內定時器波特率由片內定時器/ /計數器控制。計數器控制。 每發(fā)送或接收一幀數據,均可發(fā)出中斷請求。每發(fā)送或接收一幀數據,均可發(fā)出中斷請求。除用于串行通訊,除用于串行通訊,還可用來擴展并行還可用來擴展并行I/OI/O口???。7.1 7.1 串行口的結構串行口的結構串行口內部結構如下圖,串行口內部結構如下圖,兩個物理上獨立地接收和兩個物理上獨立地接收和 發(fā)送緩沖器發(fā)送緩沖器,可同時收、發(fā)數據,可同時收、發(fā)數據( (全雙工全雙工) )。兩個緩沖器兩個緩沖器共用

2、共用一個特殊功能寄存器字節(jié)地址:一個特殊功能寄存器字節(jié)地址:SBUF(99HSBUF(99H) 控制寄存器共兩個:控制寄存器共兩個:特殊功能寄存器特殊功能寄存器SCONSCON和和PCONPCON。7.1.1 7.1.1 串行口控制寄存器串行口控制寄存器SCONSCON 字節(jié)地址字節(jié)地址98H98H,可位尋址,格式如,可位尋址,格式如圖圖7-27-2所示。所示。 (1 1)SM0SM0、SM1SM1串行口串行口4種工作方式的選擇位種工作方式的選擇位 表表7-1 7-1 串行口的串行口的4 4種工作方式種工作方式SM0 SM1 SM0 SM1 方式方式 功功 能能 說說 明明 0 0 0 0 0

3、 0 同步移位寄存器方式(用于擴展同步移位寄存器方式(用于擴展I/OI/O口)口) 0 1 0 1 1 1 8 8位異步收發(fā),波特率可變(由定時器控制)位異步收發(fā),波特率可變(由定時器控制) 1 0 1 0 2 2 9 9位異步收發(fā),波特率為位異步收發(fā),波特率為fosc/64fosc/64或或fosc/32fosc/32 1 1 1 1 3 3 9 9位異步收發(fā),波特率可變(由定時器控制)位異步收發(fā),波特率可變(由定時器控制)(2 2)SM2 SM2 多機通信控制位多機通信控制位 用于方式用于方式2 2或方式或方式3 3中。中。 圖圖7-27-2當串行口以當串行口以方式方式2 2或方式或方式3

4、 3接收接收時,時,如果如果SM2=1SM2=1,只有當接收到的第只有當接收到的第9 9位數據(位數據(RB8RB8)為)為“1”“1”時,才時,才將接收到的前將接收到的前8 8位數據送入位數據送入SBUFSBUF,并置并置“1” RI“1” RI,產生中斷,產生中斷請求;當接收到的第請求;當接收到的第9 9位數據(位數據(RB8RB8)為)為“0”“0”時,則將接收時,則將接收到的前到的前8 8位數據丟棄。位數據丟棄。如果如果SM2=0SM2=0,則不論第,則不論第9 9位數據是位數據是“1”“1”還是還是“0”“0”,都將,都將 前前8 8位數據送入位數據送入SBUFSBUF中,并置中,并

5、置“1” RI“1” RI,產生中斷請求。,產生中斷請求。方式方式1 1時,如果時,如果SM2=1SM2=1,則只有收到停止位時才會激活,則只有收到停止位時才會激活RIRI。方式方式0 0時,時,SM2SM2必須為必須為0 0。 (3 3)RENREN允許串行接收位允許串行接收位 由軟件置由軟件置“1”“1”或清或清“0”“0”。 REN=1 REN=1 允許串行口接收數據。允許串行口接收數據。 REN=0 REN=0 禁止串行口接收數據。禁止串行口接收數據。 (4 4)TB8TB8發(fā)送的第發(fā)送的第9 9位數據位數據方式方式2 2和和3 3時,時,TB8TB8是要發(fā)送的第是要發(fā)送的第9 9位數

6、據,可作為位數據,可作為奇偶校驗位奇偶校驗位使使用,也可作為用,也可作為地址幀地址幀或或數據幀數據幀的標志。的標志。 =1=1為地址幀為地址幀, , =0=0為數據幀為數據幀 (5 5)RB8RB8接收到的第接收到的第9 9位數據位數據方式方式2 2和和3 3時,時,RB8RB8存放接收到的第存放接收到的第9 9位數據。在位數據。在方式方式1 1,如果,如果SM2=0SM2=0,RB8RB8是接收到的停止位。在是接收到的停止位。在方式方式0 0,不使用,不使用RB8RB8。 (6 6)TITI發(fā)送中斷標志位發(fā)送中斷標志位方式方式0 0時時,串行發(fā)送第,串行發(fā)送第8 8位數據結束時由硬件置位數據

7、結束時由硬件置“1”“1”,其它工作方式其它工作方式,串行口發(fā)送停止位的開始時置,串行口發(fā)送停止位的開始時置“1”“1”。TI=1TI=1,表,表示一幀數據發(fā)送結束,可供軟件查詢,也可申請中斷。示一幀數據發(fā)送結束,可供軟件查詢,也可申請中斷。CPUCPU響應中斷后響應中斷后, , 向向SBUFSBUF寫入要發(fā)送的下一幀數據。寫入要發(fā)送的下一幀數據。TITI必須由軟必須由軟件清件清0 0。(7 7)RIRI接收中斷標志位接收中斷標志位 方式方式0 0時時,接收完第,接收完第8 8位數據時,位數據時,RIRI由硬件置由硬件置1 1。其它工作方式其它工作方式,串行接收到停止位時,該位置,串行接收到停

8、止位時,該位置“1”“1”。RI=1RI=1,表,表示一幀數據接收完畢,并申請中斷示一幀數據接收完畢,并申請中斷 。該位狀態(tài)也可軟件查。該位狀態(tài)也可軟件查詢。詢。RIRI必須由軟件清必須由軟件清“0”“0”。7.1.2 7.1.2 特殊功能寄存器特殊功能寄存器PCONPCON 字節(jié)地址為字節(jié)地址為87H87H,沒有位尋址功能。,沒有位尋址功能。 SMODSMOD:波特率選擇位。波特率選擇位。 例如:方式例如:方式1 1的波特率的計算公式為:的波特率的計算公式為: 方式方式1 1波特率波特率= =(2 2SMODSMOD/32/32)定時器)定時器T1T1的溢出率的溢出率也稱也稱SMODSMOD

9、位為位為波特率倍增位波特率倍增位。7.2 7.2 串行口的串行口的4 4種工作方式種工作方式7.2.1 7.2.1 方式方式0 0 同步移位寄存器輸入同步移位寄存器輸入/ /輸出方式輸出方式,常用于外接移位寄存器,以,常用于外接移位寄存器,以擴展并行擴展并行I/OI/O口???。 8 8位數據為一幀,不設起始位和停止位,先發(fā)送或接收最低位數據為一幀,不設起始位和停止位,先發(fā)送或接收最低位。位。波特率固定為波特率固定為fosc/12fosc/12。幀格式如下:。幀格式如下:1 1方式方式0 0發(fā)送發(fā)送 當當CPUCPU執(zhí)行一條將數據寫入發(fā)送緩沖器執(zhí)行一條將數據寫入發(fā)送緩沖器SBUFSBUF的指令時

10、,產生一個的指令時,產生一個正脈沖,串行口即把正脈沖,串行口即把SBUFSBUF中的中的8 8位數據以位數據以fosc/12fosc/12的固定波特的固定波特率從率從RXDRXD引腳串行輸出引腳串行輸出,低位在先,低位在先, ,TXDTXD引腳輸出同步移位脈沖引腳輸出同步移位脈沖,發(fā)送完發(fā)送完8 8位數據置位數據置“1”“1”中斷標志位中斷標志位TITI。時序如。時序如圖圖7-57-5所示。所示。2 2方式方式0 0接收接收 REN=1REN=1,接收數據,接收數據,REN=0REN=0,禁止接收,禁止接收。 REN=1REN=1,允許接收,允許接收。向串口的。向串口的SCONSCON寫入控制

11、字(置為方式寫入控制字(置為方式0 0,并置,并置“1”REN“1”REN位,同時位,同時RI=0RI=0)時,產生一個正脈沖,串行口即開)時,產生一個正脈沖,串行口即開始接收數據。始接收數據。RXDRXD為數據輸入端,為數據輸入端,TXDTXD為移位脈沖信號輸出端為移位脈沖信號輸出端,接收器也以接收器也以fosc/12fosc/12的固定波特率的固定波特率采樣采樣RXDRXD引腳的數據信息,當收引腳的數據信息,當收到到8 8位數據時置位數據時置“1” RI“1” RI。表示一幀數據接收完,時序如下:。表示一幀數據接收完,時序如下:圖圖7-57-5方式方式0 0下,下,SCONSCON中的中的

12、TB8TB8、RB8RB8位沒有用到位沒有用到,發(fā)送或接收完發(fā)送或接收完8 8位數據位數據由硬件置由硬件置“1”TI“1”TI或或RIRI,CPUCPU響應中斷。響應中斷。TITI或或RIRI須由用戶軟件清須由用戶軟件清“0”“0”,可用如下指令:,可用如下指令:CLR TICLR TI;TITI位清位清“0”“0”CLR RI CLR RI ;RIRI位清位清“0”“0”方式方式0 0時,時,SM2SM2位必須為位必須為0 0。圖圖7-67-67.2.2 7.2.2 方式方式1 1 SM0SM0、SM1=01SM1=01方式方式1 1一幀數據一幀數據為為1010位,位,1 1個起始位(個起始

13、位(0 0),),8 8個數據位,個數據位,1 1個停止個停止位(位(1 1),先發(fā)送或接收最低位。幀格式如圖),先發(fā)送或接收最低位。幀格式如圖7-77-7:方式方式1 1波特率波特率= =(2 2SMODSMOD/32/32)定時器定時器T1T1的溢出率的溢出率 SMOD SMOD為為PCONPCON寄存器的最高位的值(寄存器的最高位的值(0 0或或1 1)。)。圖圖7-77-7 1 1方式方式1 1發(fā)送發(fā)送 方式方式1 1輸出,數據由輸出,數據由TXDTXD輸出輸出,一幀信息為一幀信息為1010位位,1 1位起始位位起始位0 0,8 8位數據位(先低位)和位數據位(先低位)和1 1位停位停

14、止位止位1 1。當執(zhí)行一條數據當執(zhí)行一條數據寫發(fā)送緩沖器寫發(fā)送緩沖器SBUFSBUF的指令,就的指令,就啟動發(fā)送啟動發(fā)送。圖中。圖中TXTX時鐘時鐘是發(fā)送的波特率。是發(fā)送的波特率。發(fā)送開始時發(fā)送開始時,內部發(fā)送控制信號變?yōu)橛行?。將起始位向,內部發(fā)送控制信號變?yōu)橛行?。將起始位向TXDTXD輸輸出,此后,每經過一個出,此后,每經過一個TXTX時鐘周期,便產生一個移位脈沖,時鐘周期,便產生一個移位脈沖,并由并由TXDTXD輸出一個數據位。輸出一個數據位。8 8位數據位全部發(fā)送完畢后,置位數據位全部發(fā)送完畢后,置“1” TI“1” TI。方式。方式1 1發(fā)送數據的時序,如發(fā)送數據的時序,如圖圖7-87

15、-8所示。所示。 2 2方式方式1 1接收接收 數據從數據從RXDRXD(P3.0P3.0)腳輸入。當檢測到起始位的負跳變時,開始)腳輸入。當檢測到起始位的負跳變時,開始接收數據。接收數據。定時控制信號有兩種定時控制信號有兩種):):接收移位時鐘接收移位時鐘(RXRX時鐘,頻率和波特時鐘,頻率和波特率相同)和率相同)和位檢測器采樣脈沖位檢測器采樣脈沖(頻率是(頻率是RXRX時鐘的時鐘的1616倍,倍,1 1位數位數據期間,有據期間,有1616個采樣脈沖),當采樣到個采樣脈沖),當采樣到RXDRXD端從端從1 1到到0 0的跳變時的跳變時就啟動檢測器,就啟動檢測器,接收的值是接收的值是3 3次連

16、續(xù)采樣(第次連續(xù)采樣(第7 7、8 8、9 9個脈沖個脈沖圖圖7-87-8時采樣)時采樣)進行進行表決表決以以確認是否是真正的起始位確認是否是真正的起始位(負跳變)的開始。(負跳變)的開始。當一幀數據接收完,須同時滿足兩個條件,接收才真正有效。當一幀數據接收完,須同時滿足兩個條件,接收才真正有效。 RI=0RI=0,即上一幀數據接收完成時,即上一幀數據接收完成時,RI=1RI=1發(fā)出的中斷請求已被發(fā)出的中斷請求已被響應,響應,SBUFSBUF中的數據已被取走,說明中的數據已被取走,說明“接收接收SBUF”SBUF”已空。已空。 SM2=0SM2=0或或收到的停止位收到的停止位=1=1(方式(方

17、式1 1時,停止位已進入時,停止位已進入RB8RB8),),圖圖7-97-9則收到的數據裝入則收到的數據裝入SBUFSBUF和和RB8RB8(RB8RB8裝入停止位),且置裝入停止位),且置“1”“1”中中斷標志斷標志RIRI。若這兩個條件不同時滿足,收到的數據將丟失。若這兩個條件不同時滿足,收到的數據將丟失。7.2.3 7.2.3 方式方式2 29 9位位異步通信接口。異步通信接口。每幀數據均為每幀數據均為1111位位,1 1位起始位位起始位0 0,8 8位數據位數據位(先低位),位(先低位),1 1位可程控的第位可程控的第9 9位數據和位數據和1 1位停止位。幀格位停止位。幀格式如圖式如圖

18、7-107-10。 方式方式2 2波特率波特率= = (2 2SMODSMOD/64/64)foscfosc 圖圖7-107-101 1方式方式2 2發(fā)送發(fā)送發(fā)送前,先根據通訊協議由發(fā)送前,先根據通訊協議由軟件設置軟件設置TB8TB8(例如,雙機通訊時的(例如,雙機通訊時的奇偶校驗位或多機通訊時的地址奇偶校驗位或多機通訊時的地址/ /數據的標志位)。數據的標志位)。方式方式2 2發(fā)送數據波形如發(fā)送數據波形如圖圖7-117-11所示。所示。 圖圖7-117-11例例7-17-1 方式方式2 2發(fā)送在雙機通訊中的應用。發(fā)送在雙機通訊中的應用。下面的下面的發(fā)送發(fā)送中斷服務程序,是在雙機通訊中,以中斷

19、服務程序,是在雙機通訊中,以TB8TB8作為奇偶作為奇偶校驗位,處理方法為數據寫入校驗位,處理方法為數據寫入SBUFSBUF之前,先將數據的奇偶校之前,先將數據的奇偶校驗位寫入驗位寫入TB8TB8,以,以保證采用偶校驗發(fā)送保證采用偶校驗發(fā)送。 PIPTIPIPTI: PUSH PSW PUSH PSW ;現場保護;現場保護 PUSH Acc PUSH Acc SETB RS1 SETB RS1 ;選擇第;選擇第2 2組工作寄存器區(qū)組工作寄存器區(qū) CLR RS0 CLR RS0 CLR TI CLR TI ;發(fā)送中斷標志清;發(fā)送中斷標志清“0”“0” MOV A MOV A,R0R0;取數據;取

20、數據 MOV C,P MOV C,P ;校驗位送;校驗位送TB8,TB8,采用偶校驗采用偶校驗 MOV TB8MOV TB8,C C MOV SBUFMOV SBUF,A A ;啟動發(fā)送;啟動發(fā)送 INC R0 INC R0 ;數據指針加;數據指針加1 1 POP Acc POP Acc ;恢復現場;恢復現場 POP PSW POP PSW RETI RETI ;中斷返回;中斷返回2 2方式方式2 2接收接收 SM0SM0、SM1=10SM1=10,且且REN=1REN=1。數據由。數據由RXDRXD端輸入,接收端輸入,接收1111位信息。當位信息。當位檢測到位檢測到RXDRXD從從1 1到到

21、0 0的負跳變,并判斷起始位有效后,開始收的負跳變,并判斷起始位有效后,開始收一幀信息。在接收器完第一幀信息。在接收器完第9 9位數據后,位數據后,需滿足兩個條件需滿足兩個條件,才能,才能將接收到的數據送入將接收到的數據送入SBUFSBUF。(1 1)RI=0RI=0,意味著接收緩沖器為空。,意味著接收緩沖器為空。(2 2)SM2=0SM2=0或或接收到的第接收到的第9 9位數據位位數據位RB8=1RB8=1時時。當上述兩個條件滿足時,接收到的數據送入當上述兩個條件滿足時,接收到的數據送入SBUFSBUF(接收緩沖(接收緩沖器),器),第第9 9位數據送入位數據送入RB8RB8,并置,并置“1

22、”RI“1”RI。若不滿足兩個條。若不滿足兩個條件,接收的信息將被丟棄。件,接收的信息將被丟棄。方式方式2 2接收數據的時序如接收數據的時序如圖圖7-127-12所示。所示。 例例7-27-2 方式方式2 2接收在雙機通訊中的應用。接收在雙機通訊中的應用。圖圖7-127-12本例與上例相對應。若第本例與上例相對應。若第9 9位數據為校驗位,在接收程序中作位數據為校驗位,在接收程序中作偶偶校驗校驗處理,設處理,設1 1組寄存器區(qū)的組寄存器區(qū)的R0R0為數據緩沖器指針。為數據緩沖器指針。 PIRI: PIRI: PUSH PSWPUSH PSW PUSH AccPUSH AccSETB RS0 S

23、ETB RS0 ;選擇;選擇1 1組寄存器區(qū)組寄存器區(qū)CLR RS1CLR RS1CLR RI CLR RI MOV A,SBUF MOV A,SBUF ;收到數據送;收到數據送A AMOV C,PMOV C,PJNC L1JNC L1;C C0 0。跳。跳L1L1JNB RB8,ERP JNB RB8,ERP ;ERPERP為出錯處理程序為出錯處理程序 AJMP L2AJMP L2 L1: L1: JB RB8,ERPJB RB8,ERP;RB8RB81 1,跳,跳ERPERP L2: L2: MOV R0,AMOV R0,A INC R0INC R0 POP AccPOP Acc POP

24、PSWPOP PSW ERP:ERP: ;出錯處理程序段;出錯處理程序段 RETIRETI7.2.4 7.2.4 方式方式3 3SM0SM0、SM1=11SM1=11,串口為方式,串口為方式3 3。波特率可變的波特率可變的9 9位異步通訊方式,位異步通訊方式,除波特率外,方式除波特率外,方式3 3和方式和方式2 2相相同。同。方式方式3 3的時序見方式的時序見方式2 2。 方式方式3 3波特率波特率= =(2 2SMODSMOD/32/32)定時器)定時器T1T1的溢出率的溢出率7.3 7.3 多機通信多機通信要要保證主機與所選擇的從機實現可靠地通信保證主機與所選擇的從機實現可靠地通信,必須保

25、證串口具,必須保證串口具有識別功能。有識別功能。SCONSCON中的中的SM2SM2位位就是滿足這一條件而設置的就是滿足這一條件而設置的多機通信控制位。多機通信控制位。原理:原理:在串行口以方式在串行口以方式2 2(或方式(或方式3 3)接收時,)接收時,若若SM2=1SM2=1,表示置,表示置多機通信功能位,這時有兩種可能:多機通信功能位,這時有兩種可能: (1 1)接收到的第接收到的第9 9位數據為位數據為1 1時時,數據才裝入,數據才裝入SBUFSBUF,并,并置中置中斷標志斷標志RI=1RI=1向向CPUCPU發(fā)出中斷請求;發(fā)出中斷請求; (2 2)接收到的)接收到的第第9 9位數據為

26、位數據為0 0時時,則,則不產生中斷標志不產生中斷標志,信息信息將拋棄將拋棄。若若SM2=0SM2=0,則則接收的第接收的第9 9位數據不論是位數據不論是0 0還是還是1 1,都產生,都產生RI=1RI=1中斷中斷標志,接收到的數據裝入標志,接收到的數據裝入SBUFSBUF中。中。上述特性,便可實現上述特性,便可實現89C5189C51的多機通信。的多機通信。 設多機系統中有一主機和設多機系統中有一主機和3 3個個80318031從機,從機,如如圖圖7-137-13。主機主機的的RXDRXD與與從機從機的的TXDTXD相連,相連,主機主機TXDTXD與與從機從機的的RXDRXD端相連。從端相連

27、。從 機地址分別為機地址分別為00H00H、01H01H、02H02H。 圖圖7-137-13多機通信工作過程:多機通信工作過程:(1 1)從機串行口)從機串行口編程為方式編程為方式2 2或方式或方式3 3接收接收,且,且置置“1”SM2“1”SM2和和RENREN位位,使從機只處于多機通訊且接收地址幀的狀態(tài)。,使從機只處于多機通訊且接收地址幀的狀態(tài)。(2 2)主機)主機先將從機地址先將從機地址(即準備接收數據的從機)(即準備接收數據的從機)發(fā)給各從發(fā)給各從機機, , 主機發(fā)出的主機發(fā)出的地址信息地址信息的第的第9 9位為位為1 1,各從機接收到的第各從機接收到的第9 9位信息位信息RB8RB

28、8為為1 1,且,且由于由于SM2=1SM2=1,則置,則置“1” “1” RIRI,各從機響應中斷,執(zhí)行中斷程序。在中斷服務子程序中,各從機響應中斷,執(zhí)行中斷程序。在中斷服務子程序中,判主機送來的地址是否和本機地址相符合判主機送來的地址是否和本機地址相符合,相符則該從機相符則該從機清清“0”SM2“0”SM2位位,準備接收主機的數據或命令;若,準備接收主機的數據或命令;若不符,則保持不符,則保持SM2=1SM2=1狀態(tài)狀態(tài)。(3 3)接著主機發(fā)送數據幀接著主機發(fā)送數據幀,此時各從機串行口接收到,此時各從機串行口接收到 的的RB8=0RB8=0,只有地址相符合的從機系統(即,只有地址相符合的從

29、機系統(即已清已清“0”SM2“0”SM2位位的的從機)從機)才能激活才能激活RIRI,從而進入中斷,在中斷程序中接收主機,從而進入中斷,在中斷程序中接收主機的數據(或命令);的數據(或命令); 其它的從機因其它的從機因SM2SM21 1,又,又RB8=0RB8=0不激活中斷標志不激活中斷標志RIRI,不能進入,不能進入中斷,接收的數據丟失。中斷,接收的數據丟失。圖圖7-137-13所示的多機系統是主從式,由主機控制多機之間的通信,所示的多機系統是主從式,由主機控制多機之間的通信,從機和從機的通訊只能經主機才能實現從機和從機的通訊只能經主機才能實現。7.4 7.4 波特率的制定方法波特率的制定

30、方法方式方式0 0、方式、方式2 2的波特率是的波特率是固定固定的;的;方式方式1 1、方式、方式3 3波特率由波特率由定時定時器器T1T1的溢出率的溢出率來確定。來確定。7.4.1 7.4.1 波特率的定義波特率的定義波特率的波特率的定義定義。對于定時器的不同工作方式,波特率的范圍不一對于定時器的不同工作方式,波特率的范圍不一7.4.2 7.4.2 定時器定時器T1T1產生波特率的計算產生波特率的計算(1 1)方式方式0 0波特率波特率= =時鐘頻率時鐘頻率foscfosc1/121/12,不受,不受SMODSMOD位的值的影位的值的影響。若響。若fosc=12MHzfosc=12MHz,波

31、特率為,波特率為fosc/12fosc/12即即1Mb/s1Mb/s。(2 2)方式方式2 2波特率波特率= =(2 2SMODSMOD/64/64)foscfosc 若若fosc=12MHzfosc=12MHz: : SMOD=0 SMOD=0 波特率波特率=187.5kb/s=187.5kb/s; SMOD=1SMOD=1 波特率波特率=375kb/s=375kb/s (3 3)方式方式1 1或或方式方式3 3時,波特率為:時,波特率為:波特率波特率= =(2 2SMODSMOD/64/64)T1T1的溢出率的溢出率實際設定波特率時,實際設定波特率時,T1T1常設置為常設置為方式方式2 2

32、定時定時(自動裝初值)(自動裝初值)這種這種方式不僅操作方便,也可避免因軟件重裝初值而帶來的方式不僅操作方便,也可避免因軟件重裝初值而帶來的定時定時誤差誤差。實際使用時,為避免煩雜的初值計算,實際使用時,為避免煩雜的初值計算,常用的波特率和初值常用的波特率和初值X X間間的關系列成的關系列成表表7-27-2(P124P124),以供查用。以供查用。表表7-27-2有兩點需要注意:有兩點需要注意:(1) (1) 時鐘振蕩頻率為時鐘振蕩頻率為12MHz12MHz或或6MHz6MHz時,表中初值時,表中初值X X和相應的波特率和相應的波特率之間有一定誤差之間有一定誤差。例如,。例如,FDHFDH的對

33、應的理論值是的對應的理論值是1041610416波特波特(時鐘(時鐘6MHz6MHz)。與)。與96009600波特相差波特相差816816波特波特,消除誤差可以調整時鐘振蕩頻率消除誤差可以調整時鐘振蕩頻率foscfosc實現。例如采用的時鐘振實現。例如采用的時鐘振蕩頻率為蕩頻率為11.0592MHz11.0592MHz。(2) (2) 如果串行通訊選用很低的波特率如果串行通訊選用很低的波特率,例如,波特率選為,例如,波特率選為5555,可將可將T1T1設置為方式設置為方式1 1定時。但在定時。但在T1T1溢出時,需用在中斷服務溢出時,需用在中斷服務程序中重新裝入初值。中斷響應時間和執(zhí)行指令時

34、間會使波程序中重新裝入初值。中斷響應時間和執(zhí)行指令時間會使波特率產生一定的誤差,可用改變初值的方法加以調整。特率產生一定的誤差,可用改變初值的方法加以調整。例例7-37-3 若若80318031單片機的時鐘振蕩頻率為,選用單片機的時鐘振蕩頻率為,選用T1T1為為方式方式2 2定時定時作為波特率發(fā)生器,波特率為作為波特率發(fā)生器,波特率為24002400b/sb/s,求初值。,求初值。 上述結果可直接從表上述結果可直接從表7-27-2中查到。中查到。這里時鐘振蕩頻率選為這里時鐘振蕩頻率選為11.0592 MHz11.0592 MHz,就可使初值為整數,從而,就可使初值為整數,從而產生精確的波特率。

35、產生精確的波特率。7.5 7.5 串行口的編程和應用串行口的編程和應用 介紹介紹89C5189C51之間的雙機串行通信的硬件接口和軟件設計。之間的雙機串行通信的硬件接口和軟件設計。 7.5.1 7.5.1 雙機串行通信硬件接口雙機串行通信硬件接口89C5189C51串行口的為串行口的為TTLTTL電平。這種電平。這種以以TTLTTL電平串行傳輸數據電平串行傳輸數據的方的方式,式,抗干擾性差,傳輸距離短??垢蓴_性差,傳輸距離短。為了為了提高串行通信的可靠性,增大串行通信的距離提高串行通信的可靠性,增大串行通信的距離,一般都采,一般都采用標準串行接口,如用標準串行接口,如RS-232RS-232、

36、RS-422ARS-422A、RS-485RS-485等來實現串等來實現串行通信。行通信。根據根據89C5189C51的雙機通信距離和抗干擾性的要求,可選擇的雙機通信距離和抗干擾性的要求,可選擇TTLTTL電平電平傳輸,或選擇傳輸,或選擇RS-232CRS-232C、RS-422ARS-422A、RS485RS485串行接口進行串行串行接口進行串行數據傳輸。數據傳輸。1 1TTLTTL電平通信接口電平通信接口如果兩個如果兩個89C5189C51單片機相距在單片機相距在幾米之內幾米之內,它們的串行口可直接,它們的串行口可直接相連,從而直接用相連,從而直接用TTLTTL電平傳輸方法來實現雙機通信,

37、接口電平傳輸方法來實現雙機通信,接口電路如電路如圖圖7-147-14所示。所示。圖圖7-147-142 2RS-232CRS-232C雙機通信接口雙機通信接口如果雙機通信距離在如果雙機通信距離在30m30m之內,可利用之內,可利用RS-232CRS-232C標準接口實現點標準接口實現點對點的雙機通信,接口電路如對點的雙機通信,接口電路如圖圖7-157-15所示。圖所示。圖7-157-15中的中的MAX232AMAX232A是美國是美國MAXIMMAXIM公司公司生產的生產的RS-232CRS-232C雙工發(fā)送器雙工發(fā)送器/ /接收器接收器電路芯片電路芯片。圖圖7-157-153 3RS-422

38、ARS-422A雙機通信接口雙機通信接口為了增加通信距離,可以在通信線路上采用光電隔離方法,為了增加通信距離,可以在通信線路上采用光電隔離方法,利用利用RS-422ARS-422A標準進行雙機通信,最大傳輸距離標準進行雙機通信,最大傳輸距離可達可達1000m1000m左右,其接口電路如左右,其接口電路如圖圖7-167-16所示。所示。圖圖7-167-16中的中的SN75174SN75174、SN75175SN75175是是TTLTTL電平到電平到RS-232RS-232電平與電平與RS-RS-232232電平到電平到TTLTTL電平的電平轉換芯片。電平的電平轉換芯片。圖圖7-167-164 4

39、RS-485RS-485雙機通信接口雙機通信接口RS-422ARS-422A雙機通信需四芯傳輸線,這對長距離通信很不經濟,雙機通信需四芯傳輸線,這對長距離通信很不經濟,故在工業(yè)現場,通常采用故在工業(yè)現場,通常采用雙絞線傳輸雙絞線傳輸的的RS-485RS-485串行通信接串行通信接口,它很容易實現多機通信。口,它很容易實現多機通信。圖圖7-177-17給出了其給出了其RS-485RS-485雙機雙機通信接口電路,最大傳輸距離可達通信接口電路,最大傳輸距離可達1000m1000m左右。左右。圖圖7-177-177.5.2 7.5.2 雙機串行通信軟件編程雙機串行通信軟件編程4 4種工作方式中的種工

40、作方式中的方式方式0 0是移位寄存器工作方式,主要用于擴是移位寄存器工作方式,主要用于擴展并行展并行I/OI/O用,并不用于串行通信。用,并不用于串行通信。串行口的串行口的方式方式1 13 3是用于串行通信的,下面介紹串行口的方是用于串行通信的,下面介紹串行口的方式式1 13 3的雙機串行通信軟件編程。軟件編程實際上與上面的雙機串行通信軟件編程。軟件編程實際上與上面介紹的各種串行標準的硬件接口電路無關。介紹的各種串行標準的硬件接口電路無關。1 1串行口方式串行口方式1 1應用編程應用編程例例7-47-4 本例采用方式本例采用方式1 1進行雙機串行通信,收、發(fā)雙方均采進行雙機串行通信,收、發(fā)雙方

41、均采用用6MHz6MHz晶振,晶振,波特率為波特率為2400b/s2400b/s,每一幀信息為,每一幀信息為1010位,第位,第0 0位為起始位,第位為起始位,第1 18 8位為數據位,最后位為數據位,最后1 1位為停止位。發(fā)送位為停止位。發(fā)送方把以方把以78H78H、77H77H單元的內容為首地址,以單元的內容為首地址,以76H76H、75H75H單元內單元內容減容減1 1為末地址的數據塊通過串行口發(fā)送給接收方。為末地址的數據塊通過串行口發(fā)送給接收方。發(fā)送方要發(fā)送的數據塊的地址為發(fā)送方要發(fā)送的數據塊的地址為2000H2000H201FH201FH。發(fā)送時先發(fā)送。發(fā)送時先發(fā)送地址幀,再發(fā)送數據

42、幀;地址幀,再發(fā)送數據幀;接收方在接收時使用一個標志位來區(qū)分接收的是地址還是數據,接收方在接收時使用一個標志位來區(qū)分接收的是地址還是數據,然后將其分別存放到指定的單元中。然后將其分別存放到指定的單元中。發(fā)送方可采用查詢方式或中斷方式發(fā)送數據,接收方可采用中發(fā)送方可采用查詢方式或中斷方式發(fā)送數據,接收方可采用中斷或查詢方式接收。下面僅介紹采用中斷方式發(fā)送、接收的斷或查詢方式接收。下面僅介紹采用中斷方式發(fā)送、接收的程序。程序。(1 1)甲機發(fā)送程序)甲機發(fā)送程序 中斷方式的發(fā)送程序如下:中斷方式的發(fā)送程序如下:略略(2 2)乙機接收程序)乙機接收程序 中斷方式的接收程序如下:中斷方式的接收程序如下:略略2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論