DS1302 单片机编程

[复制链接]
2386|4
 楼主| youimiss 发表于 2012-3-27 15:47 | 显示全部楼层 |阅读模式
我用同一函数往1302里写了日历信息,再用另同一函数从里面读数据。为什么读出来的数据月、时、秒是正确的,而日、分是错误的呢?(日、分数据为FFH、FFH)求解,谢谢!
liang7143 发表于 2012-3-27 15:48 | 显示全部楼层
程序问题~~
LZ检查下自己的代码吧
yifeidengdai 发表于 2012-3-28 10:21 | 显示全部楼层
应该是程序问题
phking 发表于 2012-3-29 20:20 | 显示全部楼层
从批量读取吧,比单个字节读取更好。但是写入还是单个写入比批量写入好。----我个人经验。

另外,注意延时,1T的单片机IO操作后插入2个NOP
 楼主| youimiss 发表于 2012-3-31 14:31 | 显示全部楼层
4# phking 插入空操作不就等于延时吗?
DS1302_WriteByte(uchar dat)
{

uchar i;





for(i=0;i<8;i++)
   //传输8位数据

{



SCLK0=0;

delay_Nus(1);

dat>>=1;
//取最低位先传输

SDA=CY;
//通过CY位把数据发送出去

delay_Nus(1);

SCLK0=1;

delay_Nus(1);

}
}
DS1302_ReadByte()
{

uchar i,dat=0;


    for(i=0;i<8;i++)

{

SCLK0=0;

delay_Nus(1);

dat>>=1;

if(SDA==1)

dat|=0x80;

SCLK0=1;

delay_Nus(3);

}

return dat;
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

43

主题

1097

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部