I2C总线;at24c02
来源:互联网 发布:金融很虚 知乎 编辑:程序博客网 时间:2024/05/17 04:31
AT24CO2芯片的引脚说明:
SERIAL CLOCK (SCL): The SCL input is used to positive edgeclock data into each EEPROM device and negativeedge clock data out of each device.
SERIAL DATA (SDA): The SDA pin is bidirectional for serialdata transfer. This pin is open-drain driven andmay be wire-ORed with any number of other open-drain oropencollector devices.
DEVICE/PAGE ADDRESSES (A2, A1, A0): The A2, A1 and A0 pins aredevice address inputs that are hard wired for theAT24C01A and the AT24C02. As many as eight 1K/2Kdevices may be addressed on a single bussystem
设备地址和数据地址
0x00~0xff;编程时需要考虑读写数据的地址。
void delay_1ms(unsigned int x)
{
}
短暂的延时函数,用在读数据和写数据之间,如果读写之间间隔较短,则芯片来不及反应,读不出数据
void delay(void)
{
}
更短的延时函数大概2us,在时钟周期里做延时函数,不能太长,曾经用for()循环写延时函数,结果延时过长,使时钟周期,和数据周期被破坏。还有一种延时的方法是 { ; ;} 用两个空语句来延时。
void at24c02_init(void)
{
}
初始化函数
void start()
{
}
起始信号,在时钟有效时将数据线拉低(下降沿);
void stop()
{
}
停止信号,在时钟有效时将数据线拉高(上升沿)
void ack(void)
{
}
确认信号,当8帧数据发完后,会由EEPROM在第9帧返回一个zero电平表示EEPROM已经确认收到的8帧信息,需要人为写检测函数来确认,(检测时控制芯片要将数据段拉高以释放控制状态,这样AT24C02才能返回zero).如果超过一定时间则认为没有返回信息,无应答。
void writex(unsigned char dat)
{
}
长数据存到短的变量中需要保留一部分,舍去一部分,编译器不同,规则是不同的。这里的unsignedchar强制转化位bit时保留了最高位。通过位移的方式分8次将数据发送出去。单片机中一个位寄存器CY用来保存溢出的位,可以人为的溢出一位数据,然后把数据从CY端发送出去,如:
temp = temp << 1;
CY = sda;
unsigned char readx(void)
{
}
此处将一位数据放入8位的变量中,是放在8位数据中的最低位,通过位移8次整合一个字节的数据。
void write_word(unsigned char word_address, unsigned charword)
{
}
起始信号---写设备地址---写数据地址---写数据---停止信号
unsigned char read_word(unsigned char word_address)
{
}
起始信号---写设备地址(最后一位是写)---写数据地址---另起始信号---写设备地址(最后一位是读,表示从确认信号以后的下一个时钟开始读数据)---读数据---停止信号
void main()
{
最简单的main函数,将数据Oxbb写入0x06地址,延时后在从0x06中读出来放在res中。
注意:每个需要用到时钟周期的函数,在函数结尾时,如果没有特殊要求,一般要将时钟拉低,信号线释放(拉高),这样函数之间的衔接不容易出错。
- I2C总线;at24c02
- I2C总线及AT24C02读写实验报告
- I2C总线入门(PCF8591T和AT24C02的使用)
- 基于proteus的51单片机仿真实例六十六、I2C总线上接两个AT24C02读写实例
- i2c子系统之at24c02简介
- IIC总线操作AT24C02芯片
- I2C总线
- I2C总线
- I2C总线
- I2C总线
- i2c总线
- I2C总线
- I2C总线
- I2C总线
- I2C总线
- I2C总线
- I2C总线
- I2C总线
- 中断寄存器
- C51中的扩展定义类型
- 1602液晶显示屏
- Android 注册广播的两种方式区别
- 关于define
- I2C总线;at24c02
- 锁相环PLL--摘自百度百科
- 数据段的分类
- NOR_FLASH and NAND_FLASH
- 寄存器书记类型长度
- gel文件的作用——摘自百度
- 系统初始化
- MEMORY
- GPIO_OPEN and CLOSE