📄 main.lst
字号:
C51 COMPILER V7.07 MAIN 02/09/2004 16:12:39 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE MAIN.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /**********************************************Copyright (c)**********************************************
2 ** 广州周立功单片机发展有限公司 **
3 ** 研 究 所 **
4 ** CAN-BUS 组 **
5 ** **
6 ** http://www.zlgmcu.com **
7 ** **
8 **-----------------------------------------------文件信息-----------------------------------------------**
9 **文 件 名: CAN-DP51PRO(V1.10) **
10 **创 建 人: St_again **
11 **最后修改日期: 2004-2-2 **
12 **文件功能描述: 提供一个基于DP-51PRO的CAN实验程序 **
13 **其 他: 本文件源码编写格式符合周立功单片机程序编写规范。 **
14 ** **
15 **---------------------------------------------历史版本信息---------------------------------------------**
16 ** 创建人: **
17 ** 版 本: **
18 ** 日 期: **
19 ** 描 述: **
20 ** **
21 **---------------------------------------------当前版本修订---------------------------------------------**
22 ** 修改人: **
23 ** 日 期: **
24 ** 描 述: **
25 ** **
26 **------------------------------------------------------------------------------------------------------*/
27
28 #include <REG52.H>
29 #include "VIIC_C51.h" //I2C程序库头文件
30 #include "Sja1000_peli.h" //CAN程序库头文件
31
32 #define uchar unsigned char
33 #define ZLG7290 0x70
34 sbit RESET_PIN=P1^0;
35
36 uchar Display_Buffer[5]={0x0d,0x15,0x15,0x10}; //显示GOOD
37 uchar CAN_Baudrate_Filter_Buffer[9]={14,0,0,0,0,0xff,0xff,0xff,0xff}; //存放设置波特率和滤波器的数据
38 uchar Send_CAN_Info_ID[5]={0x88,0x00,0x00,0x00,0x00}; //存放信息帧的数据,符合CAN2.0B
39 uchar Send_Data_For_Self[8]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08}; //存放数据帧的数据
40 uchar ScanNum[1]; //定义数码管扫描位数
41
42 /*--------------------------------------------------------------------------------------------------------
43 ** 函数原型: void Delay_ms(uchar j)
44 ** 功能描述: 该函数用于不精确的延时。在12M,6CLK下,大约延时j*1ms
45 ** 参数说明: 0-250
46 ** 返回值: 无
47 /*------------------------------------------------------------------------------------------------------*/
48 void Delay_ms(uchar j)
49 {
50 1 uchar k,l;
51 1 for(l=0;l<=j;l++)
52 1 {
53 2 for(k=0;k<=250;k++)
54 2 {
55 3 ;
C51 COMPILER V7.07 MAIN 02/09/2004 16:12:39 PAGE 2
56 3 }
57 2 }
58 1 }
59
60 /*--------------------------------------------------------------------------------------------------------
61 ** 函数原型: unsigned char ZLG7290_SendCmd(unsigned char Data1,unsigned char Data2)
62 ** 功能描述: 发送命令(对子地址7、8)
63 ** 参数说明: DATA1: 命令1
64 ** DATA2: 命令2
65 ** 返回值: 0 失败
66 ** 1 成功
67 /*------------------------------------------------------------------------------------------------------*/
68 unsigned char ZLG7290_SendCmd(unsigned char Data1,unsigned char Data2)
69 {
70 1 unsigned char Data[2];
71 1 Data[0]=Data1;
72 1 Data[1]=Data2;
73 1 ISendStr(ZLG7290,0x07,Data,2);
74 1 Delay_ms(10);
75 1 return 1;
76 1 }
77
78 /*--------------------------------------------------------------------------------------------------------
79 ** 函数原型: void ZLG7290_SendDisBuf(unsigned char *disp_buf,unsigned char num)
80 ** 功能描述: 向显示缓冲区发送数据
81 ** 参数说明: *disp_buf 要发送数据的起始地址
82 ** num 发送个数
83 ** 返回值: 无
84 /*------------------------------------------------------------------------------------------------------*/
85 void ZLG7290_SendDisBuf(unsigned char *disp_buf,unsigned char num)
86 {
87 1 unsigned char i;
88 1 for(i=0;i<num;i++)
89 1 {
90 2 ZLG7290_SendCmd(0x60+i,*disp_buf);
91 2 disp_buf++;
92 2 }
93 1 }
94
95 /*--------------------------------------------------------------------------------------------------------
96 ** 函数原型: void SJA1000_Config_Self(void)
97 ** 功能描述: 对SJA1000的在自发自收模式下的初始化配置
98 ** 参数说明: 无
99 ** 返回值: 无
100 /*------------------------------------------------------------------------------------------------------*/
101 void SJA1000_Config_Self(void)
102 {
103 1 SJAEntryResetMode(); //进入复位模式
104 1 WriteSJAReg(REG_CAN_CDR,0xc8); //选择PeliCAN模式
105 1 SetBitMask(REG_CAN_MOD,AFM_BIT); //选择单滤波模式
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -