《單片機(jī)原理及應(yīng)用》課件-第7章 AT89C51串行通信及其應(yīng)用_第1頁(yè)
《單片機(jī)原理及應(yīng)用》課件-第7章 AT89C51串行通信及其應(yīng)用_第2頁(yè)
《單片機(jī)原理及應(yīng)用》課件-第7章 AT89C51串行通信及其應(yīng)用_第3頁(yè)
《單片機(jī)原理及應(yīng)用》課件-第7章 AT89C51串行通信及其應(yīng)用_第4頁(yè)
《單片機(jī)原理及應(yīng)用》課件-第7章 AT89C51串行通信及其應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

ChapterSevenAT89C51串行通信及其應(yīng)用目錄CONTENT7.1.1并行通信和串行通信7.1.2異步通信和同步通信7.1.3單片機(jī)串行通信傳輸方式7.1.4串行數(shù)據(jù)通信的傳輸速率7.2.1AT89C51串行口的結(jié)構(gòu)7.2.2AT89C51串行口控制寄存器7.2.3AT89C51串行口的工作方式及波特率計(jì)算7.2AT89C51串行口7.3串行通信協(xié)議7.1串行通信概述7.3.1RS-232協(xié)議7.3.2RS-485/422A協(xié)議7.3.3串行通信的數(shù)據(jù)校驗(yàn)7.4串行通訊的應(yīng)用并行通信:所傳送數(shù)據(jù)的各位同時(shí)發(fā)送或接收。7.1.1并行通信和串行通信計(jì)算機(jī)與外界的信息交換稱(chēng)為通信,通常有并行和串行兩種通信方法。串行通信:所傳送數(shù)據(jù)的各位按順序一位一位地發(fā)送或接收。異步通信7.1.2異步通信和同步通信串行通信的通信方式同步通信7.1.2異步通信和同步通信AT89C51在異步通信中,逐位發(fā)送的數(shù)據(jù)之間是沒(méi)有同步時(shí)鐘信號(hào)的。收發(fā)雙方取得同步的方法是接收端檢測(cè)起始位(低電平0)。在沒(méi)有數(shù)據(jù)傳送時(shí),傳輸線(xiàn)處于高電平,當(dāng)接收端檢測(cè)到起始位便知道開(kāi)始通信,然后開(kāi)始按約定的速率逐位讀取傳輸線(xiàn)的電平接收信息,直到最后一位檢測(cè)到停止位。異步通信數(shù)據(jù)傳送按幀傳輸,一幀數(shù)據(jù)包含起始位、數(shù)據(jù)位、校驗(yàn)位和停止位。傳送用一個(gè)起始位表示字符的開(kāi)始,用停止位表示字符的結(jié)束。異步通信的數(shù)據(jù)傳送17.1.2異步通信和同步通信發(fā)送器是通過(guò)發(fā)送起始位而開(kāi)始一個(gè)字符的傳送。起始位串行通信中所要傳送的數(shù)據(jù)內(nèi)容。在數(shù)據(jù)位中,低位在前,高位在后。數(shù)據(jù)位通常是8位。數(shù)據(jù)位用于對(duì)字符傳送作正確性檢查,因此校驗(yàn)位是可以省略的。校驗(yàn)位一個(gè)字符傳送結(jié)束的標(biāo)志,停止位在一幀數(shù)據(jù)的最后。停止位可能是1、1.5或2位,在實(shí)際應(yīng)用中根據(jù)需要確定。停止位一個(gè)格式位的時(shí)間寬度。位時(shí)間從起始位開(kāi)始到停止位結(jié)束的全部?jī)?nèi)容稱(chēng)之為一幀,幀是一個(gè)字符的完整通信格式,因此也就把串行通信的字符格式稱(chēng)之為幀格式。幀(frame)7.1.2異步通信和同步通信異步數(shù)據(jù)傳送的傳輸速率比較低,所以當(dāng)需要進(jìn)行高速數(shù)據(jù)傳送時(shí),通常采用同步數(shù)據(jù)傳送。同步傳送是一種連續(xù)傳送數(shù)據(jù)的方式,發(fā)送方除了傳送數(shù)據(jù)外,還要同時(shí)傳送時(shí)鐘信號(hào)。每個(gè)字符沒(méi)有起始位和停止位,字符和字符之間可以沒(méi)有間隙,通信效率比較高。典型的同步通信數(shù)據(jù)格式如圖7-3所示,接收方會(huì)在發(fā)送時(shí)鐘的上升沿讀?。ㄦi存)數(shù)據(jù)。同步通信的數(shù)據(jù)傳送27.1.3串行通信傳輸方式1.單工(Simplex)制式串行通信的傳輸方式單工制式半雙工制式全雙工制式7.1.3串行通信傳輸方式2.半雙工(HalfDuplex)制式3.全雙工(FullDuplex)制式7.1.4串行通信的傳輸速率波特率bps(Bitpersecond)是數(shù)據(jù)傳送的速率,其定義是每秒鐘傳送的二進(jìn)制數(shù)的位數(shù)。波特率的倒數(shù)即為每位傳輸所需要的時(shí)間。則:1波特率(Bitpersecond)=1位/秒(1bit/s)若每個(gè)字符為8位,加上1位起始位,1位停止位,則1200波特率數(shù)據(jù)傳送的速率大約是120字符/s。在異步通訊中,單片機(jī)與外設(shè)之間通信,兩者波特率必須相同,否則無(wú)法成功地完成數(shù)據(jù)通信。例7.2.1AT89C51串行口的結(jié)構(gòu)AT89C51片內(nèi)有一個(gè)全雙工的串行通訊接口。由發(fā)送緩沖寄存器SBUF、接收緩沖寄存器SBUF和移位寄存器三部分構(gòu)成。

7.2.2AT89C51串行口控制寄存器串行數(shù)據(jù)緩沖寄存器SBUFSBUF是串行數(shù)據(jù)緩沖寄存器。在邏輯上,SBUF只有一個(gè),既表示發(fā)送寄存器,又表示接收寄存器。它們有相同名字和單元地址,但它們不會(huì)出現(xiàn)沖突,因?yàn)樵谖锢砩?,SBUF有兩個(gè):一個(gè)只能被CPU讀出數(shù)據(jù)(接收寄存器),一個(gè)只能被CPU寫(xiě)入數(shù)據(jù)(發(fā)送寄存器)。017.2.2AT89C51串行口控制寄存器串行控制寄存器SCON它用于定義串行口的工作方式及實(shí)施接收和發(fā)送控制。027.2.2AT89C51串行口控制寄存器(1)SM0、SM1:串行口工作方式控制位:

(2)SM2:多機(jī)通信控制位。SM0、SM1工作方式功能描述波特率00方式08位移位寄存器fosc/1201方式110位UART可變10方式211位UARTfosc/64或fosc/3211方式311位UART可變7.2.2AT89C51串行口控制寄存器(3)REN:允許接收位。REN用于控制數(shù)據(jù)接收的允許和禁止,REN=1時(shí),允許接收,REN=0時(shí),禁止接收。該位由軟件置位或復(fù)位。(4)TB8:方式2和方式3中,要發(fā)送的第9位數(shù)據(jù)。(5)RB8:方式2和方式3中,要接收的第9位數(shù)據(jù)。7.2.2AT89C51串行口控制寄存器(6)TI:發(fā)送中斷標(biāo)志位??蓪ぶ窐?biāo)志位。方式0時(shí),發(fā)送完第8位數(shù)據(jù)后,該位由硬件置位;其它方式下,在發(fā)送停止位之前由硬件置位,因此,TI=1表示幀發(fā)送結(jié)束,可由軟件查詢(xún)TI位標(biāo)志,也可以請(qǐng)求中斷。TI必須由軟件清0。(7)RI:接收中斷標(biāo)志位。可尋址標(biāo)志位。方式0時(shí),接收完第8位數(shù)據(jù)后,該位由硬件置位;在其他工作方式下,當(dāng)接收到停止位時(shí),該位由硬件置位,RI=1表示幀接收完成,可由軟件查詢(xún)RI位標(biāo)志,也可以請(qǐng)求中斷。RI必須由軟件清0。7.2.2AT89C51串行口控制寄存器電源管理寄存器PCON03SMOD:串行口波特率倍增位串口工作方式1,2,3時(shí),波特率正常。SMOD=1時(shí),

波特率加倍。PCON在SFR中的地址87H,不能位尋址。7.2.3AT89C51串行口工作方式及波特率8位移位寄存器輸入/輸出方式。多用于外接移位寄存器以擴(kuò)展I/O端口。串行數(shù)據(jù)通過(guò)RXD輸入/輸出,TXD則用于輸出移位時(shí)鐘脈沖。收發(fā)的數(shù)據(jù)以8位為一幀,不設(shè)起始位與停止位,低位在前。波特率固定為fosc/12。串行端口作為輸出時(shí),只要向串行緩沖器SBUF寫(xiě)入數(shù)據(jù)后,串行端口就把此8位數(shù)據(jù)以相等的波特率,從RXD引腳逐位輸出。8位數(shù)據(jù)發(fā)送完后,TI自動(dòng)置1。串行端口作為輸入時(shí),RXD為數(shù)據(jù)輸入端,TXD仍為同步信號(hào)輸出端,輸出頻率為fosc/12的同步移位脈沖,使外部數(shù)據(jù)逐位移入RXD。當(dāng)接收到8位數(shù)據(jù)(一幀)后,中斷標(biāo)志RI自動(dòng)置1。工作方式017.2.3AT89C51串行口工作方式及波特率方式1為波特率可變的10位異步通訊接口方式。發(fā)送或接收一幀信息,包括1個(gè)起始位0,8個(gè)數(shù)據(jù)位和1個(gè)停止位1。工作方式12輸出:當(dāng)CPU執(zhí)行一條指令將數(shù)據(jù)寫(xiě)入發(fā)送緩沖SBUF時(shí),就啟動(dòng)發(fā)送。串行數(shù)據(jù)從TXD引腳輸出,發(fā)送完一幀數(shù)據(jù)后,就由硬件置位TI。輸入:在(REN)=1時(shí),串行口采樣RXD引腳,當(dāng)采樣到1至0的跳變時(shí),確認(rèn)開(kāi)始位0,就開(kāi)始接收一幀數(shù)據(jù)。在方式1接收時(shí),應(yīng)先用軟件清零RI和SM2標(biāo)志。7.2.3AT89C51串行口工作方式及波特率波特率計(jì)算:工作方式12SMOD是控制寄存器PCON中的一位控制位,其取值有0和1兩種狀態(tài)。顯然,當(dāng)SMOD=0時(shí),波特率=(定時(shí)器T1溢出率)/32,而當(dāng)SMOD=1時(shí),波特率=(定時(shí)器T1溢出率)/16。定時(shí)器的溢出率,就是指定時(shí)器一秒鐘內(nèi)的溢出次數(shù)。7.2.3AT89C51串行口工作方式及波特率定時(shí)初值計(jì)算:當(dāng)定時(shí)/計(jì)數(shù)器T1用作波特率發(fā)生器時(shí),通常選用定時(shí)初值自動(dòng)重裝的工作方式2,從而避免了通過(guò)程序反復(fù)裝入計(jì)數(shù)初值而引起的定時(shí)誤差,使得波特率更加穩(wěn)定。7.2.3AT89C51串行口工作方式及波特率例7-1:已知fosc=12MHz,SMOD=1,波特率=2400bit/s,求串行方式1時(shí)T1定時(shí)初值。并說(shuō)明由此產(chǎn)生的實(shí)際波特率是否有誤差,為什么?根據(jù)若fosc=11.0592MHz,其余條件不變,則T1定時(shí)初值為:7.2.3AT89C51串行口工作方式及波特率當(dāng)時(shí)鐘頻率選用11.0592MHZ時(shí),很容易獲得標(biāo)準(zhǔn)的波特率,所以很多單片機(jī)系統(tǒng)選用此數(shù)值的晶振。使用T1設(shè)置常用的波特率參見(jiàn)表。7.2.3AT89C51串行口工作方式及波特率例7-2:設(shè)89C51單片機(jī)串行口工作于方式1,已知fosc=11.0592MHz,定時(shí)器T1作為波特率發(fā)生器,要求波特率=2400bit/s,SMOD=1,開(kāi)放中斷,試編寫(xiě)初始化程序。根據(jù)題目要求,首先計(jì)算T1定時(shí)器的初值(可以直接利用例7-1的計(jì)算過(guò)程)。然后利用TMOD寄存器,將T1設(shè)置為工作方式2(注意:這里是T1的工作方式,而不是串行口的工作方式)。再將PCON寄存器的SMOD設(shè)置為1,然后TH1寄存器加載E8H,最后啟動(dòng)T1,開(kāi)放中斷,即可產(chǎn)生2400bit/s的波特率。分析:7.2.3AT89C51串行口工作方式及波特率采用匯編語(yǔ)言程序設(shè)計(jì):

MOV TMOD,#20H ;T1設(shè)置為工作方式2 MOV TL1,#0E8H ;T1定時(shí)器初值

MOV TH1,#0E8H ;T1定時(shí)器重裝初值

MOV PCON,#80H ;SMOD設(shè)置為1 MOV SCON,#40H ;串行口方式1 SETB TR1 ;T1啟動(dòng)

SETB ES ;開(kāi)串口中斷

SETB EA ;開(kāi)總中斷采用C51語(yǔ)言程序設(shè)計(jì):程序如下:voidserial_init(void){ TMOD=0x20; //T1設(shè)置為工作方式2 TL1=0xE8; //T1定時(shí)器初值

TH1=0xE8; //T1定時(shí)器重裝初值

PCON=0x80; //SMOD設(shè)置為1 SCON=0x40; //串行口方式1 TR1=1; //T1啟動(dòng)

ES=1; //開(kāi)串口中斷

EA=1; //開(kāi)總中斷}7.2.3AT89C51串行口工作方式及波特率7.2.3AT89C51串行口工作方式及波特率方式2為11位異步通信方式。其中,1個(gè)起始位(0),8個(gè)數(shù)據(jù)位(由低位到高位),1個(gè)附加的第9位和1個(gè)停止位(1)。工作方式23發(fā)送數(shù)據(jù)時(shí),第9位數(shù)據(jù)來(lái)自發(fā)送機(jī)SCON中的TB8,這可使用如下指令完成:SETBTB8;TB8位置“1”CLRTB8;TB8位置“0”7.2.3AT89C51串行口工作方式及波特率方式2的波特率是固定的,而且有兩種。工作方式23由此公式可知,當(dāng)SMOD為0時(shí),波特率為fosc/64,當(dāng)SMOD為1時(shí),波特率為fosc/32。7.2.3AT89C51串行口工作方式及波特率方式3和方式2除波特率不同外,其它性能完全相同。工作方式347.2.3AT89C51串行口工作方式及波特率7.3串行通信協(xié)議7.3.1RS-232協(xié)議1.RS-232協(xié)議簡(jiǎn)介RS-232是目前被廣泛使用的異步串行數(shù)字通信電氣標(biāo)準(zhǔn),由美國(guó)電子工業(yè)協(xié)會(huì)EIA(ElectronicsIndustryAssociation)于1962年公布,1969年最后修訂而成,RS(RecommendedStandard)表明它是一種被推薦的標(biāo)準(zhǔn)。7.3.1RS-232協(xié)議RS-232C采用的9芯DB-9連接方式。9芯中各信號(hào)的定義如表7-5。在計(jì)算機(jī)端,采用DB-9的9針接口(公頭)。采用“2收,3發(fā),5地”三條信號(hào)就可以實(shí)現(xiàn)計(jì)算機(jī)之間,或者計(jì)算機(jī)與外設(shè)之間的雙工通信。7.3.1RS-232協(xié)議3.電氣特性RS-232協(xié)議規(guī)定最大的通信速度為20Kb/s,現(xiàn)在已經(jīng)出現(xiàn)高達(dá)2Mb/s速率的基于RS-232的通信系統(tǒng)。作為單片機(jī)系統(tǒng),由于其處理能力有限,工作頻率不是很高,一般可實(shí)現(xiàn)的最高波特率在112Kb/s左右。RS-232協(xié)議規(guī)定最長(zhǎng)的通信距離是15m,目前市售的長(zhǎng)線(xiàn)驅(qū)動(dòng)器已經(jīng)可以將通信距離延長(zhǎng)到數(shù)千米。7.3.1RS-232協(xié)議4.TTL電平與RS-232電平的轉(zhuǎn)換EIA-RS-232C電平: 邏輯1–3~-15v

溫馨提示

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

評(píng)論

0/150

提交評(píng)論