在使用DS1302时,对年写入84只能读出04,
写入94只能读出14.
似乎是没有读出 最高位的1.
但是用写入暂停的命令是 可以写入的。
驱动用的是用户资料里的驱动
其实读数据驱动如下
uchar read1302(uchar addr)
{
uchar i,temp,data1,data2;
CE=0;
SCLK=0;
CE=1;
for(i=8;i>0;i--)
{
SCLK=0;
temp=addr;
DIO=(bit)(temp&0x01);
addr>>=1;
SCLK=1;
}
for(i=8;i>0;i--)
{
ACC_7=DIO;
SCLK=1;
ACC>>=1;
SCLK=0;
}
CE=0;
data1=ACC;
data2=data1/16;
data1=data1%16;
data1=data2*10+data1;
return(data1);
}
sbit ACC_7=ACC^7;
求大伙指导下 我是犯了什么问题。。。
写入94只能读出14.
似乎是没有读出 最高位的1.
但是用写入暂停的命令是 可以写入的。
驱动用的是用户资料里的驱动
其实读数据驱动如下
uchar read1302(uchar addr)
{
uchar i,temp,data1,data2;
CE=0;
SCLK=0;
CE=1;
for(i=8;i>0;i--)
{
SCLK=0;
temp=addr;
DIO=(bit)(temp&0x01);
addr>>=1;
SCLK=1;
}
for(i=8;i>0;i--)
{
ACC_7=DIO;
SCLK=1;
ACC>>=1;
SCLK=0;
}
CE=0;
data1=ACC;
data2=data1/16;
data1=data1%16;
data1=data2*10+data1;
return(data1);
}
sbit ACC_7=ACC^7;
求大伙指导下 我是犯了什么问题。。。