ds1302问题求助!!感激不尽!!!

2019-07-16 02:05发布


接触51单片机有一个月左右时间了,准备做一个电子钟,用了ds1302芯片,程序写好了,在proteus上模拟没有问题,但用实物搭建在面包板上就没法正常读取时间。找了很长时间没找到原因。


这是在proteus上模拟时的画面
QQ截图20130314145713.png
在面包板上调试时却是这个样子
IMG_20130314_143600_0.jpg
1302的局部接线图

IMG_20130314_143622_0.jpg
这是1302部分的程序
void DS1302Write(uchar addr,dat)     //地址、数据发送子程序   
{
uchar i,temp;
CE=0;                       //CE引脚为低,数据传送中止
SCLK=0;                     //清零时钟总线
CE=1;                       //CE引脚为高,逻辑控制有效
for(i=8;i>0;i--)   //发送地址
{   
  SCLK=0;
  temp=addr;
  DIO=(bit)(temp&0x01);        
  addr>>=1;               
  SCLK=1;
}
for (i=8;i>0;i--)   //发送数据
{   
  SCLK=0;
  temp=dat;
  DIO=(bit)(temp&0x01);         
  dat>>=1;                  
  SCLK=1;
}
CE=0;        
}
uchar DS1302Read(uchar addr)       //数据读取子程序
{
uchar i,temp;
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;
return(ACC);
}
就这些了,还要什么我可以给你发过去。。。求学长学姐帮帮忙。先去上课了,回来看。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。