单片机 定时器_第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

提交评论