📄 1302模块._c
字号:
#include <iom8515v.h>
#include <macros.h>
#define uchar unsigned char
#define uint unsigned int
#define ds1302_clk PC1
#define ds1302_data PC2
#define ds1302_rst PC3
#define Set_ds1302_clk PORTC |=(1<<ds1302_clk)
#define Set_ds1302_data PORTC |=(1<<ds1302_data)
#define Set_ds1302_rst PORTC |=(1<<ds1302_rst)
#define Clr_ds1302_clk PORTC &=~(1<<ds1302_clk)
#define Clr_ds1302_data PORTC &=~(1<<ds1302_data)
#define Clr_ds1302_rst PORTC &=~(1<<ds1302_rst)
#define read_data PORTC &=~(1<<ds1302_data)
#define uchar unsigned char
#define uint unsigned int
void Delayus(uchar i)
{
while(--i);
}
uchar ReadSec(void)
{
return ReadRTC_Byte(0x81);
}
uchar ReadMin(void)
{
return ReadRTC_Byte(0x83);
}
uchar ReadHour(void)
{
return ReadRTC_Byte(0x85);
}
void WriteSec(uchar number)
{
WriteRTC_Byte(0x80,number);
}
void WriteMin(uchar number)
{
WriteRTC_Byte(0x82,number);
}
void WriteHour(uchar number) //向DS1302中写入分字节
{
WriteRTC_Byte(0x84,number);
}
uint ReadRTC_Byte(uchar address)
{
unsigned int redata;
Clr_ds1302_rst;//ds1302_rst = 0;
Clr_ds1302_clk;//ds1302_clk = 0;
Set_ds1302_rst;//ds1302_rst = 1;
Write(address);
redata=Read(address);
Clr_ds1302_rst;//ds1302_rst = 0;
Set_ds1302_clk;//ds1302_clk = 1;
return read_data;
}
void WriteRTC_Byte(uchar address,uchar number)
{
Clr_ds1302_clk;//ds1302_clk = 0;
Clr_ds1302_rst;// ds1302_rst = 0;
Set_ds1302_rst;//ds1302_rst = 1;
Write(address);
Write(number);
Clr_ds1302_rst;//ds1302_rst = 0;
Set_ds1302_clk;//ds1302_clk = 1;
}
void Write_bit (uchar addr)
{
uchar i=0;
for(i=8;i>0;i--){
if((addr&0x01)==0x01)
Set_ds1302_data;//ds1302_dat = 1;
else
Clr_ds1302_data;//ds1302_dat = 0;
Set_ds1302_clk;//ds1302_clk=1;
Clr_ds1302_clk;//ds1302_clk=0;
addr>>=1;
}
}
uchar Read_bit (uchar addr)
{
uchar i=0,num;
uchar data_r=0;;
Delayus(2);
//ds1302_dat = 1;
for(i=8;i>0;i--){
data_r>>=1;
read_data;
num=PINC&0x04;
if(num == 1)
{
data_r|=0x80;
}
Set_ds1302_clk;//ds1302_clk = 1;
Clr_ds1302_clk;//ds1302_clk = 0;
}
return data_r;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -