標題:
at24c08 iic存儲芯片讀寫程序
[打印本頁]
作者:
dagu
時間:
2014-12-26 18:25
標題:
at24c08 iic存儲芯片讀寫程序
選擇讀地址時序
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit SCL=P3^4;
sbit SDA=P3^5;
void delay(void); //延時1
void delay1(void);//延時2
void start(void); //啟動
void stop(void); //停止
void yd(void); //應答
void noyd(void); //非應答
void AT24C08W_byte(uchar dat);//往AT24C08寫一個字節(jié)
uchar AT24C08R_byte(void);
void init(void);
void AT24C08W_ZDbyte(uchar add,uchar dat);//往AT24C08指定某個地址寫入某個數據
uchar AT24C08R_ZDbyte(uchar add);//網AT24C08指定某個地址讀取數值
void init(void)
{
SCL=1;
SDA=1;
}
void delay(void)
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
}
void delay1(void)
{
uint i=30000;
while(i--);
}
void start(void)
{
SDA=1;
delay();
SCL=1;
delay();
SDA=0;
delay();
}
void stop(void)
{
SDA=0;
delay();
SCL=1;
delay();
SDA=1;
delay();
}
void yd(void)
{
uint i;
SCL=1;
delay();
while((SDA==1)&&(i<200)) i++;
SCL=0;
delay();
}
void noyd(void)
{
SDA=1;
_nop_();
SCL=1;
delay();
SCL=0;
_nop_();
SDA=0;
}
void AT24C08W_byte(uchar dat)
{
uint i;
SCL=0;
for(i=0;i<8;i++)
{
SDA=(bit)(dat&0x80);
dat<<=1;
SCL=1;
delay();
SCL=0;
delay();
}
}
uchar AT24C08R_byte(void)
{
uchar i,dat;
SCL=0;
for(i=0;i<8;i++)
{
dat<<=1;
dat|=(uchar)SDA;
SCL=1;
delay();
SCL=0;
delay();
}
return dat;
}
void main()
{
/*init();
start();
AT24C08W_byte(0xa0);
yd();
AT24C08W_byte(1);
yd();
AT24C08W_byte(0xf8);
yd();
stop();
delay1();
///////////////
//////////////
init();
start();
AT24C08W_byte(0xa0);
yd();
AT24C08W_byte(1);
yd();
start();
AT24C08W_byte(0xa1);
yd();
P0=AT24C08R_byte();
noyd();
stop();*/
init();
AT24C08W_ZDbyte(1,0xfe);
delay1();
init();
P0=AT24C08R_ZDbyte(1);
}
void AT24C08W_ZDbyte(uchar add,uchar dat)
{
start();
AT24C08W_byte(0xa0);
yd();
AT24C08W_byte(add);
yd();
AT24C08W_byte(dat);
yd();
stop();
}
uchar AT24C08R_ZDbyte(uchar add)
{
uchar a;
start();
AT24C08W_byte(0xa0);
yd();
AT24C08W_byte(add);
yd();
start();
AT24C08W_byte(0xa1);
yd();
a=AT24C08R_byte();
noyd();
stop();
return a;
}
復制代碼
作者:
xyz1015231411
時間:
2015-1-28 12:26
不錯,值得學習。
作者:
JDISFG
時間:
2016-5-22 12:15
可用于脈沖數的讀寫嗎?
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1