51单片机——I2C总线存储器24C02的应用

目标实现功能

       单片机先向24C02写入256个字节的数据,再从24C02中一次读取2个字节的数据、并在数码管上动态显示,直至读完24C02中256个字节的数据。

1.I2C总线简介

I2C总线有两根双向的信号线,一根是数据线SDA,另一根是时钟线SCL。I2C总线通过上拉电阻接正电源,因此,当总线空闲时为高电平。

2.I2C通信协议

起始信号、停止信号由主机发出。在数据传送时,当时钟线为高电平时,数据线上的电平状态必须保持稳定;当时钟线为低电平时,数据线上的电平状态才允许变化。发送器将8位数据从高位到低位传送完成后,需要接收来自接收器的应答或非应答的信号。

51单片机需要编写模拟I2C总线通信的程序,才能与其他I2C总线器件通信。

<1>起始信号的程序

/*I2C起始信号*/
void i2c_start()//当SCL为高电平,SDA从高电平变为低电平
{
	SDA=1;
	delay6us();//将SDA置为高电平
	SCL=1;
	delay6us();//将SCL置为高电平
	SDA=0;
	delay6us();//SDA从高电平变为低电平
	SCL=0;
  delay6us();//将SCL置为低电平,准备发送数据
}

<2>停止信号的程序

/*I2C停止信号*/
void i2c_stop()//当SCL为高电平,SDA从低电平变为高电平
{
	SDA=0;
	delay6us();//将SDA置为低电平
	SCL=1;
	delay6us();//将SCL置为高电
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值