⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 can.c

📁 PIC单片机的CAN实验程序
💻 C
字号:
#include "pic18.h"
char CAN_Adress_H,CAN_Adress_L;
char CAN_Adress_EH,CAN_Adress_EL;
int CAN_FLAG;
unsigned int CAN_Delay_count=0;

void initial()
{
 INTCON=0X00;
 ADCON1=0X07;
 PIE1=0;
 PIE2=0;
 PIE3=0;
 }
 
 
 void initcan()
 {
	 TRISB=(TRISB|0X08)&0XFB;
	 CANCON=0x80;
	 while((CANSTAT&0X80)==0)
	 {;
		 }
	BRGCON1=0X01;
	BRGCON2=0X90;
	BRGCON3=0X42;
	TXB0CON=0x03;
	TXB0SIDL=CAN_Adress_L&0xE0;
	TXB0SIDH=CAN_Adress_H;
	TXB0DLC=0X08;
	TXB0D0=0X00;
	TXB0D1=0X01;
	TXB0D2=0X02;
	TXB0D3=0X03;
	TXB0D4=0X04;
	TXB0D5=0X05;
	TXB0D6=0X06;
	TXB0D7=0X07;
	RXB0SIDL=CAN_Adress_L&0xE0;
	RXB0CON=0X20;
	RXB0DLC=0X08;
	RXB0D0=0X00;
	RXB0D1=0X00;
	RXB0D2=0X00;
	RXB0D3=0X00;
	RXB0D4=0X00;
	RXB0D5=0X00;
	RXB0D6=0X00;
	RXB0D7=0X00;
	
	RXF0SIDH=CAN_Adress_h;
	RXF0SIDL=CAN_Adress_L;
	RXM0SIDH=0XFF;
	RXM0SIDL=0XE0;
	
	CANCON=0X40;
	
	while((CANSTAT&0X40)!=0)
	{;}
	PIR3=0X00;
	PIE3=PIE3|0X01;
	IRP3=IPR3|0X01;
	}
	void CAN_deal()
	{
		CAN_FLAG=0;
		TXB0CON=TXB0CON&0ZF7;
		TXB0D0=RXB0D0+1;
		TXB0D1=RXB0D1+1;
		TXB0D2=RXB0D2+1;
		TXB0D3=RXB0D3+1;
		TXB0D4=RXB0D4+1;
		TXB0D5=RXB0D5+1;
		TXB0D6=RXB0D6+1;
		TXB0D7=RXB0D7+1;
		}
	
	void interrupt HI_ISR()
	{
		if(RXB0IF==1)
		{
		CAN_FLAG=1;
		BXB0IF=0;
		BXB0FUL=0;
		}
		
  main()
  {
	  initial();
	  CAN_Adress_H=0x33;
	  CAN_Adress_L=0xE0;
	  initcan();
	  IPEN=1;
	  INTCON=INTCON|0XC0;
	  while(1){
		  if(CAN_FLAG==1)CAN_deal();
		  else if(CAN_Delay_count>0x2FE)
		  {
			  TXB0CON=TXB0CON|0X08;
			  CAN_Delay_count=0;
			  }
			  else CAN_Delay_count++;
			  }
			  }
	
	
	
	
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -