串行通信技術(shù)_第1頁
串行通信技術(shù)_第2頁
串行通信技術(shù)_第3頁
串行通信技術(shù)_第4頁
串行通信技術(shù)_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、串行通信技術(shù)第1頁,共100頁,2022年,5月20日,19點3分,星期日 標準型單片機的組成第2頁,共100頁,2022年,5月20日,19點3分,星期日第4章 UART串行接口 教學(xué)目的:了解80C51系列單片機UART串行接口的結(jié)構(gòu)、原理及應(yīng)用;能夠采用查詢方式進行串行通信。教學(xué)重點:1. UART串行接口的工作原理;2. UART串行接口的4種工作方式的編程、應(yīng)用。 教學(xué)難點:1 .多機通信方式2.波特率值的設(shè)置第3頁,共100頁,2022年,5月20日,19點3分,星期日UARTUART(Universal Asynchronous Receiver/Transmitter)通用異步

2、收發(fā)器 UART是用于控制計算機與串行設(shè)備的芯片,用于異步通信。是雙向通信,可以實現(xiàn)全雙工傳輸和接收。第4頁,共100頁,2022年,5月20日,19點3分,星期日41 串行通信概述并行通信與串行通信并行通信:所傳送數(shù)據(jù)的各位同時發(fā)送或接收 。串行通信:所傳送數(shù)據(jù)的各位按順序一位一位地發(fā)送或接收。 第5頁,共100頁,2022年,5月20日,19點3分,星期日圖4-1基本通信方式圖示第6頁,共100頁,2022年,5月20日,19點3分,星期日4.1.1 同步通信和異步通信方式1. 異步通信ASYNC 數(shù)據(jù)或字符是以固定的幀格式一幀(Frame)一幀地傳送 ,從起始位、數(shù)據(jù)位到停止位就構(gòu)成 完

3、整的一幀,不同的 系統(tǒng)定義有不同的幀格式。第7頁,共100頁,2022年,5月20日,19點3分,星期日異步傳送方式 第n個字符(一串行幀)n+1n-1P10D0D1D2D3D4D5D6D4P10D0 起 始 位 數(shù) 據(jù) 位 校 停 驗 止 位 位異步通信的幀格式發(fā)送器是通過發(fā)送起始位來開始傳送一個字符的。起始位之后就傳送數(shù)據(jù)位,低位在前(左),高位在后(右)。由于字符編碼的不同,可以是58位。通過對數(shù)據(jù)奇偶性的檢查,可用來判別字符傳送的正確性,共有三種:奇校驗、偶校驗、無校驗。用戶可根據(jù)需要選擇(在有些格式中,這位可省略。)停止位在最后,用來表示一個字符傳送的結(jié)束??梢允?位、1.5位、2位

4、,不同的計算機規(guī)定有所不同。第8頁,共100頁,2022年,5月20日,19點3分,星期日異步通信是按字符傳輸?shù)?。傳送時數(shù)據(jù)的低位在前,高位在后。這種傳送方式利用每一幀的起、止信號來建立發(fā)送與接收之間的同步。其特點為:每一幀內(nèi)部各位均采用固定的時間間隔,而幀與幀之間的時間間隔是隨機的。兩相鄰字符幀之間有若干空閑位或無空閑位。接收機完全靠每一幀的起始位與停止位來識別字符正在進行傳送還是已經(jīng)結(jié)束傳送。 第9頁,共100頁,2022年,5月20日,19點3分,星期日2. 同步通信SYNC 用一同步字符來指示通信的開始(常約定12個),以實現(xiàn)發(fā)送端和接收端的同步 。 第10頁,共100頁,2022年,

5、5月20日,19點3分,星期日同步傳送方式 同步特點:因為同步通信數(shù)據(jù)塊傳送時去掉了字符開始和結(jié)束的標志,所以其速度高于異步傳送,但這種方式對硬件結(jié)構(gòu)要求較高。數(shù)據(jù)或字符開始處是用一同步字符來指示(一般約定為12個字符),以實現(xiàn)發(fā)送端和接收端同步,一旦檢測到約定同步字符,就連續(xù)按順序接收數(shù)據(jù)。第11頁,共100頁,2022年,5月20日,19點3分,星期日 采用兩個同步字符,稱雙同步方式。采用一個同步字符,稱單同步方式。同步字符可以由用戶來約定,也可以采用ASCII碼中規(guī)定的SYN代碼,即16H。同步通信時,先發(fā)送同步字符,接收方檢測到同步字符后,即準備接收數(shù)據(jù),按約定的長度拼成一個個數(shù)據(jù)字節(jié)

6、,直到整個數(shù)據(jù)接收完畢,經(jīng)校驗無傳送錯誤則結(jié)束一幀信息的傳送。第12頁,共100頁,2022年,5月20日,19點3分,星期日 串行同步通信進行數(shù)據(jù)傳送時,發(fā)送和接收雙方要保持完全的同步,因此要求接收和發(fā)送設(shè)備必須使用同一時鐘。在近距離通信時可以采用在傳輸線中增加一根時鐘信號來解決;遠距離通信時,可以采用鎖相環(huán)技術(shù),使接收方得到和發(fā)送方時鐘頻率完全相同的時鐘信號。同步傳送的優(yōu)點是可以實現(xiàn)高速度、大容量的數(shù)據(jù)傳送遠;其缺點是要求發(fā)送時鐘和接收時鐘保持嚴格同步,同時硬件復(fù)雜。第13頁,共100頁,2022年,5月20日,19點3分,星期日3) 波特率 波特率是指數(shù)據(jù)傳送的速率,表示每秒傳送代碼的位

7、數(shù)。在串行通信中,發(fā)送設(shè)備和接收設(shè)備之間除了采用相同的字符幀格式(異步通信)或相同的同步字符(同步通信)來協(xié)調(diào)同步工作外,兩者之間發(fā)送數(shù)據(jù)的速度和接收數(shù)據(jù)的速度也必須相同,這樣才能保證被傳送數(shù)據(jù)的成功傳送。波特率是串行通信的重要指標,對數(shù)據(jù)的成功傳送至關(guān)重要。第14頁,共100頁,2022年,5月20日,19點3分,星期日例:數(shù)據(jù)傳送的速率為120字符/s,每個字符由一個起始位、8個數(shù)據(jù)位和1個停止位組成,則波特率位多少?每位數(shù)據(jù)傳送的時間為多少?第15頁,共100頁,2022年,5月20日,19點3分,星期日 串行通信的方式單工:只允許單方向傳送,只需一條數(shù)據(jù)線。 半雙工 :接收和發(fā)送分時雙

8、向進行,只需一條數(shù)據(jù)線。 全雙工 :甲、乙兩機之間數(shù)據(jù)的發(fā)送和接收可以同時 進行,通信必須使用二根數(shù)據(jù)線 。圖4-2 通信方式示意圖 第16頁,共100頁,2022年,5月20日,19點3分,星期日圖4.3 單工方式圖4.4 半雙工方式圖4.5 全雙工方式第17頁,共100頁,2022年,5月20日,19點3分,星期日 通信協(xié)議計算機之間進行數(shù)據(jù)傳輸時的一些約定,包括通信方式、幀格式、波特率、命令碼的約定等 。 第18頁,共100頁,2022年,5月20日,19點3分,星期日 80C51單片機常與其它51單片機或PC機進行串行通信。 80C51單片機串行接口的信號電平為TTL類型,抗干擾能力差

9、,傳輸距離短。為了提高串行通信的可靠性,延長通信距離,工程設(shè)計人員一般采用標準串行接口,如RS-232C、RS-422A和RS-485等。這三種接口最初都是由美國電子工業(yè)協(xié)會(EIA)制訂并發(fā)布的。5.3串行通信的常用標準接口第19頁,共100頁,2022年,5月20日,19點3分,星期日 5.3.1 RS-232C接口 RS-232C(又稱 EIA RS-232-C)是一種異步串行通信總標準,是目前PC機與通信工業(yè)中應(yīng)用最廣泛的一種串行接口。圖4-7是利用RS-232C通過電話網(wǎng)實現(xiàn)遠程通信的示意圖。 圖4-7 RS-232C通過電話網(wǎng)實現(xiàn)遠程通信的示意圖第20頁,共100頁,2022年,5

10、月20日,19點3分,星期日1接口信號 RS-232C是EIA在1969年推出的。全名是“數(shù)據(jù)終端設(shè)備DTE(如計算機和各種終端機)和數(shù)據(jù)通訊設(shè)備DCE(如調(diào)制解調(diào)器MODEM)之間串行二進制數(shù)據(jù)交換接口技術(shù)標準”。它適合于數(shù)據(jù)傳輸速率在020 000bps范圍內(nèi)的通信。 圖4-8 RS-232C串口結(jié)構(gòu)第21頁,共100頁,2022年,5月20日,19點3分,星期日 目前較為常用的RS-232C有9針串口(DB9)和25針串口(DB25),結(jié)構(gòu)分別如圖4-8所示。在保證通信準確性的前提下,如果通信距離較近 (小于12米),可以用電纜線直接連接,圖4-9是這種連接方式的示意圖;若距離較遠,需附

11、加調(diào)制解調(diào)器(MODEM),見圖4-7。 圖4-9 近程通信示意圖第22頁,共100頁,2022年,5月20日,19點3分,星期日 實際上DB25中有許多引腳很少使用,在計算機與終端通訊中一般只使用3-9條引線。最常用的9條引線的信號內(nèi)容見表4-2所示。最為簡單且常用的是三線制接法,即地、接收數(shù)據(jù)和發(fā)送數(shù)據(jù)三腳相連。傳輸線采用屏蔽雙絞線。如圖4-10 所示。 圖4-10 RS-232C串口結(jié)構(gòu)第23頁,共100頁,2022年,5月20日,19點3分,星期日表5-2 DB9和DB25的常用信號腳說明 第24頁,共100頁,2022年,5月20日,19點3分,星期日2.邏輯電平 RS-232C是早

12、期為促進公用電話網(wǎng)絡(luò)進行數(shù)據(jù)通信而制定的標準。它采用負邏輯,即-3V-15V規(guī)定為“1”;+3V+15V規(guī)定為“0”;-3V+3V為過渡區(qū),不做定義。第25頁,共100頁,2022年,5月20日,19點3分,星期日 3電平轉(zhuǎn)換芯片與接口電路 RS232C信號的電平和單片機串口信號的電平不一致,必須進行二者之間的電平轉(zhuǎn)換。常用芯片有MC1488(TTL轉(zhuǎn)換成RS232C信號)、MC1489(RS232C信號轉(zhuǎn)換成TTL)等。另一種常用的集成電平轉(zhuǎn)換芯片MAX232可以實現(xiàn)RS232CTTL電平的雙向轉(zhuǎn)換,它只使用單一的5V電源供電,配接4個1F電解電容即可完成RS232電平與TTL電平之間的轉(zhuǎn)換

13、。其原理圖如圖4-11所示。轉(zhuǎn)換完畢的串口信號TXD、RXD直接和80C51的串行口連接。第26頁,共100頁,2022年,5月20日,19點3分,星期日圖5-11 電平匹配原理圖注:1.為提高電路抗干擾能力,C1C4要用鉭電容1.0F/16V,且盡 量靠近MAX232; 2. MAX232對噪聲很敏感,在VCC與GND之間加C5=0.1F,起去耦作用第27頁,共100頁,2022年,5月20日,19點3分,星期日 1性能特點 RS-485以良好的抗噪聲干擾性,長距離傳輸特性和多站能力等優(yōu)點成為首選的串行接口。表現(xiàn)為: 接口信號電平比RS-232C低(1.5V6V),不易損壞接口電路芯片,且該

14、電平與TTL電平兼容,可方便與TTL 電路連接。 RS-485傳輸數(shù)據(jù)的速度較快,最高速率達到10Mbps 。 采用平衡驅(qū)動器和差分接收器的組合,抗共模干擾能力增強,即抗噪聲干擾性能好。 最大傳輸距離標準值為4000英尺,折合1219米,實際上可達 3000米。 RS-485接口允許在總線上同時連接32個發(fā)送器和32個接收器,即具有多站能力,這樣用戶可以利用單一的RS-485接口方便地建立起設(shè)備網(wǎng)絡(luò)。 因RS-485接口組成的半雙工網(wǎng)絡(luò)一般只需二根連線,所以RS-485接口均采用屏蔽雙絞線傳輸。RS-485接口連接器采用DB9的9芯插頭座。與智能終端RS-485接口采用DB9(孔);與鍵盤連接

15、的鍵盤接口RS-485采用DB9(針)。5.3.2 RS-485接口第28頁,共100頁,2022年,5月20日,19點3分,星期日2、與其它標準接口的對照表4-3 列出了RS-485與其它標準接口的對照表接口標準RS-232CRS-422ARS-485功能雙向,全雙工雙向,全雙工雙向,半雙工工作方式單端差分差分邏輯“0”電平3V15V2V6V1.5V6V邏輯“1”電平-3V-15V-2V-6V-1.5V-6V節(jié)點數(shù)1收、1發(fā)1發(fā)10收1發(fā)32收最大傳輸距離15米1219米1219米最大傳輸速率20Kb/S10Mb/s10Mb/s驅(qū)動器加載輸出電壓5V15V2V1.5V接收器輸入電阻()3K7

16、K4K(最小)12K抗干擾能力弱強強第29頁,共100頁,2022年,5月20日,19點3分,星期日42 80C51串行口簡介 4.2.1 串行口結(jié)構(gòu)與工作原理80C51的串行口是一個可編程的全雙工串行通信接口,通過軟件編程它可以做通用異步接收和發(fā)送器UART(Universal Asynchronous ReceiverTransmitter),也可做同步移位寄存器用。其幀格式可設(shè)置8位、10位或11位,并能設(shè)置不同的波特率 。第30頁,共100頁,2022年,5月20日,19點3分,星期日 圖 43 串行口結(jié)構(gòu)框圖 第31頁,共100頁,2022年,5月20日,19點3分,星期日波特率發(fā)生

17、器第32頁,共100頁,2022年,5月20日,19點3分,星期日串行口組成:兩個數(shù)據(jù)緩沖寄存器SBUF、一個輸入移位寄存器、波特率發(fā)生器以及串行控制寄存器SCON等組成 。串行口的接收發(fā)送操作:首先對串行口初始化。發(fā)送時CPU寫SBUF ,一方面修改發(fā)送寄存器,同時啟動數(shù)據(jù)串行發(fā)送到TXD端,發(fā)送完畢后置標志位TI;接受時置允許接收位才開始接受操作,接受完畢置位RI,這時CPU可以讀SBUF,即讀接收到的數(shù)據(jù)。 第33頁,共100頁,2022年,5月20日,19點3分,星期日發(fā)送操作:數(shù)據(jù)寫入發(fā)送緩沖寄存器SBUF(99H),串行口即把8位數(shù)據(jù)以fosc 12 波特率從RXD端送出(低位在前

18、), TXD端送出同步移位脈沖,發(fā)送完后置中斷標志TI=1。 MOV TMOD, #00H MOV SBUF, #data JNB TI, $ CLR TI RET第34頁,共100頁,2022年,5月20日,19點3分,星期日接收操作:REN是串行口接收器允許接收控制位。當RI=0,軟件置REN為1時,即開始從RXD端以fosc 12波特率輸入數(shù)據(jù)(低位在前), TXD端送出同步移位脈沖,當接收到8位數(shù)據(jù)時,置中斷標志RI=1。RECV: MOV TMOD,#00H CLRRI SETBREN JNB RI, $ MOVA,SBUF CLR RI RET第35頁,共100頁,2022年,5月

19、20日,19點3分,星期日4.2.2 串行口寄存器1.串行口的接收發(fā)送緩沖區(qū)SBUF:是兩個獨立的物理空間,只能字節(jié)尋址。2.串行口控制寄存器SCON :串行口工作方式的設(shè)置和數(shù)據(jù)傳輸?shù)目刂?,可位尋址。?6頁,共100頁,2022年,5月20日,19點3分,星期日SM0、SM1:串行方式選擇位 SM0 SM1 工作方式 功能 波特率 0 0 0 1 1 0 1 1 方式0方式1方式2方式3 8位同步移位寄存器10位UART11位UART11位UART fosc/12可設(shè)置fosc/64和fosc/32可設(shè)置SM0SM1SM2RENTB8RB8TIRI第37頁,共100頁,2022年,5月20

20、日,19點3分,星期日SM0SM1SM2RENTB8RB8TIRISM2:在方式2和方式3中主要用于多機通信控制。第38頁,共100頁,2022年,5月20日,19點3分,星期日第39頁,共100頁,2022年,5月20日,19點3分,星期日第40頁,共100頁,2022年,5月20日,19點3分,星期日第41頁,共100頁,2022年,5月20日,19點3分,星期日REN:允許串行接收位。由軟件置位或清除。REN1時,允許接收;REN0時,禁止接收。TB8:發(fā)送數(shù)據(jù)的第9位。在方式2或方式3中,根據(jù)需要由軟件置位或復(fù)位。在多機通信中可作為區(qū)別地址幀或數(shù)據(jù)幀的標識位,一般約定地址幀時TB8為1

21、,數(shù)據(jù)幀時TB8為0。雙機通信時它可作奇偶校驗位。RB8:接收數(shù)據(jù)的第9位。在方式2或方式3中,雙機通信是奇偶位,多機通信是地址數(shù)據(jù)標識位。 TI:發(fā)送中斷標志位。發(fā)送完一幀數(shù)據(jù)后由硬件置位,必須由軟件來清除 。RI:接收中斷標志位。接受完一幀數(shù)據(jù)后由硬件置位,必須由軟件來清除 。SM0SM1SM2RENTB8RB8TIRI第42頁,共100頁,2022年,5月20日,19點3分,星期日3. 電源控制寄存器PCON PCON的最高位SMOD是串行口波特率倍增位。當SMOD1時,波特率加倍,復(fù)位時,SMOD0 。直接地址為87 H,不可位尋址。SMODPDIDL第43頁,共100頁,2022年,

22、5月20日,19點3分,星期日 圖 43 串行口結(jié)構(gòu)框圖 第44頁,共100頁,2022年,5月20日,19點3分,星期日4.2.3 80C51的幀格式80C51串行口通過編程可設(shè)置4種工作方式,三種幀格式。 方式0以8位數(shù)據(jù)為一幀,不設(shè)起始位和停止位,先發(fā)送或接收最低位。 方式1以10位為一幀傳輸,設(shè)有一個起始位“0”,8個數(shù)據(jù)位和一個停止位“1”。 方式2和3以11位為一幀傳輸,設(shè)有1個起始位“0”,8個數(shù)據(jù)位,1個可編程位(第九數(shù)據(jù)位)D8和1個停止位“1”。 第45頁,共100頁,2022年,5月20日,19點3分,星期日某異步通信接口按方式3傳送,已知其每分鐘傳送3600個字符,計算

23、其傳送波特率第46頁,共100頁,2022年,5月20日,19點3分,星期日424 波特率的設(shè)置 1方式0和方式2的波特率 在方式0時,每個機器周期發(fā)送或接收一位數(shù)據(jù),因此波特率固定為時鐘頻率的 112 。方式2的波特率 第47頁,共100頁,2022年,5月20日,19點3分,星期日2. 方式1和方式3的波特率方式l和方式3的波特率由定時器T1的溢出率與SMOD值決定 方式1和方式3的波特率 T1溢出率 定時器T1作波特率發(fā)生器使用時,通常是選用自動重裝載方式,即方式2。在方式2中,TL1作計數(shù)用,而自動重裝載的值放在TH1內(nèi),設(shè)計數(shù)初值為X,那么每過256-X個機器周期,定時器1就會產(chǎn)生一

24、次溢出。為了避免因溢出而產(chǎn)生不必要的中斷,此時應(yīng)禁止T1中斷。第48頁,共100頁,2022年,5月20日,19點3分,星期日波特率為溢出周期之倒數(shù),所以 (2) (1)溢出周期為: 第49頁,共100頁,2022年,5月20日,19點3分,星期日例:8051單片機時鐘振蕩頻率為11.0592MHZ,選用定時器T1(工作在方式2)作波特率發(fā)生器,波特率為4800bps,求定時器T1的初值X。解 設(shè)波特率控制位SMOD=0,則: X=256(11.0592106(0+1)/(3844800)=250=FAH所以,(TH1)=(TL1)=FAH系統(tǒng)晶振頻率選用11.0592MHZ,是為了使初值為整

25、數(shù),從而產(chǎn)生精確的波特率。第50頁,共100頁,2022年,5月20日,19點3分,星期日已知8051單片機的振蕩頻率為9MHz,以T1作為波特率發(fā)生器,T1工作在方式2,(PCON)=00H,要求波特率為1200b/s,試計算T1的溢出率和TH1、TL1的初始值,如果串行口工作在方式1,問一分鐘最大能發(fā)送多少個字符?(PCON)=00H SMOD=0波特率=2SMOD溢出率/32=溢出率/32=1200溢出率=32波特率=321200=38400又溢出周期 T=(12/fosc)*(28-X)溢出率=fOSC/12(256-TC)TH1=TL1=TC=256- fOSC/(12溢出率)=25

26、6-9106/(1238400)=236=0ECH即TH1、TL1的初始值為0ECH 串行口工作在方式1,每個字符發(fā)送10個二進制位一分鐘發(fā)送的字符數(shù)=120060/10=7200個 第51頁,共100頁,2022年,5月20日,19點3分,星期日43 串行通信工作方式 4.3.1 方式0用作同步移位寄存器,以8位數(shù)據(jù)為一幀,發(fā)送/接收低位在先,數(shù)據(jù)由RXD(P3.0)端輸入或輸出,同步移位脈沖由TXD(P3.l)端送出,波特率固定為 fosc12。這種方式常用于擴展IO 口。第52頁,共100頁,2022年,5月20日,19點3分,星期日第53頁,共100頁,2022年,5月20日,19點3

27、分,星期日第54頁,共100頁,2022年,5月20日,19點3分,星期日第55頁,共100頁,2022年,5月20日,19點3分,星期日3. 方式2和方式3 11位異步通信接口。發(fā)送或接收一幀信息包括l位起始位“0” 、8位數(shù)據(jù)位、1位可編程位TB8/RB8和1位停止位“1”。 方式2波特率與SMOD有關(guān),方式3波特率取決于T1溢出率。發(fā)送操作:發(fā)送前,先根據(jù)通信協(xié)議由軟件設(shè)置TB8(如作奇偶校驗位或地址數(shù)據(jù)標識位),然后執(zhí)行任何一條以SBUF作為目的寄存器的寫指令即啟動發(fā)送器,同時TB8自動裝到發(fā)送移位寄存器的第9位位置上 ,從TXD端輸出一幀數(shù)據(jù) ,發(fā)送完畢,TI標志=1。第56頁,共1

28、00頁,2022年,5月20日,19點3分,星期日接收操作:先置位REN為1,使串行口處于允許接收狀態(tài),同時還要將RI清0。在滿足這個條件的前提下,再根據(jù)SM2的狀態(tài)和所接收到的RB8的狀態(tài)決定是否會使RI置1,并申請中斷,接收數(shù)據(jù)。當SM20時,不管RB8為0還是為1,RI都置1,此串行口將接收發(fā)來的信息。 第57頁,共100頁,2022年,5月20日,19點3分,星期日 4.1.1.5應(yīng)用指導(dǎo)1串行通信中的常用波特率5.4串行口應(yīng)用與訓(xùn)練 80C51的四種工作方式中,方式0和方式2的波特率固定,見表和方式0、方式2的特點。方式1和方式3的波特率可變,其具體數(shù)值由定時器T1的溢出率和SMOD

29、位共同決定,公式見表。 定時器T1作波特率發(fā)生器時,為了防止溢出中斷,應(yīng)保持T1為中斷禁止狀態(tài)。表5-4列出了T1的常用波特率。第58頁,共100頁,2022年,5月20日,19點3分,星期日表5- 4 T1的常用波特率第59頁,共100頁,2022年,5月20日,19點3分,星期日 2利用串行口擴展I/O口 80C51單片機串行口方式0為同步移位寄存器方式,可進行8位并行I/O口的擴展。當串行口別無它用時,可通過使用串行輸入并行輸出移位寄存器(如74LS164)擴展并行輸出口;或使用并行輸入串行輸出移位寄存器(如74LS165)擴展并行輸入口。這種方法不占用片外RAM地址,而且還能簡化單片機

30、系統(tǒng)的硬件結(jié)構(gòu)。但缺點是操作速度較慢,且擴展芯片越多,速度越慢。 圖4-12是利用一片74LS165擴展8位并行輸入口的實用電路。當移位/置入端S/由“1”變?yōu)椤?”時,并行輸入端的數(shù)據(jù)被置入寄存器。當S/1,且時鐘禁止端(15腳)接地時,在時鐘脈沖的作用下,數(shù)據(jù)由QA向QH方向(即D7D0)移動。 第60頁,共100頁,2022年,5月20日,19點3分,星期日圖5-12 利用一片74LS165擴展8位并行輸入口電路 圖中RXD(P3.0)作為80C51的串行輸入端與74LS165的串行輸出端相連,TXD(P3.1)為移位脈沖輸出端,與74LS165芯片的移位脈沖輸入端連接,用一根I/O口線

31、P1.0與74LS165芯片的S/相連來控制移位與置位過程。注:圖中74LS165的SIN引腳為串行輸入端,用于兩片74LS165的串行擴展連接。第61頁,共100頁,2022年,5月20日,19點3分,星期日3串行通信編程基礎(chǔ) (1)串行口初始化編程 串行口初始化應(yīng)該包括對SCON、PCON和T1的初始化。對T1的初始化又包含TMOD寄存器初始化(將T1設(shè)置為波特率發(fā)生器)、根據(jù)波特率求時間常數(shù)并對TH1和TL1賦值、啟動T1等過程,串口初始化格式如下,其中加括號的指令可根據(jù)情況選擇使用: SIO:MOV SCON,#控制狀態(tài)字 ;寫方式字且TI=RI=0 (MOV PCON,#80H) ;

32、波特率加倍 (MOV TMOD,#20H ) ;T1作波特率發(fā)生器 ( MOV TH1,#X ) ;選定波特率 ( MOV TH1,#X ) ( SETB TR1) ;啟動T1 ( SETB EA) ;開串行口中斷 ( SETB ES)第62頁,共100頁,2022年,5月20日,19點3分,星期日(2)發(fā)送程序 發(fā)送程序可以采用中斷和查詢兩種方式設(shè)計。查詢方式:TRAM:MOV A,R0 ;取數(shù)據(jù) MOVSBUF,A ;發(fā)送一個字符WAIT:JBCTI,NEXT ;等待發(fā)送結(jié)束 SJMPWAITNEXT:INCR0 ;準備下一次發(fā)送 SJMPTRAM第63頁,共100頁,2022年,5月20

33、日,19點3分,星期日 中斷方式: ORG 0023H ;串行口中斷入口 AJMP SINT MAIN: ;初始化編程 TRAM: MOV A,R0 ;取數(shù)據(jù)MOV SBUF,A ;發(fā)送第一個字符 SJMP$ ;其它工作 SINT:CLR TI ;中斷服務(wù)程序INC R0MOV A,R0 ;取數(shù)據(jù)MOV SBUF,A ;發(fā)送下一個字符RETI第64頁,共100頁,2022年,5月20日,19點3分,星期日 (3)接收程序 與發(fā)送相類似,接收也可以采用中斷和查詢兩種方式設(shè)計。 當REN=1、RI=0時80C51處于等待接收狀態(tài);一旦檢測到RI=1,80C51開始從SBUF讀取數(shù)據(jù)。 查詢方式:

34、WAIT:JBCRI,NEXT ;查詢等待 SJMPWAIT NEXT:MOVA,SBUF ;讀取接收數(shù)據(jù)MOVR0,A ;保存數(shù)據(jù)INC R0 ;準備下一次接收SJMPWAIT第65頁,共100頁,2022年,5月20日,19點3分,星期日5.4.2 基本訓(xùn)練 1初始化訓(xùn)練 要求:某80C51單片機通信系統(tǒng),晶振頻率為12MHz,要求串行口發(fā)送8位數(shù)據(jù),波特率1200bmp,請編寫它的初始化程序。思路與計算:要選擇串行口和定時器T1的工作方式,計算時間常數(shù)并賦值給TH1、TL1。我們可以利用表5- 1中求波特率的公式:第66頁,共100頁,2022年,5月20日,19點3分,星期日 初始化程

35、序: MOV SCON,#40H ;串口工作于方式1 MOV PCON,#80H ;SMOD=1 MOV TMOD,#20H ;T1 作定時器,工作于方式2 MOV TH1,#0CCH ;裝入時間常數(shù)初值 MOV TL1 ,#0CCH ;自動重裝時間常數(shù) CLR ET1 ;禁止T1中斷 SETB TR1 ;啟動T1波特率發(fā)生器 總結(jié):用上述公式計算出的波特率不為整數(shù),近似取整后,波特率也就不能精確地等于1200bps。但在異步傳送中,每接收一個字符實際上都要整步一次,因此這點微小誤差并不影響收發(fā)。 第67頁,共100頁,2022年,5月20日,19點3分,星期日要求:利用80C51的串行口實現(xiàn)

36、一個數(shù)據(jù)塊的發(fā)送。設(shè)發(fā)送數(shù)據(jù)區(qū)首地址為58H,數(shù)據(jù)塊長度(字節(jié)數(shù))為10,串行口工作于方式1,波特率1200bps,晶振頻率為11.0592MHz。思路:串行口工作于方式1時,波特率要編程設(shè)定。通常使T1工作在方式2,當波特率取1200bps時,可以查表或計算時間常數(shù)初值,得0E8H(SMOD=0時)。發(fā)送子程序TRAM清單: TRAM:MOV TMOD,#20H ;T1工作在方式2 MOV TH1,#0E8H;裝入時間常數(shù)初值 MOV TL1,#0E8H ;自動重裝時間常數(shù)2串行傳送訓(xùn)練第68頁,共100頁,2022年,5月20日,19點3分,星期日 CLR ET1 ;禁止T1中斷 SETB

37、 TR1 ;啟動T1波特率發(fā)生器 MOV SCON,#40H ;串口工作于方式1 MOV PCON,#00H ;SMOD=0,該指令可不寫 MOV R1,#58H ;數(shù)據(jù)發(fā)送區(qū)首址送R1 MOV R5,#10 ;發(fā)送長度送R5LOOP:MOV A,R1 ;發(fā)送一幀數(shù)據(jù) MOV SBUF,A WAIT:JBC TI,NEXT ;發(fā)送等待,發(fā)完一幀轉(zhuǎn)去NEXT SJMP WAIT NEXT:INC R1 ;準備取下一數(shù)據(jù) DJNZ R5,LOOP ;數(shù)據(jù)塊發(fā)完?未發(fā)完轉(zhuǎn)LOOP RET ;發(fā)完,結(jié)束 發(fā)送等待時為什么不用“JB TI,NEXT”指令,而用“ JBC TI,NEXT”指令? 第69頁

38、,共100頁,2022年,5月20日,19點3分,星期日第70頁,共100頁,2022年,5月20日,19點3分,星期日第71頁,共100頁,2022年,5月20日,19點3分,星期日第72頁,共100頁,2022年,5月20日,19點3分,星期日第73頁,共100頁,2022年,5月20日,19點3分,星期日4.4.3 課題與實訓(xùn)10 串行輸出控制彩燈一實訓(xùn)目的1熟悉74LS164的使用,掌握串行口的基本應(yīng)用方法。2學(xué)習(xí)串行口的擴展技術(shù),掌握串行口相關(guān)寄存器的設(shè)定方法。3掌握串行口擴展顯示器的電路設(shè)計原理和編程方法二課題要求 利用一片AT89C51芯片,使之工作于方式0。在其串口擴展一片74

39、LS164控制8個LED,要求使用建表方式,控制LED閃爍,其閃爍規(guī)律為:8個LED作左移2次,閃2次;右移2次,閃2次。閃爍間隔0.2秒。 第74頁,共100頁,2022年,5月20日,19點3分,星期日三背景知識174LS164是串行輸入并行輸出移位寄存器,接在80C51的串行口,可以實現(xiàn)對8位并行數(shù)據(jù)的控制。280C51與74LS164連接時,RXD(P3.0)作為串行輸出與74LS164的數(shù)據(jù)輸入端(1、2)相連,TXD(P3.1)作為移位脈沖輸出與74LS164的時鐘脈沖輸入端(8)相連,74LS164的CLR端(9)通過電阻、電容接在電源和地上。 第75頁,共100頁,2022年,

40、5月20日,19點3分,星期日四硬件電路 圖4-13 串行輸出控制彩燈硬件電路 第76頁,共100頁,2022年,5月20日,19點3分,星期日 ORG 0000H AJMP MAIN ORG 0100H MAIN:MOV SCON,#00H;串口工作于方式0START:MOV DPTR,#TABLE;指向TABLE表LOOP:CLR A;清除A MOVC A,A+DPTR;從TABLE表取數(shù)據(jù) CJNE A,#05H,NEXT;取到結(jié)束碼05H?沒有跳到NEXT AJMP START;結(jié)束,重新開始NEXT:CPL A;取到數(shù)據(jù)反相 MOV SBUF,A;向串口發(fā)送LOOP1:JBC TI,

41、LOOP2;發(fā)送結(jié)束?是,跳到LOOP2 AJMP LOOP1;沒結(jié)束,再檢測LOOP2:ACALL DELAY;延時0.2秒 INC DPTR;指向下一地址 AJMP LOOP五軟件設(shè)計(參考程序如下:)第77頁,共100頁,2022年,5月20日,19點3分,星期日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,08H DB 10H,20

42、H,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é)與思考174LS164無輸出控制端,故串行輸入過程中,輸出端會不斷地變化。所以一般應(yīng)在74LS164和輸出裝置之間加接輸出控制門,以保證串行輸入結(jié)束后再輸出數(shù)據(jù)。2如果不用建表方式,如何實現(xiàn)? 第78頁,共100頁,2022年,5月20日,19點3分,星期日4.5.1 單片機與顯示器的串行通信 例:某車間擬設(shè)置一塊生

43、產(chǎn)進度顯示板,顯示當天已完成的產(chǎn)品數(shù)量(不超過256),所需的產(chǎn)量數(shù)據(jù),要從主單片機傳送到顯示板,請幫助設(shè)計相應(yīng)的傳送程序。 分析與設(shè)計 該任務(wù)中,每當生產(chǎn)線上完成一臺合格產(chǎn)品時,通過自動計數(shù)裝置向主單片機外部中斷輸入端送出一個低電平“0”,作為請求中斷信號;主單片機響應(yīng)中斷后,在中斷服務(wù)程序中,將產(chǎn)量值(存放在50H中)加1,并通過串口將其送給顯示板。 顯示版接收主單片機送來的顯示數(shù)據(jù)。顯示板的CPU平時運行顯示程序,顯示當前的產(chǎn)量(產(chǎn)量數(shù)據(jù)存放在數(shù)據(jù)存儲區(qū)50H單元中)。只有當顯示板的串口接收到主單片機發(fā)來的顯示數(shù)據(jù)時,才會因串口中斷,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,以便將新接收到的產(chǎn)量數(shù)據(jù)存放到5

44、0H單元中,再返回到主程序執(zhí)行顯示程序。5.5 單片機串行口應(yīng)用舉例第79頁,共100頁,2022年,5月20日,19點3分,星期日1主單片機主程序發(fā)送端的主程序要完成外部中斷和串行口的初始化工作,然后等待外部中斷。 ORG 0000H AJMP MAIN ORG 0013H AJMP SUBG ;中斷入口 ORG 0100H MAIN:MOV 50H,#00H ;當天產(chǎn)量從0開始 MOV SP,#60H SETB IT1;采用邊沿觸發(fā)方式 MOV SCON,#40H;串口工作于方式1,禁止接收 MOV PCON,#00H;波特率不加倍 MOV TMOD,#20H;T1工作于方式2 軟件設(shè)計第

45、80頁,共100頁,2022年,5月20日,19點3分,星期日 MOV TH1,#0E8H;波特率為1200bps MOV TL1,#0E8H SETB EX1;開中斷 SETB EA;開中斷 SETB TR1;打開波特率發(fā)生器 AJMP $;等待中斷中斷服務(wù)子程序 當外部中斷申請中斷時,表示生產(chǎn)線上已完成一臺成品,因此中斷服務(wù)程序的任務(wù)就是將產(chǎn)量單元50H加1,并將加1后的數(shù)值從串口輸出。程序如下: ORG 0200HSUBG:PUSH ACC INC 50H MOV A,50H MOV SBUF,A第81頁,共100頁,2022年,5月20日,19點3分,星期日WAIT:JBC TI,NE

46、XT SJMP WAITNEXT:POP ACC RETI2顯示板的CPU主程序主程序的初始化部分與發(fā)送端基本相同,只是要將SCON的禁止接收改成允許接收。并且要一邊執(zhí)行顯示程序,一邊等待中斷。顯示程序從略,可參看第6章。 ORG 0000H AJMP MAIN ORG 0023H AJMP SUBG ;串口中斷入口 ORG 0100H MAIN:MOV 50H,#00H ;當天產(chǎn)量從0開始 MOV SP,#60H第82頁,共100頁,2022年,5月20日,19點3分,星期日 MOV SCON,#50H;串口工作于方式1,允許接收 MOV PCON,#00H;波特率不加倍 MOV TMOD,

47、#20H;T1工作于方式2 MOV TH1,#0E8H;波特率為1200bps MOV TL1,#0E8H SETB ES;開串口中斷 SETB EA;開中斷 SETB TR1;打開波特率發(fā)生器 WAIT:ACALL DISPLAY;轉(zhuǎn)顯示子程序 AJMP WAIT;等待中斷第83頁,共100頁,2022年,5月20日,19點3分,星期日中斷服務(wù)子程序當接收端的串口收到單片機發(fā)來的數(shù)據(jù)時,串口申請中斷。在中斷服務(wù)程序中,要保護現(xiàn)場,將新接收到的產(chǎn)量數(shù)據(jù)存放到50H單元中,再返回主程序。 ORG 0200HSUBG:PUSH ACC CLR RI MOV A, SBUF MOV 50H, ANE

48、XT:POP ACC RETI第84頁,共100頁,2022年,5月20日,19點3分,星期日第85頁,共100頁,2022年,5月20日,19點3分,星期日第86頁,共100頁,2022年,5月20日,19點3分,星期日一實訓(xùn)目的1學(xué)習(xí)雙機通信的常識。2掌握雙機通信程序狀態(tài)字的設(shè)置方法。3學(xué)習(xí)雙機通信程序的編制方法。二課題要求 利用2片AT89C51芯片,一片用作發(fā)送器,記作89C51-T,用來讀入P1口指撥開關(guān)的狀態(tài);另一片用作接收器,記作89C51-R,用來接收89C51-T發(fā)送過來的指撥開關(guān)的狀態(tài),并將其在89C51-R輸出的8個LED上顯示出來。三背景知識1雙機通信 如果兩個80C5

49、1單片機相距很近,將它們的串行口直接相連,即可實現(xiàn)雙機通信。采用圖5-14所示的兩個80C51串行口直接相連的方法,通信距離只限于1.5m以內(nèi)。如果要增加通信距離,可以在兩個單片機之間采用標準異步串行接口連接,如使用RS-232C、RS-422A及RS-485等串行接口總線。4.5.2 課題與實訓(xùn)11 雙機通信第87頁,共100頁,2022年,5月20日,19點3分,星期日 2通信協(xié)議 在雙機通信或多機通信時,通常要規(guī)定通信協(xié)議。所謂通信協(xié)議是指通信雙方的一種約定。它對數(shù)據(jù)格式、同步方式、傳送速度、傳送步驟、檢糾錯方式以及控制字符定義等問題做出統(tǒng)一規(guī)定,通信雙方必須共同遵守。因此,也叫做通信控

50、制規(guī)程,或稱傳輸控制規(guī)程。本實訓(xùn)所用的兩片AT89C51芯片,一個只作輸入,另一個只作輸出,形式非常簡單,不用規(guī)定通信協(xié)議。圖5-14 雙機通信簡圖第88頁,共100頁,2022年,5月20日,19點3分,星期日四硬件電路 圖5-15 雙機通信硬件電路 第89頁,共100頁,2022年,5月20日,19點3分,星期日參考程序如下:AT89C51-T的發(fā)送程序 ORG 0000H AJMP MAIN ORG 0100H MAIN:MOV SP,#50H;設(shè)定堆棧區(qū) MOV SCON,#40H ;串行口工作在方式1,禁止接收 MOV TMOD,#20H;定時器1工作在方式2 MOV TL1,#0E

51、8H;波特率為1200 MOV TH1,#0E8H; SETB TR1;啟動定時器1 MOV 30H,#0FFH;設(shè)定指撥開關(guān)初值 MOV P1, #0FFH;P1 口設(shè)為輸入狀態(tài)READ:MOV A,P1;讀入指撥開關(guān)值 CJNE A,30H,KEY;輸入值改變則跳至KEY AJMP READ;否則繼續(xù)讀指撥開關(guān)值五軟件設(shè)計第90頁,共100頁,2022年,5月20日,19點3分,星期日 KEY:MOV 30H,A;存指撥開關(guān)新值 MOV SBUF,A;送串行口發(fā)送WAIT:JBC TI,READ;查看是否送完 AJMP WAIT ENDAT89C51-R的接收程序 ORG 0000H AJ

52、MP MAIN ORG 0100H MAIN:MOV SP,#50H ;設(shè)定堆棧區(qū) MOV SCON,#50H;串行口工作在方式1,允許接收 MOV TMOD,#20H;定時器1工作在方式2 MOV TL1,#0E8H;波特率為1200 MOV TH1,#0E8H SETB TR1;啟動定時器1READ:JBC RI,UART;是否接收到數(shù)據(jù),收到則跳到UART AJMP READ第91頁,共100頁,2022年,5月20日,19點3分,星期日UART:MOV A,SBUF;收到的數(shù)據(jù)送A MOV P1,A;發(fā)送至P1口 AJMP READ END六總結(jié)與提高在編寫串行口應(yīng)用程序時應(yīng)注意這樣幾個問題:必須對串行口進行初始化。具體包括SCON、PCON 和波特率的設(shè)定。在接收和發(fā)送一個字節(jié)完畢后必須用軟件清除中斷標志。本實訓(xùn)采用軟件查詢方式編程,請嘗試用中斷方式實現(xiàn)該功能。 第92頁,共100頁,2022年,5月20日,19點3分,星期日 串行口的方式2和方式3具有多機通信功能,能實現(xiàn)一臺主單片機和若干從單片機構(gòu)成的多機分布控制系統(tǒng),其連接方式如圖5-16所示。 圖5-16 多機通信示意圖5.5.3 多機通信第93頁,共100頁,2022年,5月20日,19點3分,星期日 多機通信時,充分利用單片機SCON中的多機通信控制SM2位。當從機SM2=1時,從機只接收主機發(fā)來的地址幀(

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論