單片機 定時器_第1頁
單片機 定時器_第2頁
單片機 定時器_第3頁
單片機 定時器_第4頁
單片機 定時器_第5頁
已閱讀5頁,還剩55頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

基本概念RS-232接口MCS-51的串行接口單片機與單片機之間的通信IIC總線第

串行口通信技術本章內容SingleChipMicrocomputer1.實訓目的(1)復習掌握定時器的功能和編程使用。(2)理解串行通信與并行通信的兩種方式。(3)掌握串行通信的重要指標:字符幀和波特率。(4)初步了解MCS-51單片機串行口的使用方法。實訓

單片機之間的雙機通信2.實訓引入

單片機間經常需要互相傳遞信息--通信.3.實訓程序甲機發送程序參考如下:

MOVTMOD,#20H MOVTL1,#0F4H MOVTH1,#0F4H SETBTR1 MOVSCON,#40H MOVR0,#20H MOVR7,#08HSTART:MOVA,@R0 MOVSBUF,AWAIT:JBCTI,CONT AJMPWAITCONT:INCR0 DJNZR7,START SJMP$乙機接收及顯示程序參考如下:

MOVTMOD,#20H MOVTL1,#0F4H MOVTH1,#0F4H SETBTR1 MOVSCON,#40H MOVR0,#20H MOVR7,#08H SETBRENWAIT:JBCRI,READ AJMPWAITREAD:MOVA,SBUF MOV@R0,A INCR0 DJNZR7,WAITDISP:LCALLDISPLAY SJMPDISP4.實訓分析與總結分析程序可以看出,通信雙方都有對單片機定時器的編程(注意發送、接收程序的前4條指令),而且雙方對定時器的編程完全相同。這說明,MCS-51單片機在進行串行通信時,是與定時器的工作有關的。定時器用來設定串行通信數據的傳輸速度。在串行通信中,傳輸速度是用波特率來表征的,有關波特率與定時器的關系以及編程在8.3.3節介紹。

MCS-51單片機串行接口一、串行通信概述1、什么叫串行通信?

在生活中同學們排橫隊行走——并行;排縱隊行走——串行。計算機中在傳輸信息、數據時也有并行、串行的問題。0010001001P1.0P1.1P1.2P1.3RXDTXD單片機外設1外設21111110101000接收設備發送設備2、同步通信、異步通信

同步——發送設備時鐘與接收設備時鐘嚴格一致。校驗字符2校驗字符1數據n………數據2數據1同步字符2同步字符1異步——發送時鐘與接收時鐘不一定相等。空閑位停止位奇偶校驗位5~8位數據起始位空閑位3、串行通信的方向單工

A

B發半雙工

A

發收

B

收發例如:廣播電臺收音機例如:對講機全雙工

A

發收

B

收發例如:電話機4、波特率即串行通信速率。b/s、bps在異步通信中,單位時間內所傳送的有效二進制位數——波特率。舉例、設有一幀信息,1個起始位、8個數據位、1個停止位,傳輸速率為每秒240個字符。求波特率。解:(1+8+1)×240=2400b/s=2400波特。

5、串行通信接口發送:CPUD7D6D5D4D3D2D1D0發送寄存器SBUF01D0D1D2D3D4D5D6D7發送時鐘:接收:D0D1D2D3D4D5D6D710D7D6D5D4D3D2D1D0CPU接收時鐘接收數據寄存器SBUF二、MCS-51機串行接口單片機內有通用異步接收/發送器UART。全雙工,4種工作方式,波特率可編程設置,可中斷。1、串口的組成從編程角度講來看主要由以下寄存器組成。

SBUF——串行發送/接收數據緩沖器是兩個物理單元,共用一個地址(99H)SMODSMOD位用于決定波特率的倍數。020=1倍121=2倍PCON——電源控制寄存器SCON——串行口控制寄存器SM0SM1SM2RENTB8RB8

TI

RITI/RI:中斷請求標志位(前面已講過)RB8:接收的第九位數TB8:發送的第九位數REN:允許接收控制位SM2:多機通信控制位(常與RB8配合,決定是否激活RI)SM0、SM1:工作方式選擇位(四種工作方式)內部結構框圖51內部總線SBUF零檢測器移位時鐘STARTSHIFT

發送控制器TXCLOCKTISENDDSQCLSTARTRIRECEIVERX接收控制器SHIFTCLOCK11111110輸入移位寄存器SBUF51內部總線讀SBUF寫SBUF串行口中斷P3.1TXD裝載SBUFREN/RIP3.0RXD串型口的工作模式和控制寄存器SCON

SM0SM1模式功能波特率

000同步移位寄存器模式Fosc/12

0111+8+1位異步通信UART可變

1021+9+1位異步通信UARTFosc/64或/32

1131+9+1位異步通信UART可變SM0SM1SM2RENTB8RB8TIRI

模式選擇多機通訊位允許接收位

發送、接收第9位

發送、接收標志2、串行口的工作方式(1)方式0:同步移位寄存器方式

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

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

D7

D6

D5

D4

D3

D2

D1

D0

D0

D1

D2

D3

D4

D5

D6

D7發送接收無起始位,無停止位。可用于并口的擴展。方式0

內部結構框圖51內部總線SBUF零檢測器移位時鐘STARTSHIFT

發送控制器TXCLOCKTISENDDSQCLSTARTRIRECEIVERX接收控制器SHIFTCLOCK11111110輸入移位寄存器SBUF51內部總線讀SBUF寫SBUF串行口中斷P3.1TXD裝載SBUFREN/RIP3.0RXD(S6)Fosc/12(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。

(3)方式2、方式3:9位UART

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

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

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

送RB81/161/2T1溢出10SMOD1/2focs/210SMOD模式2串行口的波特率B模式1、3時串行口的波特率B1/16focs/12模式0串行口的波特率B串行口四種模式時,因移位脈沖來源不同而使串行口的波特率B不同(如圖所示)B=focs/12B=focs/32或=fosc/64

B=1/32×T1溢出率或=1/16×T1溢出率發送、接收控制器發送、接收控制器發送、接收控制器TL1(8位)TH1(8位)震蕩器1/12TF1中斷控制T1引腳TR1GATEINT1C/T=1C/T=08位+1計數器8位初值寄存器T1溢出率=Yc=1/TcTc=(256-N)*12/foscYc=fosc/[12×(256-TH1)]溢出率是指每秒定時器溢出的次數波特率=2SMOD×Yc

32模式0、2時的波特率的計算模式0:波特率B=fosc/12fosc為系統頻率模式2:B=1/64*fosc(SMOD=0時)或B=1/32*fosc(SMOD=1時)其中:SMOD為電源控制寄存器PCON的最高位。返回本節目錄模式1、3時的波特率的計算

B=1/16×T1溢出率(SMOD=1時)或:B=1/32×T1溢出率(SMOD=0時)其中:T1溢出率=fosc/12×[1/(256-TH1)];TH1為初值所以:B=fosc/192×[1/(256-TH1)](SMOD=1時)或:B=fosc/384×[1/(256-TH1)](SMOD=0時)這樣,我們可以得到求TH1(初值)的計算公式:

TH1=256-[fosc/(384XB)];(SMOD=0時)

TH1=256-[fosc/(192XB)];(SMOD=1時)【舉例】:設fosc為11.0592MHz,波特率為1200Hz,求TH(設:SMOD=0)。【解】:用上述公式

TH1=256-[11.059MHz/(384X1200)]=232=0E8H

返回本節目錄方式2波特率:(固定)2SMOD/64×fosc3、波特率的設置方式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)

方式1和方式3的波特率可變,由定時器1的溢出率決定波特率/(b/s)fosc/MHzSMOD定時器1C/模式初始值方式0:1M方式2:375k方式1、3:62.5k19.2k9.6k4.8k2.4k1.2k137.5k11011012121211.05911.05911.05911.05911.05911.986612×1110000000××000000000××222222221××FFHFDHFDHFAHF4HE8H1DH72HFEEBHT波特率=一個機器周期是晶振的頻率f除以12(標準模式),每當計數到256-TH1溢出一次(定時器1工作在方式2,8位),使用11.0592MHz晶振,TH1=0xFD,此時溢出速率為

11.0592/12/(0xFF-0xFD)=0.3072(MHz)

再除以32,為0.0096MHz,9600Hz!串行口的應用在編制串行通訊程序時,首先要確定兩個參數:

1,通訊雙方的“波特率”,必須保持嚴格一致;

2,傳輸數據的格式“字符幀格式”必須統一。MCS-51串口的4種模式中:0、2模式的波特率是固定的;1和3模式時波特率是可變且由定時器T1來作為波特率發生器,以模式2的方式工作。用T1作為波特率發生器時,根據波特率來計算T1的初值就成為串口程序初始化的主要任務之一。在通訊過程中,對標志(RI、TI)的判斷是控制通訊全過程的關鍵環節。四種模式的接收、發送條件模式發送條件接收條件接收方式主要應用0TI=0RI=0,REN=1查詢、中斷同步移位,系統擴并口1TI=0RI=0,REN=1查詢、中斷8位數據異步傳送2、3TI=0RI=0,REN=1,SM2=0查詢(無中斷)8位數據+奇偶位的異步收發UARTRI=0,REN=1,RB8=1若SM2=0時查詢。若SM2=1時引發中斷8位數據+控制位的異步收發UART返回本節目錄模式1舉例(一)發送程序TXD.ASM

org0000hljmp0100horg0100hstart:movtmod,#20h;設定定時器T1為模式2movtl1,#0f4h;送定時初值(fosc=11.059)

movth1,#0f4h;波特率B=2400movpcon,#00h;PCON中的SMOD=0setbtr1;啟動定時器T1movscon,#40h;設定串行口為模式1loop2:movp1,#0ffhmova,p1;從P1口輸入數據

movsbuf,a;數據送SBUF發送loop1:jnbti,loop1;判斷數據是否發送完畢?

clrti;發送完一幀后清標志

sjmploop2;返回繼續

endTXD.ASM發送程序框圖(查詢方式)SM0SM1SM2RENTB8RB8TIRIT1初始化啟動T1串行口初始化輸入數據到A發送一幀數據MOVSBUF,ATI=1?軟件清TIGATEC/TM1M0GATEC/TM1M0設定定時器T1的工作模式00000010B設定串行口模式寄存器SCON為01000000BYN(二)接收程序:RXD.ASM

org0000h ljmp0100h org0100hstart: movtmod,#20h ;選定T1為模式2(自動重裝)

movtl1,#0f4h ;設定初值

movth1,#0f4h ;同上

movpcon,#00h ;PCON的SMOD=0 setbtr1 ;啟動T1定時器

clrri ;清接收標志

movscon,#50h ;設定串行口為方式1loop1:jnbri,loop1 ;判斷是否接收到數據?

clrri ;接收到數據后清接收標志

mova,sbuf ;數據送累加器A movp1,a ;從P1口輸出

sjmploop1 ;回繼續

endRXD.ASM接收程序框圖(查詢方式)T1初始化啟動T1串行口初始化輸出數據到P1數據送AMOVA,SBUFRI=1?軟件清TISM0SM1SM2RENTB8RB8TIRIGATEC/TM1M0GATEC/TM1M0定時器TMOD(89H)的工作模式00000010B串行口模式寄存器SCON(98H)為01010000BYN思考題:用中斷的方式接收數據

org0000h ljmpstart

org0023h ljmprxd1

org0100hstart: movtmod,#20h;選定T1為模式2(自動重裝)

movtl1,#0f4h ;設定初值

movth1,#0f4h ;同上

movpcon,#00h;PCON的SMOD=0 setbtr1 ;啟動T1定時器

clrri ;清接收標志

movscon,#50h;設定串行口為方式1 movie,#90h;開串行口中斷

sjmp$

org0200hrxd1: clrri ;接收到數據后清接收標志

mova,sbuf ;數據送累加器A movp1,a ;從P1口輸出

retiendLJMPLJMPMOVCLR0000H0023H0100H0200HRXD.ASM接收程序框圖(中斷方式)T1初始化并啟動T1串行口初始化開串行口中斷等待RI中斷輸出數據到P1接收一幀數據MOVA,SBUF軟件清TIRETI主程序框圖中斷服務程序框圖EAXXESET1EX1ET0EX0設定中斷允許寄存器IE(A8H)為10010000B

模式2、3應用舉例與模式1相比,模式2、3的主要特點:

1,9位數據的傳送格式:

其中:發送時第9位在TB8;接收時第9位在RB8中。

2,SM2:多機通訊位:

在模式0、1中:SM2=0。當RI=1時便可以引發中斷。

在模式2、3中:

如果SM2=0,TI和RI雖然可以被激活,但不能引發中斷!如果SM2=1,且RB8=1時,RI被激活時可以引發中斷!根據上面特點,模式2、3可以:1,利用第9位數據來傳送、接收每一字節的“奇偶效驗位”。

2,利用SM2、RB8實現多機通訊功能。利用模式2,3進行帶奇校驗的串行通訊程序流程圖數據送累加器APSW.P=1?SETBSCON.TB8CLRSCON.TB8MOVSBUF,ATI=1?CLRSCON.TIYESNONOYES發送端程序RI=1?MOVA,SBUFPSW.P⊕RB8=1?出錯處理CLRSCON.RIYESNO接收端程序使用“查詢法”編制的發送、接收程序NY數據送內存使用模式3進行多機通訊主機從機N從機4從機3從機2從機1串行數據線(2條)主從式多機通訊原理1,主機發送的數據可以傳送到各個從機,從機發送的數據只能為主機接收,從機之間不能直接通訊。2,主機和從機的設置為模式2或3,其中:主機的SM2=0(單機方式);從機的SM2=1(多機方式)。3,主機發送地址碼來尋找從機(地址碼特征是第9位數據為“1”

),所有從機都接收主機發出的地址碼(因為RB8=1),既RI=1引發中斷。在中斷服務程序中,將接收到地址碼與自己的地址進行比較,被選中的從機將自己的SM2=0,并維持在中斷服務程序中保持與主機的聯系。而未被選中的從機仍保持SM2=1,并退出中斷服務程序。4,當主機找到從機后,開始向從機發數據、命令(其特征為第9位=0)。由于選中的從機SM2=0,從機仍可以使用查詢RI的方式接收主機發出的數據或命令(而未選中的從機因RB8=0不會引發它們的中斷)。當主機與從機的通訊完成后,該從機再將其SM2=1并退出中斷服務程序。主機重新發出另一個從機的地址,所有從機可以馬上響應并接收地址信息。多機通訊中主機與從機之間的控制、狀態信息主機的控制命令:00H主機發送,從機接收;(控制從機的操作)01H主機接收,從機發送。從機狀態字:從機向主機發送的用于表征從機工作狀態的信息(如下圖)。ERRTRDYRRDY0:合法命令0:發送未就緒0:接收未就緒1:非法命令1:發送就緒1:接收就緒從機返回的狀態字主機程序框圖T1為定時,模式2B=1200,啟動T1設串口為模式3REN=1,SM2=0TB8=1設定程序數據:R0~R5調用MCOMMU停機MCOMMU發送從機地址從機應答?地址相符?發送命令字TB8=0從機應答?命令正確?命令分類接收數據塊發送數據塊從機接收就緒?從機發送就緒?RET命令從機復位NNYYNNYYNNYY接收發送一:主機程序(初始化部分)

ORG2000HSTART: MOVTMOD,#20H ;定時器T1為模式2 MOVTH1,#0F4H MOVTL1,#0F4H ;波特率為1200(設外接6MHz晶體)

SETBTR1 ;啟動T1 MOVSCON,#0D8H ;串口為模式3允許接收,SM2=0,TB8=1 MOVPCON,#00H ;設PCON中的SMOD=0 MOVR0,#40H ;發送數據塊首地址送R0 MOVR1,#20H ;接收數據塊首地址送R1 MOVR2,#SLAVE ;被尋從機地址送R2 MOVR3,#00H/#01H ;主發、從收命令。或主收、從發命令

MOVR4,#14H ;發送數據塊長度送R4(20)

MOVR5,#14H ;接收數據塊長度送R5(20)

ACALLMCOM ;調用主機通訊子程序

SJMP$二:主機通訊子程序(MCOM)

ORG2100HMCOM: MOVA,R2 ;取從機地址

MOVSBUF,A JNBRI,$ CLRRI MOVA,SBUF XRLA,R2 ;核對兩個地址

JZMTXD2 ;相符時,轉MTXD2MTXD1:MOVSBUF,#0FFH ;返回地址錯誤時,發送從機復位信號

SETBTB8 ;設定地址標志

SJMPMCOM ;重發從機地址,使所有從機重新判斷地址MTXD2:CLRTB8 ;準備發送命令

MOVSBUF,R3 ;送出命令

JNBRI,$ ;等待從機應答

CLRRI ;從機應答后清標志

MOVA,SBUF ;接收從機應答命令

JNBACC.7,MTXD3 ;命令無錯時,則命令分類

SJMPMTXD1 ;命令錯返回重新聯絡MTXD3:CJNER3,#00H,MRXD ;從機發送主機接收時,轉MRXD

JNBACC.0,MTXD1 ;從機接收時,若從機未準備好轉回MTXD4:MOVSBUF,@R0 ;若從機準備好,則開始發送

JNBTI,$ CLRTI INCR0 DJNZR4,MTXD4 RETMRXD: JNBACC.1,MTXD1 ;從機發送未準備好返回MRXD1:JNBRI,$ ;等待接收

CLRRI MOVA,SBUF INCR1 ;接收數據區指針加一

DJNZR5,MRXD1 ;未接收完則繼續(R5接收數據計數器)

RET END

ERR從機返回的狀態字TRDYRRDY0:合法命令

0:發送未就緒

0:接收未就緒1:非法命令

1:發送就緒

1:接收就緒從機程序框圖T1為定時,模式2B=1200,啟動T1設串口為模式3REN=1,SM2=0TB8=1設定程序參數:R0~R3開串行口中斷停機保護現場接收地址符合本機?回送本機地址接收下一字符是命令嗎?命令分類本機發送準備就緒?本機接收準備就緒?發TRDY=1狀態字發RRDY=1狀態字發送數據接收數據發送完?接收完?保護現場返回NNYY發送命令接收命令非法命令送TRDY=0送RRDY=0NNNY主程序中斷服務程序三:從機主程序

ORG1000HSTART: MOVTMOD,#20H ;設定定時器T1為模式2 MOVTH1,#0F4H ;設定波特率為1200 MOVTL1,#0F4H SETBTR1 ;啟動定時器T1

MOVSCON,#0F8H

;設串口模式3,REN=1,SM2=1,TB8=1

MOVPCON,#00H MOVR0,#20H ;R0指向發送數據塊首地址

MOVR1,#40H ;R1指向接收數據塊首址

MOVR2,#14H ;R2賦發送數據塊長度

MOVR3,#14H ;R3賦接收數據塊長度

SETBEA SETBES

;開中斷

CLRRI ;清標志RI準備接收數據

SJMP$ ;等待中斷四:從機中斷服務程序

` ORG0023H LJMP0100H ORG0100HSINTS: CLRRI ;接收到地址后清RI

PUSHACC PUSHPSW ;保護現場

MOVA,SBUF ;接收主機送來得從機地址

XRLA,#SLAVE ;核實從機地址

JZSRXD1 ;若是本機地址轉SRXD1RETU: POPPSW ;返回主程序

POPACC ;恢復現場

RETI ;中斷返回SRXD1:CLRSM2 ;準備接收主機數據/命令

MOVSBUF,#SLAVE ;向主機發回從機地址

JNBRI,$ ;等待主機的命令

CLRRI ;接收到主機命令后清RI JNBRB8,SRXD2 ;若是命令(RB8=0)則轉SRXD2繼續

SJMPRETU ;接收的不是命令時(RB8=1),返回SRXD2:MOVA,SBUF ;將接收到的命令送A CJNEA,#02H,NEXT ;命令合法NEXT: JCSRXD3 ;若命令合法(A>02H)則繼續

CLRTI ;命令不合法則清TI準備發回ERR=1 MOVSBUF,#80H ;發送ERR=1的狀態字

SETBSM2 ;SM2重新置位

SJMPRETU ;返回主程序SRXD3:JZSCHRX ;若A=00H既主機發送從機接收轉SCHRX JBF0H,STXD ;若從機準備好(F0H=1)時,轉STXD MOVSBUF,#00H ;未準備好時,向主機發回TRXD=0信息

SETBSM2 SJMPRETU ;返回主程序STXD: MOVSBUF,#02H ;向主機發送TRDY=1的狀態字

JNBTI,$ ;等待發送完畢

CLRTI ;發送完畢后清標志TILOOP1:MOVSBUF,@R0 ;開始發送數據塊

JNBTI,$ CLRTI INCR0 DJNZR2,LOOP1 SETBSM2 ;數據塊發送完畢

SJMPRETU ;返回主程序SCHRX:JBPSW.1,SRXD ;本機接收就緒時轉SRXD

MOVSBUF,#00H ;接收未準備好時,向主機發RRDY=0 SETBSM2 SJMPRETU ;返回主程序SRXD: MOVSBUF,#01H ;向主機發送RRDY=1狀態字LOOP2:JNBRI,$ ;等待接收數據塊,開始接收數據塊

CLRRI MOV@R1,SBUF INCR1 DJNZR3,LOOP2

SETBSM2 ;數據塊接收完畢

SJMPRETU ;返回主程序

END返回本節目錄串行通信總線:RS232RS485IICSPIUSBCAN…4.6.3I2C總線標準與接口電路

I2C總線(InterIntegratedCircuitBus):是Philips公司推出的串行總線標準(為二線制)。總線上擴展的外圍器件及外設接口通過總線尋址,是具備總線仲裁和高低速設備同步等功能的高性能多主機總線。1.I2C總線工作原理組成:串行數據線SDA和串行時鐘線SCL構成的,可發送和接收數據。要求:所有掛接在I2C總線上的器件和接口電路都應具有I2C總線接口,且所有的SDA/SCL同名端相連。總線上所有器件要依靠SDA發送的地址信號尋址,不需要片選線。特點:組成系統結構簡單,占用空間小,無需專門的母板和插座,芯片管腳的數量少,無需片選信號,價格低。允許若干兼容器件共享總線,應用比較廣泛。總線的長度可達7.6m,傳送速度可達400kbps,標準速率為100kbps。支持多個組件。支持多主控器件(某時刻只能有一個主控器件)。I2C總線上所有設備的SDA,SCL引腳必須外接上拉電阻。2.I2C總線系統結構

一個典型的I2C總線結構如下圖所示。系統中所有的器件均有I2C總線接口,所有器件通過兩根線SDA(串行數據線)和SCL(串行時鐘線)連接到I2C總線上,并通過尋址識別。

I2C總線中的器件既可以作為主控器,也可以作為被控器,系統中每個器件均具有惟一的地址,各器件之間通過尋址確定數據交換方。任何時刻總線只能由一個主控制器,數據的傳輸只能在主、從器件間進行。3.I2C總線協議

I2C總線在傳送數據過程中共有三種類型信號:開始信號、停止信號和應答信號。開始信號:SCL保持高電平的狀態下,SDA出現下降沿。出現開始信號以后,總線被認為“忙”。停止信號:SCL保持高電平的狀態下,SDA出現上升沿。停止信號過后,總線被認為“空閑”。應答信號:接收數據的器件在接收到8位數據后,向發送數據的器件發出特定的低電平脈沖,表示已收到數據。

總線空閑:SCL和SDA都保持高電平。總線忙:在數據傳送開始以后,SCL為高電平的時候,SDA的數據必須保持穩定,只有當SCL為低電平的時候才允許SDA上的數據改變。4.I2C總線的傳送格式

I2C總線的傳送格式為主從式,對系統中的某一器件來說有四種工作方式:主發送方式、從發送方式、主接收方式、從接收方式。

(1)主發送從接收

主器件產生開始信號以后,發送的第一個字節為控制字節。前七位為從器件的地址片選信號。最低位為數據傳送方向位(高電平表示讀從器件,低電平表示寫從器件),然后發送一個選擇從器件片內地址的字節,來決定開始讀寫數據的起始地址。接著再發送數據字節,可以是單字節數據,也可以是一組數據,由主器件來決定。從器件每接收到一個字節以后,都要返回一個應答信號(ASK=0)。主器件在應答時鐘周期高電平期間釋放SDA線,轉由從器件控制,從器件在這個時鐘周期的高電平期間必須拉低SDA線,并使之為穩定的低電平,作為有效的應答信號。

溫馨提示

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

評論

0/150

提交評論