微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > ds1302问题求助!感激不尽!

ds1302问题求助!感激不尽!

时间:10-02 整理:3721RD 点击:

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

这是在proteus上模拟时的画面


在面包板上调试时却是这个样子


1302的局部接线图


这是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);
}
就这些了,还要什么我可以给你发过去。求学长学姐帮帮忙。先去上课了,回来看。

怎么连看的人都这么少啊。

求助求助啊

bbbbbbbbb

http://bbs.elecfans.com/jishu_295866_1_1.html

我做的实时时钟DS18B20,电源断电为什么不能保持呢

问题找到了,原来是我用的1302坏掉了,真是的。

可能是重新上电的时候单片机又给1302重新初始化了一次,你得想办法让单片机只能给1302初始化一次。

还有就是单片机与1302的第6个脚相连的io口要加上拉电阻。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top