📄 out.lst
字号:
C51 COMPILER V6.12 OUT 11/24/2006 12:29:26 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE OUT
OBJECT MODULE PLACED IN .\out.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE .\out.c DEBUG OBJECTEXTEND
stmt level source
1 #include <out.h>
2 #include <reg51.h>
3 #include <head.h>
4
5
6 out( unsigned int addr, unsigned char value)
7 {*( unsigned char xdata *)addr=value;
8 1 }
9
10
11 in(unsigned int addr)
12 {unsigned char value;
13 1 P0=0xFF;
14 1 value=*(unsigned char xdata *)addr;
15 1 return(value)
16 1 ;}
17
18 test()
19 {
20 1 out(TEST,0xAA);
21 1 while((in(TEST)^0xAA))
22 1 out(TEST,0xAA);
23 1
24 1 }
25
26
27 RCVDATA()
28 {unsigned char i;
29 1 buf[0]=in(CANRXB);
30 1 if(buf[0]&0x80)
31 1 {if(buf[0]&0x40)
32 2 {my_flag.flags.REC_REMOTE_FRAME=1;
33 3 buf[1]=in(RX_1);
34 3 buf[2]=in(RX_2);
35 3 buf[3]=in(RX_3);
36 3 buf[4]=in(RX_4);
37 3 }
38 2 else
39 2 {my_flag.flags.REC_DATA_FRAME=1;
40 3 for(i=1;i<=((buf[0]&0x0F)+4);i++)
41 3 buf[i]=in(CANRXB+i);
42 3 }
43 2 }
44 1 else
45 1 {if(buf[0]&0x40)
46 2 {my_flag.flags.REC_REMOTE_FRAME=1;
47 3 buf[1]=in(RX_1);
48 3 buf[2]=in(RX_2);
49 3 }
50 2 else
51 2 {my_flag.flags.REC_DATA_FRAME=1;
52 3 for(i=1;i<=((buf[0]&0x0F)+2);i++)
53 3 buf[i]=in(CANRXB+i);
54 3 }
55 2 }
C51 COMPILER V6.12 OUT 11/24/2006 12:29:26 PAGE 2
56 1 out(CMR,0x04);
57 1 }
58
59 TDATA()
60 {unsigned char i;
61 1 out (CANTXB,tuf[0]);
62 1 out (TX_1,tuf[1]);
63 1 out (TX_2,tuf[2]);
64 1 if (!(tuf[0]&0x80))
65 1 {
66 2 if(tuf[0]&0x40);
67 2 else
68 2 for(i=0;i<(tuf[0]&0x0F);i++)
69 2 out(TX_3+i,tuf[i+5]);
70 2 }
71 1 else
72 1 {
73 2 out (TX_3,tuf[1]);
74 2 out (TX_4,tuf[2]);
75 2 if(tuf[0]&0x40);
76 2 else
77 2 for(i=0;i<(tuf[0]&0x0F);i++)
78 2 out(TX_DATA1+i,tuf[i+5]);
79 2 }
80 1
81 1 out (CMR,0x01);
82 1
83 1 }
84
85 REC_REMOTE()
86 {
87 1 tuf[0]=0x01;
88 1 tuf[1]=0x00;
89 1 tuf[2]=0x02;
90 1 TDATA();
91 1 out(LED,0x01);
92 1 }
93
94
95 REC_DATA()
96 {if(buf[0]&0x80)
97 1 out(LED,buf[5]);
98 1 else
99 1 out(LED,buf[3]);
100 1 }
101
102
103 ERR()
104 {unsigned char b;
105 1 b=in(SR);
106 1 if(b&0x80)
107 1 {if(b&0x40)
108 2 {while (!(in(MODE)&0x01))
109 3 {out(MODE,(in(MODE)|0x01));
110 4 out(LED,0x55);
111 4 }
112 3 buf[0]=0x0;
113 3 tuf[0]=0x0;
114 3 delay(2);
115 3 while (in(MODE)&0x01)
116 3 {out(MODE,(in(MODE)&0xFE));
117 4 out(LED,0x55);
C51 COMPILER V6.12 OUT 11/24/2006 12:29:26 PAGE 3
118 4 }
119 3 }
120 2 }
121 1 else
122 1 while (in(MODE)&0x01)
123 1 {out(MODE,(in(MODE)&0xFE));
124 2 out(LED,0x55);
125 2 }
126 1 }
127
128 BERR()
129 {while (!(in(MODE)&0x01))
130 1 {out(MODE,(in(MODE)|0x01));
131 2 out(LED,0x55);
132 2 }
133 1 delay(2);
134 1 while (in(MODE)&0x01)
135 1 {out(MODE,(in(MODE)&0xFE));
136 2 out(LED,0x55);
137 2 }
138 1 }
139
140
141 readdata()
142 {unsigned char b;
143 1 P1=0xFF;
144 1 b=P1;
145 1 delay1(0xFF02);
146 1 if(b==P1);
147 1 else
148 1 b=tuf[5];
149 1 return(b);
150 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 582 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
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 + -