标题:
PIC18F45K80 CAN通信实例,可通过模拟调试
[打印本页]
作者:
liu100m
时间:
2017-12-2 10:03
标题:
PIC18F45K80 CAN通信实例,可通过模拟调试
PIC18F 45K80 CAN 通信实例,可通过模拟调试,注意选编译器,C18是不能通过。
0.png
(9.58 KB, 下载次数: 187)
下载附件
2017-12-2 15:21 上传
单片机源程序如下:
#pragma config XINST = OFF // CONFIG1L
#pragma config FOSC = INTIO2, FCMEN = OFF, IESO = OFF ,PLLCFG = OFF // CONFIG1H
#pragma config BOREN = OFF, BORV = 0 // CONFIG2L
#pragma config WDTEN = OFF // CONFIG2H
/** I N C L U D E S **************************************************/
#include "main.h"
unsigned char CAN_RecFLAG=0;
unsigned char Flag50ms = 0;
// AD采样的数据变量
unsigned int VoltageEdlc[5];
unsigned int VoltageBat;
unsigned int Current1;
unsigned int Current2;
unsigned int Temperature1;
unsigned int Temperature2;
void InterruptHandler(void);
#pragma code high_vector=0x08
void high_interrupt (void)
{
_asm GOTO InterruptHandler _endasm
}
#pragma code
#pragma code low_vector=0x18
void low_interrupt (void)
{
_asm GOTO InterruptHandler _endasm
}
#pragma code
#pragma interruptlow InterruptHandler
#pragma interrupt InterruptHandler
void InterruptHandler(void)
{
static unsigned char Tick = 0;
static unsigned char ChannelNo = 0;
// 定时器0
if(INTCONbits.TMR0IF&&INTCONbits.TMR0IE) // timer0 = 10ms
{
INTCONbits.TMR0IF = 0;
TMR0H = 0x63;
TMR0L = 0xBF;
Tick++;
if(Tick ==200)
{
Flag50ms = 1; // 5s发送CAN消息到ECU
Tick = 0;
LATCbits.LATC5 = ~LATCbits.LATC5;
}
}
// CAN接收数据
if(PIR5bits.RXB0IF==1)
{
CAN_RecFLAG=1;
PIR5bits.RXB0IF=0; // 清接收中断标志
RXB0CONbits.RXFUL=0; // 清除标志,接收新报文
}
}
#pragma code
void main(void)
{
unsigned int EDLC_temp[4];
INTCON=0x00;
InitInterOSC();
InitPORT();
InitCan();
Timer0_Init();
// INTCON=0xc0; //使能中断 1100 0000
INTCONbits.GIE=1;
INTCONbits.PEIE=1;
// INTCONbits.GIEL=1;
// TXB0CONbits.TXREQ = 0;
while(1)
{
if(CAN_RecFLAG==1)
{
CAN_RecFLAG = 0;
TXB0D0=1; /* 写发送缓冲器数据区数据初值 */
TXB0D1=2;
TXB0D2=3;
TXB0D3=4;
TXB0D4=5;
TXB0D5=6;
TXB0D6=7;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
PIC18F45K80-CAN.zip
(87.63 KB, 下载次数: 148)
2017-12-2 10:02 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
21cnxin
时间:
2018-5-12 15:27
呵呵,没有黑币没法下载
作者:
21cnxin
时间:
2018-10-15 16:22
下载去测试一下
作者:
liwanxi
时间:
2018-10-25 09:36
好久没有回来,这个太好了,谢谢。
作者:
yanl0306
时间:
2018-11-4 23:19
多谢分享
作者:
longxiadashi
时间:
2019-4-22 15:37
这个现在充电机上用很多CAN通讯,很有学习价值,新能源汽车现在锂电的都需要CAN通讯。
作者:
meilidianzhi
时间:
2019-8-29 20:30
谢谢共享学习一下
作者:
sgr2000
时间:
2021-6-26 15:43
你好,我们准备用PIC18F45K80,请问仿真器型号和例程是......? 在哪里下载资料呢?
作者:
catiaspeos
时间:
2021-7-28 14:08
这个单片机我还有60片库存
作者:
旷野寒雪
时间:
2021-8-17 15:21
可以参考学习下,感谢分享
作者:
wong6699
时间:
2021-8-22 23:33
您会编译PiC18F50k80,OBD程序
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1