📄 1.lst
字号:
C51 COMPILER V7.06 1 11/21/2007 22:33:16 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 1
OBJECT MODULE PLACED IN 1.OBJ
COMPILER INVOKED BY: D:\keil C51_V706完全破解版\安装后\C51\BIN\C51.EXE 1.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2 #define uint unsigned int
3
4 sbit P0_0=P0^0; //左1传感器输入端口初始化
5 sbit P0_1=P0^1; //左2传感器输入端口初始化
6 sbit P0_2=P0^2; //右2传感器输入端口初始化
7 sbit P0_3=P0^3; //右1传感器输入端口初始化
8
9 sbit P0_6=P0^6; //取物传感器输入端口初始化
10
11 sbit P1_0=P1^0; //取物驱动芯片始能端初始化
12 sbit P1_2=P1^2; //out3端口初始化
13 sbit P1_3=P1^3; //out4端口初始化
14
15 sbit P1_6=P1^6; //避障传感器输入端口初始化
16
17 sbit P2_0=P2^0; //寻线驱动芯片始能端初始化
18 sbit P2_1=P2^1; //寻线驱动芯片始能端初始化
19 sbit P2_2=P2^2; //out1端口初始化
20 sbit P2_3=P2^3; //out2端口初始化
21 sbit P2_4=P2^4; //out3端口初始化
22 sbit P2_5=P2^5; //out4端口初始化
23
24 void delay(uint j) //延时子程序
25 {
26 1 uint k;
27 1 for(k=0;k<j;k++);
28 1 }
29
30 void turnleft() //左转子程序
31 {
32 1 P2_0=0;
33 1 P2_1=1;
34 1 P2_2=0;
35 1 P2_3=0;
36 1 P2_4=1;
37 1 P2_5=0;
38 1 }
39
40 void turnright() //右转子程序
41 {
42 1 P2_0=1;
43 1 P2_1=0;
44 1 P2_2=1;
45 1 P2_3=0;
46 1 P2_4=0;
47 1 P2_5=0;
48 1 }
49
50 void go() //直走程序
51 {
52 1 P2_0=1;
53 1 P2_1=1;
54 1 P2_2=1;
55 1 P2_3=0;
C51 COMPILER V7.06 1 11/21/2007 22:33:16 PAGE 2
56 1 P2_4=1;
57 1 P2_5=0;
58 1 }
59
60 void back() //后退子程序
61 {
62 1 P2_0=1;
63 1 P2_1=1;
64 1 P2_2=0;
65 1 P2_3=1;
66 1 P2_4=0;
67 1 P2_5=1;
68 1 }
69
70 void stop() //停止子程序
71 {
72 1 P2_0=0;
73 1 P2_1=0;
74 1 P2_2=0;
75 1 P2_3=0;
76 1 P2_4=0;
77 1 P2_5=0;
78 1 }
79
80 void in() //取物杆收回子程序
81 {
82 1 P1_0=1;
83 1 P1_2=1;
84 1 P1_3=0;
85 1 }
86
87 void out() //取物杆放开子程序
88 {
89 1 P1_0=1;
90 1 P1_2=0;
91 1 P1_3=1;
92 1 }
93
94 void getthing() //取物子程序
95 {
96 1 stop();
97 1
98 1
99 1 in();
100 1 delay(20000);
101 1 delay(15000);
102 1
103 1
104 1 out();
105 1 delay(18000);
106 1 delay(13000);
107 1
108 1
109 1 P1_0=0;
110 1 P1_2=0;
111 1 P1_3=0;
112 1 }
113
114 void alongline() // 寻线程序
115 {
116 1 if(P0_0==1||P0_1==1) //左边传感器检测到白线
117 1 {
C51 COMPILER V7.06 1 11/21/2007 22:33:16 PAGE 3
118 2 turnleft();
119 2 }
120 1 else if(P0_2==1||P0_3==1) //右边传感器检测到白线
121 1 {
122 2 turnright();
123 2 }
124 1 else
125 1 {
126 2 go();
127 2 }
128 1
129 1 }
130
131
132 void arounding() //避障子程序
133 {
134 1 back();
135 1 delay(500000);
136 1 delay(500000);
137 1
138 1 in();
139 1 delay(20000);
140 1 delay(15000);
141 1 P1_0=0;
142 1 P1_2=0;
143 1 P1_3=0;
144 1
145 1
146 1 turnright();
147 1 delay(50000);
148 1 delay(20000);
149 1 delay(20000);
150 1
151 1
152 1
153 1 stop();
154 1 delay(50000);
155 1
156 1 go();
157 1 delay(200000);
158 1
159 1 delay(245000);
160 1
161 1
162 1
163 1 stop();
164 1 delay(50000);
165 1
166 1 turnleft();
167 1 delay(50000);
168 1 delay(25000);
169 1 delay(25000);
170 1
171 1
172 1
173 1 stop();
174 1 delay(50000);
175 1
176 1 go();
177 1 delay(500000);
178 1 delay(500000);
179 1 delay(500000);
C51 COMPILER V7.06 1 11/21/2007 22:33:16 PAGE 4
180 1 delay(500000);
181 1 delay(500000);
182 1 delay(500000);
183 1
184 1
185 1
186 1
187 1 while(1)
188 1 {stop();}
189 1 }
190
191 void main() //主程序
192 {
193 1 TMOD=0x02; //用于T0,工作模式2
194 1 TH0=0x1a;
195 1 TL0=0x1a;
196 1
197 1 EA=1; //开中断
198 1 ET0=1; //允许TF0中断
199 1 TR0=1; //启动关闭控制位
200 1
201 1 while(1)
202 1 {
203 2 if(P0_6==0)
204 2 getthing();
205 2 else if(P1_6==0)
206 2 arounding();
207 2 else
208 2 alongline();
209 2 }
210 1 }
211
212
213
214 void Pwm()interrupt 1 //定时中断调速子程序
215 {
216 1 unsigned int i;
217 1
218 1 P2_0=0;
219 1 P2_1=0;
220 1
221 1 for(i=2;i>0;i--);
222 1
223 1 P2_0=1;
224 1 P2_1=1;
225 1 }
226
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 365 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -