当前位置:首页 >> 机械/仪表 >>

AT24C02的读写程序2


电子下载站 www.bbww.net 资料版权归合法所有者所有 严禁用于商业用途
对 24C02 的读、写

#include <reg51.h> // 对 24C02 的读、写 // extern void DelayMs(unsigned int); // extern void Read24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char b ytes); // extern void Write24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes); /***************************************************************************/ #define WriteDeviceAddress 0xa0 #define ReadDviceAddress 0xa1 /***************************************************************************/ sbit SCL=P1^4; sbit SDA=P1^3; sbit DOG=P3^7; /***************************************************************************/ void DelayMs(unsigned int number) { unsigned char temp; for(;number!=0;number--,DOG=!DOG) { for(temp=112;temp!=0;temp--) { } } } /***************************************************************************/ void Start() { SDA=1; SCL=1; SDA=0; SCL=0; } /***************************************************************************/ void Stop() { SCL=0; SDA=0; SCL=1;
欢迎光临中国最大的电子工程师应用网站 网址:www.bbww.net

电子下载站 www.bbww.net 资料版权归合法所有者所有
SDA=1; }

严禁用于商业用途

/***************************************************************************/ void Ack() { SDA=0; SCL=1; SCL=0; SDA=1; } /***************************************************************************/ void NoAck() { SDA=1; SCL=1; SCL=0; } /***************************************************************************/ bit TestAck() { bit ErrorBit; SDA=1; SCL=1; ErrorBit=SDA; SCL=0; return(ErrorBit); } /***************************************************************************/ bit Write8Bit(unsigned char input) { unsigned char temp; for(temp=8;temp!=0;temp--) { SDA=(bit)(input&0x80); SCL=1; SCL=0; input=input<<1; } } /***************************************************************************/ void Write24c02(unsigned char *Wdata,unsigned char RomAddress,unsigned char number) { Start(); Write8Bit(WriteDeviceAddress);
2 欢迎光临中国最大的电子工程师应用网站 网址:www.bbww.net

电子下载站 www.bbww.net 资料版权归合法所有者所有
TestAck(); Write8Bit(RomAddress); TestAck(); for(;number!=0;number--) { Write8Bit(*Wdata); TestAck(); Wdata++; } Stop(); DelayMs(10); }

严禁用于商业用途

/***************************************************************************/ unsigned char Read8Bit() { unsigned char temp,rbyte=0; for(temp=8;temp!=0;temp--) { SCL=1; rbyte=rbyte<<1; rbyte=rbyte|((unsigned char)(SDA)); SCL=0; } return(rbyte); } /***************************************************************************/ void Read24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes) { unsigned char temp,rbyte; Start(); Write8Bit(WriteDeviceAddress); TestAck(); Write8Bit(RomAddress); TestAck(); Start(); Write8Bit(ReadDviceAddress); TestAck(); while(bytes!=1) { *RamAddress=Read8Bit(); Ack(); RamAddress++; bytes--; } *RamAddress=Read8Bit(); NoAck();
3 欢迎光临中国最大的电子工程师应用网站 网址:www.bbww.net

电子下载站 www.bbww.net 资料版权归合法所有者所有
Stop(); }

严禁用于商业用途

/***************************************************************************/

4 欢迎光临中国最大的电子工程师应用网站 网址:www.bbww.net


相关文章:
AT24C02页读写程序
AT24C02读写程序_信息与通信_工程科技_专业资料。AT24C02读写程序 ...** 存于器件 2 中,其地址为 0xa2。 **时间:2012 年 2 月 7 日 ** ...
...AT24C02的数据读写操作_采用IIC总线读写_C程序
A​T​2​4​C​0​2​的​数​据​读​写​操​作...{ AT24C02_SCL = 0; _nop_(); AT24C02_SDA = 1; _nop_(); AT24...
AT24C02程序
AT24C02程序_计算机软件及应用_IT/计算机_专业资料。有关于 AT24C02 存储器...读取 if(K2 == 0) //第二个按钮读取数据 { IRcvStr(AT24C02, 0 , &...
AT24C02操作方法及程序(含时序图)
AT24C02 的芯片地址如下图,1010 为固定,A0,A1,A2 正好与芯片的 1,2,3 ...AT24C02 的芯片地址(0xa0 为写,0xa1 为读) 任一地址写入数据格式 uchar ...
读写at24c02的51c语言程序
} } //---IIC AT24C01 读写程序---void start() //启动时序模块子模块...(); 2 // 59776448.doc t=0;while(t<=DELAY_R){t++;} ACK_BIT=SDA...
I2C总线上接两个AT24C02读写实例
AT24C02 进行操作 3、在 keil c51 中新建工程 ex54,编写如下程序代码,编译...0xa1 即为 1010 0000B #define OP_READ2 0xaf // 器件 2 地址以及读取...
AT24C02读写及显示
AT24C02读写及显示_工学_高等教育_教育专区。单片机课程设计#include "reg51....要读取从器件的片内地址 //起始信号 stop();out=rec_mem[3];while(!key2...
AT24C02的读写
AT24C02 的读写作者: 来源: 阅读次数:372 AT24C02 是美国 ATMEL 公司的低...LOOP2: SETB R0,#08H ;接受单字节子程序 P1.1 ACALL DELAY MOV C,P1....
AT24C02存储器的读写及显示
(25 号)一、 设计任务: 通过对 EEPROM 器件 AT24C02 的读写用 LM016 来显示开 始 ↓ 流程图 二、 程序设计: #include<reg51.h> #include<absacc.h> ...
STM32---6---I2C读写AT24C02
STM32---6---I2C读写AT24C02_信息与通信_工程科技...2、 开始条件:在 SCL 高电平期间,SDA 产生一个...将 SDA 拉低) 下面是源程序:原理上说,下面程序再...
更多相关标签: