unsigned char Hex2Ascii(unsigned char HexValue)
{
   switch (HexValue)
   {
    case 0x00: return (HexValue + 0x30); break; // ASCII 0 0x30
    case 0x01: return (HexValue + 0x30); break; // ASCII 1 0x31
    case 0x02: return (HexValue + 0x30); break; // ASCII 2 0x32
    case 0x03: return (HexValue + 0x30); break; // ASCII 3 0x33
    case 0x04: return (HexValue + 0x30); break; // ASCII 4 0x34
    case 0x05: return (HexValue + 0x30); break; // ASCII 5 0x35
    case 0x06: return (HexValue + 0x30); break; // ASCII 6 0x36
    case 0x07: return (HexValue + 0x30); break; // ASCII 7 0x37
    case 0x08: return (HexValue + 0x30); break; // ASCII 8 0x38
    case 0x09: return (HexValue + 0x30); break; // ASCII 9 0x39
    case 0x0A: return (HexValue + 0x37); break; // ASCII A 0x41
    case 0x0B: return (HexValue + 0x37); break; // ASCII B 0x42
    case 0x0C: return (HexValue + 0x37); break; // ASCII C 0x43
    case 0x0D: return (HexValue + 0x37); break; // ASCII D 0x44
    case 0x0E: return (HexValue + 0x37); break; // ASCII E 0x45
    case 0x0F: return (HexValue + 0x37); break; // ASCII F 0x46
//*********************************************
    case 0x10: return (HexValue + 0x21); break; // ASCII 1 0x31
    case 0x20: return (HexValue + 0x12); break; // ASCII 2 0x32
    case 0x30: return (HexValue + 0x03); break; // ASCII 3 0x33
    case 0x40: return (HexValue - 0x0C); break; // ASCII 4 0x34
    case 0x50: return (HexValue - 0x1B); break; // ASCII 5 0x35
    case 0x60: return (HexValue - 0x2A); break; // ASCII 6 0x36
    case 0x70: return (HexValue - 0x39); break; // ASCII 7 0x37
    case 0x80: return (HexValue - 0x48); break; // ASCII 8 0x38
    case 0x90: return (HexValue - 0x57); break; // ASCII 9 0x39
    case 0xA0: return (HexValue - 0x5F); break; // ASCII A 0x41
    case 0xB0: return (HexValue - 0x6E); break; // ASCII B 0x42
    case 0xC0: return (HexValue - 0x7D); break; // ASCII C 0x43
    case 0xD0: return (HexValue - 0x8C); break; // ASCII D 0x44
    case 0xE0: return (HexValue - 0x9B); break; // ASCII E 0x45
    case 0xF0: return (HexValue - 0xAA); break; // ASCII F 0x46   
    default: break;
    }

}