?? ds1302.c
字號(hào):
#include "main.h"
void ds1302_init(void)
{
DS1302_CLK_DIR_OUT;
DS1302_RST_DIR_OUT;
DS1302_IO_DIR_OUT;
}
void ds1302_reset(void)
{
DS1302_CLK_0;
nop();
DS1302_RST_0;
nop();
DS1302_RST_1;
nop();
}
void ds1302_write_byte(unsigned char data)
{
unsigned char i;
for(i=0;i<8;i++)
{
DS1302_CLK_0;
nop();
if(data&0x01)
DS1302_IO_1;
else
DS1302_IO_0;
nop();
DS1302_CLK_1;
nop();
data>>=1;
}
}
unsigned char ds1302_read_byte(void)
{
unsigned char i,data;
data=0;
for (i=0;i<8;i++)
{
DS1302_CLK_0;
nop();
data>>=1;
if (DS1302_IO_IN)
data|=0x80;
nop();
DS1302_CLK_1;
nop();
}
return data;
}
void ds1302_write(unsigned char reg,unsigned char data)
{
DS1302_IO_DIR_OUT;
ds1302_reset();
ds1302_write_byte(reg);
ds1302_write_byte(data);
DS1302_CLK_0;
nop();
DS1302_RST_0;
nop();
}
unsigned char ds1302_read(unsigned char reg)
{
unsigned char data;
DS1302_IO_DIR_OUT;
ds1302_reset();
ds1302_write_byte(reg);
DS1302_IO_DIR_IN;
data=ds1302_read_byte();
DS1302_CLK_0;
nop();
DS1302_RST_0;
nop();
return data;
}
void gettime(unsigned char *nowtime)
{
unsigned char i;
DS1302_IO_DIR_OUT;
ds1302_reset();
ds1302_write_byte(0xbf);
DS1302_IO_DIR_IN;
for(i=0;i<7;i++)
{
nowtime[i]=ds1302_read_byte();
}
DS1302_CLK_0;
nop();
DS1302_RST_0;
nop();
}
void settime(unsigned char *settime)
{
unsigned char i;
ds1302_write(0x8e,0);
ds1302_reset();
ds1302_write_byte(0xbe);
for(i=0;i<7;i++)
{
ds1302_write_byte(settime[i]);
}
ds1302_write_byte(0);
DS1302_CLK_0;
nop();
DS1302_RST_0;
nop();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -