📄 ht1380.h
字号:
sbit T_CLK = P3^2;
sbit T_IO = P3^3;
sbit T_RST = P3^5;
sbit ACC_0 = ACC^0;
sbit ACC_7 = ACC^7;
void HT1380_Write(BYTE ucDa)
{
BYTE i;
ACC = ucDa;
for(i=8; i>0; i--){
T_IO = ACC_0;
T_CLK = 1;
T_CLK = 0;
ACC = ACC >> 1;
}
}
BYTE HT1380_Read(void)
{
BYTE i;
for(i=8; i>0; i--){
ACC = ACC >>1;
ACC_7 = T_IO;
T_CLK = 1;
T_CLK = 0;
}
return(ACC);
}
void HT1380_WriteByte(BYTE ucAddr, BYTE ucDa)
{
T_RST = 0;
T_CLK = 0;
T_RST = 1;
HT1380_Write(ucAddr);
HT1380_Write(ucDa);
T_CLK = 1;
T_RST = 0;
}
// 时间格式(BCD): 秒 分 时 日 月 星期 年
void HT1380_WriteTime(void)
{
BYTE i;
HT1380_WriteByte(0x8e, 0x00); // Write Enable
T_RST = 0;
T_CLK = 0;
T_RST = 1;
HT1380_Write(0xbe); // Clock Burst Write
Time_buf[7]=0;
for(i=0; i<8; i++){
HT1380_Write(Time_buf[i]);
}
T_CLK = 1;
T_RST = 0;
HT1380_WriteByte(0x8e, 0x80); // Write Disable
}
void HT1380_ReadTime(void)
{
BYTE i;
T_RST = 0;
T_CLK = 0;
T_RST = 1;
HT1380_Write(0xbf); // Clock Burst Read
for(i=0; i<8; i++){
Time_buf[i]=HT1380_Read();
}
T_CLK = 1;
T_RST = 0;
if(Time_buf[0]&0x80){ // Error
Time_buf[0]&=0x7F;
Time_buf[7]=0;
HT1380_WriteTime();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -