單片機(jī)應(yīng)用電子教案第5章 串行口與通信ppt課件_第1頁
單片機(jī)應(yīng)用電子教案第5章 串行口與通信ppt課件_第2頁
單片機(jī)應(yīng)用電子教案第5章 串行口與通信ppt課件_第3頁
單片機(jī)應(yīng)用電子教案第5章 串行口與通信ppt課件_第4頁
單片機(jī)應(yīng)用電子教案第5章 串行口與通信ppt課件_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 本章學(xué)習(xí)目的本章學(xué)習(xí)目的 : 了解并行通訊與串行通訊的含義了解并行通訊與串行通訊的含義 了解波特率的概念,學(xué)會波特率的計(jì)算方法了解波特率的概念,學(xué)會波特率的計(jì)算方法 能按要求正確設(shè)置特殊功能存放器能按要求正確設(shè)置特殊功能存放器SCON和和PCON的的SMOD位位 能區(qū)分串行口的能區(qū)分串行口的4種任務(wù)方式,種任務(wù)方式, 熟習(xí)方式熟習(xí)方式1、方式、方式2、方式、方式3 程序的編制方法程序的編制方法 知道知道RS-232C、RS-422A和和RS485 根本性能根本性能 了解雙機(jī)通訊和多機(jī)通訊的根本過程了解雙機(jī)通訊和多機(jī)通訊的根本過程 能讀懂教材中的控制實(shí)例,學(xué)會編寫同等難度的控制程序能讀懂教材中

2、的控制實(shí)例,學(xué)會編寫同等難度的控制程序5.1串行通訊的根底知識 在實(shí)踐運(yùn)用中,在實(shí)踐運(yùn)用中,80C51單片機(jī)經(jīng)常要與外設(shè)進(jìn)展信息交換;單片機(jī)與單片機(jī)單片機(jī)經(jīng)常要與外設(shè)進(jìn)展信息交換;單片機(jī)與單片機(jī)之間或單片機(jī)與計(jì)算機(jī)之間往往也要交換信息,這些信息交換都可以稱為通訊。之間或單片機(jī)與計(jì)算機(jī)之間往往也要交換信息,這些信息交換都可以稱為通訊。傳送數(shù)據(jù)傳送數(shù)據(jù)1101 0010B時(shí)并行通訊和串行通訊的表示圖。時(shí)并行通訊和串行通訊的表示圖。5.1.1串行通訊的制式串行通訊的制式按照信息傳送的方向,串行通訊可分為按照信息傳送的方向,串行通訊可分為3種制式。種制式。1單工制式單工制式2半雙工制式半雙工制式3全雙

3、工制式全雙工制式 5.1.2串行通訊的方式串行通訊的方式串行通訊有兩種根本的通訊方式:同步通訊與異步通訊。串行通訊有兩種根本的通訊方式:同步通訊與異步通訊。1.異步通訊異步通訊(Asynchronous Communication) 在異步通訊中,數(shù)據(jù)通常是以字符在異步通訊中,數(shù)據(jù)通常是以字符(或字節(jié)或字節(jié))為單位組成為單位組成字符幀傳送的。字符幀由發(fā)送端逐幀發(fā)送,接納端逐幀接納。字符幀傳送的。字符幀由發(fā)送端逐幀發(fā)送,接納端逐幀接納。發(fā)送端和接納端由各自的時(shí)鐘來控制。這兩個(gè)時(shí)鐘源可以彼發(fā)送端和接納端由各自的時(shí)鐘來控制。這兩個(gè)時(shí)鐘源可以彼此獨(dú)立、互不同步。此獨(dú)立、互不同步。 在幀格式中,一個(gè)字符

4、由在幀格式中,一個(gè)字符由4個(gè)部分組成:起始位、二進(jìn)個(gè)部分組成:起始位、二進(jìn)制數(shù)據(jù)位、奇偶校驗(yàn)位和停頓位。以下圖給出了典型的異步制數(shù)據(jù)位、奇偶校驗(yàn)位和停頓位。以下圖給出了典型的異步幀格式。幀格式。 5.1.2串行通訊的方式串行通訊的方式2同步通訊同步通訊Synchronous Communication 同步通訊在發(fā)送一組數(shù)據(jù)時(shí),只在開場用同步通訊在發(fā)送一組數(shù)據(jù)時(shí),只在開場用12個(gè)同步字符作為雙方獲得同步的號令,然后延續(xù)發(fā)個(gè)同步字符作為雙方獲得同步的號令,然后延續(xù)發(fā)送整組數(shù)據(jù)。不像異步通訊那樣將字符一個(gè)一個(gè)地送整組數(shù)據(jù)。不像異步通訊那樣將字符一個(gè)一個(gè)地分開來傳送。格式以下圖所示。分開來傳送。格式

5、以下圖所示。5.1.3串行通訊的傳輸速率串行通訊的傳輸速率 所謂傳輸速率就是指每秒傳輸多少位,傳輸速率也稱波特率所謂傳輸速率就是指每秒傳輸多少位,傳輸速率也稱波特率bps。 假設(shè)數(shù)據(jù)傳送的速率是假設(shè)數(shù)據(jù)傳送的速率是120幀幀/秒,每個(gè)幀包含秒,每個(gè)幀包含10位,那么波特率為位,那么波特率為 10120=1200 bps,于是每位傳送的時(shí)間,于是每位傳送的時(shí)間 T=1/1200=0.833ms 規(guī)范波特率系列為規(guī)范波特率系列為110、300、600、1200、1800、2400、4800、9600和和19200bps。5.1.4調(diào)制解調(diào)器調(diào)制解調(diào)器MODEM 又稱貓又稱貓 在進(jìn)展遠(yuǎn)程異步串行數(shù)據(jù)

6、通訊時(shí),二進(jìn)在進(jìn)展遠(yuǎn)程異步串行數(shù)據(jù)通訊時(shí),二進(jìn)制的數(shù)據(jù)位在傳輸時(shí)會出現(xiàn)畸變,可以利用制的數(shù)據(jù)位在傳輸時(shí)會出現(xiàn)畸變,可以利用調(diào)制解調(diào)器處理這個(gè)問題。調(diào)制解調(diào)器處理這個(gè)問題。 利用調(diào)制解調(diào)器進(jìn)展數(shù)據(jù)遠(yuǎn)間隔串行通利用調(diào)制解調(diào)器進(jìn)展數(shù)據(jù)遠(yuǎn)間隔串行通訊的過程如以下圖所示。訊的過程如以下圖所示。5.2串行口的根本構(gòu)造和任務(wù)方式串行口的根本構(gòu)造和任務(wù)方式 5.2.1串行口的根本組成串行口的根本組成 全雙工的串行通訊口,可同時(shí)接納和發(fā)送。接納和發(fā)送緩沖器SBUF在物理上共用一個(gè)地址99H。發(fā)送緩沖器SBUF只能寫入不能讀出。接納緩沖器SBUF只能讀出不能寫入。5.2.2串行口的特殊功能控制存放器串行口的特殊功

7、能控制存放器 與串行口有關(guān)的特殊功能存放器有與串行口有關(guān)的特殊功能存放器有SBUFSBUF、SCONSCON、PCONPCON,與串行口中斷有關(guān)的特殊功能存放器有,與串行口中斷有關(guān)的特殊功能存放器有IEIE、IP.IP. 1 1串行口發(fā)送串行口發(fā)送/ /接納緩沖器接納緩沖器SBUFSBUF99H99H 2 2串行口控制存放器串行口控制存放器SCONSCON SCON SCON的各位的定義和功能如下:的各位的定義和功能如下:SM0、SM1: 串行口任務(wù)方式選擇位內(nèi)容見5.2.3節(jié)。SM2: 多機(jī)通訊控制位。詳細(xì)用法見5.3.3節(jié)。REN: 串行接納允許位。由軟件置1或清0。軟件置1時(shí),串行口允許

8、接納,清0后制止接納。TB8: 在方式2和方式3中是發(fā)送的第9位數(shù)據(jù)。RB8: 在方式2和方式3中是接納的第9位數(shù)據(jù)。TI: 發(fā)送中斷標(biāo)志位。發(fā)送終了時(shí)由硬件置位。該位必需用軟件清零。RI: 接納中斷標(biāo)志位。終了接納時(shí)由硬件置位。該位必需用軟件清零。 3電源控制存放器電源控制存放器PCON 串行口借用了電源控制存放器串行口借用了電源控制存放器PCONPCON的最高位。的最高位。PCONPCON是是8 8位存放器,字節(jié)地址為位存放器,字節(jié)地址為87H87H,不可進(jìn)展位尋址。它的,不可進(jìn)展位尋址。它的低低4 4位全部用于位全部用于80C51/80C3180C51/80C31子系列單片機(jī)的電源控制。

9、子系列單片機(jī)的電源控制。只需最高位只需最高位SMODSMOD位用于串行口波特率系數(shù)的控制。當(dāng)位用于串行口波特率系數(shù)的控制。當(dāng)SMODSMODl l時(shí),方式時(shí),方式1 1、2 2、3 3的波特率加倍,否那么不加倍。的波特率加倍,否那么不加倍。PCONPCON的格式如下:的格式如下:5.2.3串行口的四種任務(wù)方式串行口的四種任務(wù)方式 80C51單片機(jī)串行口有單片機(jī)串行口有4種任務(wù)方式,用種任務(wù)方式,用特殊功能存放器特殊功能存放器SCON中的中的SM0、 SM1兩位兩位進(jìn)展設(shè)定,見表進(jìn)展設(shè)定,見表5-1。 1特點(diǎn)特點(diǎn) 用于串行用于串行I/O口擴(kuò)展,有固定的波特率,為口擴(kuò)展,有固定的波特率,為fOSC

10、/12。 同步發(fā)送同步發(fā)送/接納功能,由接納功能,由TXD提供移位脈沖,提供移位脈沖,RXD用作數(shù)據(jù)輸入用作數(shù)據(jù)輸入/輸輸出通道。出通道。 發(fā)送接納發(fā)送接納8位數(shù)據(jù),低位在前,高位在后。位數(shù)據(jù),低位在前,高位在后。2發(fā)送操作發(fā)送操作 由指令由指令MOV SBUF,A 啟動發(fā)送操作,發(fā)送時(shí)由啟動發(fā)送操作,發(fā)送時(shí)由TXD輸出移位輸出移位脈沖,脈沖,RXD發(fā)送發(fā)送SBUF中的數(shù)據(jù)。發(fā)送完中的數(shù)據(jù)。發(fā)送完8位數(shù)據(jù)后,位數(shù)據(jù)后,TI自動置自動置1,懇,懇求中斷。要繼續(xù)發(fā)送時(shí),求中斷。要繼續(xù)發(fā)送時(shí),TI必需由指令清必需由指令清0CLR TI。3接納操作接納操作 在在RI=0的前提下,用指令置的前提下,用指

11、令置REN=1,可以啟動一幀數(shù)據(jù)的接納。,可以啟動一幀數(shù)據(jù)的接納。同樣由同樣由TXD輸出移位脈沖,由輸出移位脈沖,由RXD接納串行數(shù)據(jù)。接納完一幀接納串行數(shù)據(jù)。接納完一幀RI自動自動置置1,懇求中斷。想繼續(xù)接納時(shí)要用指令去除,懇求中斷。想繼續(xù)接納時(shí)要用指令去除RI。1 1方式方式0 02 2方式方式1 11特點(diǎn)特點(diǎn) 8位異步串行通訊位異步串行通訊UART接口。接口。 幀構(gòu)造為幀構(gòu)造為10位,包括起始位位,包括起始位0,8位數(shù)據(jù)位,位數(shù)據(jù)位,1位停頓位。位停頓位。 波特率由軟件設(shè)置,由波特率由軟件設(shè)置,由T1 的溢出率決議。的溢出率決議。2發(fā)送操作發(fā)送操作 由指令由指令MOV SBUF,A 啟動

12、啟動A中的數(shù)據(jù)從中的數(shù)據(jù)從TXD端異步發(fā)送。發(fā)端異步發(fā)送。發(fā)送完一幀數(shù)據(jù)后,送完一幀數(shù)據(jù)后,TI自動置自動置1,懇求中斷。要繼續(xù)發(fā)送時(shí),懇求中斷。要繼續(xù)發(fā)送時(shí),TI必需由必需由指令清指令清0CLR TI。3接納操作接納操作 在在RI=0的前提下,用指令置的前提下,用指令置REN=1,啟動一幀數(shù)據(jù)的接納。串,啟動一幀數(shù)據(jù)的接納。串行口采樣行口采樣RXD,當(dāng)采樣到,當(dāng)采樣到1至至0的跳變時(shí),闡明接到串行數(shù)據(jù)的起始位,的跳變時(shí),闡明接到串行數(shù)據(jù)的起始位,開場接納一幀數(shù)據(jù),直到停頓位到來時(shí),把停頓位送到開場接納一幀數(shù)據(jù),直到停頓位到來時(shí),把停頓位送到RB8中,此時(shí)中,此時(shí)RI自動置自動置1,懇求中斷并

13、通知,懇求中斷并通知CPU從從SBUF中取走已接納到的數(shù)據(jù)中取走已接納到的數(shù)據(jù) 。想繼續(xù)接納時(shí)要用指令去除想繼續(xù)接納時(shí)要用指令去除RI。 方式方式2 2和方式和方式3 3具有多機(jī)通訊功能,兩種方式除了具有多機(jī)通訊功能,兩種方式除了波特率設(shè)置不同外,其他功能完全一樣。波特率設(shè)置不同外,其他功能完全一樣。1 1特點(diǎn)特點(diǎn) 8 8位異步串行通訊位異步串行通訊UARTUART接口。幀構(gòu)造為接口。幀構(gòu)造為1111位,包括位,包括起始位起始位0 0,8 8位數(shù)據(jù)位,位數(shù)據(jù)位,1 1位可編程位位可編程位TB8/RB8TB8/RB8,1 1位停頓位停頓位。位。 方式方式2 2的波特率固定,由的波特率固定,由PC

14、ONPCON中的中的SMODSMOD位選擇,當(dāng)位選擇,當(dāng)SMOD=0SMOD=0時(shí),波特率為時(shí),波特率為fOSC/64fOSC/64;當(dāng);當(dāng)SMOD=1SMOD=1時(shí),波特率為時(shí),波特率為fOSC/32fOSC/32;SMODSMOD位形狀用軟件設(shè)置。見表位形狀用軟件設(shè)置。見表5-15-1。3 3方式方式2 2和方式和方式3 32 2發(fā)送操作發(fā)送操作 發(fā)送操作前,用指令定義發(fā)送操作前,用指令定義TB8TB8如作為奇偶校驗(yàn)位如作為奇偶校驗(yàn)位或地址或地址/ /數(shù)據(jù)標(biāo)志位,由指令數(shù)據(jù)標(biāo)志位,由指令MOV SBUFMOV SBUF,A A 將將A A中的中的數(shù)據(jù)送入數(shù)據(jù)送入SBUFSBUF后啟動發(fā)送操

15、作;在發(fā)送操作中,已定義后啟動發(fā)送操作;在發(fā)送操作中,已定義的的TB8TB8位能自動參與待發(fā)送的位能自動參與待發(fā)送的8 8位數(shù)據(jù)之后構(gòu)成第位數(shù)據(jù)之后構(gòu)成第9 9位,位,這樣組成的一幀完好數(shù)據(jù)自動從這樣組成的一幀完好數(shù)據(jù)自動從TXDTXD端異步發(fā)送;發(fā)送端異步發(fā)送;發(fā)送完成后,完成后,TITI自動置自動置1 1,懇求中斷。要繼續(xù)發(fā)送時(shí),懇求中斷。要繼續(xù)發(fā)送時(shí),TITI必必需由指令清需由指令清0 0CLR TICLR TI。 在多機(jī)通訊的發(fā)送操作中,用在多機(jī)通訊的發(fā)送操作中,用TB8TB8作地址作地址/ /數(shù)據(jù)標(biāo)志數(shù)據(jù)標(biāo)志位。位。TB8=1TB8=1,地址幀;,地址幀;TB8=0TB8=0,數(shù)據(jù)幀

16、。,數(shù)據(jù)幀。 3 3方式方式2 2和方式和方式3 33 3接納操作接納操作 在在RI=0RI=0的前提下,用指令置的前提下,用指令置REN=1REN=1,啟動一幀數(shù),啟動一幀數(shù)據(jù)的接納,將接納數(shù)據(jù)的第據(jù)的接納,將接納數(shù)據(jù)的第9 9位送入位送入RB8RB8。該數(shù)據(jù)能否。該數(shù)據(jù)能否接納,要由接納,要由SM2SM2和和RB8RB8的形狀決議:的形狀決議:SM2=0SM2=0時(shí),串行口不看時(shí),串行口不看RB8RB8形狀,無條件接納。形狀,無條件接納。SM2=1SM2=1是多機(jī)通訊方式,接納到的是多機(jī)通訊方式,接納到的RB8RB8是地址是地址/ /數(shù)據(jù)標(biāo)數(shù)據(jù)標(biāo)志位:志位: 假設(shè)假設(shè)RB8=1RB8=1,

17、接納的信息是地址,此時(shí),接納的信息是地址,此時(shí)RIRI自動置自動置1 1,串行口接納發(fā)送來的數(shù)據(jù)。串行口接納發(fā)送來的數(shù)據(jù)。 假設(shè)假設(shè)RB8=0RB8=0,接納的信息是數(shù)據(jù)。對于,接納的信息是數(shù)據(jù)。對于SM2=1SM2=1的從的從機(jī),機(jī),RIRI不置不置1 1,此數(shù)據(jù)喪失;對于,此數(shù)據(jù)喪失;對于SM2=0SM2=0的從機(jī),的從機(jī),SBUFSBUF自動接納發(fā)來的數(shù)據(jù)。自動接納發(fā)來的數(shù)據(jù)。3 3方式方式2 2和方式和方式3 3 80C51 80C51單片機(jī)常與其它單片機(jī)常與其它5151單片機(jī)或單片機(jī)或PCPC機(jī)進(jìn)展串行機(jī)進(jìn)展串行通訊。通訊。 80C51 80C51單片機(jī)串行接口的信號電平為單片機(jī)串行

18、接口的信號電平為TTLTTL類型,抗類型,抗干擾才干差,傳輸間隔短。為了提高串行通訊的可靠干擾才干差,傳輸間隔短。為了提高串行通訊的可靠性,延伸通訊間隔,工程設(shè)計(jì)人員普通采用規(guī)范串行性,延伸通訊間隔,工程設(shè)計(jì)人員普通采用規(guī)范串行接口,如接口,如RS-232CRS-232C、RS-422ARS-422A和和RS-485RS-485等。這三種接口等。這三種接口最初都是由美國電子工業(yè)協(xié)會最初都是由美國電子工業(yè)協(xié)會EIAEIA制定并發(fā)布的。制定并發(fā)布的。5.35.3串行通訊的常用規(guī)范接口串行通訊的常用規(guī)范接口 5.3.1 RS-232C 5.3.1 RS-232C接口接口 RS-232C又稱又稱 EI

19、A RS-232-C是目前是目前PC機(jī)與通訊工機(jī)與通訊工業(yè)中運(yùn)用最廣泛的一種串行接口。圖業(yè)中運(yùn)用最廣泛的一種串行接口。圖5-7是利用是利用RS-232C經(jīng)過經(jīng)過網(wǎng)實(shí)現(xiàn)遠(yuǎn)程通訊的表示圖。網(wǎng)實(shí)現(xiàn)遠(yuǎn)程通訊的表示圖。 圖圖5-7 RS-232C經(jīng)過網(wǎng)實(shí)現(xiàn)遠(yuǎn)程通訊的表示圖經(jīng)過網(wǎng)實(shí)現(xiàn)遠(yuǎn)程通訊的表示圖1 1接口信號接口信號 RS-232C是是EIA在在1969年推出的。全名是年推出的。全名是“數(shù)據(jù)終端設(shè)備數(shù)據(jù)終端設(shè)備DTE如計(jì)算機(jī)和各種終端機(jī)和數(shù)據(jù)通訊設(shè)備如計(jì)算機(jī)和各種終端機(jī)和數(shù)據(jù)通訊設(shè)備DCE如調(diào)如調(diào)制解調(diào)器制解調(diào)器MODEM之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)規(guī)范。之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)規(guī)范。它適宜于

20、數(shù)據(jù)傳輸速率在它適宜于數(shù)據(jù)傳輸速率在020 000bps范圍內(nèi)的通訊。范圍內(nèi)的通訊。 圖圖5-8 RS-232C串口構(gòu)造串口構(gòu)造 目前較為常用的目前較為常用的RS-232C有有9針串口針串口DB9和和25針串口針串口DB25,構(gòu),構(gòu)造分別如圖造分別如圖5-8所示。在保證通訊準(zhǔn)確性的前提下,假設(shè)通訊間隔較近所示。在保證通訊準(zhǔn)確性的前提下,假設(shè)通訊間隔較近 (小于小于12米米),可以用電纜線直接銜接,圖,可以用電纜線直接銜接,圖5-9是這種銜接方式的表示圖;假設(shè)間隔較是這種銜接方式的表示圖;假設(shè)間隔較遠(yuǎn),需附加調(diào)制解調(diào)器遠(yuǎn),需附加調(diào)制解調(diào)器MODEM,見圖,見圖5-7。 圖圖5-9 近程通訊表示圖

21、近程通訊表示圖 實(shí)踐上實(shí)踐上DB25中有許多引腳很少運(yùn)用,在計(jì)算機(jī)與終端通訊中普通只運(yùn)用中有許多引腳很少運(yùn)用,在計(jì)算機(jī)與終端通訊中普通只運(yùn)用3-9條引線。最常用的條引線。最常用的9條引線的信號內(nèi)容見表?xiàng)l引線的信號內(nèi)容見表5-2所示。最為簡單且常用的是三線制所示。最為簡單且常用的是三線制接法,即地、接納數(shù)據(jù)和發(fā)送數(shù)據(jù)三腳相連。傳輸線采用屏蔽雙絞線。如圖接法,即地、接納數(shù)據(jù)和發(fā)送數(shù)據(jù)三腳相連。傳輸線采用屏蔽雙絞線。如圖5-10 所示。所示。 圖圖5-10 RS-232C串口構(gòu)造串口構(gòu)造表表5-2 DB95-2 DB9和和DB25DB25的常用信號腳闡明的常用信號腳闡明 2.2.邏輯電平邏輯電平 R

22、S-232C是早期為促進(jìn)公用網(wǎng)絡(luò)進(jìn)展數(shù)據(jù)通訊而制定的是早期為促進(jìn)公用網(wǎng)絡(luò)進(jìn)展數(shù)據(jù)通訊而制定的規(guī)范。它采用負(fù)邏輯,即規(guī)范。它采用負(fù)邏輯,即-3V-15V規(guī)定為規(guī)定為“1;+3V+15V規(guī)定為規(guī)定為“0;-3V+3V為過渡區(qū),不做定義。為過渡區(qū),不做定義。 3 3電平轉(zhuǎn)換芯片與接口電路電平轉(zhuǎn)換芯片與接口電路 RS232C信號的電平和單片機(jī)串口信號的電平不一致,信號的電平和單片機(jī)串口信號的電平不一致,必需進(jìn)展二者之間的電平轉(zhuǎn)換。常用芯片有必需進(jìn)展二者之間的電平轉(zhuǎn)換。常用芯片有MC1488TTL轉(zhuǎn)換成轉(zhuǎn)換成RS232C信號、信號、MC1489RS232C信號轉(zhuǎn)換成信號轉(zhuǎn)換成TTL等。另一種常用的集成電

