版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第8章單片機的數(shù)據(jù)通信8.1單片機的串行通信8.2單片機與PC之間的串行通信習(xí)題本章將圍繞著單片機在實際應(yīng)用中對串口的使用,根據(jù)通信的方法分別介紹單片機的各種通信和數(shù)據(jù)傳送的方式。對于1-wire總線、IIC總線和SPI總線等知識由于內(nèi)容較多,本書將在后面單獨作為一章來介紹。第8章單片機的數(shù)據(jù)通信本章將圍繞著單片機在實際應(yīng)用中對串18.1單片機的串行通信8.1.1案例介紹及知識要點8.1.2程序示例8.1.3知識總結(jié)——串行口的結(jié)構(gòu)8.1.4知識總結(jié)——串行口相關(guān)特殊功能寄存器8.1.5知識總結(jié)——串行通信工作方式及波特率的計算8.1單片機的串行通信8.1.1案例介紹及知識要點28.1.1案例介紹及知識要點利用單片機a將一段流水燈控制程序發(fā)送到單片機b,利用b來控制其P1口點亮8位LED,如圖8-1所示。了解串行口的基本結(jié)構(gòu)和工作原理。掌握相關(guān)寄存器的配置方式。了解串行口的工作方式,掌握串行通信波特率的計算方式。掌握應(yīng)用程序的編寫方法。
8.1.1案例介紹及知識要點利用單片機a將一段流水燈控制38.1.2程序示例1.案例分析a完成發(fā)送,b完成接收。編寫程序設(shè)置a,令SM0=0,SM1=1。設(shè)置b,令SM0=0,SM1=1,REN=1,使接收允許。2.源程序1) 數(shù)據(jù)發(fā)送程序2) 數(shù)據(jù)接收程序8.1.2程序示例1.案例分析48.1.3知識總結(jié)——串行口的結(jié)構(gòu)51系列單片機的串行口占用P3.0和P3.1兩個引腳,是一個全雙工的異步串行通信接口,可以同時發(fā)送和接收數(shù)據(jù)。P3.0是串行數(shù)據(jù)接收端RXD,P3.1是串行數(shù)據(jù)發(fā)送端TXD。51單片機串行接口的內(nèi)部結(jié)構(gòu)如圖8-2所示。51單片機串行接口的結(jié)構(gòu)由串行接口控制電路、發(fā)送電路和接收電路3部分組成。
8.1.3知識總結(jié)——串行口的結(jié)構(gòu)51系列單片機的串行口58.1.4知識總結(jié)——串行口相關(guān)特殊功能寄存器串行口控制寄存器SCON存放串行口的控制和狀態(tài)信息,串行口用定時器T1作為波特率發(fā)生器(發(fā)送接受時鐘),電源控制寄存器PCON的最高位SMOD為串行口波特率的倍率控制位,中斷允許控制寄存器IE控制串行通信中斷是否允許。具體格式如下。1.串行口控制寄存器SCON2.?dāng)?shù)據(jù)緩沖器SBUF3.電源控制寄存器PCON4.中斷允許控制寄存器IE8.1.4知識總結(jié)——串行口相關(guān)特殊功能寄存器串行口控制61.串行口控制寄存器SCON串行口的工作方式是由串行口控制寄存器SCON控制的,其格式如表8-1所示。(1) SM0和SM1:用于設(shè)置串行接口的工作方式,有4種工作方式,如表8-2所示。(2) SM2:方式2和方式3的多級通信控制位。對于方式2或方式3,如SM2置為1,則接收到的第9位數(shù)據(jù)(RB8)為1時置位RI,否則不置位;對于方式1,若SM2=1,則只有接收到有效的停止位時才會置位RI。對于方式0,SM2應(yīng)該為0。(3) REN:允許串行接收位。由軟件置位或清零。REN=1時,串行接口允許接收數(shù)據(jù);REN=0時,則禁止接收。(4) TB8:對于方式2和方式3,是發(fā)送數(shù)據(jù)的第9位??捎米鲾?shù)據(jù)的奇偶校驗位,或在多機通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位,TB8=0,發(fā)送地址幀,TB8=1,發(fā)送數(shù)據(jù)幀。需要有軟件置1或清0。(5) RB8:對于方式2和方式3,是接收數(shù)據(jù)的第9位,作為奇偶校驗位或地址幀/數(shù)據(jù)幀的標(biāo)志位。對于方式1,若SM2=0,則RB8是接收到的停止位。對于方式0,不使用RB8。(6) TI:發(fā)送中斷標(biāo)志位。由硬件在方式0串行發(fā)送第8位結(jié)束時置位,或在其他方式串行發(fā)送停止位的開始時置位,向CPU發(fā)中斷申請,但必須在中斷服務(wù)程序中由軟件將其清0,取消此中斷請求。(7) RI:接收中斷標(biāo)志位。由硬件在方式0接收到第8位結(jié)束時置位,或在其他方式接收到停止位的中間時置位,向CPU發(fā)中斷申請,但必須在中斷服務(wù)程序中由軟件將其清0,取消此中斷請求。1.串行口控制寄存器SCON串行口的工作方式是由串行口控制寄7表8-1~2表8-1~282.?dāng)?shù)據(jù)緩沖器SBUF發(fā)送緩沖器只管發(fā)送數(shù)據(jù),51單片機沒有專門的啟動發(fā)送的指令,發(fā)送時,就是CPU寫入SBUF的過程(MOVSBUF,A);接收緩沖器只管接收數(shù)據(jù),接受時,就是CPU讀取SBUF的過程(MOVA,SBUF)。即數(shù)據(jù)接收緩沖器只能讀出不能寫入,數(shù)據(jù)發(fā)送緩沖器只能寫入不能讀出。CPU對特殊功能寄存器SBUF執(zhí)行寫操作,就是將數(shù)據(jù)寫入發(fā)送緩沖器;對SBUF執(zhí)行讀操作就是讀出接受緩沖器的內(nèi)容。所以可以同時發(fā)送和接收數(shù)據(jù)。對于發(fā)送緩沖器,由于發(fā)送時CPU是主動的,不會產(chǎn)生重疊錯誤。而接收緩沖器是雙緩沖結(jié)構(gòu),以避免在接收下一幀數(shù)據(jù)之前,CPU未能及時響應(yīng)接收器的中斷,沒有把上一幀數(shù)據(jù)取走,就會丟失前一字節(jié)的內(nèi)容。2.?dāng)?shù)據(jù)緩沖器SBUF發(fā)送緩沖器只管發(fā)送數(shù)據(jù),51單片機沒有93.電源控制寄存器PCONPCON的最高位是串行口波特率系數(shù)控制位SMOD,在串行接口方式1、方式2和方式3時,波特率與SMOD有關(guān),當(dāng)SMOD=1時,波特率加倍,否則不加倍。復(fù)位時,SMOD=0。PCON的地址為97H,不能位尋址,需要字節(jié)傳送。其格式如表8-3所示。3.電源控制寄存器PCONPCON的最高位是串行口波特率系數(shù)104.中斷允許控制寄存器IE此寄存器在6.2.5節(jié)中斷的控制與實現(xiàn)中已經(jīng)介紹過,此處為了串行數(shù)據(jù)通信的需要又一次列出,其格式如表8-4所示。其中,ES為串行通信中斷允許位:ES=0,禁止串行端口中斷;ES=1,允許串行端口的接收和發(fā)送中斷。4.中斷允許控制寄存器IE此寄存器在6.2.5節(jié)中斷的控制與118.1.5知識總結(jié)——串行通信工作方式及波特率的計算通過對串行控制寄存器SM0(SCON.7)和SM1(SCON.6)的設(shè)置,可將51單片機的串行通信設(shè)置成4種不同的工作方式,如表8-2所示。
1.方式02.方式13.方式24.方式35.波特率8.1.5知識總結(jié)——串行通信工作方式及波特率的計算通過121.方式0當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM1=00時,串行口工作在方式0。方式0是擴展移位寄存器工作方式,常常用于外接移位寄存器擴展I/O口。在此方式下,數(shù)據(jù)由RXD串行地輸入/輸出,TXD為移位脈沖輸出端,使外部的移位寄存器移位。發(fā)送和接收都是8位數(shù)據(jù),為1幀,沒有起始位和停止位,低位在前。1)方式0輸出。如圖8-3所示。2)方式0輸入。如圖8-4所示。當(dāng)用戶在應(yīng)用程序中,將SCON中的REN位置1時(同時RI=0),就啟動了一次數(shù)據(jù)接收過程。數(shù)據(jù)從外接引腳RXD(P3.0)輸入,移位脈沖從外接引腳TXD(P3.1)輸出。8位數(shù)據(jù)接收完后,由硬件將輸入移位寄存器中的內(nèi)容寫入SBUF,并自動將RI置1,向CPU申請中斷。CPU響應(yīng)中斷后,用軟件將RI清0,同時讀走輸入的數(shù)據(jù),接著啟動串行口接收下一個數(shù)據(jù)。1.方式0當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM113圖8-3~4圖8-3~4142.方式1當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM1=01時,串行口工作在方式1。在方式1下,串行口是波特率可變的10位異步通信接口。TXD為數(shù)據(jù)輸出線,RXD為數(shù)據(jù)輸入線。傳送一幀數(shù)據(jù)為10位:1位起始位(0),8位數(shù)據(jù)位(低位在先),1位停止位(1)。方式1的波特率發(fā)生器由下式確定: 方式1波特率=(2SMOD/32)×定時器1的溢出率其中,SMOD是特殊功能寄存器PCON的最高位,即波特率加倍控制位。當(dāng)SMOD=1時,串行口的波特率加倍。1) 方式1發(fā)送。如圖8-5所示。2) 方式1接收。如圖8-6所示。2.方式1當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM115圖8-5~6圖8-5~6163.方式2當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM1=10時,串行口工作在方式2。在方式2下,串行口是波特率可調(diào)的11位異步通信接口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳。傳送一幀數(shù)據(jù)為11位:1位起始位(0),8位數(shù)據(jù)位(低位在先),第9位(附加位)是SCON中的TB8或RB8,最后1位是停止位(1)。方式2的波特率固定為晶振頻率的1/64或1/32,由下式確定:方式2波特率=(2SMOD/64)×fosc其中,SMOD是特殊功能寄存器PCON的最高位,即波特率加倍控制位。當(dāng)SMOD=1時,串行口的波特率被加倍。1) 方式2發(fā)送。如圖8-7所示。2) 方式2接收。如圖8-8所示。3.方式2當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM117圖8-7~8圖8-7~8184.方式3由于方式2的波特率完全取決于單片機使用的晶振頻率,當(dāng)需要改變波特率時(除了波特率加倍外)往往需要更換系統(tǒng)的晶體振蕩器,靈活性較差,而方式3的波特率是可以調(diào)整的,其波特率取決于T1的溢出率。當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM1=11時,串行口工作在方式3。方式3是波特率可調(diào)的11位異步通信方式,該方式的波特率由下式確定: 方式3波特率=(2SMOD/32)定時器1的溢出率串行口方式3接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的時序分別如圖8-7和圖8-8所示。方式2和方式3除了使用的波特率發(fā)生器不同外,其他都相同,因此在這里不再做介紹。4.方式3由于方式2的波特率完全取決于單片機使用的晶振頻率,195.波特率為了保證異步通信數(shù)據(jù)信息的可靠傳輸,異步通信的雙方必須保持一致的波特率。串行口的波特率是否精確直接影響到異步通信數(shù)據(jù)傳送的效率,如果兩個設(shè)備之間用異步通信傳輸數(shù)據(jù),但二者之間的波特率有誤差,極可能造成接收方錯誤接收數(shù)據(jù)。常用的串行口波特率及相應(yīng)的晶振頻率、T1工作方式和計數(shù)初值等參數(shù)的關(guān)系如表8-5所示。5.波特率為了保證異步通信數(shù)據(jù)信息的可靠傳輸,異步通信的雙方20表8-5表8-5218.2單片機與PC之間的串行通信8.2.1案例介紹及知識要點8.2.2程序示例8.2.3知識總結(jié)——RS232接口標(biāo)準(zhǔn)8.2單片機與PC之間的串行通信8.2.1案例介紹及228.2.1案例介紹及知識要點單片機與PC進行通信,利用MAX232作為電平轉(zhuǎn)換芯片,電路原理圖如圖8-9所示。了解RS-232C串行通信接口標(biāo)準(zhǔn)。掌握接口電路的設(shè)計方式及電氣特性。學(xué)會編寫基本程序。8.2.1案例介紹及知識要點單片機與PC進行通信,利用M238.2.2程序示例(1) 單片機向PC發(fā)送數(shù)據(jù)。(2) 單片機接收PC送來數(shù)據(jù)。8.2.2程序示例(1) 單片機向PC發(fā)送數(shù)據(jù)。248.2.3知識總結(jié)——RS232接口標(biāo)準(zhǔn)除了滿足約定的波特率、工作方式和特殊功能寄存器的設(shè)定外,串行通信雙方必須采用相同的接口標(biāo)準(zhǔn),才能進行正常的通信。由于不同設(shè)備串行接口的信號線定義及電器規(guī)格等特性都不盡相同,因此要使這些設(shè)備能夠互相連接,需要統(tǒng)一的串行通信接口。RS-232C接口標(biāo)準(zhǔn)的全稱是EIA-RS-232C標(biāo)準(zhǔn),其中,EIA(ElectronicIndustryAssociation)代表美國電子工業(yè)協(xié)會,RS(RecommendedStandard)代表EIA的“推薦標(biāo)準(zhǔn)”,232為標(biāo)識號。RS-232C定義了數(shù)據(jù)終端設(shè)備(DTE)與數(shù)據(jù)通信設(shè)備(DCE)之間的物理接口標(biāo)準(zhǔn)。接口標(biāo)準(zhǔn)包括引腳定義、電氣特性和電平轉(zhuǎn)換幾方面的內(nèi)容。1.引腳定義2.電氣特性3.RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路8.2.3知識總結(jié)——RS232接口標(biāo)準(zhǔn)除了滿足約定的波251.引腳定義RS-232C接口規(guī)定使用25針D型口連接器,連接器的尺寸及每個插針的排列位置都有明確的定義。在微型計算機通信中,常常使用的有9根信號引腳,所以常用9針D型口連接器替代25針連接器。連接器引腳定義如圖8-10所示,RS-232C接口的主要信號線的功能定義如表8-6所示。1.引腳定義RS-232C接口規(guī)定使用25針D型口連接器,連262.電氣特性RS-232C采用負(fù)邏輯電平,規(guī)定DC(-3~-15)為邏輯1,DC(+3~+15)為邏輯0。通常RS-232C的信號傳輸最大距離為30m,最高傳輸速率為20kbit/s。RS-232C的邏輯電平與通常的TTL和MOS電平不兼容,為了實現(xiàn)與TTL或MOS電路的連接,要外加電平轉(zhuǎn)換電路。2.電氣特性RS-232C采用負(fù)邏輯電平,規(guī)定DC(-3~-273.RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路1單片機串行口與PC的RS-232C接口不能直接對接,必須進行電平轉(zhuǎn)換。常見的TTL到RS-232C的電平轉(zhuǎn)換器有MC1488、MC1489和MAX202/232/232A等芯片。由于單片機系統(tǒng)中一般只用+5V電源,MC1488和MC1489需要雙電源供電(±12V),增加了體積和成本。生產(chǎn)商推出了芯片內(nèi)部具有自升壓電平轉(zhuǎn)換電路,可在單+5V電源下工作的接口芯片——MAX232,如圖8-11所示,它能滿足RS-232C的電氣規(guī)范,內(nèi)置電子泵電壓轉(zhuǎn)換器將+5V轉(zhuǎn)換成-10V~+10V,該芯片與TTL/CMOS電平兼容,片內(nèi)有兩個發(fā)送器,兩個接收器,在單片機應(yīng)用系統(tǒng)中得到了廣泛使用。3.RS-232C電平與TTL電平轉(zhuǎn)換驅(qū)動電路1單片機串行口28習(xí)題1.并行通信和串行通信的特點是什么?2.串行口有幾種工作方式?有幾種幀格式?各種工作方式的波特率如何確定?3.編寫程序,單片機在按鍵的控制下發(fā)送一組數(shù)據(jù),PC接收,利用串行口調(diào)試助手查看結(jié)果。4.編寫程序,PC發(fā)送,單片機接收數(shù)據(jù),將數(shù)據(jù)通過數(shù)碼管顯示。習(xí)題1.并行通信和串行通信的特點是什么?29第8章單片機的數(shù)據(jù)通信8.1單片機的串行通信8.2單片機與PC之間的串行通信習(xí)題本章將圍繞著單片機在實際應(yīng)用中對串口的使用,根據(jù)通信的方法分別介紹單片機的各種通信和數(shù)據(jù)傳送的方式。對于1-wire總線、IIC總線和SPI總線等知識由于內(nèi)容較多,本書將在后面單獨作為一章來介紹。第8章單片機的數(shù)據(jù)通信本章將圍繞著單片機在實際應(yīng)用中對串308.1單片機的串行通信8.1.1案例介紹及知識要點8.1.2程序示例8.1.3知識總結(jié)——串行口的結(jié)構(gòu)8.1.4知識總結(jié)——串行口相關(guān)特殊功能寄存器8.1.5知識總結(jié)——串行通信工作方式及波特率的計算8.1單片機的串行通信8.1.1案例介紹及知識要點318.1.1案例介紹及知識要點利用單片機a將一段流水燈控制程序發(fā)送到單片機b,利用b來控制其P1口點亮8位LED,如圖8-1所示。了解串行口的基本結(jié)構(gòu)和工作原理。掌握相關(guān)寄存器的配置方式。了解串行口的工作方式,掌握串行通信波特率的計算方式。掌握應(yīng)用程序的編寫方法。
8.1.1案例介紹及知識要點利用單片機a將一段流水燈控制328.1.2程序示例1.案例分析a完成發(fā)送,b完成接收。編寫程序設(shè)置a,令SM0=0,SM1=1。設(shè)置b,令SM0=0,SM1=1,REN=1,使接收允許。2.源程序1) 數(shù)據(jù)發(fā)送程序2) 數(shù)據(jù)接收程序8.1.2程序示例1.案例分析338.1.3知識總結(jié)——串行口的結(jié)構(gòu)51系列單片機的串行口占用P3.0和P3.1兩個引腳,是一個全雙工的異步串行通信接口,可以同時發(fā)送和接收數(shù)據(jù)。P3.0是串行數(shù)據(jù)接收端RXD,P3.1是串行數(shù)據(jù)發(fā)送端TXD。51單片機串行接口的內(nèi)部結(jié)構(gòu)如圖8-2所示。51單片機串行接口的結(jié)構(gòu)由串行接口控制電路、發(fā)送電路和接收電路3部分組成。
8.1.3知識總結(jié)——串行口的結(jié)構(gòu)51系列單片機的串行口348.1.4知識總結(jié)——串行口相關(guān)特殊功能寄存器串行口控制寄存器SCON存放串行口的控制和狀態(tài)信息,串行口用定時器T1作為波特率發(fā)生器(發(fā)送接受時鐘),電源控制寄存器PCON的最高位SMOD為串行口波特率的倍率控制位,中斷允許控制寄存器IE控制串行通信中斷是否允許。具體格式如下。1.串行口控制寄存器SCON2.?dāng)?shù)據(jù)緩沖器SBUF3.電源控制寄存器PCON4.中斷允許控制寄存器IE8.1.4知識總結(jié)——串行口相關(guān)特殊功能寄存器串行口控制351.串行口控制寄存器SCON串行口的工作方式是由串行口控制寄存器SCON控制的,其格式如表8-1所示。(1) SM0和SM1:用于設(shè)置串行接口的工作方式,有4種工作方式,如表8-2所示。(2) SM2:方式2和方式3的多級通信控制位。對于方式2或方式3,如SM2置為1,則接收到的第9位數(shù)據(jù)(RB8)為1時置位RI,否則不置位;對于方式1,若SM2=1,則只有接收到有效的停止位時才會置位RI。對于方式0,SM2應(yīng)該為0。(3) REN:允許串行接收位。由軟件置位或清零。REN=1時,串行接口允許接收數(shù)據(jù);REN=0時,則禁止接收。(4) TB8:對于方式2和方式3,是發(fā)送數(shù)據(jù)的第9位??捎米鲾?shù)據(jù)的奇偶校驗位,或在多機通信中,作為地址幀/數(shù)據(jù)幀的標(biāo)志位,TB8=0,發(fā)送地址幀,TB8=1,發(fā)送數(shù)據(jù)幀。需要有軟件置1或清0。(5) RB8:對于方式2和方式3,是接收數(shù)據(jù)的第9位,作為奇偶校驗位或地址幀/數(shù)據(jù)幀的標(biāo)志位。對于方式1,若SM2=0,則RB8是接收到的停止位。對于方式0,不使用RB8。(6) TI:發(fā)送中斷標(biāo)志位。由硬件在方式0串行發(fā)送第8位結(jié)束時置位,或在其他方式串行發(fā)送停止位的開始時置位,向CPU發(fā)中斷申請,但必須在中斷服務(wù)程序中由軟件將其清0,取消此中斷請求。(7) RI:接收中斷標(biāo)志位。由硬件在方式0接收到第8位結(jié)束時置位,或在其他方式接收到停止位的中間時置位,向CPU發(fā)中斷申請,但必須在中斷服務(wù)程序中由軟件將其清0,取消此中斷請求。1.串行口控制寄存器SCON串行口的工作方式是由串行口控制寄36表8-1~2表8-1~2372.?dāng)?shù)據(jù)緩沖器SBUF發(fā)送緩沖器只管發(fā)送數(shù)據(jù),51單片機沒有專門的啟動發(fā)送的指令,發(fā)送時,就是CPU寫入SBUF的過程(MOVSBUF,A);接收緩沖器只管接收數(shù)據(jù),接受時,就是CPU讀取SBUF的過程(MOVA,SBUF)。即數(shù)據(jù)接收緩沖器只能讀出不能寫入,數(shù)據(jù)發(fā)送緩沖器只能寫入不能讀出。CPU對特殊功能寄存器SBUF執(zhí)行寫操作,就是將數(shù)據(jù)寫入發(fā)送緩沖器;對SBUF執(zhí)行讀操作就是讀出接受緩沖器的內(nèi)容。所以可以同時發(fā)送和接收數(shù)據(jù)。對于發(fā)送緩沖器,由于發(fā)送時CPU是主動的,不會產(chǎn)生重疊錯誤。而接收緩沖器是雙緩沖結(jié)構(gòu),以避免在接收下一幀數(shù)據(jù)之前,CPU未能及時響應(yīng)接收器的中斷,沒有把上一幀數(shù)據(jù)取走,就會丟失前一字節(jié)的內(nèi)容。2.?dāng)?shù)據(jù)緩沖器SBUF發(fā)送緩沖器只管發(fā)送數(shù)據(jù),51單片機沒有383.電源控制寄存器PCONPCON的最高位是串行口波特率系數(shù)控制位SMOD,在串行接口方式1、方式2和方式3時,波特率與SMOD有關(guān),當(dāng)SMOD=1時,波特率加倍,否則不加倍。復(fù)位時,SMOD=0。PCON的地址為97H,不能位尋址,需要字節(jié)傳送。其格式如表8-3所示。3.電源控制寄存器PCONPCON的最高位是串行口波特率系數(shù)394.中斷允許控制寄存器IE此寄存器在6.2.5節(jié)中斷的控制與實現(xiàn)中已經(jīng)介紹過,此處為了串行數(shù)據(jù)通信的需要又一次列出,其格式如表8-4所示。其中,ES為串行通信中斷允許位:ES=0,禁止串行端口中斷;ES=1,允許串行端口的接收和發(fā)送中斷。4.中斷允許控制寄存器IE此寄存器在6.2.5節(jié)中斷的控制與408.1.5知識總結(jié)——串行通信工作方式及波特率的計算通過對串行控制寄存器SM0(SCON.7)和SM1(SCON.6)的設(shè)置,可將51單片機的串行通信設(shè)置成4種不同的工作方式,如表8-2所示。
1.方式02.方式13.方式24.方式35.波特率8.1.5知識總結(jié)——串行通信工作方式及波特率的計算通過411.方式0當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM1=00時,串行口工作在方式0。方式0是擴展移位寄存器工作方式,常常用于外接移位寄存器擴展I/O口。在此方式下,數(shù)據(jù)由RXD串行地輸入/輸出,TXD為移位脈沖輸出端,使外部的移位寄存器移位。發(fā)送和接收都是8位數(shù)據(jù),為1幀,沒有起始位和停止位,低位在前。1)方式0輸出。如圖8-3所示。2)方式0輸入。如圖8-4所示。當(dāng)用戶在應(yīng)用程序中,將SCON中的REN位置1時(同時RI=0),就啟動了一次數(shù)據(jù)接收過程。數(shù)據(jù)從外接引腳RXD(P3.0)輸入,移位脈沖從外接引腳TXD(P3.1)輸出。8位數(shù)據(jù)接收完后,由硬件將輸入移位寄存器中的內(nèi)容寫入SBUF,并自動將RI置1,向CPU申請中斷。CPU響應(yīng)中斷后,用軟件將RI清0,同時讀走輸入的數(shù)據(jù),接著啟動串行口接收下一個數(shù)據(jù)。1.方式0當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM142圖8-3~4圖8-3~4432.方式1當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM1=01時,串行口工作在方式1。在方式1下,串行口是波特率可變的10位異步通信接口。TXD為數(shù)據(jù)輸出線,RXD為數(shù)據(jù)輸入線。傳送一幀數(shù)據(jù)為10位:1位起始位(0),8位數(shù)據(jù)位(低位在先),1位停止位(1)。方式1的波特率發(fā)生器由下式確定: 方式1波特率=(2SMOD/32)×定時器1的溢出率其中,SMOD是特殊功能寄存器PCON的最高位,即波特率加倍控制位。當(dāng)SMOD=1時,串行口的波特率加倍。1) 方式1發(fā)送。如圖8-5所示。2) 方式1接收。如圖8-6所示。2.方式1當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM144圖8-5~6圖8-5~6453.方式2當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM1=10時,串行口工作在方式2。在方式2下,串行口是波特率可調(diào)的11位異步通信接口。TXD為數(shù)據(jù)發(fā)送引腳,RXD為數(shù)據(jù)接收引腳。傳送一幀數(shù)據(jù)為11位:1位起始位(0),8位數(shù)據(jù)位(低位在先),第9位(附加位)是SCON中的TB8或RB8,最后1位是停止位(1)。方式2的波特率固定為晶振頻率的1/64或1/32,由下式確定:方式2波特率=(2SMOD/64)×fosc其中,SMOD是特殊功能寄存器PCON的最高位,即波特率加倍控制位。當(dāng)SMOD=1時,串行口的波特率被加倍。1) 方式2發(fā)送。如圖8-7所示。2) 方式2接收。如圖8-8所示。3.方式2當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM146圖8-7~8圖8-7~8474.方式3由于方式2的波特率完全取決于單片機使用的晶振頻率,當(dāng)需要改變波特率時(除了波特率加倍外)往往需要更換系統(tǒng)的晶體振蕩器,靈活性較差,而方式3的波特率是可以調(diào)整的,其波特率取決于T1的溢出率。當(dāng)串行通信控制寄存器SCON的最高兩位SM0SM1=11時,串行口工作在方式3。方式3是波特率可調(diào)的11位異步通信方式,該方式的波特率由下式確定: 方式3波特率=(2SMOD/32)定時器1的溢出率串行口方式3接收數(shù)據(jù)和發(fā)送數(shù)據(jù)的時序分別如圖8-7和圖8-8所示。方式2和方式3除了使用的波特率發(fā)生器不同外,其他都相同,因此在這里不再做介紹。4.方式3由于方式2的波特率完全取決于單片機使用的晶振頻率,485.波特率為了保證異步通信數(shù)據(jù)信息的可靠傳輸,異步通信的雙方必須保持一致的波特率。串行口的波特率是否精確直接影響到異步通信數(shù)據(jù)傳送的效率,如果兩個設(shè)備之間用異步通信傳輸數(shù)據(jù),但二者之間的波特率有誤差,極可能造成接收方錯誤接收數(shù)據(jù)。常用的串行口波特率及相應(yīng)的晶振頻率、T1工作方式和計數(shù)初值等參數(shù)的關(guān)系如表8-5所示。5.波特率為了保證異步通信數(shù)據(jù)信息的可靠傳輸,異步通信的雙方49表8-5表8-5508.2單片機與PC之間的串行通信8.2.1案例介紹及知識要點8.2.2程序示例8.2.3知識總結(jié)——RS232接口標(biāo)準(zhǔn)8.2單片機與PC之間的串行通信8.2.1案例介紹及518.2.1案例介紹及知識要點單片機與PC進行通信,利用MAX232作為電平轉(zhuǎn)換芯片,電路原理圖如圖8-9所示。了解RS-232C串行通信接口標(biāo)準(zhǔn)。掌握接口電路的設(shè)計方式及電氣特性。學(xué)會編寫基本程序。8.2.1案例介紹及知識要點單片機與PC進行通信,利用M528.2.2程序示例(1) 單片機向PC發(fā)送數(shù)據(jù)。(2) 單片機接收PC送來數(shù)據(jù)。8.2.2程序示例(1) 單片機向PC發(fā)送數(shù)據(jù)。538.2.3知識總結(jié)——RS232接口標(biāo)準(zhǔn)除了滿足約定的波特率、工作方式和特殊功能寄存器的設(shè)定外,串行通信雙方必須采用相同的接口標(biāo)準(zhǔn),才能進行正常的通信。由于不同設(shè)備串行接口的信號線定義及電器規(guī)格等特性都不盡相同,因此要
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年新疆鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試模擬試題含詳細答案解析
- 2026年廣東生態(tài)工程職業(yè)學(xué)院單招綜合素質(zhì)考試備考題庫含詳細答案解析
- 2026年度滁州市市直事業(yè)單位公開招聘工作人員65名考試重點試題及答案解析
- 2026年青島求實職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試備考題庫含詳細答案解析
- 2026年長春信息技術(shù)職業(yè)學(xué)院單招職業(yè)技能考試備考試題含詳細答案解析
- 2026年寧夏工業(yè)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試模擬試題及答案詳細解析
- 2026年鶴崗師范高等??茖W(xué)校單招綜合素質(zhì)考試備考題庫含詳細答案解析
- 2026年江蘇建筑職業(yè)技術(shù)學(xué)院單招職業(yè)技能考試備考試題含詳細答案解析
- 2026年長沙南方職業(yè)學(xué)院單招綜合素質(zhì)筆試參考題庫含詳細答案解析
- 2026年河北工藝美術(shù)職業(yè)學(xué)院單招綜合素質(zhì)考試備考試題含詳細答案解析
- 2026黑龍江七臺河市農(nóng)投百安供熱有限公司招聘16人參考考試試題及答案解析
- web開發(fā)面試題及答案
- 競聘培訓(xùn)教學(xué)課件
- 2026年銅陵安徽耀安控股集團有限公司公開招聘工作人員2名考試備考題庫及答案解析
- 建筑物拆除施工監(jiān)測方案
- 《中國心力衰竭診斷和治療指南2024》解讀(總)
- 《MSA測量系統(tǒng)分析》考核試題
- JB-T 14188.1-2022 激光切管機 第1部分:精度檢驗
- XJ4830晶體管圖示儀說明書
- (汪曉贊)運動教育課程模型
- GB/T 42677-2023鋼管無損檢測無縫和焊接鋼管表面缺欠的液體滲透檢測
評論
0/150
提交評論