蓝桥杯单片机必备知识-----(10)DS1302时钟
DS1302:
写保护:
ds1302芯片:
ds1302.h添加代码
void ds1302_write();
void ds1302_read();
ds1302.c
#include <reg52.h>
#include <intrins.h>
sbit SCK=P1^7;
sbit SDA=P2^3;
sbit RST = P1^3;
void Write_Ds1302(unsigned char temp)
{
unsigned char i;
for (i=0;i<8;i++)
{
SCK=0;
SDA=temp&0x01;
temp>>=1;
SCK=1;
}
}
void Write_Ds1302_Byte( unsigned char address,unsigned char dat )
{
unsigned char num;
RST=0; _nop_();
SCK=0; _nop_();
RST=1; _nop_();
Write_Ds1302(address);
num=(dat/10<<4)|(dat%10);
Write_Ds1302(num);
RST=0;
}
unsigned char Read_Ds1302_Byte ( unsigned char address )
{
unsigned char dat_low,dat_high;
unsigned char i,temp=0x00;
RST=0; _nop_();
SCK=0; _nop_();
RST=1; _nop_();
Write_Ds1302(address);
for (i=0;i<8;i++)
{
SCK=0;
temp>>=1;
if(SDA)
temp|=0x80;
SCK=1;
}
RST=0; _nop_();
SCK=0; _nop_();
SCK=1