/******************************************************************************* * 函數名 : 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],原因不明。 } |