• 大小: 1.79MB
    文件类型: .zip
    金币: 2
    下载: 0 次
    发布日期: 2023-09-21
  • 语言: 其他
  • 标签: can  

资源简介

包含SJA1000资料,can的原理图,包含了CAN的程序资料,和SJA1000的原理图画法,以及与单片机相连接的外围电路。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
sbit CS=P3^7;
sbit ALE=P3^5;
sbit RD=P3^0;
sbit WR=P3^1;
#define uchar unsigned char
#define uint unsigned int
//#define ulong unsigned long
#define MODREG 0x00
#define CMREG 0x80
#define STAREG 0x40
#define INTEREG 0xc0
#define IEREG 0x20
#define BT0REG 0x60
#define BT1REG 0xe0
#define OCREG 0x10
#define CLODREG 0xf8
#define AC0REG 0x08
#define AC1REG 0x88
#define AC2REG 0x48
#define AC3REG 0xc8
#define AM0REG 0x28
#define AM1REG 0xa8
#define AM2REG 0x68
#define AM3REG 0xe8
#define RxFRAM 0x08
#define RxBUF1 0x88
#define RxBUF2 0x48
#define RxBUF3 0xc8
#define RxBUF4 0x28
#define RxBUF5 0xa8
#define RxBUF6 0x68
#define RxBUF7 0xe8
#define RxBUF8 0x18
#define RxBUF9 0x98
#define RxBUF10 0x58
#define RxBUF11 0xd8
#define RxBUF12 0x38
#define TxFRAM 0x08
#define TxBUF1 0x88
#define TxBUF2 0x48
#define TxBUF3 0xc8
#define TxBUF4 0x28
#define TxBUF5 0xa8
#define TxBUF6 0x68
#define TxBUF7 0xe8
#define TxBUF8 0x18
#define TxBUF9 0x98
#define TxBUF10 0x58
#define TxBUF11 0xd8
#define TxBUF12 0x38

uchar Reads(uchar addrR);
void Writes(uchar addrWuchar datas);
uchar updown(uchar a1);
void Delay15();

void main()
{uchar temp=0temp1=0;
 uchar datal=0datah=0;
 CS=0;
 ET0=0;
 ET1=0;
 EA=0;
 EX0=0;
 TMOD=0x05;
 TR0=0;

 temp=Reads(MODREG);
 while((temp&0x80)==0)
  {temp=temp|0x80;
   Writes(MODREGtemp);
  }
 Writes(CLODREG0xe3);
 Writes(IEREG0x00);
 Writes(AC0REG0x46);
 Writes(AC1REG0x04);
 Writes(AC2REG0x00);
 Writes(AC3REG0x00);
 Writes(AM0REG0x87);
 Writes(AM1REG0xff);
 Writes(AM2REG0xff);
 Writes(AM3REG0xff);
 Writes(BT0REG0x8c);
 Writes(BT1REG0x38);
 Writes(OCREG0x58);
do
  {Writes(MODREG0x10);
   temp=Reads(MODREG);
  }
 while((temp&0x80)!=0);

/* do{temp1=Reads(STAREG);}
 while((temp1&0x20)!=0x20);*/
 do
 {TH0=0x00;
  TL0=0x00;
  TR0=1;
  Delay15();
  TR0=0;
 
  datal=updown(TL0);
  datah=updown(TH0);
  Writes(TxFRAM0x40);
  Writes(TxBUF10x4e);
  Writes(TxBUF20x04);
  Writes(TxBUF3datah);
  Writes(TxBUF4datal);
  Writes(CMREG0x80);
  //Delay15();
  }
/* 
 temp1=Reads(STAREG);
 if(temp1&0x02==0x02)
 {P3_3=0;}
 {TH0=0x3C;
  TL0=0xB0;
  TR0=1;
  for(secnum=0;secnum<=20;secnum++)
   {TH1=0x00;
    TL1=0x00;
    TR1=1;
    for(onesec=0;onesec<10;onesec++)
      {TH0=0x3C;
       TL0=0xB0;
       do{;}while(!TF0);
   TF0=0;
  }
    TR1=0;*/
  
  while(1);
}

uchar Reads(uchar addrR)
{uchar temp1;
 P1=addrR;
 ALE=1;
 WR=1;
 RD=1;
 ALE=0;
 RD=0;
 P1=0xff;
 temp1=P1;
 RD=1;
 return(temp1);
}

void Writes(uchar addrWuchar datas)
{ALE=1;
 RD=1;
 WR=1;
 P1=addrW;
 ALE=0;
 WR=0;
 P1=datas;
 WR=1;
}

/*void Delayl(uchar TIME) 
{uchar time1time2time3;
 for(time1=0;time1   {for(time2=0;time2<250;time2++)
      {for(time3=0;time3<100;time3++){;}}
   }
}*/

void Delay15()
{ uchar

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2005-04-13 15:46  CAN总线\
     文件       17860  2005-04-08 21:12  CAN总线\Backup of disp.Sch
     文件        3266  2004-09-02 21:46  CAN总线\control.c
     文件      249856  2005-04-13 15:46  CAN总线\disp.Bkp
     文件      249856  2005-04-13 15:46  CAN总线\disp.DDB
     文件       17860  2005-03-31 21:58  CAN总线\disp.Sch
     文件       14951  2005-03-31 08:56  CAN总线\lcd.c
     文件       34290  2005-03-31 21:58  CAN总线\power.Sch
     文件     1483135  2004-04-24 14:50  CAN总线\SJA1000yingrongzhinan_cn.pdf
     文件      735920  2004-04-24 14:44  CAN总线\sja1000_cn.pdf
     文件       84653  2004-04-24 14:34  CAN总线\TJA1040_1_en.pdf

评论

共有 条评论