📄 main.lst
字号:
C51 COMPILER V7.01 MAIN 05/06/2007 10:51:26 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\PROGRAM FILES\keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <AT89X51.H>
2 #include "SJA_BCANCONF.h"
3 #include "SJA_BCANFUNC.c"
4 #include <display_s.h>
5 void Init_Cpu(void);
6 void Init_T0(void);
7 void Sja_1000_Init(void);
8 void disp_ok(void);
9 void disp_err(void);
10 void Init_T0(void);
11
12 bit flag_sec;
13 unsigned char data a[5];
14 unsigned char data send_data[10],rcv_data[10];
15 unsigned char databuf,sec_data,second;
16 unsigned char data Tmod_data;
17 unsigned char bdata flag_init;
18 sbit rcv_flag=flag_init^0;
19 sbit err_flag=flag_init^2;
20 unsigned char i;
21 void main(void)
22 {
23 1 Sja_1000_Init();
24 1 Init_T0();
25 1 Init_Cpu();
26 1 flag_init=0x00;
27 1 while(1)
28 1 {
29 2 if(rcv_flag)
30 2 {
31 3 rcv_flag=0; //有接收中断,单片机进行处理
32 3 BCAN_DATA_RECEIVE(rcv_data); //将数据从接受缓冲器读入到rcv_data中
33 3 BCAN_CMD_PRG(0x04); //发送命令,释放接受缓冲器
34 3 disp_ok();
35 3 }
36 2 if(flag_sec)
37 2 {
38 3 flag_sec=0;
39 3 send_data[0]=0xaa;
40 3 send_data[1]=0x08;
41 3 //send_data[2]=second;
42 3 for(i=2;i<10;i++)
43 3 send_data[i]=0xff;
44 3 BCAN_DATA_WRITE(send_data); //将数据写入发送缓冲器中
45 3 BCAN_CMD_PRG(0x01); //命令,发送请求
46 3 }
47 2 if(err_flag)
48 2 {
49 3 err_flag=0;
50 3 disp_err();
51 3 Sja_1000_Init();
52 3 }
53 2 display(a);
54 2 }
55 1 }
C51 COMPILER V7.01 MAIN 05/06/2007 10:51:26 PAGE 2
56
57
58
59 void ex0_int(void) interrupt 0 using 1
60 {
61 1 SJA_BCANAdr=REG_INTERRUPT;
62 1 flag_init=*SJA_BCANAdr; //将sja1000中断标志信号读入到 flag_init(bdata)
63 1 }
64
65 void T0_init(void) interrupt 1 using 2
66 {
67 1 TR0=0; //定时器溢出中断,置位flag_sec标志/second
68 1 sec_data--;
69 1 if(sec_data==0)
70 1 {
71 2 sec_data=0x10;
72 2 TH0=0x80;
73 2 TL0=0x60;
74 2 flag_sec=1;
75 2 second++;
76 2 }
77 1 TR0=1;
78 1 }
79
80
81 void Init_Cpu(void)
82 {
83 1 PX0=1;
84 1 IT0=1;
85 1 EX0=1;
86 1 ET0=1;
87 1 EA=1;
88 1 sec_data=0x10;
89 1 }
90
91
92 void Init_T0(void)
93 {
94 1 Tmod_data=TMOD;
95 1 Tmod_data&=0xf0;
96 1 Tmod_data|=0x01;
97 1 TMOD=Tmod_data;
98 1 TH0=0x80;
99 1 TL0=0x60;
100 1 TR0=1;
101 1 sec_data=0x20;
102 1 second=0x00;
103 1 }
104
105 void Sja_1000_Init(void)
106 {
107 1 BCAN_ENTER_RETMODEL();
108 1 BCAN_SET_BANDRATE(0x04);
109 1 BCAN_SET_OBJECT(0xaa,0x00);
110 1 BCAN_SET_OUTCLK(0xaa,0x48);
111 1 BCAN_QUIT_RETMODEL();
112 1 SJA_BCANAdr=REG_CONTROL; //使能所有中断
113 1 *SJA_BCANAdr|=0x1e;
114 1 }
115
116 void disp_ok(void)
117 {
C51 COMPILER V7.01 MAIN 05/06/2007 10:51:26 PAGE 3
118 1 a[0]=0x00;
119 1 a[1]=0x11;
120 1 a[2]=0x10;
121 1 databuf=rcv_data[2];
122 1 databuf>>=0x04;
123 1 a[3]=databuf;
124 1 databuf=rcv_data[2];
125 1 databuf=databuf&0x0f;
126 1 a[4]=databuf;
127 1 }
128
129
130
131 void disp_err(void)
132 {
133 1 a[0]=0x00;
134 1 a[1]=0x0e;
135 1 a[2]=0x10;
136 1 a[3]=0x0f;
137 1 a[4]=0x0e;
138 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 854 ----
CONSTANT SIZE = 58 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 34 9
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -