单片机教程-51系列单片机读写iic总线

单片机教程-51系列单片机读写iic总线

ID:26657563

大小:376.35 KB

页数:20页

时间:2018-11-28

单片机教程-51系列单片机读写iic总线_第1页
单片机教程-51系列单片机读写iic总线_第2页
单片机教程-51系列单片机读写iic总线_第3页
单片机教程-51系列单片机读写iic总线_第4页
单片机教程-51系列单片机读写iic总线_第5页
资源描述:

《单片机教程-51系列单片机读写iic总线》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第28章51系列单片机读写I2C总线I2C总线是Philips公司推出的一种双向二线制总线,全称为芯片间总线(InterIntegrateCircuitBUS)。其在芯片间使用两根连线实现全双工同步数据传送,一条数据线(SDA)和一条串行时钟线(SCL),可以很方便地构成外围器件扩展系统。I2C总线是很简单方便的芯片间串行扩展总线。使用I2C总线可以直接和具有I2C总线接口的单片机通信,也可以和各种类型的外围器件进行通信,如存储器、A/D、D/A、键盘、LCD等。目前Philips、Atmel、Maxim

2、以及其他集成电路制造商推出了很多基于I2C总线的单片机和外围器件,如24系列E2PROM、串行实时时钟芯片DS1302、USB2.0芯片CY7C68013A等。本章主要介绍了I2C总线的工作原理、结构以及寻址方式,并重点介绍了数据传输协议以及程序实现。这些程序均以子程序的形式提供,便于读者调用。最后通过具体的实例,介绍如何使用单片机读写具有I2C总线接口的E2PROM。28.1I2C总线概述I2C总线对数据通信进行了严格的定义,要进行I2C总线的接口设计,就需要首先了解I2C总线的工作原理图、寻址方式和数

3、据传输协议等。28.1.1I2C总线工作原理典型的I2C总线系统结构,如图28.1所示。其采用两线制,由数据线SDA和时钟线SCL构成。总线上挂接的单片机(主器件)或外围器件(从器件),其接口电路都应具有I2C总线通信能力。28.1.2I2C总线的电气结构和负载能力I2C总线的SCL和SDA端口输出为漏极开路,因此使用时上必须连接上拉电阻。不同型号的器件对上拉电阻的要求不同,可参考具体器件的数据手册。上拉电阻的大小与电源电压、传输速率等有关系。I2C总线的传输速率可以支持100kHz和400kHz两种,对

4、于100kHz的速率一般采用10KΩ的上拉电阻,对于400kHz的速率一般采用2KΩ的上拉电阻。I2C总线上的外围扩展器件都是属于电压型负载的CMOS器件,因此总线上的器件数量不是由电流负载能力决定,而是由电容负载能力确定。I2C总线上每一个节点器件的接口都有一定的等效电容,这会造成信号传输的延迟。通常I2C总线的负载能力为400pF(通过驱动扩展可达4000pF),据此可计算出总线长度及连接器件的数量。28.1.3I2C总线器件的寻址方式I2C总线上的所有器件连接在一个公共的总线上,因此,主器件在进行数

5、据传输前选择需要通信的从器件,即进行总线寻址。I2C总线上所有外围器件都需要有惟一的地址,由器件地址和引脚地址两部分组成,共7位。器件地址是I2C器件固有的地址编码,器件出厂时就已经给定,不可更改。引脚地址是由I2C总线外围器件的地址引脚(A2,A1,A0)决定,根据其在电路中接电源正极、接地或悬空的不同,形成不同的地址代码。引脚地址数也决定了同一种器件可接入总线的最大数目。地址位与一个方向位共同构成I2C总线器件寻址字节。寻址字节的格式如表所示。方向位(R/)规定了总线上的主器件与外围器件(从器件)的数

6、据传输送方向。当方向位R/=1,表示主器件读取从器件中的数据;R/=0,表示主器件向从器件发送数据。28.2I2C总线数据传输协议及其程序详解I2C总线规定了严格的数据通信格式,所有具有I2C总线接口的器件都必须遵守。另外,对于应用最广的51系列单片机,却没有提供I2C总线接口。实际上,利用这些单片机的普通I/O口,采用软件模拟I2C总线SCL和SDA上的数据传送时序,完全可以实现对I2C总线器件的读、写操作。下面就分别介绍数据传输过程中的格式以及如何使用8051单片机来实现。这里假设51系列单片机的外接

7、晶振频率为6MHz,单片机的机器周期为2µs,采用P1.0作为时钟线SCL,P1.1作为数据线SDA。28.2.1起始信号起始信号用于开始I2C总线通信。在时钟线SCL为高电平期间,数据线SDA上出现由高电平向低电平变化的下降沿时,被认为是起始信号。起始信号出现以后,才可以进行寻址或数据传输等。如果采用汇编语言进行程序设计,则其程序示例如下:START:SETBP1.1;P1.1=1,SDA=1SETBP1.0;P1.0=1,SCL=1NOP;延时NOPCLRP1.1;P1.1=0,SDA=0NOPNOP

8、CLRP1.0;P1.0=0,SCL=0RET28.2.2终止信号终止信号用于终止I2C总线通信。在时钟线SCL为高电平期间,数据线SDA上出现由低电平到高电平变化的上升沿时,被认为是终止信号。终止信号一出现,所有总线操作都结束,主从器件释放总线控制权。如果采用汇编语言进行程序设计,则其程序示例如下:STOP:CLRP1.1;P1.1=0,SDA=0SETBP1.0;P1.0=1,SCL=1NOPNOPSETBP1.1;P1.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。