23、平轉(zhuǎn)換芯片等。另一種常用的集成電平轉(zhuǎn)換芯片MAX232可以實(shí)可以實(shí)現(xiàn)現(xiàn)RS232CTTL電平的雙向轉(zhuǎn)換,它只運(yùn)用單一的電平的雙向轉(zhuǎn)換,它只運(yùn)用單一的5V電源供電,配接電源供電,配接4個(gè)個(gè)1F電解電容即可完成電解電容即可完成RS232電平與電平與TTL電平之間的轉(zhuǎn)換。其原理圖如圖電平之間的轉(zhuǎn)換。其原理圖如圖5-11所示。轉(zhuǎn)換終了的所示。轉(zhuǎn)換終了的串口信號串口信號TXD、RXD直接和直接和80C51的串行口銜接。的串行口銜接。圖圖5-11 5-11 電平匹配原理圖電平匹配原理圖注:注:1.為提高電路抗干擾才干,為提高電路抗干擾才干,C1C4要用鉭電容要用鉭電容1.0F/16V,且盡,且盡 量接量接

24、近近MAX232; 2. MAX232對噪聲很敏感,在對噪聲很敏感,在VCC與與GND之間加之間加C5=0.1F,起去耦作,起去耦作用用 1 1性能特點(diǎn)性能特點(diǎn) RS-485 RS-485以良好的抗噪聲干擾性,長間隔傳輸特性和多以良好的抗噪聲干擾性,長間隔傳輸特性和多站才干等優(yōu)點(diǎn)成為首選的串行接口。表現(xiàn)為:站才干等優(yōu)點(diǎn)成為首選的串行接口。表現(xiàn)為: 接口信號電平比接口信號電平比RS-232CRS-232C低低1.5V1.5V6V6V,不易損壞,不易損壞接口電路芯片,且該電平與接口電路芯片,且該電平與TTLTTL電平兼容,可方便與電平兼容,可方便與TTL TTL 電電路銜接。路銜接。 RS-485

25、 RS-485傳輸數(shù)據(jù)的速度較快,最高速率到達(dá)傳輸數(shù)據(jù)的速度較快,最高速率到達(dá)10Mbps 10Mbps 。 采用平衡驅(qū)動器和差分接納器的組合,抗共模干擾才采用平衡驅(qū)動器和差分接納器的組合,抗共模干擾才干加強(qiáng),即抗噪聲干擾性能好。干加強(qiáng),即抗噪聲干擾性能好。 最大傳輸間隔規(guī)范值為最大傳輸間隔規(guī)范值為40004000英尺,折合英尺,折合12191219米,實(shí)踐米,實(shí)踐上可達(dá)上可達(dá) 3000 3000米。米。 RS-485 RS-485接口允許在總線上同時(shí)銜接接口允許在總線上同時(shí)銜接3232個(gè)發(fā)送器和個(gè)發(fā)送器和3232個(gè)個(gè)接納器,即具有多站才干,這樣用戶可以利用單一的接納器,即具有多站才干,這樣用

26、戶可以利用單一的RS-RS-485485接口方便地建立起設(shè)備網(wǎng)絡(luò)。接口方便地建立起設(shè)備網(wǎng)絡(luò)。 因因RS-485RS-485接口組成的半雙工網(wǎng)絡(luò)普通只需二根連線,接口組成的半雙工網(wǎng)絡(luò)普通只需二根連線,所以所以RS-485RS-485接口均采用屏蔽雙絞線傳輸。接口均采用屏蔽雙絞線傳輸。RS-485RS-485接口銜接接口銜接器采用器采用DB9DB9的的9 9芯插頭座。與智能終端芯插頭座。與智能終端RS-485RS-485接口采用接口采用DB9DB9孔;與鍵盤銜接的鍵盤接口孔;與鍵盤銜接的鍵盤接口RS-485RS-485采用采用DB9DB9針。針。5.3.2 RS-4855.3.2 RS-485接口

27、接口2 2、與其它規(guī)范接口的對照、與其它規(guī)范接口的對照表表5-3 列出了列出了RS-485與其它規(guī)范接口的對照表與其它規(guī)范接口的對照表接口標(biāo)準(zhǔn)RS-232CRS-422ARS-485功能雙向,全雙工雙向,全雙工雙向,半雙工工作方式單端差分差分邏輯“0”電平3V15V2V6V1.5V6V邏輯“1”電平-3V-15V-2V-6V-1.5V-6V節(jié)點(diǎn)數(shù)1收、1發(fā)1發(fā)10收1發(fā)32收最大傳輸距離15米1219米1219米最大傳輸速率20Kb/S10Mb/s10Mb/s驅(qū)動器加載輸出電壓5V15V2V1.5V接收器輸入電阻()3K7K4K(最小)12K抗干擾能力弱強(qiáng)強(qiáng) 5.4.1 5.4.1運(yùn)用指點(diǎn)運(yùn)用

28、指點(diǎn)1 1串行通訊中的常用波特率串行通訊中的常用波特率5.45.4串行口運(yùn)用與訓(xùn)練串行口運(yùn)用與訓(xùn)練 80C51的四種任務(wù)方式中,方式0和方式2的波特率固定,見表5-1和方式0、方式2的特點(diǎn)。方式1和方式3的波特率可變,其詳細(xì)數(shù)值由定時(shí)器T1的溢出率和SMOD位共同決議,公式見表5-1。 定時(shí)器T1作波特率發(fā)生器時(shí),為了防止溢出中斷,應(yīng)堅(jiān)持T1為中斷制止形狀。表5-4列出了T1的常用波特率。表表5- 4 T15- 4 T1的常用波特率的常用波特率 2 2利用串行口擴(kuò)展利用串行口擴(kuò)展I/OI/O口口 80C51單片機(jī)串行口方式單片機(jī)串行口方式0為同步移位存放器方式,可進(jìn)展為同步移位存放器方式,可進(jìn)

29、展8位位并行并行I/O口的擴(kuò)展。當(dāng)串行口別無它用時(shí),可經(jīng)過運(yùn)用串行輸入并口的擴(kuò)展。當(dāng)串行口別無它用時(shí),可經(jīng)過運(yùn)用串行輸入并行輸出移位存放器如行輸出移位存放器如74LS164擴(kuò)展并行輸出口;或運(yùn)用并行輸擴(kuò)展并行輸出口;或運(yùn)用并行輸入串行輸出移位存放器如入串行輸出移位存放器如74LS165擴(kuò)展并行輸入口。這種方法擴(kuò)展并行輸入口。這種方法不占用片外不占用片外RAM地址,而且還能簡化單片機(jī)系統(tǒng)的硬件構(gòu)造。但地址,而且還能簡化單片機(jī)系統(tǒng)的硬件構(gòu)造。但缺陷是操作速度較慢,且擴(kuò)展芯片越多,速度越慢。缺陷是操作速度較慢,且擴(kuò)展芯片越多,速度越慢。 圖圖5-12是利用一片是利用一片74LS165擴(kuò)展擴(kuò)展8位并行

30、輸入口的適用電路。位并行輸入口的適用電路。當(dāng)移位當(dāng)移位/置入端置入端S/由由“1變?yōu)樽優(yōu)椤?時(shí),并行輸入端的數(shù)據(jù)被置入存時(shí),并行輸入端的數(shù)據(jù)被置入存放器。當(dāng)放器。當(dāng)S/1,且時(shí)鐘制止端,且時(shí)鐘制止端15腳接地時(shí),在時(shí)鐘脈沖的作腳接地時(shí),在時(shí)鐘脈沖的作用下,數(shù)據(jù)由用下,數(shù)據(jù)由QA向向QH方向即方向即D7D0挪動。挪動。 圖圖5-12 5-12 利用一片利用一片74LS16574LS165擴(kuò)展擴(kuò)展8 8位并行輸入口電路位并行輸入口電路 圖中圖中RXDP3.0作為作為80C51的串行輸入端與的串行輸入端與74LS165的串行輸出的串行輸出端相連,端相連,TXDP3.1為移位脈沖輸出端,與為移位脈沖輸

