本帖最后由 472666GAQ 于 2009-12-3 13:31 编辑
uchar ds1302_r(uchar ds_addr) //ds1302读函数
{
uchar i,dat,ds_data;
RST=1;
for(i=0;i<7;i++)
{
IO=ds_addr&0x01;
SCLK=1;
SCLK=0;
ds_addr>>=1;
}
IO=ds_addr;
SCLK=1;
IO=1;
SCLK=0;
dat=IO;
dat<<=7;
ds_data|=dat;
ds_data>>=1;
for(i=0;i<7;i++)
{
SCLK=1;
IO=1;
SCLK=0;
dat=IO;
dat<<=7;
ds_data|=dat;
ds_data>>=1;
}
RST=0;
_nop_();
return ds_data ;
}
为什么我这段读程序工作不正常呢 我是按照datasheet写的 段程序还会导致12864显示的不正常比如说只显示读出的秒时间但是在12864上面会显示多个秒的时间比如说在0x80显示秒的时间然后其他的好几个地方都会显示秒的时间只是显示的颜色很浅 这是为啥呀 只要把这个程序屏蔽12864就显示正常了 我用的是51 |