ht1380.h
来自「这是52单片机串口调试程序」· C头文件 代码 · 共 79 行
H
79 行
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 + =
减小字号Ctrl + -
显示快捷键?