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

📄 isl1208.c

📁 isl1208 program using c for clock
💻 C
字号:
#include "ISL1208.H"
//#include "viic_c51.h"
#include "viic.h"


uchar  ISL1208_Init();
uchar  ISL1208_ReadTime(uchar *time);
uchar  ISL1208_WriteTime(uchar *time);


uchar ISL1208_OpenSound(uchar freq);
uchar ISL1208_CloseSound();



/*
******************************************************************
功能: 初始化允许自动复位,设置允许写时钟,
      去掉报警功能  
操作 REG_STATUS,REG_INTERRUPT,REG_RESERVED,REG_TRIMMING,REG_COMPENSATE     
*******************************************************************
*/
uchar  ISL1208_Init()
{
	idata uchar strTemp[5];

	if(IRcvStr(ADDR_ISL1208,REG_STATUS,strTemp,2)==0)
	{
		return ID_ERR;			
	}
	strTemp[0]|=(RTC_AUTO_RESET|RTC_WRITE_ENABLE);
	strTemp[1]=(strTemp[1]&0x0f);	
	

	if(ISendStr(ADDR_ISL1208,0x07,strTemp,2)==0)
	{
		return ID_ERR;	
	}

	return ID_OK;


}
/*
*******************************************************************
读出结果:cen,year,mon,day,hour min,sec,week  
*******************************************************************
*/

uchar  ISL1208_ReadTime(uchar *time)
{
	idata uchar  strTemp[8];

	if(IRcvStr(ADDR_ISL1208,0x00,strTemp,7)==0)
	{
		
		return ID_ERR;		
	}

	time[0]=0x20;
	time[1]=strTemp[5];//year
	time[2]=strTemp[4];//mon
	time[3]=strTemp[3];//day
	time[4]=(strTemp[2] & MASK_HOUR_24);//h
	time[5]=strTemp[1];//min
	time[6]=strTemp[0];//sec
	time[7]=strTemp[6];//week


	return ID_OK;	

}
/*
*******************************************************************
读出结果:cen,year,mon,day,hour min,sec,week  
*******************************************************************
*/
uchar  ISL1208_WriteTime(uchar *time)
{
	idata uchar  strTemp[8];
	
	strTemp[5]= time[1];//year
	strTemp[4]=	time[2];//mon
	strTemp[3]=	time[3];//day
	strTemp[2]=	(time[4]|HOUR_MODE_24);//h
	strTemp[1]=	time[5];//min
	strTemp[0]=	time[6];//sec
	strTemp[6]=	time[7];//week


	if(ISendStr(ADDR_ISL1208,0x00,strTemp,7)==0)
	{
		return ID_ERR;	
	}
	return ID_OK;	

}

uchar ISL1208_OpenSound(uchar freq)
{
	uchar strTemp[2];

	strTemp[0]=(freq&0x0f);	

	if(ISendStr(ADDR_ISL1208,0x08,strTemp,1)==0)
	{
		return ID_ERR;	
	}
	return ID_OK;

}
uchar ISL1208_CloseSound()
{
	uchar strTemp[2];

	strTemp[0]=0x00;
	if(ISendStr(ADDR_ISL1208,0x08,strTemp,1)==0)
	{
		return ID_ERR;	
	}
	return ID_OK;
}

⌨️ 快捷键说明

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