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

📄 system.h

📁 c8051f040上CAN总线的应用
💻 H
📖 第 1 页 / 共 2 页
字号:
#define Idx_idlelink  1#define Idx_exit      2#define Idx_rdds     3#define Idx_clrdtc    4#define Idx_rddtc     5




////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
#define CANCTRL            0x00                 //Control Register
#define CANSTAT            0x01                 //Status register
#define ERRCNT             0x02                 //Error Counter Register
#define BITREG             0x03                 //Bit Timing Register
#define INTREG             0x04                 //Interrupt Low Byte Register
#define CANTSTR            0x05                 //Test register
#define BRPEXT             0x06                 //BRP Extension         Register
////////////////////////////////////////////////////////////////////////////////
//IF1 Interface Registers
////////////////////////////////////////////////////////////////////////////////
#define IF1CMDRQST         0x08                 //IF1 Command Rest      Register
#define IF1CMDMSK          0x09                 //IF1 Command Mask      Register
#define IF1MSK1            0x0A                 //IF1 Mask1             Register
#define IF1MSK2            0x0B                 //IF1 Mask2             Register
#define IF1ARB1            0x0C                 //IF1 Arbitration 1     Register
#define IF1ARB2            0x0D                 //IF1 Arbitration 2     Register
#define IF1MSGC            0x0E                 //IF1 Message Control   Register
#define IF1DATA1           0x0F                 //IF1 Data A1           Register
#define IF1DATA2           0x10                 //IF1 Data A2           Register
#define IF1DATB1           0x11                 //IF1 Data B1           Register
#define IF1DATB2           0x12                 //IF1 Data B2           Register


////////////////////////////////////////////////////////////////////////////////
//IF2 Interface Registers
////////////////////////////////////////////////////////////////////////////////
#define IF2CMDRQST         0x20                 //IF2 Command Rest      Register
#define IF2CMDMSK          0x21                 //IF2 Command Mask      Register
#define IF2MSK1            0x22                 //IF2 Mask1             Register
#define IF2MSK2            0x23                 //IF2 Mask2             Register
#define IF2ARB1            0x24                 //IF2 Arbitration 1     Register
#define IF2ARB2            0x25                 //IF2 Arbitration 2     Register
#define IF2MSGC            0x26                 //IF2 Message Control   Register
#define IF2DATA1           0x27                 //IF2 Data A1           Register
#define IF2DATA2           0x28                 //IF2 Data A2           Register
#define IF2DATB1           0x29                 //IF2 Data B1           Register
#define IF2DATB2           0x2A                 //IF2 Data B2           Register


////////////////////////////////////////////////////////////////////////////////
//Message Handler Registers
////////////////////////////////////////////////////////////////////////////////
#define TRANSREQ1          0x40                 //Transmission Rest1 Register
#define TRANSREQ2          0x41                 //Transmission Rest2 Register

#define NEWDAT1            0x48                 //New Data 1            Register
#define NEWDAT2            0x49                 //New Data 2            Register

#define INTPEND1           0x50                 //Interrupt Pending 1   Register
#define INTPEND2           0x51                 //Interrupt Pending 2   Register

#define MSGVAL1            0x58                 //Message Valid 1       Register
#define MSGVAL2            0x59                 //Message Valid 2       Register







/********************16-bit SFR Definitions for F040*************************/
sfr16 RCAP2    = 0xCA;                 // Timer2 reload/capture value
sfr16 RCAP3    = 0xCA;                 // Timer3 reload/capture value
sfr16 RCAP4    = 0xCA;                 // Timer4 reload/capture value
sfr16 TMR2     = 0xCC;                 // Timer2 counter/timer
sfr16 TMR3     = 0xCC;                 // Timer3 counter/timer
sfr16 TMR4     = 0xCC;                 // Timer4 counter/timer
sfr16 CAN0DAT  = 0xD8;                 // DATA

/********************有关点灯函数用到的全局变量/常量*************************/
unsigned short Timer3_OverTimes;             // 定时器3溢出次数
sbit  LED = P4^4;                       	// LED='0' means ON
sbit  TXD0 =P2^7;
sbit  RXD0 =P0^1;
sbit  TXD1 =P0^2;
sbit  RXD1 =P0^3;

/**************************全局变量/常量定义*********************************/
unsigned char xdata  CarComputerSendData[1000];            //汽车电脑将要发送的数据(采用10*100的格式放置)缓冲区


/************************CAN******************************/
unsigned char xdata CanRecData[256];//        CAN接收缓冲区
unsigned char xdata CanSendData[256];//       CAN发送缓冲区
unsigned char MultiDtcFlag;

/**************************串口1通讯数据存储用到的全局变量/常量**************/
unsigned char xdata Comm1RecData[30];      	//串口1接收缓冲区
unsigned char xdata Comm1SendData[1100];    	//串口1发送缓冲区
unsigned int xdata Comm1RecPtr,Comm1SendPtr;		//串口1接收、发送指针
unsigned int xdata Comm1RecLength;
unsigned int  xdata Comm1SendLength;

/************************串口0通讯数据存储用到的全局变量/常量***********************/  
unsigned char xdata Comm0RecData[255];      	//串口0接收缓冲区
unsigned char xdata Comm0SendData[255];    	//串口0发送缓冲区
unsigned char xdata Comm0RecPtr,Comm0SendPtr;		//串口0接收、发送指针
unsigned char xdata Comm0RecLength;
unsigned char xdata Comm0SendLength;
unsigned char  ByteDelay;           		//字节间隔
unsigned short FrameTime;	   			//侦间隔时间
unsigned short Timer3_OverTimes;
unsigned char  Command;
unsigned char  Curcommand;
/***************************调试用的临时变量**************************************/
unsigned char tempvar=0xff;

/****************************can 变量*********************************************/
char MsgNum;
char status;
int i;
int MOTwoIndex = 0;
int MOOneIndex = 0;
int StatusCopy;
int RXbuffer [4];
int TXbuffer [8];
int MsgIntNum;
int Temperature;







/**************************Function PROTOTYPES************************************/
void SYSCLK_Init (void);      		//系统时钟初始化,此程序选用外部晶振作系统时钟源
void PORT_Init (void);        		//端口初始化,打开UART0、UART1的交叉开关
void UART1_Init (void);       		//UART1初始化,用TIMER1做波特率发生源
void UART0_Init (void);       		//UART1初始化,用TIMER1做波特率发生源
void Timer3_Init (void);      		//定时器3初始化,定时1ms
void Variable_Init(void);     		//部分变量初始化函数
void Comm1Process(void);      		//串口1接收数据后的处理函数
void PortSet(void);					//通信端口设置
void MkrecData(void);				//UARTO的接受函数
void MksendData(void);				//UART0的发送函数
void Comm1mksenddata(void);			//UART1的发送函数
void SingleCheck(void);				//单字节累加和校验
void DelayTime(unsigned short int);	//延时100MS误差1MS,延时1S误差10MS
//unsigned char RecByte(void);			//接收一个字符
//void SendByte(unsigned char );		//发送一个字符
//unsigned char Check5bps(void);		//接受5BPS数据
//void DoubleCheck(void);				//双字节累加和校验
/***************************MSG OBJECTS INIT********************************
*          清空所有报文对象,因为有些MESSAGE OBJECT不用但要初始化            *
*               将不使用的message object的MsgVal都复位                       *
******************************************************************************/
// Initialize Message Object
void Clear_Msg_Objects (void);
void Init_Msg_Object_TX (char MsgNum);
void Init_Msg_Object_RX (char MsgNum);
void Start_CAN (void);
void Receive_Data (char MsgNum);
void Test_Reg_Write (char test);
void Transmit_Message (char MsgNum);
void SetBaudRate(unsigned int);

⌨️ 快捷键说明

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