📄 ht1380.c
字号:
//HT1380
sbit scl_ht=0x90;
sbit sda_ht=0x91;
sbit rst_ht=0x92;
sfr p0=0x80;
sfr p2=0xa0;
unsigned char year,month,day,hour,minute,second;
//-------------------d_time------------------
void d_time()
{
unsigned ii;
for(ii=0;ii<=4;ii++);
}
//------------- sent_char to ht1380----------
void sent_char(unsigned char sentchar)
{
unsigned char ii;
for(ii=0;ii<8;ii++)
{
scl_ht=0;
if ((sentchar & 1)!=0) sda_ht=1;
else sda_ht=0;
scl_ht=1;
sentchar=sentchar>>1;
}
}
//------------- get_char from ht1380---------
unsigned char get_char()
{
unsigned char getchar,ii,temp;
getchar=0;temp=1;
for(ii=0;ii<8;ii++)
{
scl_ht=0;
sda_ht=1;
if(sda_ht==1) getchar=getchar |temp;
scl_ht=1;
temp=temp<<1;
}
return(getchar);
}
//--------------set_trick-------------------
/*void set_trick()
{
rst_ht=1;
d_time();
sent_char(0x90); //10010000b
sent_char(0xa5); //10100101b
scl_ht=0;
d_time();
rst_ht=0;
d_time();
}*/
//-------------set_wp_off------------------
void set_wp_off()
{
rst_ht=1;
d_time();
sent_char(0x8e); //10001110b
sent_char(0); //00000000b
scl_ht=0;
d_time();
rst_ht=0;
d_time();
}
//-----------set_wp_on--------------------
void set_wp_on()
{
rst_ht=1;
d_time();
sent_char(0x8e); //10001110b
sent_char(0x80); //10000000b
scl_ht=0;
d_time();
rst_ht=0;
d_time();
}
//----------read_time --------------------
void read_time()
{
unsigned char temp;
rst_ht=1;
d_time();
sent_char(0xbf); //10111111b
second=get_char();
minute=get_char();
hour= get_char();
day= get_char();
month= get_char();
temp= get_char(); /* week day */
year= get_char();
temp= get_char();
scl_ht=0;
d_time();
rst_ht=0;
d_time();
}
//--------------set time-----------------
void set_time()
{
set_wp_off();
rst_ht=1;
d_time();
second=second & 0x7f;
sent_char(0xbe); //10111110b
sent_char(second);
sent_char(minute);
sent_char(hour);
sent_char(day);
sent_char(month);
sent_char(1); /* week day */
sent_char(year);
sent_char(0);
scl_ht=0;
d_time();
rst_ht=0;
d_time();
set_wp_on();
}
//-------------read second----------------
/*unsigned char read_sec()
{
unsigned char sec;
rst_ht=1;
d_time();
sent_char(0x81); //10000001b
sec=get_char();
scl_ht=0;
d_time();
rst_ht=0;
d_time();
return(sec);
}
//----------write_second-----------------
void write_second(unsigned char sec)
{
set_wp_off();
rst_ht=1;
d_time();
sent_char(0x80); //10000000b
sent_char(sec);
scl_ht=0;
d_time();
rst_ht=0;
d_time();
set_wp_on();
} */
main()
{
year=05;month=03;day=0x27;hour=0x14;minute=0;second=0;
rst_ht=0;scl_ht=0;
set_time();
while(1)
{
read_time();
//second=read_sec();
p2=1;
p0=second;//%0x10;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -