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

📄 std_def.h

📁 西门子PPI协议源码
💻 H
字号:
//////////////////////////////////////////////////////////////////////////
//**std_def.h   这儿定义了通用的宏和数据类型的宏定义。
#ifndef _sta_def_h
#define _sta_def_h

//**这个宏定义了MCU的类型.应该在main函数所在的.c文件中定义。
//** #define  MCU_TYPE_KEIL_C51   51系列单片机
//** #define  MCU_TYPE_ICC_AVR   avr系列单片机

//**数据类型定义
#ifndef   TRUE
#define   TRUE     1
#endif

#ifndef   FALSE
#define   FALSE    0
#endif

#ifndef   uchar
#define   uchar          unsigned char
#endif

#ifndef   UCHAR          
#define   UCHAR          unsigned char
#endif

#ifndef   uint          
#define   uint           unsigned int
#endif

#ifndef   UINT         
#define   UINT           unsigned int
#endif

#ifdef   MCU_TYPE_ICC_AVR    //**如果是avr系列单片机,51系列定义了bit变量。
#ifndef  bit
#define  bit unsigned char
#endif
#endif

//*********************下面是和变量的存储类型相关的宏定义。51和avr不同。
#ifdef MCU_TYPE_ICC_AVR     //**如果是avr系列单片机

#ifndef UCHAR_CODE         //**表示数据保存在程序存储器中
#define UCHAR_CODE  const unsigned char
#endif

#ifndef uchar_code         //**表示数据保存在程序存储器中
#define uchar_code  const unsigned char
#endif

#ifndef UINT_CODE         //**表示数据保存在程序存储器中
#define UINT_CODE   const unsigned  int
#endif

#ifndef uint_code         //**表示数据保存在程序存储器中
#define uint_code   const unsigned  int
#endif

#ifndef UCHAR_IDATA       //**只是51中定义
#define UCHAR_IDATA  unsigned char
#endif             

#ifndef uchar_idata       //**只是51中定义
#define uchar_idata  unsigned char
#endif  

#ifndef UCHAR_XDATA       //**只是51中定义
#define UCHAR_XDATA  unsigned char
#endif

#ifndef uchar_xdata       //**只是51中定义
#define uchar_xdata  unsigned char
#endif

#ifndef UCHAR_PDATA       //**只是51中定义
#define UCHAR_PDATA  unsigned char
#endif

#ifndef uchar_pdata      //**只是51中定义
#define uchar_pdata  unsigned char
#endif

#ifndef UINT_IDATA       //** 只是51中定义
#define UINT_IDATA   unsigned int 
#endif

#ifndef uint_idata       //** 只是51中定义
#define uint_idata   unsigned int 
#endif

#ifndef UINT_XDATA
#define UINT_XDATA  unsigned int
#endif

#ifndef uint_xdata
#define uint_xdata  unsigned int
#endif

#ifndef UINT_PDATA
#define UINT_PDATA  unsigned int
#endif

#ifndef uint_pdata
#define uint_pdata  unsigned int
#endif

#endif

//********
#ifdef MCU_TYPE_KEIL_C51   //**如果是51系列单片机

#ifndef UCHAR_CODE       
#define UCHAR_CODE  unsigned char code
#endif

#ifndef uchar_code       
#define uchar_code  unsigned char code
#endif

#ifndef UINT_CODE         //**表示数据保存在程序存储器中
#define UINT_CODE   unsigned  int code
#endif

#ifndef UINT_CODE        //**表示数据保存在程序存储器中
#define UINT_CODE   unsigned  int code
#endif

#ifndef uint_code         //**表示数据保存在程序存储器中
#define uint_code   unsigned  int code
#endif

#ifndef UCHAR_IDATA       //**51中idata方式数据存储。间接寻址,在内部数据存储器中
#define UCHAR_IDATA  unsigned char idata
#endif 

#ifndef uchar_idata       //**51中idata方式数据存储。间接寻址,在内部数据存储器中
#define uchar_idata  unsigned char idata
#endif 

#ifndef UCHAR_XDATA       //**51中数据放在外部存储器中。
#define UCHAR_XDATA  unsigned char xdata
#endif

#ifndef uchar_xdata       //**51中数据放在外部存储器中。
#define uchar_xdata  unsigned char xdata
#endif

#ifndef UCHAR_PDATA       //**51中数据放在外部存储器中,但在最低部.
#define UCHAR_PDATA  unsigned char pdata
#endif

#ifndef uchar_pdata       //**51中数据放在外部存储器中,但在最低部.
#define uchar_pdata  unsigned char pdata
#endif
  
#endif

//********************** macro function define
#define   LO_UINT(ui_digit)               (UCHAR)((ui_digit)& 0x00ff)        //得到一个16位数字的低8位
#define   HI_UINT(ui_digit)               (UCHAR)((ui_digit) >> 8)           //得到一个16位数字的高8位    
#define   LO_UCHAR(uc_digit)              (UCHAR)((uc_digit)&0x0f)           //得到一个8位数的低4位
#define   HI_UCHAR(uc_digit)              (UCHAR)((uc_digit)>>4)             //得到一个8位数的高4位
#define   MAKE_UINT(uchHi,uchLo)          (((uchHi) << 8) | (uchLo))		 //将两个8位合成一个16位数

#define   DEC_TO_HEX(uc_dec)              ((uc_dec)+ ((uc_dec) > 9?55:48))    //将十进制转为16进制
#define   LO_UCHAR_TO_HEX(uc_digit)       ( DEC_TO_HEX(LO_UCHAR((uc_digit)))) //得到一个8位数的低四位,并转换为16进制的字符
#define   HI_UCHAR_TO_HEX(uc_digit)       ( DEC_TO_HEX(HI_UCHAR((uc_digit)))) //得到一个8位数的高四位,并转换为16进制的字符

#define   HEX_TO_DEC(uc_hex)              ((uc_hex) - ((uc_hex) >= 65?55:48)) //16进制字符转为10进制数
#define   MAKE_HEX_TO_DEC(hi_hex,lo_hex)  (UCHAR)(((HEX_TO_DEC((hi_hex)))<<4)|(HEX_TO_DEC((lo_hex)))) //将两个十六进制字符合成为8位数


#endif    //** end (#ifndef _sta_def_h )   

⌨️ 快捷键说明

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