/******************************************************************************* * 函数名 : BCD2HEX * 描述 : BCD转为HEX * 参数 : -bcd_data:传入BCD格式的数据 * 返回值 : 十六进制数 *******************************************************************************/ unsigned char BCD2HEX(unsigned char bcd_data) { unsigned char temp; temp=(bcd_data>>4)*10+bcd_data&0x0f; return temp; } /******************************************************************************* * 函数名 : HEX2BCD * 描述 : HEX转为BCD * 参数 : -hex_data:传入十六进制格式的数据 * 返回值 : BCD码 *******************************************************************************/ unsigned char HEX2BCD(unsigned char hex_data) { unsigned char temp; temp=((hex_data/10)<<4) + (hex_data%10); return temp; } /******************************************************************************* * 函数名 : Reset_Time * 描述 : 设置出厂时间 * 参数 : 无 * 返回值 : 无 *******************************************************************************/ void Reset_Time(void) { //R8025T_WriteOneByte(0x07, 0x00);//不使用 //R8025T_WriteOneByte(0x0E, 0x20);//设置24小时制,可能只有R8025SA才行。 //写入出厂时间 00:00:00 R8025T_WriteOneByte(0, HEX2BCD(33) ); //写入R8025T 秒 R8025T_WriteOneByte(1, HEX2BCD(35) ); //写入R8025T 分 R8025T_WriteOneByte(2, HEX2BCD(20) ); //写入R8025T 时 } void Get_Time(void) { BUF[0] = R8025T_ReadOneByte(0); BUF[1] = R8025T_ReadOneByte(1); BUF[2] = R8025T_ReadOneByte(2); // DateTime[0] = BCD2HEX(BUF[0]);//读分 DateTime[1] = BCD2HEX(BUF[1]);//读秒 DateTime[2] = BCD2HEX(BUF[2]);//读时 //说明:DateTime[2],BUF[0],DateTime[1]分别存放十六进制的时、分、秒 // 为什么BUF[0]存放分的值,而不是DateTime[0],原因不明。 } |