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

📄 typedef.h

📁 51单片机基于CAN总线通信程序
💻 H
字号:
/******************************************************************************************
;;文件名称: TypeDef.h
;;文件概述: 本文件主要是对常量和结构类型进行定义
;;作    者: 耿艳军
;;生效日期: 2008年3月06日
;;版 本 号: V0.1
;;变更记录:
******************************************************************************************/
#ifndef	TYPEDEF_H		//防止重复定义
#define	TYPEDEF_H
/***************************************************/

/***************************************************/
//程序版本号定义
//主版本号(0~99)
#define MAINVER 0
//从版本号(0~99)
#define SLAVEVER 1
/**********************************************************/
#define DEBUG  0				//为0时关闭调试
/**********************************************************/
#define HARD_SPI 0				//0关闭硬件SPI,1开启硬件SPI功能
/**********************************************************/
#define      ADDRESS    0x04        //刹车控制器地址
#define      MADDRESS    0x05       //刹车控制器地址
/***************************************************/
#define DIA 95   			//59定义汽车轮胎直径单位CM
							//95
#define GIRTH ((DIA*314)/100) //周长计算cm
/***************************************************/
#define STARTSTOPTIME 	(4*(10))//快速报警后延时刹车延时值,数值(1-255 )单位100MS
/***************************************************/
#define SELF_TEST_CVERTIME 50;  //等待自检命令超时    基础单位是0.5秒,超时时间=SELF_TEST_CVERTIME*0.5(S)
#define CVERTIME 50;            //电机操作超时定时器,基础单位是0.5秒,超时时间=CVERTIME*0.5(S)

/***************************************************/
//数据类型简写定义
#define uchar   unsigned char
#define uint   	unsigned int
#define ulong   unsigned long
/***************************************************/
#define	ZERO		0
#define	ONE			1
#define	TWO			2
#define	THREE		3
#define	FOUR		4
#define	FIVE		5
#define SIX			6
#define SEVEN		7
#define EIGHT		8
#define NINE		9
#define TEN			10
/***************************************************/
//数据存储类型定义
#define APPOINT_TYPE	//指定数据存储类型

#ifdef APPOINT_TYPE
  	#define DATA  data
  	#define XDATA xdata
  	#define IDATA idata
  	#define PDATA pdata
  	#define CODE  code
  	#define BDATA bdata
  	#define BIT   bit  	
#else
  	#define DATA  
  	#define XDATA 
  	#define IDATA 
  	#define PDATA 
  	#define CODE
  	#define BDATA
  	#define BIT
#endif

#define FAST 1
#define SLOW 0
#define DISP_COL_NO 16
#define NULL			0				//字符串结束标记
/**********************************************************/
 /* 定义命令 */
#define ISP_IAP_BYTE_READ				0x01        /*  字节读数据*/
#define ISP_IAP_BYTE_PROGRAM            0x02        /*  字节编程数据存储区 */
#define ISP_IAP_ERASE    				0x03        /*  扇区擦除数据存储区 */

/*设置ISPIAP操作等待常数*/
//#define ENABLE_ISP						0x80        //系统时钟小于30M
//#define ENABLE_ISP						0x81        //系统时钟小于24M
//#define ENABLE_ISP						0x82        //系统时钟小于20M
#define ENABLE_ISP						0x83        	//系统时钟小于12M
//#define ENABLE_ISP						0x84        //系统时钟小于6M
//#define ENABLE_ISP						0x85        //系统时钟小于3M
//#define ENABLE_ISP						0x86        //系统时钟小于2M
//#define ENABLE_ISP						0x87        //系统时钟小于1M
/*12c5410系列块地址定义*/
#define FIRST_BLOCK						0x2800			//第一块
#define SECOND_BLOCK					0x2A00			//第二块
#define THIRD_BLOCK						0x2C00			//第三块
#define FOUR_BLOCK						0x2E00			//第四块
/**********************************************************/
#define KEY_UP 		1
#define KEY_DOWN 	2
#define KEY_ESC		3
#define KEY_MENU    4
/**********************************************************/
#define EMPTY		0
#define READY		1
#define WORKING		2
#define WORKED		3
/**********************************************************/
#define CLIENT		1
#define FACTORY		2
/**********************************************************/
/**********************************************************/
#define NULL 0
#define FULL 0xff
#define UNREAD 1
#define READ 2


#define START 1
#define RUN 2
#define STOP 3

#define POSITIVE 0x01
#define NEGATIVE 0x10
#define STOPTIVE 0x00

#define FAILED  (-1)
#define SUCCEED  0

#define P10WM  0//
#define P9WM  9
#define P8WM  8
#define P7WM  7
#define P6WM  6
#define P5WM  5
#define P4WM  4
#define P3WM  3
#define P2WM  2
#define P1WM  1

