📄 data_define.h
字号:
////////////////////////////////////////////////////////////
#ifndef DATA_define_h
#define DATA_define_h
#include<reg51.h>
#include <absacc.h>
enum state{C11,C12 ,C22a,C22b,C21a,C21b,C21c } ;//接收数据状态定义
/*祯定义*/
#define MAXNUM_BUF 30//缓冲数据区的最大值
#define MAXNUM_INFO 10//数据区的最大空间
#define NUM_OF_SITE 6;//站点的数目
#define ADDR_8255_control XBYTE[0xe003] //8255方式选择控制字
#define ADDR_8255_data XBYTE[0xe000] //8255写数据
sbit WR_8255=P3^6;//8255的写使能,低电平有效
sbit RD_8255=P3^7;//读使能,低有效
sbit RESET_8255=P1^4;//高有效
//////////
//把数据桢定义为结构体
//////////
////////////////////////////////////////////////////////////
//数据祯
unsigned char SOI='~';
unsigned char VER=0x10; //版本号
unsigned char ADR =0x00;
unsigned char CMD1 =0x00;
unsigned char RSPD =0x00;
unsigned char CMD2=0x00;
unsigned char RTN =0x00 ;
unsigned char LENGTH=0x04;
unsigned char INFO[MAXNUM_INFO];
unsigned char CHKSUM =0x00;
unsigned char EOI='\r';
////需要设置ADR、RSPD、RTN、LENGTH、INFO[2*LENGTH]、CHKSUM
/// length=0x02,剩余的补0
/// info格式info[0]=tem,spe,dis;info[1]=dir.
///////////////////////////////////////////////////////////////
unsigned char xdata CUP_INFO_UP[MAXNUM_INFO];
unsigned char xdata DIST_INFO_UP[MAXNUM_INFO];
unsigned char xdata MOTOR_INFO_UP[MAXNUM_INFO];
unsigned char xdata CUP_INFO_DOWN[MAXNUM_INFO];
unsigned char xdata DIST_INFO_DOWN[MAXNUM_INFO];
unsigned char xdata MOTOR_INFO_DOWN[MAXNUM_INFO];
/////////////////////////////////////////////////////////////
//错误信息的反馈定义
#define FRAME_OK 0x00; //帧正确
#define VER_ERR 0x01; //VER错
#define CHKSUM_ERR 0x02; //CHKSUM错
#define COMMAND_ERR 0x03; //命令错误
#define LENGTH_ERR 0x04; //数据段长度错
#define INFO_ERR 0x05; //数据错误
#define ADR_ERR 0x06; //地址错
////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
//命令定义
//CMD1
unsigned char SET=0x00;//设置
unsigned char RED=0x01;//读取
//CMD2
unsigned char TEM=0x00;//温度
unsigned char SPE=0x01;//速度
unsigned char LEN=0x02;//距离
unsigned char DIR=0x03;//方向
////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
/*
unsigned char mainframe_send=0xb0; //主机法送,与地址香火
unsigned char mainframe_receive=0x3f;//接受 ,与地址相遇
unsigned char temperature_send=0x30;//温度发送
unsigned char temperature_receive=0xcf;//温控接收
unsigned char motor_send=0x0b;//电及发送
unsigned char motor_receive=0xf3;//电机接收
unsigned char supersonic_send=0x03;//超声发送
unsigned char supersonic_receive=0xfc;//超声接收
*/
////////////////////////////////////////////////////////////////
unsigned char HOST_ADR=0x00;
/////////////////////////////////////////////////////////////
//地址定义
unsigned char address=0xaa;//地址
unsigned char LOCAL_ADR=0x00;//本地
unsigned char MOTOR_ADR=0x01;//电机
unsigned char CUP_ADR=0x02;//电热杯
unsigned char TOP_ADR=0x03;//远程
unsigned char DIST_ADR=0x04;//测距
unsigned char TEST_ADR=0x05;//用于测试的端口,也可用于拓展端口
///////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////
//info定义
//unsigned char xdata tempr_control_info[MAXNUM_INFO];//温度信息
//unsigned char xdata motor_control_info[MAXNUM_INFO];//电机速度信息
//unsigned char xdata distance_test_info[MAXNUM_INFO];//测量距离
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////
unsigned char xdata Sbuffer[MAXNUM_BUF];//储存发送的信息
unsigned char xdata Rbuffer[MAXNUM_BUF];//储存接收的信息
bit buffer_flag=0;//接收数据的buf标志,当接收完毕时置位
bit feedbackdone_flag=0;//反馈发送完毕标志
bit receivedone_flag=0;
unsigned char Sbuffer_point=0;//S_buffer的指针
unsigned char Rbuffer_point=1;//R_buffer的指针
unsigned char D_T=4;//20ms
unsigned char RES_TIME=100;//500ms
unsigned char d_time=0;//计时器
enum state state_flag;//状态标志
unsigned char SendBack_flag=0;
unsigned char Sendfinish_flag=0;
unsigned char Adrchange_flag=0;//地址转换的标
unsigned char state=1;//状态
unsigned char buscontrol_output;//总线控制
unsigned char bus_control_count=0;
#endif
///////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -