AT24C02的驱动可以作为模块化的程序直接使用非常方便,但需要配合着IIC协议共同使用,在这里分享给大家。
单片机源程序:
- #include "AT24C02.H"
- #include "IIC.H"
- void At24c02_write_add(unsigned char address, unsigned char dat)
- {
- IIC_start();
- IIC_write_byte(0xa0);
- IIC_respons();
- IIC_write_byte(address);
- IIC_respons();
- IIC_write_byte(dat);
- IIC_respons();
- IIC_stop();
- }
- //由地址读取
- unsigned char At24c02_read_add(unsigned char address)
- {
- unsigned char dat;
- IIC_start();
- IIC_write_byte(0xa0);
- IIC_respons();
- IIC_write_byte(address);
- IIC_respons();
- IIC_start();
- IIC_write_byte(0xa1);
- IIC_respons();
- dat=IIC_read_byte();
- IIC_stop();
- return dat;
- }
- void At24c02_write_page(unsigned char address,unsigned char dat[],unsigned char Cnt)
- {
- unsigned char i;
- IIC_start();
- IIC_write_byte(0xa0);
- IIC_respons();
- IIC_write_byte(address);
- IIC_respons();
- for(i=0;i<Cnt;i++)
- {
- IIC_write_byte(dat[i]);
- IIC_respons();
- }
- IIC_stop();
- }
- void At24c02_read_page(unsigned char address,unsigned char dat[],unsigned char Cnt)
- {
- unsigned char i,j;
- IIC_start();
- IIC_write_byte(0xa0);
- IIC_respons();
- IIC_write_byte(address);
- IIC_respons();
- IIC_start();
- IIC_write_byte(0xa1);
- IIC_respons();
- for(i=0;i<Cnt;i++)
- {
- dat[i]=IIC_read_byte();
- IIC_SDA=0; //这里必须有,是MCU向EEPROM发送
- IIC_SCL=1; //应答脉冲
- for(j=20;j>0;j--);
- IIC_SCL=0;
- }
- IIC_stop();
- }
复制代码
更多详细代码和头文件申明都在压缩文件里 亲测。
全部资料51hei下载地址:
AT24C02驱动和IIC协议.rar
(1.62 KB, 下载次数: 41)
|