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

📄 hexasc.c

📁 用于C51上的modbus协议
💻 C
字号:
/*-------------------------------------------------------------------------------------------*
 *  Hex码与Ascii码的相互转换                                                                 *
 *-------------------------------------------------------------------------------------------*/
HexAsc HexAscPool;                                                    //暂存Hex与Ascii的变量

/*-------------------------------------------------------------------------------------------
 *函数原型:  void Hex2AscTrans(void)                      		                            *
 *参数说明:  无                                                                             *                                     
 *功能:      用于把HexAscPool.HexCode中的8位字节转化为两个Ascii码                           *
 *           高位放入HexAscPool.AscCodeHi                                                   *
 *           低位放入HexAscPool.AscCodeLow                                                  *
 *说明:		 用于Hex—>Ascii的转换                                                          *
 -------------------------------------------------------------------------------------------*/
uchar code H2ATab[16]={
    0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,               //0~9
    0x41,0x42,0x43,0x44,0x45,0x46                                    //A~F
};

void Hex2AscTrans(void)  {
    HexAscPool.AscCodeLow=H2ATab[(HexAscPool.HexCode)&(0x0F)];
    HexAscPool.AscCodeHi=H2ATab[((HexAscPool.HexCode)&(0xF0))>>4];
}  

/*-------------------------------------------------------------------------------------------
 *函数原型:  void Asc2HexTrans(void)                      		                            *
 *参数说明:  无                                                                             *                                     
 *功能:      用于把HexAscPool.AscCodeHi与HexAscPool.AscCodeLow合并成一个8位Hex码            *
 *           结果放入HexAscPoo.HexCode                                                      *
 *说明:		 用于Ascii—>Hex的转换                                                          *
 -------------------------------------------------------------------------------------------*/
uchar code A2HTab[]={
    0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,               //0~9
    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,                              //未用
    0x0A,0x0B,0x0C,0x0D,0x0E,0x0f                                    //A~F
};

void Asc2HexTrans(void)  {
    HexAscPool.HexCode=(A2HTab[HexAscPool.AscCodeHi-0x30])<<4;
    HexAscPool.HexCode=HexAscPool.HexCode|(A2HTab[HexAscPool.AscCodeLow-0x30]);    
}

⌨️ 快捷键说明

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