基于CAN总线的远距离水位监控系统

上传人:飞*** 文档编号:5596213 上传时间:2017-09-06 格式:DOC 页数:13 大小:66KB
返回 下载 相关 举报
基于CAN总线的远距离水位监控系统_第1页
第1页 / 共13页
基于CAN总线的远距离水位监控系统_第2页
第2页 / 共13页
基于CAN总线的远距离水位监控系统_第3页
第3页 / 共13页
基于CAN总线的远距离水位监控系统_第4页
第4页 / 共13页
基于CAN总线的远距离水位监控系统_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《基于CAN总线的远距离水位监控系统》由会员分享,可在线阅读,更多相关《基于CAN总线的远距离水位监控系统(13页珍藏版)》请在金锄头文库上搜索。

1、/*描述: 独立的 CAN 控制器 SJA1000基本硬件头文件定义 BasicCAN 工作方式*/#include #include #include#include#include #define uchar unsigned char#define uint unsigned intsbit CS7221 = P11; / 7221的片选sbit DIN7221 = P10; / 7221的数据端sbit CLK7221 = P12; / 7221的时钟端sbit wr_0804=P37; /0804读端sbit rd_0804=P36; /0804写端sbit intr_0804=P2

2、2; /0804中断端sbit cs_0804=P21; /0804片选端uchar temp,c4; /温度暂存uchar DATA_BUF6; /发送数据暂存/*SJA1000与微处理器的接口是以外部存储器的方式,所以以下的基址定义,用户 *应根据自己的实际电路来进行调整 */#define SJA_Adr 0xfe00 /定义 sja1000的片选基址/计算 SJA1000在电路中的实际地址:基址+内部寄存器地址/* 以下的定义为 SJA1000的内部寄存器的地址,不可修改 * 各寄存器的具体功能清参阅 sja1000的数据手册 */#define REG_CONTROL SJA_Adr

3、+0x00 /内部控制寄存器#define REG_COMMAND SJA_Adr+0x01 /命令寄存器#define REG_STATUS SJA_Adr+0x02 /状态寄存器#define REG_INTERRUPT SJA_Adr+0x03 /中断寄存器#define REG_ACR SJA_Adr+0x04 /验收代码寄存器#define REG_AMR SJA_Adr+0x05 /验收屏蔽寄存器#define REG_BTR0 SJA_Adr+0x06 /总线定时寄存器 0 #define REG_BTR1 SJA_Adr+0x07 /总线定时寄存器 1 #define REG_

4、OCR SJA_Adr+0x08 /输出控制寄存器#define REG_TEST SJA_Adr+0x09 /测试寄存器 /以下为发送缓冲区寄存器定义#define REG_TxBuf1 SJA_Adr+0x0A /发送缓冲区 1#define REG_TxBuf2 SJA_Adr+0x0B /发送缓冲区 2#define REG_TxBuf3 SJA_Adr+0x0C /发送缓冲区 3#define REG_TxBuf4 SJA_Adr+0x0D /发送缓冲区 4#define REG_TxBuf5 SJA_Adr+0x0E /发送缓冲区 5#define REG_TxBuf6 SJA_A

5、dr+0x0F /发送缓冲区 6#define REG_TxBuf7 SJA_Adr+0x10 /发送缓冲区 7#define REG_TxBuf8 SJA_Adr+0x11 /发送缓冲区 8#define REG_TxBuf9 SJA_Adr+0x12 /发送缓冲区 9#define REG_TxBuf10 SJA_Adr+0x13 /发送缓冲区 10/以下为接收缓冲区寄存器定义#define REG_RxBuf1 SJA_Adr+0x14 /接收缓冲区 1#define REG_RxBuf2 SJA_Adr+0x15 /接收缓冲区 2#define REG_RxBuf3 SJA_Adr+0

6、x16 /接收缓冲区 3#define REG_RxBuf4 SJA_Adr+0x17 /接收缓冲区 4#define REG_RxBuf5 SJA_Adr+0x18 /接收缓冲区 5#define REG_RxBuf6 SJA_Adr+0x19 /接收缓冲区 6#define REG_RxBuf7 SJA_Adr+0x1A /接收缓冲区 7#define REG_RxBuf8 SJA_Adr+0x1B /接收缓冲区 8#define REG_RxBuf9 SJA_Adr+0x1C /接收缓冲区 9#define REG_RxBuf10 SJA_Adr+0x1D /接收缓冲区 10/*内部地址

7、 01EH 备用 */*时钟分频寄存器(内部地址 01FH) */#define REG_CDR SJA_Adr+0x1F /时钟分频寄存器/*定义指针 */uchar xdata *SJA_BCANAdr; /*定义命令字 */ #define TR_CMD 0x01 /发送请求命令#define AT_CMD 0x02 /夭折发送命令#define RRB_CMD 0x04 /释放接收缓冲区#define COS_CMD 0x08 /清除超载状态#define GTS_CMD 0x10 /进入睡眠状态命令/*定义 12M的晶体下,CAN 总线波特率 */#define bps_20k 0x

8、00 /波特率 20kbps#define bps_40k 0x01 /波特率 40kbps#define bps_50k 0x02 /波特率 50kbps#define bps_80k 0x03 /波特率 80kbps#define bps_100k 0x04 /波特率 100kbps#define bps_125k 0x05 /波特率 125kbps#define bps_200k 0x06 /波特率 200kbps#define bps_250k 0x07 /波特率 250kbps#define bps_400k 0x08 /波特率 400kbps#define bps_500k 0x09 /波特率 500kbps#define bps_666k 0x0a /波特率 666kbps#define bps_800k 0x0b /波特率 800kbps#define bps_1000k 0x0c /波特率 1000kbps/*-* 以下为 BASICCAN SJA1000的错误字 *-*/#define INTERFACE_0K 0 /SJA1000接口正常 #define BUS_0K 0 /CAN总线工作正常#define INTERFACE_ERR 0XFF /SJA1000接口错误? #define

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号