MAX517与51单片机的I2C总线数据通信

发布者:温暖心绪最新更新时间:2011-12-28 关键字:I2C总线  AT89C51  MAX517  数据通信 手机看文章 扫描二维码
随时随地手机看文章

1 I2C总线的特点及基本通信协议

I2C总线是Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线?串行数据线和串行时钟线?即可使连接于总线上的器件之间实现信息传送,同时可通过对器件进行软件寻址,而不是对硬件进行片选寻址的方式来节约通信线数目,从而减少了硬件所占空间。因为总线已集成在片内,所以大大缩短了设计时间,此外,在从系统中移去或增加集成电路芯片时,对总线上的其它集成芯片没有影响。

1.1 I2C总线的主要特点

I2C总线通常由两根线构成:串行数据线(SDA)和串行时钟线(SCL);总线上所有的器件都可以通过软件寻址,并保持简单的主从关系,其中主器件既可以作为发送器,又可以作为接收器;

I2C总线是一个真正的多主总线,它带有竞争监测和仲裁电路。当多个主器件同时启动设备时,总线系统会自动进行冲突监测及仲裁,从而确保了数据的正确性;

I2C总线采用8位、双向串行数据传送方式,标准传送速率为100kB/s,快速方式下可达400kB/s;同步时钟可以作为停止或重新启动串行口发送的握手方式;连接到同一总线的集成电路数目只受400pF的最大总线电容的限制。

1.2 I2C总线数据通信基本协议

利用I2C总线进行数据通信时,应遵守如下基本操作:

(1)总线应处于不忙状态,当数据总线(SDA)和时钟总线(SCL)都为高电平时,为不忙状态;

(2)当SCL为高电平时,SDA电平由高变低时,数据传送开始。所有的操作必须在开始之后进行;

(3)当SCL为高电平时,SDA电平由低变为高时,数据传送结束。在结束条件下,所有的操作都不能进行;

(4)数据的有效转换开始后,当时钟线SCL为高电平时,数据线SDA必须保持稳定。若数据线SDA改变时,必须在时钟线SCL为低电平时方可进行。
 
2 AT89C51与MAX517的I2C数据通信

2.1 MAX517简介

MAX517是MAXIM公司生产的8位电压输出型DAC数模转换器,它带有I2C总线接口,允许多个设备之间进行通讯。

MAX517采用单5V电源工作。该芯片的引脚图见图1所示。各引脚的具体说明如下:

1脚(OUT):D/A转换输出端;

2脚(GND):接地;

3脚(SCL):时钟总线;

4脚(SDA):数据总线;

5、6脚(AD1,AD0):用于选择哪个D/A通道的转换输出?由于MAX517只有一个D/A,所以,使用时,这两个引脚通常接地。

7脚(VCC):电源;

8脚(REF):参考。

2.2 MAX517的工作时序



    图2是MAX517的一个完整的转换时序。首先应给MAX517一个地址位字节。MAX517在收到地址字节位后,会给AT89C51一个应答信号。然后,在给MAX517一个控制位字节,MAX517收到控制位字节位后,再给AT89C51发一个应答信号。之后,MAX517便可以给AT89C51发送8位的转换数据(一个字节)。AT89C51收到数据之后,再给MAX517发一个应答信号。至此,一次转换过程完成。

MAX517的一个地址字节格式如下:

BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
0 1 0 1 1 AD1 AD0 0

其中,前三位010出厂时已设定。对于MAX517,BIT4和BIT3这两位应取为1。因为一个AT89C51上可以挂4个MAX517,而具体是对哪一个MAX517进行操作,则由AD1、AD0的不同取值来控制。

MAX517的控制字节格式如下:

BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0
R2 R1 R0 RST PD X X A0

在该字节格式中,R2、R1、R0已预先设定为0;RST为复位位,该位为1时复位所有的寄存器;PD 为电源工作状态位,为1时,MAX517工作在4μA的休眠模式,为0时,返回正常的操作状态;A0为地址位,对于MAX517,该位应设置为0。

2.3 MAX517与AT89C51的硬件连接

AT89C51是ATMEL公司的89系列单片机的一种电路,是市面上应用相当广泛的一种产品。

硬件电路中,采用MAX813作为看门狗电路,既可自动复位,也可手工复位。利用该电路可以用数码管来显示0-255个数字量,图中,采用MAX7219作为数码驱动电路,若将MAX517的输出引脚连接到示波器上,还可以显示相应的模拟电压的变化情况。

3 MAX517与AT89C51的通信子程序

该系统应将MAX517作为从设备,AT89C51作为主设备。首先主设备向从设备发送一个地址字节58H,之后从设备则发一个应答信号,主设备接到应答后,再发给从设备一个控制字节00H,当从设备接到该控制字节后,再发给主设备一个应答。之后主设备便可发给从设备要转换的8位数据。其工作流程图见图4所示。具体的程序代码如下:

 

程序开始时,定义P1.6,P1.7为SDA,SCL;

//起始条件子函数

void Start(void)

{

SDA=1;

SCL=1;

NOP;

SDA=0;

NOP;

}

//停止条件子函数

void Stop(void)

{

SDA=0;

SCL=1;

NOP;

SDA=1;

NOP;

}

//应答子函数

void Ack(void)

{

SDA=0;

NOP;

SCL=1;

NOP;

SCL=0;

}

//发送数据子程序,Data为要发送的数据

void Send(uchar Data)

{

uchar BitCounter=8; //位数控制

uchar temp; //中间变量控制

do{

temp=Data;

SCL=0;

NOP;

if((temp&0x80)==0x80)

//如果最高位是1

SDA=1;

else

SDA=0;

SCL=1;

temp=Data<<1; //左移

Data=temp;

BitCounter--;

}while(BitCounter);

SCL=0;

}

//读一个字节的数据,并返回该字节值

uchar Read(void)

{

uchar temp=0;

uchar temp1=0;

uchar BitCounter=8;

SDA=1;

do{

SCL=0;

NOP;

SCL=1;

NOP;

if(SDA) //如果SDA=1

temp=temp|0x01;

else

temp=temp&0xfe;

if(BitCounter-1)

{

temp1=temp<<1;

temp=temp1;

}

BitCounter--;

}while(BitCounter);

return(temp);

}

4 结束语

由于该系统可通过单片机给MAX517发送0-255的数字量,并且可用数码管显示,同时,用示波器还可观测相应的电压变化,直观性非常好。同样,该程序对单片机与MAX518、MAX519等的通信都具有参考价值。

关键字:I2C总线  AT89C51  MAX517  数据通信 引用地址:MAX517与51单片机的I2C总线数据通信

上一篇:51单片机中断多优先级的软件扩展方法
下一篇:数字式温湿度传感器SHT11在51单片机系统的应用

推荐阅读最新更新时间:2024-03-16 12:49

基于AT89C51的自动温度测量报警系统设计
目前,无论是在工业生产中还是在科研实验中通过对温度测量来进行自动控制的设备越来越普及,应用场合也越来越多。随之而来的问题是,如何能够测得精确的温度以保证自动控制设备能够正确地发出控制指令来控制生产过程。另一方面,如果温度过高可能会对一些设备中的一些半导体元器件造成损坏。因此,对于自动高温报警的需求也在逐渐增加。本文基于以上方面的考虑,研究并设计了一种基于单片机的自动温度测量与报警系统。   1 系统硬件设计   尽管目前市场上单片机的品种多样,功能也越来越多,但是受成本约束,性能优良的8位单片机仍然是工业检测与控制应用领域的首选。   本系统就是以ATMEL公司的AT89C51单片机为中心,通过模数转换器AD7812对温
[单片机]
基于<font color='red'>AT89C51</font>的自动温度测量报警系统设计
I2C总线学习(一)--信号类型
I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。 每个接到I2C总线上的器件都有唯一的地址。主机与其它器件间的数据传送可以是由主机发送数据到其它器件,这时主机即为发送器,由总线上接收数据的器件则为接收器。 在CPU与被控IC 之间、IC 与IC 之间进行双向传送,高速IIC 总线一般可达400kbps以上。 I2C总线在传送数据过程中共有三种类型信号, 它们分别是:开始信号、结束信号和应答信号。   开始信号:SCL为高电平时,SDA由高电平向低电平跳变,开始
[单片机]
<font color='red'>I2C总线</font>学习(一)--信号类型
基于AT89C51的多层电梯控制系统
## 0 前言 电梯是一种垂直方向的交通运输工具,在人民的日常生活中不可缺少。对于电梯呼叫、运行等常用功能已经很好地被人们掌握并使用,但对于电梯的控制方面的探索却在不断成为焦点。不少老旧住宅和仓库仍采用继电器逻辑控制电路,容易出现故障、维护不方便、使用寿命短等问题 。因此大部分的研究放在与继电器控制相比有巨大优势的PLC(Programmable Logic Controller,可编程逻辑控制器)控制上 ,并且有效提高了电梯运行平稳性与安全性。但PLC的针对性强,导致PLC和设备都是一一对应的,从而导致价格比较昂贵,得不到广泛应用。由于单片机有功能强大,易于扩展,价格便宜等的优点,因此单片机在不同电梯使用环境使用中都有较强的适用
[单片机]
AT89C51单片机为核心的高频开关电源并联均流系统设计
  模块化是开关电源的发展趋势,并联运行是电源产品大容量化的一个有效方案,可以通过设计N+l冗余电源系统,实现容量扩展。本系统是多台高频开关电源(1000A/15V)智能模块并联,电源单元和监控单元均以AT89C51单片机为核心,电源单元的均流由监控单元来协调,监控单元既可以与各电源单元通信,也可以与PC通信,实现远程监控。   1    PWM控制电路   TL494是一种性能优良的脉宽调制控制器,TL494由5V基准电压、振荡器、误差放大器、比较器、触发器、输出控制电路、输出晶体管、空载时间电路构成。其主要引脚的功能为:    脚1和脚2分别为误差比较放大器的同相输入端和反相输入端;   脚15和脚16分别为控制比较放
[电源管理]
以<font color='red'>AT89C51</font>单片机为核心的高频开关电源并联均流系统设计
S3C2440 I2C总线协议 和 I2C总线下的AT24C02存储芯片分析 二十七
本节来学习I2C接口下的AT24C02存储芯片分析,本节学完后,再来学习Linux下如何使用I2C操作AT24C02 1、I2C通信介绍 它是由数据线SDA和时钟线SCL构成的串行总线,可发送和接受数据,是一个多主机的半双工通信方式。 每个挂接在总线上的器件都有个唯一的地址。 位速在标准模式下可达100kbit/s,在快速模式下可达400kbit/s,在高速模式下可达3.4Mbit/s。 2、I2C总线系统结构,如下图所示: 其中SCL时钟线的频率由主机提供,且从机不能主动来引起数据传输,必须等待主机先发信号才行,两个或多个主机同时发起数据传输时,可以通过冲突检测和仲裁来防止数据被破坏。 3、I2C时序
[单片机]
S3C2440 <font color='red'>I2C总线</font>协议 和 <font color='red'>I2C总线</font>下的AT24C02存储芯片分析 二十七
黑莓推出软件解决方案 确保安全关键系统数据通信交换安全
据外媒报道,黑莓推出了QNX Black Channel Communications技术。OEM和嵌入式软件开发人员可以使用这一新的软件解决方案,确保在安全关键系统内进行安全的数据通信交换。 (图片来源:黑莓官网) QNX Black Channel Communications Technology通过了汽车行业功能性安全标准ISO 26262 ASIL D认证,并且基于IEC 61508中规定的安全数据通信要求和AUTOSAR端到端通信保护文件中定义的缓解措施,保证了嵌入式系统中无数数据通信节点的功能安全。通过安全封包交换数据,并通过安全检查进行验证,可以保护数据通信不受系统软件故障、随机硬件故障和瞬时故障的影响
[汽车电子]
黑莓推出软件解决方案 确保安全关键系统<font color='red'>数据通信</font>交换安全
单片机 实时时钟电路(AT89C51、LCD1602、PCF8563)
一、简介 此电路主要有51单片机、LCD1602模块、PCF8563芯片和按键组成组成,通过LCD1062显示当前时间,按键可设置时间。 二、运行效果 三、部分代码 /*想要更多项目私wo!!!*/ #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int void init() { uchar num; lcden=0; write_com(0x38); //0011 1000B,功能模式设置,设置为8为数据口,两行显示,5*7点阵 write_com(0x0c);
[单片机]
基于AT89C51的时间/位移换向控制器设计
引言   在实际生产过程中,常常要用到具有自动换向功能的控制部件,如机械加工中的往返运行(位移),直流电源的正反向输出,电动机的正反转运行等现象,都是当正向(或反向)运行到一定时间或一定位置时,自动换为反向(或正向)运行,周而复始的过程。实现这一过程的自动化,就是设计一套控制电路,再配以位移传感器或时间继电器。目前市场现有的时间继电器虽然可以用多个组合来满足一些使用场合的要求,但仍存在着重复计时误差大,稳定可靠运行性不高,使用不方便灵活等问题。为此,笔者研发了以单片机为核心组成的时间/位移换向控制器SWHX-1,该系统具有成本低等特点,可完全且克服以上不足。 电路组成及工作原理   SWHX-1的内部电路如图1所示。该系统分
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved