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

📄 can

📁 can通信源码
💻
字号:
//对管脚分配进行了定义
//对子函数进行了声明

# define uchar unsigned char
# define uint  unsigned int

# define NOP5		{_nop_();_nop_();_nop_();_nop_();_nop_();}/*延时5us*/

#define     N_can      13//一帧字节数
bit         TXD_flag = 0;// 若为1,要求发送处理
bit         RXD_flag = 0;   //有无数据可以接收;0无 ,1有


uchar code led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, // 0, 1, 2, 3,4,5
	          0x82,0xf8,0x80,0x90, 0xff};    //  6, 7, 8, 9, off
			                         //编码规则是gfedcba ,其中g为小数点,控制dp,这里都设为1,不亮

uchar       RX_buffer[13];  //接收的数据
uchar       TX_buffer[13];  //接收的数据
uchar       Txd_data = 0;//CAN总线要发送的数据,也是要在数码管1-2位置显示的数据
uchar       Rxd_data= 0;//CAN总线要接收的数据,也是要在数码管3-4位置显示的数据


/*P1 口分配*/

/*P2 口分配*/
sbit    LED_RED = P2^1;
sbit    LED_GRE = P2^2;
sbit    SJA_RST = P2^3;//SJA1000复位管脚
sbit    SJA_CS  = P2^0;//SJA1000片选管脚

/*CAN总线SJA1000寄存器地址定义(用的是PeliCAN模式,扩展帧EFF模式)*/

uchar   xdata    MODR     _at_   0xFE00;		// 模式寄存器
uchar   xdata    CMR	  _at_   0xFE01;		// 命令寄存器
uchar   xdata    SR	  _at_   0xFE02;		// 状态寄存器
uchar   xdata    IR	  _at_   0xFE03;		// 中断寄存器
uchar   xdata    IER	  _at_   0xFE04;		// 中断使能寄存器
uchar   xdata    BTR0	  _at_   0xFE06;		// 总线定时寄存器0 ;总线波特率的选择
uchar   xdata    BTR1	  _at_   0xFE07;		// 总线定时寄存器1 ;总线波特率的选择
uchar   xdata    OCR	  _at_   0xFE08;		// 输出控制寄存器
uchar   xdata    ACR	  _at_   0xFE10;//16;
uchar   xdata    ACR1	  _at_   0xFE11;//17;
uchar   xdata    ACR2	  _at_   0xFE12;//18;
uchar   xdata    ACR3	  _at_   0xFE13;//19;		// 接收代码(0x16_0x19);接收过滤位的选择*******复位模式
uchar   xdata    AMR	  _at_   0xFE14;//20;
uchar   xdata    AMR1	  _at_   0xFE15;//21;
uchar   xdata    AMR2	  _at_   0xFE16;//22;
uchar   xdata    AMR3	  _at_   0xFE17;//23;		// 掩码(0x20_0x23); 接收过滤位的选择*******复位模式
uchar   xdata    CDR	  _at_   0xFE1F;//31;		// 时钟分频器
uchar   xdata    ALC	  _at_   0xFE0B;//11;		// 仲裁丢失捕捉寄存器
uchar   xdata    ECC	  _at_   0xFE0C;//12;		// 误码捕捉寄存器

uchar   xdata    TBSR	  _at_   0xFE10;//16;
uchar   xdata    TBSR1	  _at_   0xFE11;//17;
uchar   xdata    TBSR2	  _at_   0xFE12;//18;
uchar   xdata    TBSR3	  _at_   0xFE13;//19;
uchar   xdata    TBSR4	  _at_   0xFE14;//20;
uchar   xdata    TBSR5	  _at_   0xFE15;//21;
uchar   xdata    TBSR6	  _at_   0xFE16;//22;
uchar   xdata    TBSR7	  _at_   0xFE17;//23;
uchar   xdata    TBSR8	  _at_   0xFE18;//24;
uchar   xdata    TBSR9	  _at_   0xFE19;//25;
uchar   xdata    TBSR10	  _at_   0xFE1A;//26;
uchar   xdata    TBSR11	  _at_   0xFE1B;//27;
uchar   xdata    TBSR12	  _at_   0xFE1C;//28;// 发送缓冲器首地址(0x16_0x28)

uchar   xdata    RBSR	  _at_   0xFE10;//16;
uchar   xdata    RBSR1	  _at_   0xFE11;//17;
uchar   xdata    RBSR2	  _at_   0xFE12;//18;
uchar   xdata    RBSR3	  _at_   0xFE13;//19;
uchar   xdata    RBSR4	  _at_   0xFE14;//20;
uchar   xdata    RBSR5	  _at_   0xFE15;//21;
uchar   xdata    RBSR6	  _at_   0xFE16;//22;
uchar   xdata    RBSR7	  _at_   0xFE17;//23;
uchar   xdata    RBSR8	  _at_   0xFE18;//24;
uchar   xdata    RBSR9	  _at_   0xFE19;//25;
uchar   xdata    RBSR10	  _at_   0xFE1A;//26;
uchar   xdata    RBSR11	  _at_   0xFE1B;//27;
uchar   xdata    RBSR12	  _at_   0xFE1C;//28;// 接收缓冲器首地址(0x16_0x28)



void CAN_init( void ); // 初始化CAN总线芯片
void CAN_TXD( void );//CAN发送子函数
void Rxd_deal(void);//接收处理函数
void Txd_deal(void);//发送处理函数
void Delay(uchar delay_time);//延时子函数
void led_seg7(uchar from,uchar number);//显示子函数




⌨️ 快捷键说明

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