📄 std_def.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 + -