📄 servo.lst
字号:
C51 COMPILER V8.02 SERVO 11/13/2007 14:05:45 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE SERVO
OBJECT MODULE PLACED IN servo.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE servo.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************************
2 标题:多路舵机控制电路C语言版
3 说明:AT8951改变脉冲宽度控制舵机位置(C语言版)
4 作者:kaka000 论坛:http://www.proteus.com.cn
5 日期:2007年11月11日
6 ******************************************************************************/
7
8 /******************************************************************************
9 分辨率:100 (即每增减1等于增减1.8°)
10 常用角度:
11 98=-90°;
12 115=-59.4°;
13 123=-45°;
14 131=-30.6°;
15 148=0°;
16 165=+30.6°;
17 173=+45°;
18 181=+59.4°;
19 198=+90°
20 ******************************************************************************/
21
22 #include"at89x51.h"
23 int i,n;
24 //延时100ms子程序*********************************************************************
25
26 void delay100ms(void)
27 {
28 1 unsigned char i,j;
29 1 for(i=200;i>0;i--)
30 1 for(j=248;j>0;j--);
31 1 }
32
33 //延时0.1s子程序***********************************************************************
34
35 void delay(int t)
36 {
37 1 unsigned char i;
38 1 for(i=t;i>0;i--)
39 1 delay100ms();
40 1 }
41
42 //各舵机转动子函数*******************************************************************
43
44 void P00(int i)
45 {
46 1 P0_0=0;
47 1 P0_0=1;
48 1 for(;i>=0;i--){}
49 1 P0_0=0;
50 1 }
51 void P01(int i)
52 {
53 1 P0_1=0;
54 1 P0_1=1;
55 1 for(;i>=0;i--){}
C51 COMPILER V8.02 SERVO 11/13/2007 14:05:45 PAGE 2
56 1 P0_1=0;
57 1 }
58 void P02(int i)
59 {
60 1 P0_2=0;
61 1 P0_2=1;
62 1 for(;i>=0;i--){}
63 1 P0_2=0;
64 1 }
65 void P03(int i)
66 {
67 1 P0_3=0;
68 1 P0_3=1;
69 1 for(;i>=0;i--){}
70 1 P0_3=0;
71 1 }
72 void P04(int i)
73 {
74 1 P0_4=0;
75 1 P0_4=1;
76 1 for(;i>=0;i--){}
77 1 P0_4=0;
78 1 }
79 void P05(int i)
80 {
81 1 P0_5=0;
82 1 P0_5=1;
83 1 for(;i>=0;i--){}
84 1 P0_5=0;
85 1 }
86 void P06(int i)
87 {
88 1 P0_6=0;
89 1 P0_6=1;
90 1 for(;i>=0;i--){}
91 1 P0_6=0;
92 1 }
93 void P07(int i)
94 {
95 1 P0_7=0;
96 1 P0_7=1;
97 1 for(;i>=0;i--){}
98 1 P0_7=0;
99 1 }
100 void P10(int i)
101 {
102 1 P1_0=0;
103 1 P1_0=1;
104 1 for(;i>=0;i--){}
105 1 P1_0=0;
106 1 }
107 void P11(int i)
108 {
109 1 P1_1=0;
110 1 P1_1=1;
111 1 for(;i>=0;i--){}
112 1 P1_1=0;
113 1 }
114 void P12(int i)
115 {
116 1 P1_2=0;
117 1 P1_2=1;
C51 COMPILER V8.02 SERVO 11/13/2007 14:05:45 PAGE 3
118 1 for(;i>=0;i--){}
119 1 P1_2=0;
120 1 }
121 void P13(int i)
122 {
123 1 P1_3=0;
124 1 P1_3=1;
125 1 for(;i>=0;i--){}
126 1 P1_3=0;
127 1 }
128 void P14(int i)
129 {
130 1 P1_4=0;
131 1 P1_4=1;
132 1 for(;i>=0;i--){}
133 1 P1_4=0;
134 1 }
135 void P15(int i)
136 {
137 1 P1_5=0;
138 1 P1_5=1;
139 1 for(;i>=0;i--){}
140 1 P1_5=0;
141 1 }
142 void P16(int i)
143 {
144 1 P1_6=0;
145 1 P1_6=1;
146 1 for(;i>=0;i--){}
147 1 P1_6=0;
148 1 }
149 void P17(int i)
150 {
151 1 P1_7=0;
152 1 P1_7=1;
153 1 for(;i>=0;i--){}
154 1 P1_7=0;
155 1 }
156
157 void P20(int i)
158 {
159 1 P2_0=0;
160 1 P2_0=1;
161 1 for(;i>=0;i--){}
162 1 P2_0=0;
163 1 }
164 void P21(int i)
165 {
166 1 P2_1=0;
167 1 P2_1=1;
168 1 for(;i>=0;i--){}
169 1 P2_1=0;
170 1 }
171 void P22(int i)
172 {
173 1 P2_2=0;
174 1 P2_2=1;
175 1 for(;i>=0;i--){}
176 1 P2_2=0;
177 1 }
178 void P23(int i)
179 {
C51 COMPILER V8.02 SERVO 11/13/2007 14:05:45 PAGE 4
180 1 P2_3=0;
181 1 P2_3=1;
182 1 for(;i>=0;i--){}
183 1 P2_3=0;
184 1 }
185 void P24(int i)
186 {
187 1 P2_4=0;
188 1 P2_4=1;
189 1 for(;i>=0;i--){}
190 1 P2_4=0;
191 1 }
192 void P25(int i)
193 {
194 1 P2_5=0;
195 1 P2_5=1;
196 1 for(;i>=0;i--){}
197 1 P2_5=0;
198 1 }
199 void P26(int i)
200 {
201 1 P2_6=0;
202 1 P2_6=2;
203 1 for(;i>=0;i--){}
204 1 P2_6=0;
205 1 }
206 void P27(int i)
207 {
208 1 P2_7=0;
209 1 P2_7=1;
210 1 for(;i>=0;i--){}
211 1 P2_7=0;
212 1 }
213 void P30(int i)
214 {
215 1 P3_0=0;
216 1 P3_0=1;
217 1 for(;i>=0;i--){}
218 1 P3_0=0;
219 1 }
220 void P31(int i)
221 {
222 1 P3_1=0;
223 1 P3_1=1;
224 1 for(;i>=0;i--){}
225 1 P3_1=0;
226 1 }
227 void P32(int i)
228 {
229 1 P3_2=0;
230 1 P3_2=1;
231 1 for(;i>=0;i--){}
232 1 P3_2=0;
233 1 }
234 void P33(int i)
235 {
236 1 P3_3=0;
237 1 P3_3=1;
238 1 for(;i>=0;i--){}
239 1 P3_3=0;
240 1 }
241 void P34(int i)
C51 COMPILER V8.02 SERVO 11/13/2007 14:05:45 PAGE 5
242 {
243 1 P3_4=0;
244 1 P3_4=1;
245 1 for(;i>=0;i--){}
246 1 P3_4=0;
247 1 }
248 void P35(int i)
249 {
250 1 P3_5=0;
251 1 P3_5=1;
252 1 for(;i>=0;i--){}
253 1 P3_5=0;
254 1 }
255 void P36(int i)
256 {
257 1 P3_6=0;
258 1 P3_6=3;
259 1 for(;i>=0;i--){}
260 1 P3_6=0;
261 1 }
262 void P37(int i)
263 {
264 1 P3_7=0;
265 1 P3_7=1;
266 1 for(;i>=0;i--){}
267 1 P3_7=0;
268 1 }
269
270 //所有舵机转动子函数*****************************************************************
271 void PALL(int a,int b,int c,int d,int e,int f,int g,int h,int i)
272 {
273 1 P10(a);
274 1 P11(b);
275 1 P12(c);
276 1 P13(d);
277 1 P14(e);
278 1 P15(f);
279 1 P16(g);
280 1 P17(h);
281 1 //可以继续增加到32路!!!!!!P0口要加上拉电阻!?
282 1 P07(i);
283 1 }
284
285 //主函数*****************************************************************************
286 void main(void)
287 {
288 1
289 1 while(1)
290 1 {
291 2
292 2 n=50;
293 2 for(i=148;i<=148+n;i++)
294 2 {
295 3 P07(i);
296 3 delay(2);
297 3 }
298 2 PALL(198,181,165,148,148,131,115,98,98);
299 2 delay(10);
300 2 PALL(198,181,165,148,148,131,115,98,115);
301 2 delay(10);
302 2 PALL(198,181,165,148,148,131,115,98,131);
303 2 delay(10);
C51 COMPILER V8.02 SERVO 11/13/2007 14:05:45 PAGE 6
304 2 PALL(198,181,165,148,148,131,115,98,148);
305 2 delay(10);
306 2 PALL(198,181,165,148,148,131,115,98,148);
307 2 delay(10);
308 2 PALL(198,181,165,148,148,131,115,98,165);
309 2 delay(10);
310 2 PALL(198,181,165,148,148,131,115,98,181);
311 2 delay(10);
312 2 PALL(198,181,165,148,148,131,115,98,198);
313 2 delay(10);
314 2 }
315 1 }
316
317
318
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1169 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 4 18
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 + -