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口要加上拉电阻。