⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1380.h

📁 时钟芯片H1380控制程序
💻 H
字号:
#define  aa			((uchar volatile idata*)0xf0)


sbit	ACC_0	= ACC^0;
void t1380_write(uchar ucDa)
{
	uchar i;
	ACC = ucDa;
	for(i=8; i>0; i--){
		t_io = ACC_0;
		t_sclk = 1;
		t_sclk = 0;
		ACC = ACC >> 1;
	}
}

sbit	ACC_7	= ACC^7;
uchar t1380_read(void)
{
	uchar i;
	for(i=8; i>0; i--)
	{
		ACC = ACC >>1;
		ACC_7 = t_io;
		t_sclk = 1;
		t_sclk = 0;
	}
	t_sclk = 1;
	t_rst=0;
	return(ACC);
}

void h1380_wrtime(void)
{
	uchar i,j=0x80;;
	t_rst = 0;
	t_sclk = 0;
	t_rst = 1;
	t1380_write(0x8e);
	t1380_write(0x00);
	t_rst = 0;
	t_rst = 1;
	for(i=0;i<7;i++)
	{
		t1380_write(j);
		switch (i)
		{
		case 0:
			{t1380_write(0x00);break;}
		case 1:
			{t1380_write(0x00);break;}
		case 2:
			{t1380_write(0x00);break;}
		case 3:
			{t1380_write(0x01);break;}
		case 4:
			{t1380_write(0x01);break;}
		case 5:
			{t1380_write(0x00);break;}
		case 6:
			{t1380_write(0x06);break;}
		}
	t_rst=0;
	t_rst=1;
	j=j+2;	
	}
}

void h_wrtime(void)
{
	uchar i,j=0x80;;
	t_rst = 0;
	t_sclk = 0;
	t_rst = 1;
	t1380_write(0x8e);
	t1380_write(0x00);
	t_rst = 0;
	t_rst = 1;
	for(i=0;i<7;i++)
	{
		t1380_write(j);
		switch (i)
		{
			case 0:
				{t1380_write(bitime[0]);break;}
			case 1:
				{t1380_write(bitime[1]);break;}
			case 2:
				{t1380_write(bitime[2]);break;}
			case 3:
				{t1380_write(bitime[3]);break;}
			case 4:
				{t1380_write(bitime[4]);break;}
			case 5:
				{t1380_write(bitime[5]);break;}
			case 6:
				{t1380_write(bitime[6]);break;}
		}
	t_rst=0;
	t_rst=1;
	j=j+2;	
	}
}
void readtime(void)
{
	uchar i,p=0,j=0x81;
	for(i=0; i<7; i++)
	{
		t1380_write(j);
		time[i]=t1380_read();
		t_rst=0;
		t_rst=1;
		j=j+2;
	}
	if(time[0]&0x80)//error
	{			
		h1380_wrtime();
	}
	for(i=0;i<7;i++)
	{
			xytime[p]=(time[i]&0x0f)%10;
			p++;
			xytime[p]=(time[i]>>4)%10;
			p++;
	 }
	xytime[10]=time[5]%7;
}

void pangduan(void)
{
	uchar vv,i;
	uchar sum_n;
	if((aa[0]==0xa2)&&(aa[1]==0xa2))vv=1;
	if(vv==1)
	{
		for(i=2;i<4;i++)
		{
			sum_n=sum_n+aa[i];
		}
		if(sum_n==aa[4])
		{
			if(sum_n==0x08)
			{
				bitime[6]=aa[5];		//year
				bitime[5]=aa[6];						//week
				bitime[4]=aa[7];		//mon
				bitime[3]=aa[8];		//day
				bitime[2]=aa[9];		//hour
				bitime[1]=aa[10];		//min
				bitime[0]=aa[11];		//sec
				h_wrtime();
				aa[0]=vv=0;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -