- 87
- 0
- 约9.54千字
- 约 20页
- 2016-11-21 发布于河南
- 举报
CAN自收发程序
CAN自收发程序
//
//描述:
// INT0按键程序+显示程序+CAN自收发程序
// 数码管1-2(从右至左)显示本节点计数结果,数码管3-4显示接收到的数据
// 十进制显示
// CAN主要参数: PeliCAN模式,扩展帧EFF模式
// 29位标示码结构:
// 发送数据结构:计数结果,0x02,0x03,0x04,0x05,0x06,0x07,0x08
// 接收数据结构: 待显示数据+其它7个字节的数据
// 本节点的地址: 0x11,0x22,0x33,0x00;可以接收全部节点的数据
// 目的节点地址:0x01,0x02,0x03,0x00;可以被能接收全部节点数据的节点接收
//
//【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!
//【声明】 作者: PIAE小组
#include reg52.h
#include intrins.h
#include can_selfdef.h
void INT0_Counter( void ) interrupt 0 using 1
{//INT0按键为计数按键
EA = 0;
Txd_data++; //存储计数结果,并为待发送的数据
TXD_flag = 1;//要发送数据标志位
EA = 1;
}
void CAN_RXD( void ) interrupt 2
{//接收数据函数,在中断服务程序中调用
uchar data Judge;
EA = 0;//关CPU中断
IE0 = 0;
Judge = IR;
if( Judge 0x01)
{//IR.0 = 1 接收中断
RX_buffer[0] = RBSR;
RX_buffer[1] = RBSR1;
RX_buffer[2] = RBSR2;
RX_buffer[3] = RBSR3;
RX_buffer[4] = RBSR4;
RX_buffer[5] = RBSR5;
RX_buffer[6] = RBSR6;
RX_buffer[7] = RBSR7;
RX_buffer[8] = RBSR8;
RX_buffer[9] = RBSR9;
RX_buffer[10] = RBSR10;
RX_buffer[11] = RBSR11;
RX_buffer[12] = RBSR12;
RXD_flag = 1;//置有接收标志
CMR = 0X04;
Judge = ALC;//释放仲裁随时捕捉寄存器
Judge = ECC;//释放错误代码捕捉寄存器
}
IER = 0x01;// .0=1--接收中断使能;
EA = 1;//打开CPU中断
}
void main(void)
{
//CPU初始化
SJA_RST = 1;//CAN总线复位管脚,复位无效
SJA_CS = 0;//CAN总线片选有效
EX1 = 1;
IT1 = 0;//CAN总线接收中断
IT0 = 1;//外部中断0负边沿触发
EX0 = 1;//打开外部中断0
EA = 1; //打开总中断
SJA_CS = 1;//CAN总线片选无效,使对数据总线的操作不会影响SJA1000。
//CPU初始化
CAN_init( ); //SJA1000初始化,对 SJA1000寄存器的读写是采用外部寄存器寻址方式,所以不需要程序单独控制片选有效无效
_nop_();
_nop_();
while(1)
{
_nop_();
_nop_();
Rxd_deal();//接收处理程序
Txd_deal();//发送处理程序
led_seg7(1,Txd_data);
led_seg7(3,Rxd_data);
}
}
//*********************处理函数*****************************
您可能关注的文档
最近下载
- 求职简历模板免费下载-简历模板免费下载-word.docx VIP
- 2024年医院行风建设总结.pdf VIP
- FR 6011 说明书.pdf VIP
- 2025年中考物理总复习:压强(讲义)解析版.pdf VIP
- 酸碱盐-初升高化学知识复习讲义(人教版).pdf VIP
- 农业开发生态养鸡项目实施方案(有全套附表附图).doc VIP
- 劳动合同范本(2026年通用版,带试用期条款).docx VIP
- 医疗器械软件注册审查指导原则(2022年修订版)20220309.pdf VIP
- 老电影收藏1(1949—1966).doc VIP
- 西南18J517_厨房_卫生间_浴室设施_标准图集.pdf VIP
原创力文档

文档评论(0)