iic串行总线

工作原理

常用串行扩展总线:

  1. IIC,单总线,SPI,Mircrowire/plus
  2. 硬件设计简化,体积减小,可靠性提高,更改扩充极为容易
  3. 可以接很多设备,根据那个设备先发送地址码,那个地址码

总线裁决

  1. IIC总线通过上拉电阻接正电源10K,三极管流控流,场效应管压控流。
  2. 每个器件都有唯一的地址,总线通过仲裁,以决定哪一台主机控制。
  3. 时钟信号为高电平期间,数据必须保持稳定,只有时钟线上的信号为低电平时,数据线上的高低电平状态才允许变化。

起始和终止信号

  1. SCL线为高电平时,SDA由高到低变化为起始信号。
void IICstart(void)
{
	SDA=1;
	SomeNop();
	SCL=1;
	SomeNop();
	SDA=0;
	SomeNop();
}
  1. SCL线为高电平时,SDA由低到高变化为终止信号
void IICStop(void)
{
	SDA=0;
	SomeNop();
	SCL=1;
	SomeNop();
	SDA=1;
	
}
  1. 起始和终止都是由主机发出

数据传送格式

  1. 每一个字节必须保证是8位长度,先传MSB,每一个被传送字节后面都必须跟随一位应答位(即一共9位)。
  2. 应答位是从机发出的。一个时钟传一位。
  3. 从机不对主机寻址信号应答时,它必须将数据线置于高电平,而由主机产生一个终止信号结束总线的数据传送。

数据帧格式

  1. 在起始信号后必须传送一个从机地址(7位),第8位是数据传送方向位(R/T),0代表主机发送数据,1代表主机接受数据。

  2. 每次都是由主机产生的终止信号结束,若继续,则可以不产生终止信号

  3. 在这里插入图片描述

  4. 主机发送地址时,总线上的每个从机都将这7位地址码与自己地址进行比较。

  5. 从机地址=固定+可编程(4+3),3位 这时仅能寻址8个相同的器件。

写入过程

  1. 先发送7位地址和方向位(R/T),发送完后释放SDA线并在SCL上产生第九个时钟,被选中存储器器件确认后在SDA上产生一个应答信号作为响应,主机收到应答后传送数据。

读出过程

  1. 移位操作:左移时最低位补0,最高位移入PSW中的CY位。
#include<reg52.h>
#define uchar unsigned char
sbit SCL=P2^0;
sbit SDA=P2^1;
void delay()
{ ; ; }
void init()
{
	SCL=1;
	SDA=1;
}
void START()	//	起始
{	
	SDA=1delay();
	SCL=1;
	delay();
	SDA=0;
	delay();
}
void STOP()	//	终止
{
	SDA=1;
	delay();
	SCL=0;
	delay();
	SDA=1;
	delay();
}
void BYTE_WRITE(uchar date)
{	
	uchar i,temp;
	temp=date;
	SCL=0;	//低电平数据可以变化
	delay();
	for(i=0;i<8;i++)
	{
		temp=temp<<1;
		SDA=CY;
		delay();
		SCL=1;
		delay();
		SCL=0;
		delay();		
	}
	SDA=1; //数据总线释放
	delay();
}
uchar BYTE_READ()
{	
	uchar i,j,k;
	SCL=0;
	delay();
	SDA=1;
	delay();
	for(i=0;i<8;i++)
	{
		SCL=1;
		delay();
		j=SDA;
		k=(k<<1)|j;
		scl=0;
		delay();
	}
	return k;
}
void main()
{	
	init();
	BYTE_WRITE(0xa0);
	respons();
	BYTE_WRITE_BYTE(3);
	RES

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值