****************************************************************/ void HT1380SetTime(uint8 *pSecDa) { uint8 i; uint8 ucAddr = 0x80; HT1380WriteByteAddr(0x8e,0x00); /* 控制命令,WP=0,写操作 */ for(i = Long_ReadData;i>0;i--) { HT1380WriteByteAddr(ucAddr,*pSecDa); /* 秒 分 时 日 月 星期 年 */ pSecDa++; ucAddr += 2; } HT1380WriteByteAddr(0x8e,0x80); /* 控制命令,WP=1,写保护 */ } /******************************************************************** * * 名称: HT1380ReadTime * 说明: * 功能: 读取HT1381当前时间 * 调用: HT1380ReadByteAddr() * 输入: ucCurtime: 保存当前时间地址。当前时间格式为: 秒 分 时 日 月 星期 年 * 7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B * 返回值: 无 ***********************************************************************/ void HT1380ReadTime(uint8 *ucCurtime) { uint8 i; uint8 ucAddr = 0x81; for (i=0;i { *ucCurtime = HT1380ReadByteAddr(ucAddr);/*格式为: 秒 分 时 日 月 星期 年 */ ucCurtime ++; ucAddr += 2; } } //************************************* // 函数名称:CmdHT1380 // 函数功能:控制1380的数据读、写 // 入口参数:无 // 出口参数:无 // 返 回 值:无 //***************************************/ void Init_TH1380(void) { // uint8 SetTime[3] = {04,04,12} ; // HT1380SetTime(SetTime) ; HT1380WriteByteAddr(0x8e,0x00); /* 控制命令,WP=0,写操作 */ HT1380WriteByteAddr(0x80,HT1380OSC_ENB);//振荡允许 HT1380WriteByteAddr(0x84,MCLOCK24H);//24小时制 HT1380WriteByteAddr(0x8e,0x80); /* 控制命令,WP=1,写保护 */ } //************************************* // 函数名称:ClockSwitchMCU // 函数功能:把时钟芯片的数据转换成显示数据 // 入口参数:时钟芯片内所读的数据 // 出口参数:实际显示的时间数据 // 返 回 值:无 //***************************************/ void ClockSwitchMCU(uint8 *ClockDat,uint8 *McuDat ) { *McuDat = ClockSwitch_TSEC(*ClockDat) ; ClockDat ++ ; McuDat ++ ; *McuDat = ClockSwitch_TMIN(*ClockDat) ; ClockDat ++ ; McuDat ++ ; *McuDat = ClockSwitch_THOR(*ClockDat) ; } //************************************* // 函数名称:MCUSwitchClock // 函数功能:把显示的数据转换成时钟芯片内的可存储数据 // 入口参数:显示的时间数据 // 出口参数:时钟芯片内所存储的数据格式 // 返 回 值:无 //***************************************/ void MCUSwitchClock(uint8 *McuDat,uint8 *ClockDat) { *ClockDat = ClockSwitchB_TSEC(*McuDat) ; ClockDat ++ ; McuDat ++ ; *ClockDat = ClockSwitchB_TMIN(*McuDat) ; ClockDat ++ ; McuDat ++ ; *ClockDat = ClockSwitchB_THOR(*McuDat) ; }
|