📄 ceshi.lst
字号:
C51 COMPILER V7.06 CESHI 05/14/2008 16:11:21 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CESHI
OBJECT MODULE PLACED IN D:\C51_TEST\INFENION\CAN\CESHI.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\C51_TEST\INFENION\CAN\CESHI.C DB SB OE
stmt level source
1 #include<XC886CLM.H>
2 #include<stdio.h>
3 #include "can.h"
4
5 void can_read(uword addr)
6 {
7 1 CAN_ADL=(addr>>2)&0xff;
8 1 CAN_ADH=(addr>>10)&0x0f;
9 1 RWEN=0;
10 1 while(BSY==1);
11 1 // BSY=0;
12 1 }
13
14 //置位
15 void set_bit(uword addr,uchar bitnum,uchar value)
16 {
17 1 uchar i=1;
18 1 //can_read(addr);
19 1 CAN_ADL=(addr>>2)&0xff;
20 1 CAN_ADH=(addr>>10)&0x0f;
21 1 if(bitnum<8) {
22 2 V0=1;
23 2 if(value)
24 2 CAN_DATA0|=(i<<bitnum);
25 2 else
26 2 CAN_DATA0&=~(i<<bitnum);
27 2 }
28 1 else if(bitnum>=8&&bitnum<16)
29 1 {
30 2 V1=1;
31 2 if(value)
32 2 CAN_DATA1|=(i<<(bitnum-8));
33 2 else
34 2 CAN_DATA1&=~(i<<(bitnum-8));
35 2
36 2 }
37 1 else if(bitnum>=16&&bitnum<24)
38 1 {
39 2 V2=1;
40 2 if(value)
41 2 CAN_DATA2|=(i<<(bitnum-16));
42 2 else
43 2 CAN_DATA2&=~(i<<(bitnum-16));
44 2 }
45 1 else if(bitnum>=24&&bitnum<32)
46 1 {
47 2
48 2 if(value)
49 2 CAN_DATA3=(i<<(bitnum-24));
50 2 else
51 2 CAN_DATA3=~(i<<(bitnum-24));
52 2 V3=1;
53 2 }
54 1
55 1 RWEN=1;
C51 COMPILER V7.06 CESHI 05/14/2008 16:11:21 PAGE 2
56 1 while(BSY==1);
57 1 }
58 void can_write(uword addr,ulong value)
59 {
60 1 CAN_ADL=(addr>>2)&0xff;
61 1 CAN_ADH=(addr>>10)&0x0f;
62 1 CAN_DATA0=value&0xff;
63 1 //P3_DATA=CAN_DATA0;
64 1 CAN_DATA1=(value>>8)&0xff;
65 1 CAN_DATA2=(value>>16)&0xff;
66 1 CAN_DATA3=(value>>24)&0xff;
67 1 CAN_ADCON=0xf1;
68 1 while(BSY==1);
69 1 //BSY=0;
70 1 }
71
72
73 int main()
74 {
75 1 //设置ncr0 (p495)
76 1 P3_init();
77 1 PORT_PAGE=0;
78 1 can_write(0x0200,0x004e);
79 1
80 1
81 1 //P3_DATA=2;
82 1 //write_pancom(0x02,0x00,0x01);
83 1 //can_read(0x0200);
84 1 //CAN_DATA0=0X55;
85 1 //set_bit(PANCTR,8,0);
86 1 //set_bit(PANCTR,9,0);
87 1 //write_pancom(0x02,0x03,0x01);
88 1 //can_read(0X01C4);
89 1 //set_bit(MOCTR0,SETTXEN0,1);
90 1 //set_bit(MOCTR0,SETTXEN1,1);
91 1 set_bit(MOCTR0,SETDIR,1);
92 1 can_read(MOSTAT0);
93 1 //CAN_DATA0=8;
94 1 PORT_PAGE=0;
95 1 P3_DATA=CAN_DATA1;
96 1 while(1);
97 1
98 1
99 1 }
100
C51 COMPILER V7.06 CESHI 05/14/2008 16:11:21 PAGE 3
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P3_DATA. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
CAN_DATA0. . . . . . . . . . . . . . . SFR DATA U_CHAR 00DBH 1
CAN_DATA1. . . . . . . . . . . . . . . SFR DATA U_CHAR 00DCH 1
CAN_DATA2. . . . . . . . . . . . . . . SFR DATA U_CHAR 00DDH 1
CAN_ADH. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00DAH 1
CAN_DATA3. . . . . . . . . . . . . . . SFR DATA U_CHAR 00DEH 1
CAN_ADL. . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D9H 1
V0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00DCH 1
V1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00DDH 1
V2 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00DEH 1
V3 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00DFH 1
_can_read. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
addr . . . . . . . . . . . . . . . . * REG * DATA U_INT 0004H 2
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
P3_init. . . . . . . . . . . . . . . . EXTERN CODE PROC ----- -----
CAN_ADCON. . . . . . . . . . . . . . . SFR DATA U_CHAR 00D8H 1
_can_write . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
addr . . . . . . . . . . . . . . . . AUTO DATA U_INT 0004H 2
value. . . . . . . . . . . . . . . . AUTO DATA U_LONG 0002H 4
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
RWEN . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D8H 1
PORT_PAGE. . . . . . . . . . . . . . . SFR DATA U_CHAR 00B2H 1
_set_bit . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
addr . . . . . . . . . . . . . . . . AUTO DATA U_INT 0000H 2
bitnum . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
value. . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0003H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
BSY. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D9H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 391 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 8
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -