?? 1302.c
字號(hào):
#include<pic.h>
#include"1302.h"
//ds1302的初始化函數(shù)
void init_1302(void)
{
DS1302CK_O;
DS1302CE_O;
DS1302CE_0;
DS1302CK_0;
DS1302IO_1;
DS1302IO_I;
}
//DS1302的讀函數(shù)
unsigned char Read_DS1302(unsigned char Address)
{
unsigned char i;
unsigned int temp;
DS1302CE_0;
DS1302CK_0;
DS1302IO_O;
asm("nop");
asm("nop");
DS1302CE_1;
asm("nop");
asm("nop");
for(i=8;i>0;i--)
{
if(Address & 0x01)DS1302IO_1;
else DS1302IO_0;//DS1302高低電平都有效
asm("nop");
asm("nop");
DS1302CK_1;
asm("nop");
asm("nop");
DS1302CK_0;
asm("nop");
asm("nop");
Address>>=1;
}
DS1302IO_1;
asm("nop");
asm("nop");
DS1302IO_I;
asm("nop");
asm("nop");
temp=0;
if(DS1302IO_D)temp|=0x8000;
temp>>=1;
for(i=7;i>0;i--)//為什么是7,而不是8
{
asm("nop");
asm("nop");
DS1302CK_1;
asm("nop");
asm("nop");
DS1302CK_0;
asm("nop");
asm("nop");
if(DS1302IO_D)temp|=0x8000;
temp>>=1;
}
DS1302CE_0;
temp<<=1;
return(temp/256);
}
//DS1302的寫函數(shù)
void Write_DS1302(unsigned char Address,unsigned char Data)
{
unsigned char i;
DS1302CE_0;
DS1302CK_0;
DS1302IO_0;
asm("nop");
asm("nop");
DS1302CE_1;
asm("nop");
asm("nop");
for(i=8;i>0;i--)//一個(gè)字符八個(gè)字節(jié),故要執(zhí)行八次
{
if(Address & 0x01)DS1302IO_1;
else DS1302IO_0;
asm("nop");
asm("nop");
DS1302CK_1;
asm("nop");
asm("nop");
DS1302CK_0;
asm("nop");
asm("nop");
Address>>=1;
}
for(i=8;i>0;i--)
{
if(Address & 0x01)DS1302IO_1;
else DS1302IO_0;
asm("nop");
asm("nop");
DS1302CK_1;
asm("nop");
asm("nop");
DS1302CK_0;
asm("nop");
asm("nop");
Data>>=1;
}
DS1302CE_0;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -