第9章MCS51單片機的串行接口_第1頁
第9章MCS51單片機的串行接口_第2頁
第9章MCS51單片機的串行接口_第3頁
第9章MCS51單片機的串行接口_第4頁
第9章MCS51單片機的串行接口_第5頁
已閱讀5頁,還剩69頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

自強自立求知求真單片機原理及應用第九章

MCS-51單片機的串行接口9.1串行通信簡介9.2MCS-51串行接口結構9.3MCS-51串口工作方式9.4MCS-51單片機的串口應用9.5MCS-51單片機多機通信9.6I2C總線自強自立求知求真單片機原理及應用5.451單片機的串行接口一、串行通信概述1.什么叫串行通信?

在生活中同學們排橫隊行走——并行;排縱隊行走——串行。計算機中在傳輸信息、數據時也有并行、串行的問題。0010001001P1.0P1.1P1.2P1.3RXDTXD單片機外設1外設21111110101000自強自立求知求真單片機原理及應用2.串行通信的方向單工A

發B

發半雙工A

發收B

收發例如:廣播電臺收音機例如:對講機自強自立求知求真單片機原理及應用全雙工A

發收B

收發例如:電話機接收設備發送設備3.同步通信、異步通信同步——發送設備時鐘與接收設備時鐘嚴格一致。校驗字符2校驗字符1

數據n………

數據2

數據1同步字符2同步字符1自強自立求知求真單片機原理及應用異步——發送時鐘與接收時鐘不一定相等??臻e位停止位奇偶校驗位5~8位數據起始位空閑位自強自立求知求真單片機原理及應用●串行通信中每秒傳輸的離散信號的個數●單位為baud(波特)●在二進制傳輸系統中,波特率即為每秒傳輸二進制位的個數,單位為比特/秒或bps●波特率因子輔助各位的定位串行通信的波特率自強自立求知求真單片機原理及應用●假設使用MCS-51的P1.0作為異步串行輸出信號線●11.0592MHz的振蕩頻率●波特率為1200bps●發送的數據幀包括1個起始位、8個數據位、1個偶校驗位、1個停止位●要發送的8位字符事先已經裝入累加器A●請給出實現方案和發送過程串行通信的軟件實現自強自立求知求真單片機原理及應用串行接口與RS232C標準串行接口UART再加上一些控制電路自強自立求知求真單片機原理及應用標準:機械、功能、電氣、時序等線路驅動器自強自立求知求真單片機原理及應用9.251單片機串行接口MCS-51單片機內部的串行接口是全雙工的,即它能同時發送和接收數據。這個口既可以用于網絡通信,也可以實現串行異步通信,還可以作為同步移位寄存器使用。在串行口中可供用戶使用的是它的寄存器。4種工作方式,波特率可編程設置,可中斷。自強自立求知求真單片機原理及應用自強自立求知求真單片機原理及應用圖中共有兩個串行口的緩沖寄存器(SBUF)。一個是發送寄存器,一個是接收寄存器。串行發送時,從片內總線向發送SBUF寫入數據;串行接收時,從接收SBUF向片內總線讀出數據。它們都是可尋址的寄存器,但因為發送和接收不能同時進行,所以給這兩個寄存器賦以同一地址(99H)。自強自立求知求真單片機原理及應用SCON——串行口控制寄存器SM0SM1SM2RENTB8RB8

TI

RITI/RI:中斷請求標志位(前面已講過)RB8:接收的第九位數TB8:發送的第九位數REN:允許接收控制位SM2:多機通信控制位(常與RB8配合,決定是否激活RI)SM0、SM1:工作方式選擇位(四種工作方式)自強自立求知求真單片機原理及應用SCON——串行口控制寄存器SM0SM1工作方式方式描述波特率000移位寄存器fosc/12(fosc為振蕩器頻率)0118位UART可變1029位UARTfosc/64或fosc/321139位UART可變自強自立求知求真單片機原理及應用SMODPCON——電源管理寄存器SMOD位用于決定波特率的倍數。020=1倍

121=2倍SBUF——串行發送/接收數據緩沖器是兩個物理單元,共用一個地址(99H)自強自立求知求真單片機原理及應用

串行口的工作方式(1)方式0:同步移位寄存器方式

波特率固定為fosc/12RXD——接收發送數據

TXD——產生同步移位脈沖接收/發送完,置位RI/TI,(要求SM2=0)

D7D6D5D4D3D2D1D0D0D1D2D3D4D5D6D7發送接收無起始位,無停止位。可用于并口的擴展。自強自立求知求真單片機原理及應用自強自立求知求真單片機原理及應用自強自立求知求真單片機原理及應用51單片機指令系統(2)方式1:8位UART

波特率為(2SMOD×T1的溢出率)/32,可變。一幀信息10位。D0D1D2D3D4D5D6D7停止位起始位發送D7D6D5D4D3D2D1D0起始位停止位接收送RB8發送完置位TI。當接收到數據后,置位RI是有條件的。即:REN=1,RI=0且SM2=0或SM2=1但是接收到的停止位為1。此時,數據裝載SBUF,RI置1,停止位進入RB8。

自強自立求知求真單片機原理及應用自強自立求知求真單片機原理及應用自強自立求知求真單片機原理及應用51單片機指令系統(3)方式2、方式3:9位UART

一般用于多機通信。一幀信息11位。

D0D1D2D3D4D5D6D7TB8停止位起始位發送發送完數據置位TI。

TB8D7D6D5D4D3D2D1D0起始位停止位接收接收到有效數據完畢,置位RI的條件:REN=1,RI=0且SM2=0或接收到第9位數據為1,此時,數據裝載SBUF,RI置1,第9位數據(TB8)

RB8。

送RB8方式2波特率:(固定)2SMOD/64×fosc自強自立求知求真單片機原理及應用自強自立求知求真單片機原理及應用自強自立求知求真單片機原理及應用自強自立求知求真單片機原理及應用9.451單片機串行接口的應用波特率發生器原理自強自立求知求真單片機原理及應用波特率計算方式0的波特率是固定的,為fosc/12方式2的波特率是fosc/32或fosc/64,取決于PCON中SMOD位的值若SMOD=0,波特率為fosc/64若SMOD=1,波特率為fosc/32方式1和3的波特率還取決于定時器/計數器T1或T2的溢出率自強自立求知求真單片機原理及應用波特率計算使用定時器/計數器T1作為波特率發生器方式0時,溢出率為fosc/12/(213-TC)方式1時,溢出率為fosc/12/(216-TC)方式2時,溢出率為fosc/12/(28-TC)方式2最方便自強自立求知求真單片機原理及應用波特率的設置方式0、方式2固定。方式1,方式3可變。波特率=2SMOD/32×(T1的溢出率)T1溢出率=單位時間內溢出次數=1/(T1的定時時間)而T1的定時時間t就是T1溢出一次所用的時間。此情況下,一般設T1工作在模式2(8位自動重裝初值)。

N=28-t/T,t=(28-N)T=(28-N)×12/fosc所以,T1溢出率=1/t=fosc/12(28-N),故,波特率=2SMOD/32×fosc/12(256-N)。若已知波特率,則可求出T1的計數初值:

y=256-2SMOD×fosc/(波特率×32×12)

①按選定串行口的操作方式設定SCON的SM0、SM1兩位二進制編碼。②對于方式2或3,應根據需要在TB8中寫入待發送的第9位數據。③若選定的操作方式不是方式0,還需設定發送的波特率:設定SMOD的狀態,以控制波特率是否加倍。若選定操作方式1或3,則應對定時器T1進行初始化以設定其溢出率。自強自立求知求真單片機原理及應用自強自立求知求真單片機原理及應用例、若fosc=6MHz,波特率為2400波特,設SMOD=1,則定時/計數器T1的計數初值為多少?并進行初始化編程。

解:X=256-2SMOD×fosc/(2400×32×12)=242.98≈243=F3Hfosc=11.0592MHz,波特率為2400,設SMOD=0,則X=F4H。初始化編程:MOVTMOD,#20HMOVPCON,#80H MOVTH1,#0F3HMOVTL1,#0F3HSETBTR1MOVSCON,#50H

自強自立求知求真單片機原理及應用方式0的應用主要用于I/O擴展;外接串入并出的移位寄存器芯片,每一片擴展一個8位的并行輸出口;多片串聯起來,可以實現多個8位并行輸出口的擴展??捎米鞫辔混o態顯示的LED段選控制;外接并入串出的移位寄存器芯片,每一片可以擴展一個8位的并行輸入口;多片串聯起來,可以實現多個8位并行輸入口的擴展。自強自立求知求真單片機原理及應用方式0的應用——輸出自強自立求知求真單片機原理及應用方式0的應用——輸入自強自立求知求真單片機原理及應用方式1的應用P231,例9.6;P232,例9.7;自強自立求知求真單片機原理及應用方式2、3的應用方式2和3是9位UART方式,用于雙機通信時,有8位數據,第9位可以用作校驗位,校驗需要用軟件編程實現發送時,要先計算出校驗位,存入TB8,然后再寫SBUF,啟動發送過程接收時,要根據接收到的8位數據計算出校驗位,然后與RB8中收到的第9位比較是否相同。如果相同,將8位數據保存在接收緩沖區中,否則可以向主程序報告接收錯誤,或者干脆直接將數據丟棄自強自立求知求真單片機原理及應用9.5MCS-51單片機的多機通信方式SCON中的SM2位可以作為多處理機通信位,使單片機方便地應用于集散式分布系統中集散式分布系統,或者稱為分布式控制系統

(DCS),是相對于集中式控制系統而言的一種新型計算機控制系統,它是在集中式控制系統的基礎上發展、演變而來的。這種系統中,有一臺主機和多臺從機。主機負責全局運行情況的監視、統計、控制等,各從機負責本地信號的采集處理、本地資源的控制。主機和從機通過通信線路相聯系自強自立求知求真單片機原理及應用多機通信原理主從式多機通信連接方式自強自立求知求真單片機原理及應用多機通信原理當串行口工作在方式2或3時若SM2=1,則只有接收到的第9位數據(RB8)為1時,才將數據送入接收緩沖器SBUF,并置位RI,申請中斷,否則丟棄接收到的數據若SM2=0,則無論第9位數據(RB8)是1還是0,都將數據裝入SBUF,置位RI,申請中斷自強自立求知求真單片機原理及應用多機通信原理每臺從機一個地址(編號)系統中的通信總是由主機發起主機向從機發送的信息分為地址字節和數據字節兩種。地址字節用于尋址從機,數據字節為發給從機的實際數據,二者可以使用第9位來區分。地址字節幀的第9位為1,數據字節幀的第9位為0系統初始化時,將所有從機的SM2位置為1,并允許串行口接收中斷。這樣,只有主機送來的地址幀才會被接收自強自立求知求真單片機原理及應用多機通信的協議通信協議中,除規定命令、數據的格式,還有以下一些方面需要特別考慮命令的順序差錯處理超時處理自強自立求知求真單片機原理及應用9.6SPI總線SPI(SerialPeripheralInterface)總線Motorola公司提出同步串行外設接口使用SPI的外圍設備種類繁多,應用廣泛自強自立求知求真單片機原理及應用SPI總線結構一個主設備和一個或多個從設備自強自立求知求真單片機原理及應用SPI總線結構4條信號線兩條串行數據線MISO(主設備輸入、從設備輸出)和MOSI(主設備輸出、從設備輸入)先傳送高位,后傳送低位串行時鐘線SCLK主設備使用從設備選擇線SS#選擇指定的從設備,相當于片選信號自強自立求知求真單片機原理及應用SPI時序自強自立求知求真單片機原理及應用SPI總線應用串行口方式0就是一種簡化的SPI總線接口SCLK信號由TxD輸出,MOSI/MISO信號由RxD輸出或輸入區別串行數據與串行時鐘之間的極性和相位的關系固定)串行時鐘頻率固定MCS-51只工作在主設備方式MOSI/MISO信號使用同一個引腳串行數據線上數據位的傳輸次序與標準SPI相反自強自立求知求真單片機原理及應用SPI總線應用日歷時鐘芯片DS1302可否使用SPI總線接口?MCS-51中的串行口能否勝任?如何連接與編程?分析DS1302的讀寫時序與標準SPI的時序不同,與MCS-51的相似,但時鐘極性相反若使用串行口方式0,應將TxD輸出的移位時鐘信號反相;RxD直接連接DS1302的I/O引腳DS1302的CE類似于SPI總線結構中的SS#,也是極性相反自強自立求知求真單片機原理及應用SPI總線應用自強自立求知求真單片機原理及應用READ_1302: ;讀DS1320 SETB CE ;選中DS1302 MOV SBUF,A ;寫8位寄存器

JNB TI,$ ;等待寫入結束

CLR TI ;清除TI SETB REN ;開始接收8位數據

JNB RI,$ ;等待接收結束

CLR RI ;接收結束,清除RI CLR REN ;停止接收

MOV A,SBUF ;將收到數據裝入A CLR CE ;結束操作

RET自強自立求知求真單片機原理及應用WRITE_1302: ;寫DS1320 SETB CE ;選中DS1302 MOV SBUF,A ;寫8位寄存器

JNB TI,$ ;等待寫入結束

CLR TI ;清除TI MOV SBUF,B ;寫8位數據

JNB TI,$ ;等待寫入結束

CLR TI ;清除TI CLR CE ;結束操作

RET自強自立求知求真單片機原理及應用9.7I2C總線接口I2C(Inter-IC)總線由Philips在20世紀80年代提出并獲得了專利最初目的是為了在電視機之類產品中方便地連接CPU和外圍的集成電路大多數主要半導體廠商生產支持I2C總線的IC芯片微處理器、EEPROM、溫度傳感器、ADC、DAC、視頻處理器件、實時鐘、顯示器件等都有支持I2C總線的版本自強自立求知求真單片機原理及應用I2C總線簡介使用兩條信號線(串行時鐘線SCL和串行數據線SDA)就能實現總線上各器件的雙工同步數據傳送總線上各器件的SCL和SDA引腳都是開漏結構系統中所有器件的SCL和SDA引腳同名端連接在一起,總線上所有節點由器件本身和引腳狀態確定地址,無需使用片選每個被尋址的器件都有惟一的地址自強自立求知求真單片機原理及應用I2C系統連接與引腳結構自強自立求知求真單片機原理及應用常用I2C接口器件地址器件類型地址PCF8570256BRAM1010A2A1A0R/W#PCF8582156BE2PROM1010A2A1A0R/W#PCF85748位I/O0100A2A1A0R/W#PCF85918位ADC/DAC1001A2A1A0R/W#PCF8583日歷時鐘1010A2A1A0R/W#SAA10644位LED驅動器0111A2A1A0R/W#自強自立求知求真單片機原理及應用I2C總線簡介I2C總線上的器件,分為主設備和從設備主設備能控制總線訪問,提供串行時鐘信號(SCL),并產生啟動和結束信號??偩€上至少要有一個主設備在總線上被尋址的器件稱為從設備在由若干器件組成的I2C總線系統中,可能存在多個主設備目前不少單片機內部集成了I2C總線接口自強自立求知求真單片機原理及應用I2C總線協議總線必須由主設備控制無論是主設備還是從設備,接收一個字節后必須發出一個確認信號ACK總線空閑時,SCL和SDA都必須保持高電平I2C總線傳送數據時,在時鐘線SCL高電平期間,數據線SDA必須保持穩定的邏輯電平狀態。只有在時鐘線為低時,才允許數據線上的信號發生變化自強自立求知求真單片機原理及應用I2C總線協議在時鐘線保持高電平期間,數據線出現的由高到低的跳變定義為起始信號(S),啟動I2C總線操作數據線上出現的由低到高的跳變定義為停止信號(P),終止總線的數據傳送數據傳送格式起始信號S后,主設備送出8位的地址字節,以選擇從設備并指定數據的傳輸方向(讀還是寫),其后傳送數據I2C總線上傳送的每一個數據均為8位,數據個數沒有限制自強自立求知求真單片機原理及應用I2C總線協議每傳送一個字節后,接收設備(主設備或從設備)都必須發一位應答信號ACK(低電平為ACK,高電平為非應答信號ACK#),發送設備確認后,再發送下一字節數據每一字節數據都是由最高有效位在前全部數據發送結束后,主設備發送終止信號P自強自立求知求真單片機原理及應用I2C串行EEPROM及其應用EEPROM是可用工作電壓擦除和改寫內容的只讀存儲器。系統工作時可以改寫,無電源供電時數據仍然保存使用EEPROM可以解決掉電數據存儲問題,通常情況下,所存儲的數據可以保存10~100年,擦寫次數達1~10萬次有并行方式和串行方式兩種接口自強自立求知求真單片機原理及應用常見的EEPROM有AT24C01/02/04/08/16等型號,其內部存儲容量分別是1K、2K、4K、8K和16KbitAT24CXX的引腳除了I2C總線所需的SCL和SDA外,還有WP(寫保護):提供硬件數據保護A2、A1、A0(器件地址):當總線上有多片AT24CXX時,地址信號用于器件的選擇。主設備發出的地址字節必須與地址信號的硬件連接匹配自強自立求知求真單片機原理及應用自強自立求知求真單片機原理及應用AT24CXX地址格式器件容量地址格式A2A1A0引腳連接位字節AT24C011K1281010A2A1A0R/W#接高或低電平AT24C022K2561010A2A1A0R/W#接高或低電平AT24C044K5120100A2A1P0R/W#A2A1接高或低電平AT24C088K1K1001A2P1P0R/W#A2接高或低電平AT24C1616K2K1010P2P1P0R/W#無連接自強自立求知求真單片機原理及應用AT24CXX時序自強自立求知求真單片機原理及應用I2C時序的子程序(啟動)SCL BIT P1.0 ;I2C信號引腳SDA BIT P1.1I2C_INI: ;總線狀態初始化

SETB SCL ;SCL和SDA都是高電平

SETB SDA CALL I2C_DELAY ;延時

RETI2C_START: ;發送起始信號S SETB SDA ;SCL和SDA都是高電平

SETB SCL CALL I2C_DELAY CLR SDA ;SDA變低

CALL I2C_DELAY RET自強自立求知求真單片機原理及應用I2C時序的子程序(發送1字節)I2C_SEND_8B: ;在I2C總線上發送8位的數據或地址字節

PUSH B ;欲發送的字節在A中

MOV B,#8 ;共8位,循環8次I2C_SNEXT_B: ;循環體

CLR SCL ;SCL變低,SDA上數據可以變化

RLC A ;最高位移入C MOV SDA,C ;送SDA線

CALL I2C_DELAY ;等待穩定

SETB SCL ;SCL變高,從設備可以取走數據

CALL I2C_DELAY ;等待從設備取走

DJNZ B,I2C_SNEXT_B ;循環

POP B ;恢復B RET自強自立求知求真單片機原理及應用I2C時序的子程序(接收1字節)I2C_REC_8B: ;接收I2C總線上的8位數據

SETB SDA ;置SDA為輸入

PUSH B ;要用到B寄存器

MOV B,#8 ;共8位,循環8次I2C_RNEXT_B: ;循環體

CLR SCL ;SCL變低,SDA上數據可以變化

CALL I2C_DELAY ;等待從設備將數據送出

SETB SCL ;通知從設備,數據不可變化

CALL I2C_DELAY ;等待數據穩定

MOV C,SDA ;接收

RLC A ;移入A DJNZ B,I2C_RNEXT_B ;循環

POP B ;恢復B RET自強自立求知求真單片機原理及應用I2C時序的子程序(應答信號)I2C_WAIT_ACK: ;接收應答信號A CLR SCL ;SCL變低,SDA上數據可以變化

SETB SDA ;置SDA為輸入

CALL I2C_DELAY ;等待從設備將A送出

SETB SCL ;通知從設備,數據不可變化

MOV C,SDA ;接收

CLR SCL ;SDA上數據可以變化

RETI2C_NACK: ;發送非應答信號NA CLR SCL ;SCL變低,SDA上數據可以變化

SETB SDA ;送出1 CALL I2C_DELAY ;等待數據穩定

SETB SCL ;SCL變高,從設備可以取走數據

CALL I2C_DELAY ;等待從設備取走

RET自強自立求知求真單片機原理及應用I2C時序的子程序(停止信號)I2C_STOP: ;發送停止

溫馨提示

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

評論

0/150

提交評論