/**********************通信主从命令************************************/
#define MS_REST_STOP_CAR       0x10
#define MS_STOP_CAR50_SLOW     0x11
#define MS_STOP_CAR100_SLOW    0x12
#define MS_STOP_CAR50_FAST     0x13
#define MS_STOP_CAR100_FAST    0x14

#define MS_SELF_TEST           0x20
#define MS_SYS_SEELP           0x21

#define MS_ALLOW_IN_WORKING    0x22

#define MS_ALLOW_IN_UPDATE_STA 0X100
#define MS_UPDATA_DATAS        0x101
#define MS_VERIFY_DATAS        0x102
/**********************通信从主命令************************************/

#define SM_RECEV_OK            0x01
#define SM_REST_STOP_CAR       0x10
#define SM_STOP_CAR50_SLOW     0x11
#define SM_STOP_CAR100_SLOW    0x12
#define SM_STOP_CAR50_FAST     0x13
#define SM_STOP_CAR100_FAST    0x14

#define SM_SELF_TEST           0x20

#define SM_SYS_SEELP           0x21
#define SM_ALLOW_IN_WORKING    0x22

#define SM_ALLOW_IN_UPDATE_STA 0X100
#define SM_UPDATA_DATAS        0x101
#define SM_VERIFY_DATAS        0x102

/**************************通信子命令********************************/
#define UN_ACK                  0x00//不应答
#define UN_ORDAIN_TIME_ACK      0x01//不在规定时间内应答
#define ORDAIN_TIME_ACK         0x02//在规定时间3秒内应答
#define IMMEDIATELY_ACK         0x03//立即应答
#define IMMEDIATELY_RESULT_ACK  0x04//立即和结果应答
/**********************************************************/
typedef struct
{
	uchar Wather;		//天气
	uchar Rode;			//路况
	uchar Function;		//功能
	uchar TyreDia;		//车轮直径
	uchar Cxor;
}USER_PARA;

typedef struct
{
	uchar ButeRate;		//通信波特率
	uchar TyreDia;		//车轮直径
	//功能
}SYSTEM_PARA;
/**********************************************************/
//1、简单消息封装结构体
typedef struct	 //刹车处理数据结构体
{
	uchar sta; //进度0 STOP,1 START
	uchar cmd; //命令
}STRUCT_STOP_CAR;
/**********************************************************/
/*消息结构体*/
typedef struct {
					uchar sta;					
					uchar type;
					uchar dat;
					uchar dat2;	
					uchar Mschedule;	  //主进度
					uchar Sschedule;	  //从进度
				}MSG;

typedef struct	{
					uchar sta;
					uchar ddata[5];
				}MSG_COM;

/*邮箱结构体*/
typedef struct {
					uchar sta;		  //y邮件状态 (NULL 空无邮件,UNREAD未读,READ已读)
					uchar type;		  //邮件类型
					uchar matter[5];  //邮件内容
				}MAIL;
/*can通信帧结构体*/
typedef struct {
					uchar farmeSta;		    //状态 (NULL 空,FULL满)
					uchar farmeType;		//帧命令类型
                    uchar farmeSubType;	    //帧子命令类型
                    uchar farmeLong;        //帧长度
					uchar farmeData[9];     //帧数据 8个数据和1个帧计数
				}STRUCT_FARME;

/*主机返回车得信息结构体*/
typedef struct {
				uchar goingsta;	   	//行驶状态
				uchar Sefspeed;		//本车速度
				uchar safedst;		//安全车距离
				uchar fwcardst;		//前车距离
				uchar fwspeed;		//前车速度
				}STRUCT_INFO;
//日期时间结构类型
typedef struct 
{	
	uchar	year;			//年	
	uchar	month;			//月
	uchar	day;			//日
	uchar  	week;    		//星期
	uchar  	hour;			//时
	uchar  	minute;			//分
	uchar  	second;			//秒
} STRUCT_DATE_TIME;

//日期结构类型
typedef struct
{
	uchar	year;			//年	
	uchar	month;			//月
	uchar	day;			//日
} STRUCT_DATE;

//时间结构类型
typedef struct
{
	uchar  	hour;			//时
	uchar  	minute;			//分
	uchar  	second;			//秒
} STRUCT_TIME;

//时间结构类型
typedef struct
{
	uchar RelodeValH;	  //重载值高位
	uchar RelodeValL;	  //重载值低位
	uchar CycleTimer;	  //周期控制定时值
	uchar PluseWTimer;	  //占空比控制定时值

}FP_TIMR;//定时器输出频率占空比调整
/*
typedef struct
{
	uchar IrS;			//红外发送启动信号
	uchar l;			//发送数据的长度
	uchar *p;			//
}//
*/
#endif

⌨️ 快捷键说明

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