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

📄 define.h

📁 程序概述: 这是个具体产品程序
💻 H
字号:
// --------------------------------------------------------------------------
// Define.h
// --------------------------------------------------------------------------

/*----------------------------------------------------------------------------+
|                                                                             |
|                               Type definition                               |
|                                                                             |
+----------------------------------------------------------------------------*/
#ifndef __DEFINE_H__
#define __DEFINE_H__


/*
一: 常用数据类型
data type  |  length(bit) | length(byte) | data range
bit 				1			...			0,1
signed char			8			1			-128~127
signed int			16			2			-32768~32767
signed long			32			4			-2147483648~2147483647
unsigned char		8			1			0~255
unsigned int		16			2			0~65535
unsigned long		32			4			0~4294967295
float				32			4			+-1.176E-38~+-3.40E+38(6位数字)
double				64			8			+-1.176E-38~+-3.40E+38(10位数字)
一般指针			24			3			储存空间0~65535

二: 常用存储类型
data		直接寻址片内数据存储区,访问速度快(128字节)
bdata		可位寻址片内数据存储区,允许位与字节混和访问(16字节)
idata		间接寻址片内数据存储区,可访问片内全部RAM地址空间(256字节)
pdata		分页寻址片外数据区(256字节)由MOVX@R0或@R1访问
xdata		片外数据存储区(64K),由MOVX@DPTR访问
code		代码存储区(64K),由MOVC@DPTR访问

三: 存储模式及说明
small 		参数及局部变量放入可直接寻址的片内存储类型是DATA,
			因为访问十分方便。另外所有对象,包括栈,都必须潜
			入片内RAM。栈长很关键,因为实际栈长依赖于不同的函
			数嵌套层数

compact		参数及局部变量放入分页片外存储区(最大256字节,默认
			的存储类型是pdata),通过寄存器R0和R1(@R0,R1)间接寻址,栈空
			间位于8051系统内部数据存储中。

large		参数及局部变量直接放入片外数据存储区(最大64k,默认
			存储类型为xdata)使用数据指针DPTR来进行寻址,用此数据
			指针进行访问效率较低,尤其是对两个或多个字节的变量
			这种数据类型的访问机制直接影响代码的长度,另一不方便
			之处在于这种数据指针不能对称操作。

四: Keil51自带的头文件keil51文档中的229页
1:absacc.h	绝对存储器访问宏
	 1:CBYTE,	 2:CWORD,	 3:DBYTE,	 4:DWORD,	 5:FARRAY,	 6:FCARRAY,	 7:FVAR,	 8:FCVAR,
	 9:PBYTE,	10:PWORD,	11:XBYTE,	12:XWORD
	
2:assert.h
	1:assert

3:ctype.h
	 1:isalnum,	 2:isalpha,	 3:iscntrl,	 4:isdigit,	 5:isgraph,	 6:islower,	 7:isprint,	 8:ispunct,
	 9:isspace,	10:isupper,	11:isxdigit,12:toascii,	13:toint,	14:tolower,	15:_tolower,16:toupper,
	17:_toupper
	
4:intrins.h
	1:_chkfloat, 2:_irol_,	 3:_Iror_,	 4:_crol_,	 5:_iror_,	 6:_nop_,	 7:_cror_,	 8:_Irol_,
	9:_testbit_
	
5:math.h
	 1:abs,		 2:exp		 3:modf		 4:acos		 5:fabs		 6:pow		 7:asin		 8:floor
	 9:sin		10:atan		11:fmod		12sinh		13:atan2	14:fprestore15:sqrt		16:cabs
	17:fpsave	18:tan		19:ceil		20:labs		21:tanh		22:cos		23:log		24:cosh
	25:log10

6:setjmp.h
	 1:jmp_buf	 2:setjmp	 3:longjmp

7:stdarg.h
	 1:va_arg	 2:va_end	 3:va_start	 4:va_list

8:stddef.h
	 1:offsetof		

9:stdio.h
	 1:getchar	 2:putchar	 3:sscanf	 4:_getkey	 5:puts		 6:ungetchar 7:gets		 8:scanf
	 9:vprintf	10:printf	11:sprintf	12:vsprintf	13:EOD

10:stdlib.h
	 1:atof		 2:init_menpool3:strtod	 4atoi		 5:malloc	 6:strtol	 7:atol		 8:rand
	 9:strtoul	10:calloc	11:realloc	12:free		13:srand
	
11:string.h	
	 1:memccpy,	 2:memchr,	 3:memcmp,	 4:memcpy,	 5:memmove	 6:memset	 7:strcat	 8:strchr
	 9:strcmp	10:strcpy	11:strcspn	12:strlen   13:strncat	14:strncmp	15:strncpy	16:strpbrk
	17:strrpos	18:strrchr	19:strrpbrk	20:strrpos	21:strspn

*/

/*----------------------------------------------------------------------------+
| Type Definition & Macro                                                     |
+----------------------------------------------------------------------------*/

#ifndef NULL
#define NULL ((void *) 0L)              // Stdlib.h and String.h already include NULL
#endif

typedef char *          PSTR;
typedef bit             bool;
typedef bit             BOOL;
typedef short           SHORT;
typedef long            LONG;
typedef double          DOUBLE;
typedef unsigned char   UCHAR;
typedef unsigned char   byte;
typedef unsigned char   BYTE;
typedef unsigned char * PBYTE;
typedef unsigned short  USHORT;
typedef unsigned int    UINT;
typedef unsigned int    word;
typedef unsigned int    WORD;
typedef unsigned int    dword;
typedef unsigned long   DWORD;
typedef unsigned long   ULONG;
typedef unsigned long   HANDLE;


/*----------------------------------------------------------------------------+
| Constant Definition                                                         |
+----------------------------------------------------------------------------*/
#define ON			1
#define OFF			0

#define YES			1
#define NO			0

#define true		1
#define false		1

#define TRUE		1
#define FALSE		0

#define OK			1
#define KO			0

#define ENABLE		1
#define DISABLE		0

#define HIGH		1
#define LOW			0

#define ERR			1
#define NOERR		0

#define ERROR		1
#define NO_ERROR	0

#define bit0		0x01
#define bit1		0x02
#define bit2		0x04
#define bit3		0x08
#define bit4		0x10
#define bit5		0x20
#define bit6		0x40
#define bit7		0x80

#define VIDEO		0x01
#define AUDIO		0x02
#define UNLOCK		0x04
#define ALARM		0x08
#define ALARM2		0x10
#define HANDSHAKE	0x20		// 握手信号


#define MAX_ALARM_TIMES			 18000  // 报警持续的最长时间

#define MAX_RING_TIMES			  6000  // 振铃所允许的最长时间,超过这个时间没有人接听则关断连接,以10ms为单位,6000表示60s

#define MAX_VIEW_TIMES			  1000  // 监视请求允许的最大时间,以10ms为单位,1000表示10s

#define MAX_RS485_WAIT_TIMES	   200  // RS485超时重发等待时间,以10ms为单位,200表示如果2s以内没有收到应答则重发

#define MAX_DOOR_NUM			   256  // 定义最大的门口机数量,这个数对应了内存中各个门口机的心跳数组的大小,最大为512

#define Card_BUF_LENGTH				 4  // 定义卡冲区的长度

#define KEY_BUF_LENGTH				16  // 定义按键缓冲区的长度

#define MAX_FRAME_LENGTH			 8  // 每一帧数据中的有效数据的长度

#define MAX_SYSTEM_PASSWORD_LENGTH	 8  // 定义系统管理员密码的最大长度

#define RFCARD_LENGTH				 4  // 定义射频卡卡号的长度,用字节来表示,
#define MAX_RFCARD_NUM_LENGTH		12  // 定义射频卡的卡号的最大长度

#define MAX_USER_NAME_LENGTH		 8  // 定义用户名的长度最多为8个字节,即4个汉字

#define NULL_STRING_LENGTH		   128  // "\x00"常量空字符串的最大长度,用来初始化I2C存储器

#define I2C_WRITE_CYCLE_TIME		 5  // 两次读写I2C存储器之间的延时间隔

/*----------------------------------------------------------------------------+
| End of header file                                                          |
+----------------------------------------------------------------------------*/
#endif // __DEFINE_H__
/*------------------------ Nothing Below This Line --------------------------*/

⌨️ 快捷键说明

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