31、出端,與74LS165芯片的移位脈沖芯片的移位脈沖輸入端銜接,用一根輸入端銜接,用一根I/O口線口線P1.0與與74LS165芯片的芯片的S/相連來控制移位與相連來控制移位與置位過程。置位過程。注:圖中注:圖中74LS165的的SIN引腳為串行輸入端,用于兩片引腳為串行輸入端,用于兩片74LS165的串行擴(kuò)的串行擴(kuò)展銜接。展銜接。3 3串行通訊編程根底串行通訊編程根底 1串行口初始化編程串行口初始化編程 串行口初始化應(yīng)該包括對串行口初始化應(yīng)該包括對SCON、PCON和和T1的初始化。對的初始化。對T1的初始化又的初始化又包含包含TMOD存放器初始化將存放器初始化將T1設(shè)置為波特率發(fā)生器、根據(jù)波

32、特率求時(shí)間常設(shè)置為波特率發(fā)生器、根據(jù)波特率求時(shí)間常數(shù)并對數(shù)并對TH1和和TL1賦值、啟動賦值、啟動T1等過程,串口初始化格式如下,其中加括號的等過程,串口初始化格式如下,其中加括號的指令可根據(jù)情況選擇運(yùn)用:指令可根據(jù)情況選擇運(yùn)用: SIO:MOV SCON,#控制形狀字控制形狀字 ;寫方式字且;寫方式字且TI=RI=0 (MOV PCON,#80H) ;波特率加倍;波特率加倍 (MOV TMOD,#20H ) ;T1作波特率發(fā)生器作波特率發(fā)生器 ( MOV TH1,#X ) ;選定波特率;選定波特率 ( MOV TH1,#X ) ( SETB TR1) ;啟動;啟動T1 ( SETB EA)

33、;開串行口中斷;開串行口中斷 ( SETB ES)2 2發(fā)送程序發(fā)送程序 發(fā)送程序可以采用中斷和查詢兩種方式設(shè)計(jì)。查詢方式:TRAM:MOV A,R0 ;取數(shù)據(jù) MOVSBUF,A ;發(fā)送一個(gè)字符WAIT: JBCTI,NEXT ;等待發(fā)送終了 SJMPWAITNEXT: INCR0 ;預(yù)備下一次發(fā)送 SJMPTRAM 中斷方式:中斷方式: ORG 0023H ;串行口中斷入口;串行口中斷入口 AJMP SINT MAIN: ;初始化編程;初始化編程 TRAM: MOV A,R0 ;取數(shù)據(jù);取數(shù)據(jù)MOV SBUF,A ;發(fā)送第一個(gè)字符;發(fā)送第一個(gè)字符 SJMP$ ;其它任務(wù);其它任務(wù) SINT

34、:CLR TI ;中斷效力程序;中斷效力程序INC R0MOV A,R0 ;取數(shù)據(jù);取數(shù)據(jù)MOV SBUF,A ;發(fā)送下一個(gè)字符;發(fā)送下一個(gè)字符RETI 3接納程序接納程序 與發(fā)送相類似,接納也可以采用中斷和查詢兩種方式設(shè)計(jì)。與發(fā)送相類似,接納也可以采用中斷和查詢兩種方式設(shè)計(jì)。 當(dāng)當(dāng)REN=1、RI=0時(shí)時(shí)80C51處于等待接納形狀;一旦檢測到處于等待接納形狀;一旦檢測到RI=1,80C51開場從開場從SBUF讀取數(shù)據(jù)。讀取數(shù)據(jù)。 查詢方式:查詢方式: WAIT: JBCRI,NEXT ;查詢等待;查詢等待 SJMPWAIT NEXT: MOVA,SBUF ;讀取接納數(shù)據(jù);讀取接納數(shù)據(jù)MOVR

35、0,A ;保管數(shù)據(jù);保管數(shù)據(jù)INC R0 ;預(yù)備下一次接納;預(yù)備下一次接納SJMPWAIT5.4.2 5.4.2 根本訓(xùn)練根本訓(xùn)練 1初始化訓(xùn)練 要求:某80C51單片機(jī)通訊系統(tǒng),晶振頻率為12MHz,要求串行口發(fā)送8位數(shù)據(jù),波特率1200bmp,請編寫它的初始化程序。思緒與計(jì)算:要選擇串行口和定時(shí)器T1的任務(wù)方式,計(jì)算時(shí)間常數(shù)并賦值給TH1、TL1。我們可以利用表5- 1中求波特率的公式: 初始化程序:初始化程序: MOV SCON,#40H ;串口任務(wù)于方式;串口任務(wù)于方式1 MOV PCON,#80H ;SMOD=1 MOV TMOD,#20H ;T1 作定時(shí)器,任務(wù)于方式作定時(shí)器,任務(wù)

36、于方式2 MOV TH1,#0CCH ;裝入時(shí)間常數(shù)初值;裝入時(shí)間常數(shù)初值 MOV TL1 ,#0CCH ;自動重裝時(shí)間常數(shù);自動重裝時(shí)間常數(shù) CLR ET1 ;制止;制止T1中斷中斷 SETB TR1 ;啟動;啟動T1波特率發(fā)生器波特率發(fā)生器 總結(jié):用上述公式計(jì)算出的波特率不為整數(shù),近似取整后,波特率也就不總結(jié):用上述公式計(jì)算出的波特率不為整數(shù),近似取整后,波特率也就不能準(zhǔn)確地等于能準(zhǔn)確地等于1200bps。但在異步傳送中,每接納一個(gè)字符實(shí)踐上都要整步一。但在異步傳送中,每接納一個(gè)字符實(shí)踐上都要整步一次,因此這點(diǎn)微小誤差并不影響收發(fā)。次,因此這點(diǎn)微小誤差并不影響收發(fā)。 要求:利用要求:利用8

37、0C51的串行口實(shí)現(xiàn)一個(gè)數(shù)據(jù)塊的發(fā)送。設(shè)發(fā)送數(shù)據(jù)區(qū)的串行口實(shí)現(xiàn)一個(gè)數(shù)據(jù)塊的發(fā)送。設(shè)發(fā)送數(shù)據(jù)區(qū)首地址為首地址為58H,數(shù)據(jù)塊長度字節(jié)數(shù)為,數(shù)據(jù)塊長度字節(jié)數(shù)為10,串行口任務(wù)于方式,串行口任務(wù)于方式1,波特率波特率1200bps,晶振頻率為,晶振頻率為11.0592MHz。思緒:串行口任務(wù)于方式思緒:串行口任務(wù)于方式1時(shí),波特率要編程設(shè)定。通常使時(shí),波特率要編程設(shè)定。通常使T1任務(wù)任務(wù)在方式在方式2,當(dāng)波特率取,當(dāng)波特率取1200bps時(shí),可以查表或計(jì)算時(shí)間常數(shù)初值,時(shí),可以查表或計(jì)算時(shí)間常數(shù)初值,得得0E8HSMOD=0時(shí)。時(shí)。發(fā)送子程序發(fā)送子程序TRAM清單:清單: TRAM:MOV TMOD

38、,#20H ;T1任務(wù)在方式任務(wù)在方式2 MOV TH1,#0E8H ;裝入時(shí)間常數(shù)初值;裝入時(shí)間常數(shù)初值 MOV TL1,#0E8H ;自動重裝時(shí)間常數(shù);自動重裝時(shí)間常數(shù)2 2串行傳送訓(xùn)練串行傳送訓(xùn)練 CLR ET1 ;制止;制止T1中斷中斷 SETB TR1 ;啟動;啟動T1波特率發(fā)生器波特率發(fā)生器 MOV SCON,#40H ;串口任務(wù)于方式;串口任務(wù)于方式1 MOV PCON,#00H ;SMOD=0,該指令可不寫,該指令可不寫 MOV R1,#58H ;數(shù)據(jù)發(fā)送區(qū)首址送;數(shù)據(jù)發(fā)送區(qū)首址送R1 MOV R5,#10 ;發(fā)送長度送;發(fā)送長度送R5LOOP:MOV A,R1 ;發(fā)送一幀數(shù)據(jù)

39、;發(fā)送一幀數(shù)據(jù) MOV SBUF,A WAIT:JBC TI,NEXT ;發(fā)送等待,發(fā)完一幀轉(zhuǎn)去;發(fā)送等待,發(fā)完一幀轉(zhuǎn)去NEXT SJMP WAIT NEXT:INC R1 ;預(yù)備取下一數(shù)據(jù);預(yù)備取下一數(shù)據(jù) DJNZ R5,LOOP ;數(shù)據(jù)塊發(fā)完?未發(fā)完轉(zhuǎn);數(shù)據(jù)塊發(fā)完?未發(fā)完轉(zhuǎn)LOOP RET ;發(fā)完,終了;發(fā)完,終了 發(fā)送等待時(shí)為什么不用發(fā)送等待時(shí)為什么不用“JB TI,NEXT指令,而用指令,而用“ JBC TI,NEXT指令?指令? 5.4.3 5.4.3 課題與實(shí)訓(xùn)課題與實(shí)訓(xùn)10 10 串行輸出控制彩燈串行輸出控制彩燈一實(shí)訓(xùn)目的一實(shí)訓(xùn)目的1熟習(xí)熟習(xí)74LS164的運(yùn)用,掌握串行口的根本

40、運(yùn)用方法。的運(yùn)用,掌握串行口的根本運(yùn)用方法。2學(xué)習(xí)串行口的擴(kuò)展技術(shù),掌握串行口相關(guān)存放器的設(shè)定方法。學(xué)習(xí)串行口的擴(kuò)展技術(shù),掌握串行口相關(guān)存放器的設(shè)定方法。3掌握串行口擴(kuò)展顯示器的電路設(shè)計(jì)原理和編程方法掌握串行口擴(kuò)展顯示器的電路設(shè)計(jì)原理和編程方法二課題要求二課題要求 利用一片利用一片AT89C51芯片,使之任務(wù)于方式芯片,使之任務(wù)于方式0。在其串口擴(kuò)展。在其串口擴(kuò)展一片一片74LS164控制控制8個(gè)個(gè)LED,要求運(yùn)用建表方式,控制,要求運(yùn)用建表方式,控制LED閃爍,閃爍,其閃爍規(guī)律為:其閃爍規(guī)律為:8個(gè)個(gè)LED作左移作左移2次,閃次,閃2次;右移次;右移2次,閃次,閃2次。次。閃爍間隔閃爍間隔0

41、.2秒。秒。 三背景知識三背景知識174LS164是串行輸入并行輸出移位存放器,接在是串行輸入并行輸出移位存放器,接在80C51的串行口,的串行口,可以實(shí)現(xiàn)對可以實(shí)現(xiàn)對8位并行數(shù)據(jù)的控制。位并行數(shù)據(jù)的控制。280C51與與74LS164銜接時(shí),銜接時(shí),RXDP3.0作為串行輸出與作為串行輸出與74LS164的數(shù)據(jù)輸入端的數(shù)據(jù)輸入端1、2相連,相連,TXDP3.1作為移位脈沖作為移位脈沖輸出與輸出與74LS164的時(shí)鐘脈沖輸入端的時(shí)鐘脈沖輸入端8相連,相連,74LS164的的CLR端端9經(jīng)過電阻、電容接在電源和地上。經(jīng)過電阻、電容接在電源和地上。 四硬件電路四硬件電路 圖圖5-13 串行輸出控制

42、彩燈硬件電路串行輸出控制彩燈硬件電路 ORG 0000H AJMP MAIN ORG 0100H MAIN:MOV SCON,#00H;串口任務(wù)于方式;串口任務(wù)于方式0START:MOV DPTR,#TABLE;指向;指向TABLE表表LOOP:CLR A;去除;去除A MOVC A,A+DPTR;從;從TABLE表取數(shù)據(jù)表取數(shù)據(jù) CJNE A,#05H,NEXT;取到終了碼;取到終了碼05H?沒有跳到?沒有跳到NEXT AJMP START;終了,重新開場;終了,重新開場NEXT:CPL A;取到數(shù)據(jù)反相;取到數(shù)據(jù)反相 MOV SBUF,A;向串口發(fā)送;向串口發(fā)送LOOP1:JBC TI,L

43、OOP2;發(fā)送終了?是,跳到;發(fā)送終了?是,跳到LOOP2 AJMP LOOP1;沒終了,再檢測;沒終了,再檢測LOOP2:ACALL DELAY;延時(shí);延時(shí)0.2秒秒 INC DPTR;指向下一地址;指向下一地址 AJMP LOOP五軟件設(shè)計(jì)五軟件設(shè)計(jì)( (參考程序如下:參考程序如下:) )DELAY:MOV R7,#4 ;延時(shí)0.2SD1: MOV R6,#20 D2: MOV R5,#123 NOP DJNZ R5,$ DJNZ R6,D2 DJNZ R7,D1 RETTABLE:DB 01H,02H,04H,08H DB 10H,20H,40H,80H DB 01H,02H,04H,0

44、8H DB 10H,20H,40H,80H DB 00H,0FFH,00H,0FFH DB 80H,40H,20H,10H DB 08H,04H,02H,01H DB 80H,40H,20H,10H DB 08H,04H,02H,01H DB 00H,0FFH,00H,0FFH DB 05H END六總結(jié)與思索六總結(jié)與思索174LS164無輸出無輸出控制端,故串行輸入控制端,故串行輸入過程中,輸出端會不過程中,輸出端會不斷地變化。所以普通斷地變化。所以普通應(yīng)在應(yīng)在74LS164和輸出和輸出安裝之間加接輸出控安裝之間加接輸出控制門,以保證串行輸制門,以保證串行輸入終了后再輸出數(shù)據(jù)。入終了后再輸出

45、數(shù)據(jù)。2假設(shè)不用建表方假設(shè)不用建表方式,如何實(shí)現(xiàn)?式,如何實(shí)現(xiàn)? 5.5.1 5.5.1 單片機(jī)與顯示器的串行通訊單片機(jī)與顯示器的串行通訊 例:某車間擬設(shè)置一塊消費(fèi)進(jìn)度顯示板,顯示當(dāng)天已完成的產(chǎn)品數(shù)量不超越例:某車間擬設(shè)置一塊消費(fèi)進(jìn)度顯示板,顯示當(dāng)天已完成的產(chǎn)品數(shù)量不超越256,所需的產(chǎn)量數(shù)據(jù),要從主單片機(jī)傳送到顯示板,請協(xié)助設(shè)計(jì)相應(yīng)的傳送程,所需的產(chǎn)量數(shù)據(jù),要從主單片機(jī)傳送到顯示板,請協(xié)助設(shè)計(jì)相應(yīng)的傳送程序。序。 分析與設(shè)計(jì)分析與設(shè)計(jì) 該義務(wù)中,每當(dāng)消費(fèi)線上完成一臺合格產(chǎn)品時(shí),經(jīng)過自動計(jì)數(shù)安裝向主單片機(jī)外該義務(wù)中,每當(dāng)消費(fèi)線上完成一臺合格產(chǎn)品時(shí),經(jīng)過自動計(jì)數(shù)安裝向主單片機(jī)外部中斷輸入端送出一

46、個(gè)低電平部中斷輸入端送出一個(gè)低電平“0,作為懇求中斷信號;主單片機(jī)呼應(yīng)中斷后,在,作為懇求中斷信號;主單片機(jī)呼應(yīng)中斷后,在中斷效力程序中,將產(chǎn)量值存放在中斷效力程序中,將產(chǎn)量值存放在50H中加中加1,并經(jīng)過串口將其送給顯示板。,并經(jīng)過串口將其送給顯示板。 顯示版接納主單片機(jī)送來的顯示數(shù)據(jù)。顯示板的顯示版接納主單片機(jī)送來的顯示數(shù)據(jù)。顯示板的CPU平常運(yùn)轉(zhuǎn)顯示程序,顯示當(dāng)平常運(yùn)轉(zhuǎn)顯示程序,顯示當(dāng)前的產(chǎn)量前的產(chǎn)量(產(chǎn)量數(shù)據(jù)存放在數(shù)據(jù)存儲區(qū)產(chǎn)量數(shù)據(jù)存放在數(shù)據(jù)存儲區(qū)50H單元中單元中)。只需當(dāng)顯示板的串口接納到主。只需當(dāng)顯示板的串口接納到主單片機(jī)發(fā)來的顯示數(shù)據(jù)時(shí),才會因串口中斷,轉(zhuǎn)去執(zhí)行中斷效力程序,以

47、便將新接單片機(jī)發(fā)來的顯示數(shù)據(jù)時(shí),才會因串口中斷,轉(zhuǎn)去執(zhí)行中斷效力程序,以便將新接納到的產(chǎn)量數(shù)據(jù)存放到納到的產(chǎn)量數(shù)據(jù)存放到50H單元中,再前往到主程序執(zhí)行顯示程序。單元中,再前往到主程序執(zhí)行顯示程序。5.5 單片機(jī)串行口運(yùn)用舉例1主單片機(jī)主單片機(jī)主程序主程序發(fā)送端的主程序要完成外部中斷和串行口的初始化任務(wù),然后等待外部中斷。發(fā)送端的主程序要完成外部中斷和串行口的初始化任務(wù),然后等待外部中斷。 ORG 0000H AJMP MAIN ORG 0013H AJMP SUBG ;中斷入口;中斷入口 ORG 0100H MAIN:MOV 50H,#00H ;當(dāng)天產(chǎn)量從;當(dāng)天產(chǎn)量從0開場開場 MOV SP

48、,#60H SETB IT1;采用邊沿觸發(fā)方式;采用邊沿觸發(fā)方式 MOV SCON,#40H;串口任務(wù)于方式;串口任務(wù)于方式1,制止接納,制止接納 MOV PCON,#00H;波特率不加倍;波特率不加倍 MOV TMOD,#20H;T1任務(wù)于方式任務(wù)于方式2 軟件設(shè)計(jì)軟件設(shè)計(jì) MOV TH1,#0E8H;波特率為;波特率為1200bps MOV TL1,#0E8H SETB EX1;開中斷;開中斷 SETB EA;開中斷;開中斷 SETB TR1;翻開波特率發(fā)生器;翻開波特率發(fā)生器 AJMP $;等待中斷;等待中斷中斷效力子程序中斷效力子程序 當(dāng)外部中斷懇求中斷時(shí),表示消費(fèi)線上已完成一臺廢品,

49、因此中斷效當(dāng)外部中斷懇求中斷時(shí),表示消費(fèi)線上已完成一臺廢品,因此中斷效力程序的義務(wù)就是將產(chǎn)量單元力程序的義務(wù)就是將產(chǎn)量單元50H加加1,并將加,并將加1后的數(shù)值從串口輸出。程序后的數(shù)值從串口輸出。程序如下:如下: ORG 0200HSUBG:PUSH ACC INC 50H MOV A,50H MOV SBUF,AWAIT:JBC TI,NEXT SJMP WAITNEXT:POP ACC RETI2顯示板的顯示板的CPU主程序主程序主程序的初始化部分與發(fā)送端根本一樣,只是要將主程序的初始化部分與發(fā)送端根本一樣,只是要將SCON的制止接納改的制止接納改成允許接納。并且要一邊執(zhí)行顯示程序,一邊等

50、待中斷。顯示程序從略,成允許接納。并且要一邊執(zhí)行顯示程序,一邊等待中斷。顯示程序從略,可參看第可參看第6章。章。 ORG 0000H AJMP MAIN ORG 0023H AJMP SUBG ;串口中斷入口;串口中斷入口 ORG 0100H MAIN:MOV 50H,#00H ;當(dāng)天產(chǎn)量從;當(dāng)天產(chǎn)量從0開場開場 MOV SP,#60H MOV SCON,#50H;串口任務(wù)于方式1,允許接納 MOV PCON,#00H;波特率不加倍 MOV TMOD,#20H;T1任務(wù)于方式2 MOV TH1,#0E8H;波特率為1200bps MOV TL1,#0E8H SETB ES;開串口中斷 SETB

51、 EA;開中斷 SETB TR1;翻開波特率發(fā)生器 WAIT:ACALL DISPLAY;轉(zhuǎn)顯示子程序 AJMP WAIT;等待中斷中斷效力子程序中斷效力子程序當(dāng)接納端的串口收到單片機(jī)發(fā)來的數(shù)據(jù)時(shí),串口懇求中斷。在中斷效力程序當(dāng)接納端的串口收到單片機(jī)發(fā)來的數(shù)據(jù)時(shí),串口懇求中斷。在中斷效力程序中,要維護(hù)現(xiàn)場,將新接納到的產(chǎn)量數(shù)據(jù)存放到中,要維護(hù)現(xiàn)場,將新接納到的產(chǎn)量數(shù)據(jù)存放到50H單元中,再前往主程序。單元中,再前往主程序。 ORG 0200HSUBG:PUSH ACC CLR RI MOV A, SBUF MOV 50H, ANEXT:POP ACC RETI一實(shí)訓(xùn)目的一實(shí)訓(xùn)目的1學(xué)習(xí)雙機(jī)通訊

52、的常識。學(xué)習(xí)雙機(jī)通訊的常識。2掌握雙機(jī)通訊程序形狀字的設(shè)置方法。掌握雙機(jī)通訊程序形狀字的設(shè)置方法。3學(xué)習(xí)雙機(jī)通訊程序的編制方法。學(xué)習(xí)雙機(jī)通訊程序的編制方法。二課題要求二課題要求 利用利用2片片AT89C51芯片,一片用作發(fā)送器,記作芯片,一片用作發(fā)送器,記作89C51-T,用來讀,用來讀入入P1口指撥開關(guān)的形狀;另一片用作接納器,記作口指撥開關(guān)的形狀;另一片用作接納器,記作89C51-R,用來接,用來接納納89C51-T發(fā)送過來的指撥開關(guān)的形狀,并將其在發(fā)送過來的指撥開關(guān)的形狀,并將其在89C51-R輸出的輸出的8個(gè)個(gè)LED上顯示出來。上顯示出來。三背景知識三背景知識1雙機(jī)通訊雙機(jī)通訊 假設(shè)兩

53、個(gè)假設(shè)兩個(gè)80C51單片機(jī)相距很近,將它們的串行口直接相連,即可單片機(jī)相距很近,將它們的串行口直接相連,即可實(shí)現(xiàn)雙機(jī)通訊。采用圖實(shí)現(xiàn)雙機(jī)通訊。采用圖5-14所示的兩個(gè)所示的兩個(gè)80C51串行口直接相連的方法,串行口直接相連的方法,通訊間隔只限于通訊間隔只限于1.5m以內(nèi)。假設(shè)要添加通訊間隔,可以在兩個(gè)單片機(jī)以內(nèi)。假設(shè)要添加通訊間隔,可以在兩個(gè)單片機(jī)之間采用規(guī)范異步串行接口銜接,如運(yùn)用之間采用規(guī)范異步串行接口銜接,如運(yùn)用RS-232C、RS-422A及及RS-485等串行接口總線。等串行接口總線。5.5.2 5.5.2 課題與實(shí)訓(xùn)課題與實(shí)訓(xùn)11 11 雙機(jī)通訊雙機(jī)通訊 2通訊協(xié)議 在雙機(jī)通訊或多

54、機(jī)通訊時(shí),通常要規(guī)定通訊協(xié)議。所謂通訊協(xié)議是指通訊雙方的一種商定。它對數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯(cuò)方式以及控制字符定義等問題做出一致規(guī)定,通訊雙方必需共同遵守。因此,也叫做通訊控制規(guī)程,或稱傳輸控制規(guī)程。本實(shí)訓(xùn)所用的兩片AT89C51芯片,一個(gè)只作輸入,另一個(gè)只作輸出,方式非常簡單,不用規(guī)定通訊協(xié)議。圖圖5-14 雙機(jī)通訊簡圖雙機(jī)通訊簡圖四硬件電路四硬件電路 圖圖5-15 雙機(jī)通訊硬件電路雙機(jī)通訊硬件電路 參考程序如下:參考程序如下:AT89C51-T的發(fā)送程序的發(fā)送程序 ORG 0000H AJMP MAIN ORG 0100H MAIN:MOV SP,#50H;設(shè)定堆棧區(qū)

55、;設(shè)定堆棧區(qū) MOV SCON,#40H ;串行口任務(wù)在方式;串行口任務(wù)在方式1,制止接納,制止接納 MOV TMOD,#20H;定時(shí)器;定時(shí)器1任務(wù)在方式任務(wù)在方式2 MOV TL1,#0E8H ;波特率為;波特率為1200 MOV TH1,#0E8H ; SETB TR1;啟動定時(shí)器;啟動定時(shí)器1 MOV 30H,#0FFH ;設(shè)定指撥開關(guān)初值;設(shè)定指撥開關(guān)初值 MOV P1, #0FFH ;P1 口設(shè)為輸入形狀口設(shè)為輸入形狀READ:MOV A,P1;讀入指撥開關(guān)值;讀入指撥開關(guān)值 CJNE A,30H,KEY;輸入值改動那么跳至;輸入值改動那么跳至KEY AJMP READ;否那么繼續(xù)

56、讀指撥開關(guān)值;否那么繼續(xù)讀指撥開關(guān)值五軟件設(shè)計(jì)五軟件設(shè)計(jì) KEY:MOV 30H,A;存指撥開關(guān)新值 MOV SBUF,A;送串行口發(fā)送WAIT:JBC TI,READ;查看能否送完 AJMP WAIT ENDAT89C51-R的接納程序 ORG 0000H AJMP MAIN ORG 0100H MAIN:MOV SP,#50H ;設(shè)定堆棧區(qū) MOV SCON,#50H;串行口任務(wù)在方式1,允許接納 MOV TMOD,#20H;定時(shí)器1任務(wù)在方式2 MOV TL1,#0E8H ;波特率為1200 MOV TH1,#0E8H SETB TR1;啟動定時(shí)器1READ:JBC RI,UART;能否

57、接納到數(shù)據(jù),收到那么跳到UART AJMP READUART:MOV A,SBUF;收到的數(shù)據(jù)送;收到的數(shù)據(jù)送A MOV P1,A;發(fā)送至;發(fā)送至P1口口 AJMP READ END六總結(jié)與提高六總結(jié)與提高在編寫串行口運(yùn)用程序時(shí)應(yīng)留意這樣幾個(gè)問題:在編寫串行口運(yùn)用程序時(shí)應(yīng)留意這樣幾個(gè)問題:必需對串行口進(jìn)展初始化。詳細(xì)包括必需對串行口進(jìn)展初始化。詳細(xì)包括SCON、PCON 和波特率的設(shè)定。和波特率的設(shè)定。在接納和發(fā)送一個(gè)字節(jié)終了后必需用軟件去除中斷標(biāo)志。在接納和發(fā)送一個(gè)字節(jié)終了后必需用軟件去除中斷標(biāo)志。本實(shí)訓(xùn)采用軟件查詢方式編程,請嘗試用中斷方式實(shí)現(xiàn)該功能。本實(shí)訓(xùn)采用軟件查詢方式編程,請嘗試用中

58、斷方式實(shí)現(xiàn)該功能。 串行口的方式串行口的方式2和方式和方式3具有多機(jī)通訊功能,能實(shí)現(xiàn)一臺主單片機(jī)具有多機(jī)通訊功能,能實(shí)現(xiàn)一臺主單片機(jī)和假設(shè)干從單片機(jī)構(gòu)成的多機(jī)分布控制系統(tǒng),其銜接方式如圖和假設(shè)干從單片機(jī)構(gòu)成的多機(jī)分布控制系統(tǒng),其銜接方式如圖5-16所所示。示。 圖圖5-16 多機(jī)通訊表示圖多機(jī)通訊表示圖5.5.3 5.5.3 多機(jī)通訊多機(jī)通訊 多機(jī)通訊時(shí),充分利用單片機(jī)多機(jī)通訊時(shí),充分利用單片機(jī)SCON中的多機(jī)通訊控制中的多機(jī)通訊控制SM2位。當(dāng)從機(jī)位。當(dāng)從機(jī)SM2=1時(shí),從機(jī)只接納主機(jī)發(fā)來的地址幀特點(diǎn)是第時(shí),從機(jī)只接納主機(jī)發(fā)來的地址幀特點(diǎn)是第9位為位為1,對數(shù)據(jù)幀不予,對數(shù)據(jù)幀不予理睬;當(dāng)從

59、機(jī)理睬;當(dāng)從機(jī)SM2=0時(shí),從機(jī)可以接納主機(jī)發(fā)來一切信息。過程如下:時(shí),從機(jī)可以接納主機(jī)發(fā)來一切信息。過程如下:置一切從機(jī)的置一切從機(jī)的SM2=1,都處于只接納地址的形狀。,都處于只接納地址的形狀。 主機(jī)發(fā)送一幀地址前主機(jī)發(fā)送一幀地址前8位是地址值,第位是地址值,第9位為位為1,表示該幀信息是地址。,表示該幀信息是地址。 一切從機(jī)接到地址幀后,轉(zhuǎn)去執(zhí)行中斷,目的是將接納到的地址與本身地一切從機(jī)接到地址幀后,轉(zhuǎn)去執(zhí)行中斷,目的是將接納到的地址與本身地址相比較,二者一樣,那么址相比較,二者一樣,那么SM2=0,否那么,否那么,SM2=1。 由于被呼叫從機(jī)已令由于被呼叫從機(jī)已令SM2=0,所以它可以

60、接納主機(jī)接下來傳送的一切數(shù)據(jù),所以它可以接納主機(jī)接下來傳送的一切數(shù)據(jù),實(shí)現(xiàn)與主機(jī)的通訊。實(shí)現(xiàn)與主機(jī)的通訊。 被呼叫從機(jī)通訊完成后,置被呼叫從機(jī)通訊完成后,置SM2=1,恢復(fù)多機(jī)通訊的原始形狀。,恢復(fù)多機(jī)通訊的原始形狀。 本章小結(jié)本章小結(jié) 80C51單片機(jī)有一個(gè)全雙工的串行口,它既可用于網(wǎng)單片機(jī)有一個(gè)全雙工的串行口,它既可用于網(wǎng)絡(luò)通訊,也能實(shí)現(xiàn)串行異步通訊,還可作為同步移位存放絡(luò)通訊,也能實(shí)現(xiàn)串行異步通訊,還可作為同步移位存放器運(yùn)用,運(yùn)用非常靈敏。器運(yùn)用,運(yùn)用非常靈敏。 80C51單片機(jī)的串行接口能完成以下根本義務(wù):單片機(jī)的串行接口能完成以下根本義務(wù):1實(shí)現(xiàn)數(shù)據(jù)格式化:在異步通訊方式下,對來自實(shí)

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論