DS1302初始化程序哪错了

来源:百度知道 编辑:UC知道 时间:2024/05/28 01:05:49
#include<reg51.h>
sbit DS1302_SCLK = P1^6; //实时时钟时钟线引脚
sbit DS1302_IO = P1^7; //实时时钟数据线引脚
sbit DS1302_RST = P1^5; //实时时钟复位线引脚
sbit ACC0 = ACC^0;
sbit ACC7 = ACC^7;

#define DS1302_SECOND 0x80
#define DS1302_MINUTE 0x82
#define DS1302_HOUR 0x84
#define DS1302_WEEK 0x8A
#define DS1302_DAY 0x86
#define DS1302_MONTH 0x88
#define DS1302_YEAR 0x8C

void WriteDS1302(unsigned char addr,unsigned char dat)
{
unsigned char i;
DS1302_RST=0;
DS1302_SCLK=0;
DS1302_RST=1;
for(i=8;i>0;i--)
{
DS1302_SCLK=0;
ACC=addr;
DS1302_IO=ACC0;
DS1302_SCLK=1;
addr>>=1;
}
for(i=8;i>0;i--)
{
DS1302_SCLK=0;
ACC=dat;
DS1302_IO=ACC0;
DS1302_SCLK=1;
dat>>=1;
}
DS1302_RST=0;
}

unsigned char ReadDS1302(unsigned char addr)

看到好多人在用DS1302,我把我做的DS1302电路以及C语言程序贴出供大家参考

// 程序所用到的头文件
//===================================================================================//
#include <pic.h>
#include <stdlib.h>
#include <pic1687x.h>
#define TrIO_CLDATA TRISC1
#define CLOCK_SCLK RC0 //时钟芯片SCLK脚
#define CLOCK_DATA RC1 //时钟芯片I/O脚
#define CLOCK_RST RC2 //时钟芯片RST脚

//===================================================================================//
// 系统初始化子程序 RC0(SCLK),RC1(I/O),RC2(RST)
//===================================================================================//
void initportb(void)
{
INTCON=0x00;
OPTION=0x08;
TRISC0=0; //设置相应口的输出方式
TRISC1=1;