新手上路
- 积分
- 37
- 金钱
- 37
- 注册时间
- 2016-7-21
- 在线时间
- 11 小时
|

楼主 |
发表于 2016-11-9 17:14:13
|
显示全部楼层
#include "24cxx.h"
//#include "delay.h"
#include "delay.h"
//Mini STM32·°
//24CXX(24C01~24C16,24C32~256!é¤!)
//×@ALIENTEK
//2010/6/10
//V1.2
u8 g8563_Store[7];
u8 c8563_Store[7]={0x00,0x00,0x12,0x01,0x01,0x07,0x15};
//IIC
//AT24CXX¨·
//ReadAddr:·
//· :
u8 AT24CXX_ReadOneByte(u8 ReadAddr)
{
u8 temp=0;
IIC_Start();
IIC_Send_Byte(0xa2); //·ü
IIC_Wait_Ack();
IIC_Send_Byte(ReadAddr);
IIC_Wait_Ack();
IIC_Start();
IIC_Send_Byte(0xa3);
IIC_Wait_Ack();
temp=IIC_Read_Byte();
IIC_NAck();
IIC_Stop();
return temp;
}
//AT24CXX¨·
//WriteAddr :·
//DataToWrite:
void AT24CXX_WriteOneByte(u8 WriteAddr,u8 DataToWrite)
{
IIC_Start();
IIC_Send_Byte(0xa2);
IIC_Wait_Ack();
IIC_Send_Byte(WriteAddr);
IIC_Wait_Ack();
IIC_Send_Byte(DataToWrite);
IIC_Wait_Ack();
IIC_Stop();
delay_ms(10);
}
//
u8 show_time[4];
void AT24CXX_ReadTime(void)
{
g8563_Store[0]=AT24CXX_ReadOneByte(0x02)&0x7f;
g8563_Store[1]=AT24CXX_ReadOneByte(0x03)&0x7f;
g8563_Store[2]=AT24CXX_ReadOneByte(0x04)&0x3f;
g8563_Store[3]=AT24CXX_ReadOneByte(0x05)&0x3f;
//g8563_Store[4]=AT24CXX_ReadOneByte(0x06)&0x07;
//g8563_Store[5]=AT24CXX_ReadOneByte(0x07)&0x1f;
//g8563_Store[6]=AT24CXX_ReadOneByte(0x08);
show_time[0] = (g8563_Store[0]/16)*10+(g8563_Store[0]%16);
show_time[1] = (g8563_Store[1]/16)*10+(g8563_Store[1]%16);
show_time[2] = (g8563_Store[2]/16)*10+(g8563_Store[2]%16);
show_time[3] = (g8563_Store[3]/16)*10+(g8563_Store[3]%16);
}
//·±°
void AT24CXX_ReadTime2(void)
{
AT24CXX_ReadTime();
if(g8563_Store[0]==0)
{
AT24CXX_ReadTime();
}
}
//±
u8 set_time[4]={0x25,0x13,0x18,0x11};
void AT24CXX_WriteTime(void)
{
AT24CXX_WriteOneByte(0x02,(set_time[0]));
AT24CXX_WriteOneByte(0x03,(set_time[1]));
AT24CXX_WriteOneByte(0x04,(set_time[2]));
AT24CXX_WriteOneByte(0x05,(set_time[3]));
}
void AT24CXX_Init(void)
{
u8 i;
IIC_Init();
delay_ms(200);
AT24CXX_WriteOneByte(0x00,0x20); //±
AT24CXX_WriteTime();
AT24CXX_WriteOneByte(0x00,0x00); //±
/*if((0x07 & AT24CXX_ReadOneByte(0x0c)) != 0x05)
{
for(i=0;i<7;i++)
{
g8563_Store[i]=c8563_Store[i];
}
AT24CXX_WriteTime();
AT24CXX_WriteOneByte(0x0c,0x05);
AT24CXX_WriteOneByte(0x00,0x00);
AT24CXX_WriteOneByte(0x01,0x00);
AT24CXX_WriteOneByte(0x09,0x00);
AT24CXX_WriteOneByte(0x0a,0x00);
AT24CXX_WriteOneByte(0x0b,0x00);
AT24CXX_WriteOneByte(0x0d,0x03);
AT24CXX_WriteOneByte(0x0e,0x03);
}*/
}
|
|