📄 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 + -