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

📄 define.h

📁 F040 的一些软件学习
💻 H
字号:
/******************************************************/

/****************类型定义及说明****************/

/***************时间:2002年12月12日**************/

/*****************WROTE BY WANGSW*******************/
/*
说明:
一般基本上使用Keil-51提供的类型,如以下所示:
1:端口
	P0,P1,P2,P3
2:位端口
   	P0^X
   	P1^X
   	P2^X
   	P3^X
3:常用数据类型
data type 	|   length(bit)  |  length(byte)   |data range
bit 				1			...			0,1
unsigned char		8			1			0~255
signed char		8			1			-128~127
unsigned int		16			2			0~65535
signed int			16			2			-32768~32767
unsigned long		32			4			0~4294967295
signed long		32			4			-2147483648~2147483647
float				32			4			+-1.176E-38~+-3.40E+38(6位数字)
double			64			8			+-1.176E-38~+-3.40E+38(10位数字)
一般指针	24			3			储存空间0~65535

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

5:存储模式及说明
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:fprestore	15: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:strncpy16:strpbrk
	17:strrpos	18:strrchr	19:strrpbrk	20:strrpos	21:strspn

三:语法
在C语言中嵌入汇编
#pragma asm
汇编语句
...
#pragma endasm
*/
/*
四:下面定义的按以下来使用,如:
byte
word
dword

*/
/*
五:变量名,函数名统一化
1 :外部函数全部采用文件名加函数名的下划线联接结构,如
extern void led_key_led_display_control(byte ByteData,bool ByteDp,byte LedDisplayIndex );	其中参数名采用
有意义的短格式命名或带类型的数据名.
2:内部函数采用短格式,内部变量多字节的也采用短格式,单字节的用普通变量
i,j,k一般用于函数内部的循环计数器.

*/

/*
四:寄存器说明:
1	TCON:中断标志寄存器
	TF1(8F)		T1中断标志位
	TR1(8E)		T1启停位	
	TF0(8D)		T0中断标志位
	TR0(8C)		T0启停位
	IE1(8B)		~INT1中断标志位
	IT1(8A)		~INT1触发控制位0为电平触发,1为负边缘触发
	IE0(89)		~INT0中断标志位
	IT0(88)		~INT0触发控制位0为电平触发,1为负边缘触发

2	IE:中断寄存器
	EA(AF)		全部中断控制
	ET2(AD)		T2中断控制
	ES(AC)		串行口中断控制
	ET1(AB)		T1中断控制
	EX1(AA)		~INT1中断控制
	ET0(A9)		T0中断控制
	EX0(A8)		~INT0中断控制





  
*/
#include <stdio.h>
#include "message.h"


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

#ifndef _DEFINE_H
#define _DEFINE_H

/*********************************************/
/***************定义常量******************/
/*********************************************/
//字体定义

#define TRUE		0x01
#define FALSE	0x00
#define GOOD	0xFE
#define ERROR	0xFF
#define ALL 		0xFD
#define NONE    	0x00
#define IGNORE 	0xFC
#define AUTO		0xFB
 	

#define SPEEDUP

//消息的类型
//#define FIFO			/*先进先出*/
//#define FILO		/*先进后出*/
#define PRIORITY		/*支持消息优先级*/

#define MSG_STACK_DEPTH	4
#define DP_51
#define TG19264
#define SOFT_RTC

//类型定义
typedef bit 			bool;
typedef unsigned char	byte;
typedef unsigned int 	word;
typedef unsigned long 	dword;

typedef unsigned char  MSGTYPE;			/*r定义消息类型*/
typedef unsigned char  MSGPOINT;			/*r定义消息堆栈标识*/



#define SETBIT(A,B)    (A |= 1 << (B))       	   	/*A=Register, B=Bitnumber (7..0)*/
#define RESETBIT(A,B)  (A &= ~(1 << (B)))      		/*A=Register, B=Bitnumber (7..0)*/
#define GETBIT(A,B)	   ((A >> B) & 0x01)


#define HBYTE(A)			(A>>8)
#define LBYTE(A)			(A&0xFF)

#define BYTE2WORD(A,B)		(((word)A<<8)+B)



extern byte data g_MsgReturnValue;

extern byte code g_DAA[100];
extern byte code g_Data2Char[16];


extern void delay(word wData);

extern void msg_queue_in(MSGTYPE msgType, MSGPOINT msgPoint);

extern byte msg_queue_out(void);

extern void msg_queue_clear(byte selMSG);

#endif




⌨️ 快捷键说明

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