📄 driver1302.c
字号:
#include "driver1302.h"
#include "stc5410.h"
void delay()
{
uchar i=4;
while(i--);
}
void init1302()
{
Sclk=0;delay();
Rst=0;
writecmd(0x8e);//open write
writecmd(0x00);
Rst=0;
delay();
Sclk=0;
delay();
writecmd(0x90);//trickle charger,R1=2k
writecmd(0xa5);//select R1=2k;one DIODE
Rst=0;
delay();
Sclk=0;
delay();
writecmd(0x80);//start real time clock
writecmd(0x00);
Rst=0;
delay();
Sclk=0;
delay();
}
//not finished
uchar gettime(uchar mode)
{
uchar i=8;
uchar tmp;
uchar tmp1;
tmp=mode<<1;
tmp=0x81|tmp;
Sclk=0;
delay();
Rst=1;
delay();
writecmd(tmp);//read address
i=8;
while(i--)
{
tmp=tmp>>1;
Sclk=0;
delay();
tmp1=0;
tmp1=Io;
delay();
tmp1=tmp1<<7;
tmp=tmp|tmp1;
Sclk=1;
delay();
}
Rst=0;
delay();
Sclk=0;
delay();
return tmp;
}
void writetime(uchar hms,uchar mode)
//modee=5,4,3,2,1,0::year,month,d,h,minute,second
//write hour,minute,second to 1302
{
uchar tmp;
mode=mode<<1;
tmp=0x80|mode;
Sclk=0;
delay();
Rst=1;
delay();
writecmd(tmp);//address
writecmd(hms); //data
Rst=0;
delay();
Sclk=0;
delay();
}
//1302 cmd
void writecmd(uchar cmd) //write cmd,need initialize the signal
{
uchar i=8;
bit tmp;
while(i--)
{
Sclk=0;
delay();
tmp=cmd&0x01;
Io=tmp;
delay();
Sclk=1;
cmd=cmd>>1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -