📄 define.h
字号:
/**************************************************************************************
项 目:基于CAN总线的自收发通信(节点1)
说 明:宏定义、管脚定义
模 块:define.h
作 者:PIAE GROUP
注释修改者:特 权
修改 时间:08.6.17.
**************************************************************************************/
/***感谢PIAE工作组提供的源码,这里特权根据自己的编程习惯做了一些修改并添加详细注释***/
#define uchar unsigned char //宏定义
#define uint unsigned int //宏定义
#define N_can 13 //N_can代表一帧字节数
bit TXD_flag = 0; //若TXD_flag=1,要求发送处理
bit RXD_flag = 0; //RXD_flag=0说明无数据可以接收,RXD_flag=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, (不显示)
uchar TX_buffer[13]; //接收的13个字节数据(//发送的数据)
uchar RX_buffer[13]; //接收的13个字节数据
uchar Txd_data = 0; //CAN总线要发送的数据,也是要在数码管1-2位置显示的数据
uchar Rxd_data = 0; //CAN总线要接收的数据,也是要在数码管3-4位置显示的数据
/*P2口的管脚定义*/
sbit LED_RED = P2^1; //该I/0口接红LED
sbit LED_GRE = P2^2; //该I/0口接绿LED
sbit SJA_RST = P2^3; //SJA1000复位管脚,低电平有效
sbit SJA_CS = P2^0; //SJA1000片选管脚,低电平有效
sbit LED_0 = P2^7; //数码管0
sbit LED_1 = P2^6; //数码管1
sbit LED_2 = P2^5; //数码管2
sbit LED_3 = P2^4; //数码管3
/*P3口的管脚定义*/
sbit SJA_RD = P3^7;
sbit SJA_WR = P3^6;
/*CAN总线SJA1000寄存器地址定义(用的是PeliCAN模式,扩展帧EFF模式)*/
//xdata ----> 可寻址片外ram (64k地址范围:0000H-FFFFH)
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; // 输出控制寄存器
// 验收代码寄存器(16-19)
uchar xdata ACR0 _at_ 0xFE10;//16;
uchar xdata ACR1 _at_ 0xFE11;//17;
uchar xdata ACR2 _at_ 0xFE12;//18;
uchar xdata ACR3 _at_ 0xFE13;//19;
// 验收屏蔽寄存器(20-23)
uchar xdata AMR0 _at_ 0xFE14;//20;
uchar xdata AMR1 _at_ 0xFE15;//21;
uchar xdata AMR2 _at_ 0xFE16;//22;
uchar xdata AMR3 _at_ 0xFE17;//23;
uchar xdata CDR _at_ 0xFE1F;//31; // 时钟分频器
uchar xdata ALC _at_ 0xFE0B;//11; // 仲裁丢失捕捉寄存器
uchar xdata ECC _at_ 0xFE0C;//12; // 误码捕捉寄存器
// 发送缓冲器地址(16-28)
uchar xdata TBSR0 _at_ 0xFE10;//16;//TX帧信息
uchar xdata TBSR1 _at_ 0xFE11;//17;//TX识别码1 (ID.21-ID.28)
uchar xdata TBSR2 _at_ 0xFE12;//18;//TX识别码2 (ID.13-ID.20)
uchar xdata TBSR3 _at_ 0xFE13;//19;//TX识别码3 (ID.5-ID.12)
uchar xdata TBSR4 _at_ 0xFE14;//20;//TX识别码4(高5位是ID.0-ID.4)
uchar xdata TBSR5 _at_ 0xFE15;//21;//数据1
uchar xdata TBSR6 _at_ 0xFE16;//22;//数据2
uchar xdata TBSR7 _at_ 0xFE17;//23;//数据3
uchar xdata TBSR8 _at_ 0xFE18;//24;//数据4
uchar xdata TBSR9 _at_ 0xFE19;//25;//数据5
uchar xdata TBSR10 _at_ 0xFE1A;//26;//数据6
uchar xdata TBSR11 _at_ 0xFE1B;//27;//数据7
uchar xdata TBSR12 _at_ 0xFE1C;//28;//数据8
// 接收缓冲器地址(16-28)
uchar xdata RBSR0 _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;
/*子函数申明*/
void init_mcu(void);
void init_sja1000(void);
void rxd_deal(void);
void txd_deal(void);
void can_txd(void);
void delay(uchar);
void led_show(uchar,uchar);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -