📄 1302.h
字号:
#define uchar unsigned char
sbit clk=p3^4;
sbit io=p3^3;
sbit ret=p3^5;
sbit ACC_0=ACC^0;
sbit ACC_1=ACC^1;
sbit ACC_2=ACC^2;
sbit ACC_3=ACC^3;
sbit ACC_4=ACC^4;
sbit ACC_5=ACC^5;
sbit ACC_6=ACC^6;
sbit ACC_7=ACC^7;
void Read(void) ;
void Write();
uchar readram_b(uchar address); //从RAM中读出一 字
uchar readrtc_b(uchar address);
uchar writeram_b(uchar address,uchar number); //写RAM
uchar writertc_b (uchar address,uchar number); //写1302
void readram(uchar data*buffer,uchar size);
void readrtc(uchar data*buffer,uchar size); //读多个字节
void writeram (uchar data*buffer,uchar size);
void writertc (uchar data*buffer,uchar size); //写多个字节
uchar readsec();
uchar readmin();
uchar readhr();
uchar readday();
uchar readweek();
uchar readmonth();
uchar readyear();
void writesec(uchar number);
void writemin(uchar mumber);
void writehr(uchar mumber);
void writeday(uchar mumber);
void writeweek(uchar mumber);
void writemonth(uchar mumber);
void writeyear(uchar mumber);
void enablewp() ;
void disadlewp();
void write() //写1302 操作
{
ACC=address;
ACC<<=1;
ACC|=0x80;
dat=ACC_0;
clk=1;
clk=0;
dat=ACC_1 ;
clk=1;clk=0;
dat=ACC_2 ;
clk=1;clk=0;
dat=ACC_3 ;
clk=1;clk=0;
dat=ACC_4 ;
clk=1;clk=0;
dat=ACC_5 ;
clk=1;clk=0;
dat=ACC_6 ;
clk=1;clk=0;
dat=ACC_7 ;
clk=1;clk=0;
}
void read() //读1302
{
ACC_0=dat;
clk=1; //上升沿发送
clk=0; //清零
ACC_1=dat;
clk=1;clk=0;
ACC_2=dat;
clk=1;clk=0;
ACC_3=dat;
clk=1;clk=0;
ACC_4=dat;
clk=1;clk=0;
ACC_5=dat;
clk=1;clk=0;
ACC_6=dat;
clk=1;clk=0;
ACC_7=dat;
clk=1;clk=0;
}
uchar readram_b(uchar address) //读ram
{
rst=0;
clk=0;
rst=1;
ACC=address;
write();
dat=1;
read();
return ACC;
}
uchar readrtc_b(uchar address)//读1302
{
rst=0;
clk=0;
rst=1;
ACC=address;
write();
dat=1;
read();
return ACC;
}
uchar writeram_b(uchar address,uchar number)//写RAM一个字节
{
clk=0;
rst=0;
rst=1;
ACC=address;
write();
ACC=number;
write();
rst=0;
clk=1;
}
uchar writertc_b(uchar address,uchar number)//写入1302
{
clk=0;
rst=0;
rst=1;
ACC=address;
write();
ACC=number;
write();
rst=0;
clk=1;
}
void readram(uchar data *buffer,uchar size)//从RAM 中读多个字节
{
register uchar a,b;
clk=0;
rst=0;
rst=1;
ACC=0xff; //命令字为FFH
write();
dat=1;
for (a=0;a<size;a++)
{
ACC_0=dat;
clk=1;clk=0;ACC_1=dat;
clk=1;clk=0;ACC_2=dat;
clk=1;clk=0;ACC_3=dat;
clk=1;clk=0;ACC_4=dat;
clk=1;clk=0;ACC_5=dat;
clk=1;clk=0;ACC_6=dat;
clk=1;clk=0;ACC_7=dat;
b=ACC;
*(buffer+a)=b;
clk=1;
clk=0;
}
rst=0;
clk=1;
}
void readrtc(uchar data *buffer,uchar size)//从1302中读多个字节
{
register uchar a,b;
clk=0;
rst=0;
rst=1;
ACC=0xbf; //命令字为BFH
write();
dat=1;
for (a=0;a<size;a++)
{
ACC_0=dat;
clk=1;clk=0;ACC_1=dat;
clk=1;clk=0;ACC_2=dat;
clk=1;clk=0;ACC_3=dat;
clk=1;clk=0;ACC_4=dat;
clk=1;clk=0;ACC_5=dat;
clk=1;clk=0;ACC_6=dat;
clk=1;clk=0;ACC_7=dat;
b=ACC;
*(buffer+a)=b;
clk=1;
clk=0;
}
rst=0;
clk=1;
}
void writeram(uchar data *buffer,uchar size)//向RAM中写多个字节
{
register uchar a,b;
clk=0;
rst=0;
rst=1;
ACC=0xfe; //命令字为FEH
write();
for (a=0;a<size;a++)
{
ACC=*(buffer+a);
write() //写数据
}
rst=0;
rst=1;
}
void writertc(uchar data *buffer,uchar size)//向1302中写多个字节
{
register uchar a,b;
clk=0;
rst=0;
rst=1;
ACC=0xbe; //命令字为BEH
write();
for (a=0;a<size;a++)
{
ACC=*(buffer+a);
write() //写数据
}
rst=0;
rst=1;
}
uchar readsec()//从1302中读秒字节
{
return readrtc_b(0x81);
}
uchar readmin()//从1302中读分字节
{
return readrtc_b(0x83);
}
uchar readhr()//从1302中读小时字节
{
return readrtc_b(0x85);
}
uchar readday()//从1302中读日字节
{
return readrtc_b(0x87);
}
uchar readmonth()//从1302中读月字节
{
return readrtc_b(0x89);
}
uchar readweek()//从1302中读星期字节
{
return readrtc_b(0x8b);
}
uchar readyear()//从1302中读年字节
{
return readrtc_b(0x8d);
}
void writesec(uchar number) //向1302中写入秒字节
{writertc_b(0x80,number);}
void writesec(uchar number) //向1302中写入分字节
{writertc_b(0x82,number);}
void writesec(uchar number) //向1302中写入时字节
{writertc_b(0x84,number);}
void writesec(uchar number) //向1302中写入日字节
{writertc_b(0x86,number);}
void writesec(uchar number) //向1302中写入月字节
{writertc_b(0x88,number);}
void writesec(uchar number) //向1302中写入星期字节
{writertc_b(0x8a,number);}
void writesec(uchar number) //向1302中写入年字节
{writertc_b(0x8c,number);}
void disablewp()//禁止写保护
{writertc_b(0x8e,0);}
void enablewp()//允许写保护
{writertc_b(0x8e,0x80);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -