• 大小: 31.14MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-06-13
  • 语言: 其他
  • 标签: CAN  

资源简介

基于MCP2515的CAN模块资料,内有调试通过的程序,配上CAN模块即可通信。

资源截图

代码片段和文件信息

//=================================================================================
//串口到can       4800bps
//
//sbit SCK=P2^3;
//sbit SI=P2^2;
//sbit SO=P2^1;
//sbit CS=P2^0;
//INT 接P3.3
//
//=================================================================================

#include “reg51.h“
#include “2515.h“
#include “SPI.h“
#include “Function.h“

#include “CAN0.h“

void CAN_Send_anylength(unsigned char *CAN_TX_Bufunsigned char length1);


unsigned char gRXFlag=0sRXFlag=0yRXFlag=0;
unsigned char data Com_RecBuff[8];
unsigned char bdata flag_init;

//*************************
#define INBUF_LEN 8   //数据长度

unsigned char inbuf1[INBUF_LEN];
unsigned char checksumcount3=0;


unsigned char a[8];
unsigned char b[8]={0x010x020x030x040x050x060x070x08};


/************************************************************************
*函数原型: void init_serialcomm(void)            *
*参数说明: 串口初始化                            *
*说明: 设值单片机的定时器1的方式选择波特率 。该子程序只能用于复位模式
************************************************************************/
void init_serialcomm(void)
{
  SCON  = 0x50;       //SCON: serail mode 1 8-bit UART enable ucvr 
  TMOD |= 0x20;       //TMOD: timer 1 mode 2 8-bit reload 
  PCON |= 0x80;       //SMOD=1; 
  TH1   = 0xF4;       //Baud:4800  fosc=11.0592MHz  
  TL1   = 0xF4;       //
  IE   |= 0x90;       //Enable Serial Interrupt 
  TR1   = 1;          // timer 1 run
}

//定时器0初始化
void timer0initial()
{
  TMOD|=0x1;        //工作方式16位定时计数器
  TH0=0xb8;TL0=0x00;  //50MS定时初值(T0计时用)
  IE|=0x90;       //Enable Serial Interrupt 
  ET0=0;
  TR0=0;
}

//向串口发送一个字符
void send_char_com(unsigned char ch)
{
  SBUF=ch;
  while(!TI);
  TI=0;
}

//向串口发送一个字符串strlen为该字符串长度
void send_string_com(unsigned char *strunsigned int strlen)
{
  unsigned int k=0;
  do
  {
    send_char_com(*(str+k));
    k++;
  }while(k}

//定时器0中断不够8个就在此发送
void time_intt0(void) interrupt 1 using 2
{
  ET0=0;
  TR0=0;
  TH0=0xb8;
  TL0=0x00;
  sRXFlag=1;
}

//串口接收中断函数
void serial() interrupt 4 using 1
{
  unsigned char ch;

  if(RI)
  {
    RI=0;
    ET0=1;TR0=1;
    ch=SBUF;

    inbuf1[count3]=ch;
    count3=count3+1;
    if(count3==INBUF_LEN)
    {
      ET0=0;
      TR0=0;
      TH0=0xb8;
      TL0=0x00;  //关闭定时中断,停止定时中断
      sRXFlag=1;
    }
  }
}


/****************************************************
**函数原型:  void ex1_int(void) interrupt 2 //using 1
**功    能:  外部中断1接收函数
**入口参数:   无 
**出口参数:   RevceData[]数组   
**说    明:   当MCP2515收到正确的报文时会产生int1中断
*****************************************************/
void ex1_int(void) interrupt 2 using 1
{
  gRXFlag=1;
}


/****************************************************
**函数原型:  void Init_Cpu(void)
**功    能:  单片机初始化开放外部中断1
**入口参数:   无 
**出口参数:    
**说    明:   单片机初始化开放外部中断1  
*****************************************************/
void Init_Cpu(void)
{
  PX1=1;
  EX1=1;
  IT1=0;
  EA=

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      10905  2012-08-30 21:55  CEPARK+MCP2515+模块+配套资料\配套代码\2515.h

     文件       5964  2009-06-26 11:38  CEPARK+MCP2515+模块+配套资料\配套代码\CAN.h

     文件       3158  2012-08-30 23:08  CEPARK+MCP2515+模块+配套资料\配套代码\CAN0.h

     文件        275  2012-08-30 23:08  CEPARK+MCP2515+模块+配套资料\配套代码\Function.h

     文件       3606  2012-08-31 11:38  CEPARK+MCP2515+模块+配套资料\配套代码\main.c

     文件       7066  2012-08-31 11:38  CEPARK+MCP2515+模块+配套资料\配套代码\main.LST

     文件      35907  2012-08-31 11:38  CEPARK+MCP2515+模块+配套资料\配套代码\main.OBJ

     文件      33471  2012-08-31 11:38  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515

     文件       3092  2012-08-31 11:38  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515.hex

     文件         46  2012-08-31 11:38  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515.lnp

     文件      19103  2012-08-31 11:38  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515.M51

     文件       1856  2010-06-11 21:46  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515.opt.bak

     文件        234  2012-09-27 19:17  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515.plg

     文件       2039  2009-06-17 21:49  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515.Uv2.bak

     文件      83990  2012-08-31 11:38  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515.uvgui.lian

     文件      80683  2012-08-30 23:40  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515.uvgui_lian.bak

     文件      47673  2012-09-27 19:17  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515.uvopt

     文件      13236  2012-08-31 18:44  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515.uvproj

     文件       1860  2010-04-08 12:03  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515_Opt.Bak

     文件       2179  2009-06-17 21:43  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515_Uv2.Bak

     文件      47677  2012-09-24 18:09  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515_uvopt.bak

     文件      13266  2012-08-30 14:37  CEPARK+MCP2515+模块+配套资料\配套代码\MSGMCP2515_uvproj.bak

     文件       1619  2012-08-30 23:35  CEPARK+MCP2515+模块+配套资料\配套代码\SPI.h

     文件       5115  2002-04-16 14:32  CEPARK+MCP2515+模块+配套资料\配套代码\STARTUP.A51

     文件      11666  2012-08-30 13:47  CEPARK+MCP2515+模块+配套资料\配套代码\STARTUP.LST

     文件        749  2012-08-30 13:47  CEPARK+MCP2515+模块+配套资料\配套代码\STARTUP.OBJ

     文件     477255  2012-09-27 19:17  CEPARK+MCP2515+模块+配套资料\用户手册\CEPARK MCP2515 CAN通信模块 使用说明.pdf

     文件    1051136  2006-06-26 14:02  CEPARK+MCP2515+模块+配套资料\常用工具软件\UartAssist\UartAssis.exe

     文件     216064  2004-02-25 11:15  CEPARK+MCP2515+模块+配套资料\常用工具软件\SJA1000波特率计算\Btr01.exe

     文件     216064  2007-11-12 08:35  CEPARK+MCP2515+模块+配套资料\常用工具软件\SJA1000波特率计算\NXP_CAN\Btr01.exe

............此处省略55个文件信息

评论

共有 条评论