單片機應用電子教案第5章 串行口與通信ppt課件_第1頁
單片機應用電子教案第5章 串行口與通信ppt課件_第2頁
單片機應用電子教案第5章 串行口與通信ppt課件_第3頁
單片機應用電子教案第5章 串行口與通信ppt課件_第4頁
單片機應用電子教案第5章 串行口與通信ppt課件_第5頁
已閱讀5頁,還剩59頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

26、戶可以利用單一的RS-RS-485485接口方便地建立起設備網絡。接口方便地建立起設備網絡。 因因RS-485RS-485接口組成的半雙工網絡普通只需二根連線,接口組成的半雙工網絡普通只需二根連線,所以所以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、與其它規范接口的對照、與其它規范接口的對照表表5-3 列出了列出了RS-485與其它規范接口的對照表與其它規范接口的對照表接口標準RS-232CRS-422ARS-485功能雙向,全雙工雙向,全雙工雙向,半雙工工作方式單端差分差分邏輯“0”電平3V15V2V6V1.5V6V邏輯“1”電平-3V-15V-2V-6V-1.5V-6V節點數1收、1發1發10收1發32收最大傳輸距離15米1219米1219米最大傳輸速率20Kb/S10Mb/s10Mb/s驅動器加載輸出電壓5V15V2V1.5V接收器輸入電阻()3K7K4K(最小)12K抗干擾能力弱強強 5.4.1 5.4.1運用指點運用

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

43、OOP2;發送終了?是,跳到;發送終了?是,跳到LOOP2 AJMP LOOP1;沒終了,再檢測;沒終了,再檢測LOOP2:ACALL DELAY;延時;延時0.2秒秒 INC DPTR;指向下一地址;指向下一地址 AJMP LOOP五軟件設計五軟件設計( (參考程序如下:參考程序如下:) )DELAY:MOV R7,#4 ;延時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六總結與思索六總結與思索174LS164無輸出無輸出控制端,故串行輸入控制端,故串行輸入過程中,輸出端會不過程中,輸出端會不斷地變化。所以普通斷地變化。所以普通應在應在74LS164和輸出和輸出安裝之間加接輸出控安裝之間加接輸出控制門,以保證串行輸制門,以保證串行輸入終了后再輸出數據。入終了后再輸出

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

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

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

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

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

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

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

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

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

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

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

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

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

58、斷方式實現該功能。 串行口的方式串行口的方式2和方式和方式3具有多機通訊功能,能實現一臺主單片機具有多機通訊功能,能實現一臺主單片機和假設干從單片機構成的多機分布控制系統,其銜接方式如圖和假設干從單片機構成的多機分布控制系統,其銜接方式如圖5-16所所示。示。 圖圖5-16 多機通訊表示圖多機通訊表示圖5.5.3 5.5.3 多機通訊多機通訊 多機通訊時,充分利用單片機多機通訊時,充分利用單片機SCON中的多機通訊控制中的多機通訊控制SM2位。當從機位。當從機SM2=1時,從機只接納主機發來的地址幀特點是第時,從機只接納主機發來的地址幀特點是第9位為位為1,對數據幀不予,對數據幀不予理睬;當從

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

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

溫馨提示

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

評論

0/150

提交評論