📄 slave.lst
字号:
C51 COMPILER V7.06 SLAVE 12/12/2008 21:09:44 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SLAVE
OBJECT MODULE PLACED IN slave.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE slave.c DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>
2 #include<intrins.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5
6 uchar flag;
7 uint speed;
8 uchar moterflag;
9 uchar a=0;
10
11 sbit moter=P2^3;
12 sbit left=P2^1;
13 sbit right=P2^0;
14 sbit moter2=P2^2;
15
16
17
18
19 void goon()
20 {
21 1 if(moterflag%15)moter=1;//全速前进
22 1 else moter=0;
23 1 left=0;
24 1 right=0;//不转向
25 1 }
26
27 void turnleft()
28 {
29 1 if(moterflag%7) moter=1;//减速前进*/
30 1 else moter=0;
31 1 left=1;
32 1 right=0;//转向
33 1 }
34
35 void turnleftl()
36 {
37 1 if(moterflag%10)moter=1;
38 1 else moter=0;//减速前进
39 1 left=1;
40 1 right=0;//转向
41 1 }
42
43
44
45 void turnright()
46 {
47 1 if(moterflag%7)moter=1;
48 1 else moter=0;//减速前进*/
49 1 left=0;
50 1 right=1;//转向
51 1 }
52
53 void turnrightl()
54 {
55 1 if(moterflag%10)moter=1;
C51 COMPILER V7.06 SLAVE 12/12/2008 21:09:44 PAGE 2
56 1 else moter=0;//减速前进
57 1 left=0;
58 1 right=1;//转向
59 1 }
60 void stop()
61 {
62 1 P2=0x00;
63 1 // EA=0;
64 1 // TI=0;
65 1 // SBUF=0x88;
66 1 // while(!TI);
67 1 // TI=0;
68 1 // EA=1;
69 1
70 1 }
71
72
73 void serchlight()//寻光
74 {
75 1 if(P0&0x07==0x07)//没到黑线就寻光,否则停车
76 1 {
77 2 switch(0x1f&P1)
78 2 {
79 3 case 0x01:turnleft();
80 3 break;
81 3 case 0x02:turnleftl();
82 3 break;
83 3 case 0x04:goon();
84 3 break;
85 3 case 0x08:turnrightl();
86 3 break;
87 3 case 0x10:turnright();
88 3 break;
89 3 case 0x0d:stop();//
90 3 break;
91 3 case 0x01f:stop();//
92 3 break;
93 3 default:goon();
94 3 break;
95 3 }
96 2 }
97 1 else
98 1 {
99 2 ES=0;
100 2 TI=0;
101 2 SBUF=0x88;
102 2 while(!TI);
103 2 TI=0;
104 2 ES=1;
105 2 stop();
106 2 }
107 1 }
108
109
110 void serchline() //寻线
111 {
112 1 uchar i;
113 1 P0=0xff;
114 1 for(i=10;i==0,i--;);
115 1
116 1 switch(0x07&P0)
117 1 {
C51 COMPILER V7.06 SLAVE 12/12/2008 21:09:44 PAGE 3
118 2 case 0x04:
119 2 {
120 3 turnrightl();
121 3 a=0x07&P0;
122 3 }
123 2 break;
124 2 case 0x06:
125 2 {
126 3 turnrightl();
127 3 a=0x07&P0;
128 3 }
129 2 break;
130 2 case 0x05:
131 2 {
132 3 goon();
133 3 }
134 2 break;
135 2 case 0x01:
136 2 {
137 3 turnleftl();
138 3 a=0x07&P0;
139 3 }
140 2 break;
141 2 case 0x03:
142 2 {
143 3 turnleftl();
144 3 a=0x07&P0;
145 3 }
146 2
147 2 break;
148 2 case 0x00:goon();
149 2 break;
150 2
151 2
152 2 case 0x07:
153 2 {
154 3 if(a==0x04)turnright();
155 3 if(a==0x06)turnrightl();
156 3 if(a==0x03)turnleft();
157 3 if(a==0x01)turnleftl();
158 3 if(a==0)goon();
159 3 }
160 2
161 2 break;
162 2
163 2 default:goon();
164 2 break;
165 2 }
166 1 }
167
168
169
170 void supsound() //超声波
171 {
172 1 // goon();
173 1 uchar i;
174 1 // INT1=0;
175 1 // goon();
176 1 // INT1=1;
177 1 // i=0;
178 1 // for(i;i<20;i++);
179 1 // ET0=1;
C51 COMPILER V7.06 SLAVE 12/12/2008 21:09:44 PAGE 4
180 1 // i=0;
181 1 // for(i;i<255;i++);
182 1 // ET0=0;
183 1 // P1=0xff;
184 1 i=0;
185 1 for(i;i<10;i++);
186 1 if(0x1f&P1)flag=0x44;
187 1 else turnrightl();
188 1 }
189
190
191
192
193
194 void main()
195 {
196 1 TMOD=0x21;
197 1
198 1 TH0=(1000)/256;
199 1 TL0=(1000)%256;
200 1 TH1=0xfd;
201 1 TL1=0xfd;
202 1
203 1 // SM0=1;
204 1 // SM1=0;
205 1
206 1 SCON=0x50;
207 1 PCON=0;
208 1 IT0=1;
209 1 PS=1;
210 1 // PT0=1;
211 1 // PX0=1;
212 1 EA=1;
213 1 // ET1=1;
214 1 ET0=1;
215 1 ES=1;
216 1 // EX0=1;
217 1
218 1 TI=0;
219 1 RI=0;
220 1
221 1 TR1=1;
222 1 TR0=1;
223 1
224 1 flag=0x11;
225 1 moter=0;
226 1 moter2=0;
227 1 speed=60000;
228 1 //a=0x05;
229 1 while(1)
230 1 {
231 2 // uchar x;
232 2 //for(x=500;x>0;x--)goon();
233 2 switch(flag)
234 2 {
235 3 case 0x11: serchline();
236 3 break;
237 3 case 0x22: supsound();
238 3 break;
239 3 case 0x44:serchlight();
240 3 break;
241 3 case 0x88: stop();
C51 COMPILER V7.06 SLAVE 12/12/2008 21:09:44 PAGE 5
242 3 break;
243 3 // default:goon();
244 3 // break;
245 3 }
246 2 }
247 1 }
248
249
250 void timer0int() interrupt 1
251 {
252 1 TR0=0;
253 1 TH0=(speed)/256;
254 1 TL0=(speed)%256;
255 1 moterflag++;
256 1 TR0=1;
257 1
258 1 }
259
260 void int0() interrupt 0
261 {
262 1 // turnleft();
263 1 _nop_();
264 1 _nop_();
265 1 _nop_();
266 1 _nop_();
267 1 _nop_();
268 1 _nop_();
269 1 _nop_();
270 1 // _nop_();
271 1 if(INT0)turnleft();
272 1
273 1 }
274
275 void uartint() interrupt 4
276 {
277 1 // RI=0;
278 1 uchar i;
279 1 ES=0;
280 1 flag=SBUF;
281 1 for(i=10;i>0;i--);
282 1
283 1
284 1 // SBUF=flag;
285 1 //SBUF=0x55;
286 1 // while(!TI);
287 1 TI=0;
288 1 RI=0;
289 1 ES=1;
290 1 }
291
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 481 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
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 + -