📄 1302.c
字号:
/////////////////////////////////////////////////////////////////////////////////////////////////////
//实时时钟模块 时钟芯片型号:DS1302 //
/////////////////////////////////////////////////////////////////////////////////////////////////////
#include "config.h" //
#define DELAY 50 //
/////////////////////////////////////////////////////////////////////////////////////////////////////
//延时 //
/////////////////////////////////////////////////////////////////////////////////////////////////////
void RTDelay(uint8 uByte) //
{for(;uByte>0;)uByte--; //
} //
/////////////////////////////////////////////////////////////////////////////////////////////////////
//从DS1302读数据 //
/////////////////////////////////////////////////////////////////////////////////////////////////////
unsigned char Read13(unsigned char ad) //
{unsigned char i,da; //
//
IO1CLR=1<<21; //clear p1.21 //CLK
IO1SET=1<<23; //set p1.23 //CS
IO1DIR=IO1DIR|(1<<22); //set p1.22 output //设置为输出口
da=ad|0x01; //
for(i=0;i<8;i++) //
{if(da&0x01) //
IO1SET=1<<22; //
else //
IO1CLR=1<<22; //
da=da>>1; //
IO1SET=1<<21; //
RTDelay(DELAY); //
IO1CLR=1<<21; //
RTDelay(DELAY); //
} //
da=0; //
IO1DIR=IO1DIR&(~(1<<22)); //设置为输入口
for(i=0;i<8;i++) //
{da=da>>1; //
if(IO1PIN&(1<<22))da=da|0x80; //
IO1SET=1<<21; //
RTDelay(DELAY); //
IO1CLR=1<<21; //
RTDelay(DELAY); //
} //
IO1CLR=1<<23; //
return da; //
} //
/////////////////////////////////////////////////////////////////////////////////////////////////////
//向DS1302写数据 //
/////////////////////////////////////////////////////////////////////////////////////////////////////
void Write13(unsigned char ad,unsigned char da) //
{unsigned char i,temp; //
IO1CLR=1<<21; //CLK
IO1SET=1<<23; //CS
IO1DIR=IO1DIR|(1<<22); //设置为输出口
temp=ad; //
for(i=0;i<8;i++) //
{if(temp&0x01) //
IO1SET=1<<22; //
else //
IO1CLR=1<<22; //
temp=temp>>1; //
RTDelay(DELAY); //
IO1SET=1<<21; //
RTDelay(DELAY); //
IO1CLR=1<<21; //
} //
temp=da; //
for(i=0;i<8;i++) //
{if(temp&0x01) //
IO1SET=1<<22; //
else //
IO1CLR=1<<22; //
temp=temp>>1; //
IO1SET=1<<21; //
RTDelay(DELAY); //
IO1CLR=1<<21; //
RTDelay(DELAY); //
} //
IO1CLR=1<<23; //
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -