时钟芯片DS12C887驱动程序

/************************************************************
实验名称:时钟芯片DS12C887驱动程序

晶振:内部 8M
接线方法:
1.PD口接DS12C887数据I/O口
2.PA口接DS12C887控制口

使用说明:
本程序能够对DS12C887进行读写操作

**************************************************************/
#include
#include
#define uchar unsigned char
#define CS_H PORTA|=BIT(PA5)
#define CS_L PORTA&=~BIT(PA5)
#define AS_H PORTA|=BIT(PA4)
#define AS_L PORTA&=~BIT(PA4)
#define R_H PORTA|=BIT(PA3)
#define W_L PORTA&=~BIT(PA3)
#define DS_H PORTA|=BIT(PA2)
#define DS_L PORTA&=~BIT(PA2)
void delay(int k) //延时
{
int i;
for(i=0;i ;
}
void init_ds12887() //初始化DS12C887
{
DDRA=0xff; //控制口
DDRD=0xff; //数据口
delay(10);
R_H ;
delay(10);
DS_H;
delay(10);
DS_L;
delay(10);
AS_L;
delay(10);
AS_H;
}
void write_ds12887(uchar addr,uchar data)//向DS12C887写入数据
{
init_ds12887();
PORTD=addr;
CS_L;
delay(10);
AS_L;
delay(10);
W_L ;
delay(10);
DS_H;
PORTD=data;
delay(10);
DS_L;
delay(10);
AS_H;
delay(10);
CS_H;
}
uchar read_ds12887(uchar addr)//从DS12C887读出数据
{
uchar data;
init_ds12887();
CS_L;
delay(10);
PORTD=addr;
AS_L;
delay(10);
R_H ;
PORTD=0x00;
DDRD=0x00;
delay(10);
DS_H;
delay(10);
data=http://www.dg8.com.cn/tool/PIND;
return data;
DS_L;
delay(10);
AS_H;
delay(10);
CS_H;
}
【时钟芯片DS12C887驱动程序】


    推荐阅读