📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 04/26/2004 11:35:46 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil1\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 ///////////////////////////////
2 //main()//
3 ////////////////////////////////
4 #include "mydefine.h"
5 #include "intrins.h"
6 #define WaitTime 60
7 bdata unsigned char State;
8 //bit State_0,State_1,State_2,State_3;
9 sbit State_0 = State^0;
10 sbit State_1 = State^1;
11 sbit State_2 = State^2;
12 sbit State_3 = State^3;
13 unsigned int SpeedRight = 4,SpeedLeft = 4;
14 unsigned int OldSpeedRight ,OldSpeedLeft ;
15 //bdata unsigned int PWM_0,PWM_1;
16 data unsigned int pwm[16]=
17 {0x0000,// pwm[0] = 0x0000; //0000 0000 0000 0000
18 0x0001,// pwm[1] = 0x0001; //0000 0000 0000 0001
19 0x0101,// pwm[2] = 0x0101; //0000 0001 0000 0001
20 0x0821,// pwm[3] = 0x0821; //0000 1000 0010 0001
21 0x1111,// pwm[4] = 0x1111; //0001 0001 0001 0001
22 0x2245,// pwm[5] = 0x2245; //0010 0010 0100 1001
23 0x2525,// pwm[6] = 0x2525; //0010 0101 0010 0101
24 0x52aa,// pwm[7] = 0x52aa; //0101 0010 1010 1010
25 0x5555,// pwm[8] = 0x5555; //0101 0101 0101 0101
26 0xad55,// pwm[9] = 0xad55; //1010 1101 0101 0101
27 0xdada,// pwm[10] = 0xdada; //1101 1010 1101 1010
28 0xddb6,// pwm[11] = 0xddb6; //1101 1101 1011 0110
29 0xeeee,// pwm[12] = 0xeeee; //1110 1110 1110 1110
30 0xf7de,// pwm[13] = 0xf7de; //1111 0111 1101 1110
31 0xfefe,// pwm[14] = 0xfefe; //1111 1110 1111 1110
32 // 0xfffe,// pwm[15] = 0xfffe; //1111 1111 1111 1110
33 0xffff};// pwm[15] = 0xffff; //1111 1111 1111 1111
34 bdata unsigned char OldState,OtherState;
35 unsigned int flag;
36 void main(void)
37 {
38 1
39 1 Initialize();
40 1 State = 0x00;
41 1 OldState = State;
42 1 DirectionLeft = 0;
43 1 DirectionRight = 0;
44 1 OldSpeedLeft = SpeedLeft;
45 1 OldSpeedRight = SpeedRight;
46 1 SpeedLeft = 15;
47 1 SpeedRight = 15;
48 1 // Delay(5000);
49 1
50 1 Run();
51 1 while(1)
52 1 {
53 2 DirectionRight = 0;
54 2 DirectionLeft = 0;
55 2 Run();
C51 COMPILER V7.06 MAIN 04/26/2004 11:35:46 PAGE 2
56 2 Run_at(12,Right);
57 2 Run_at(12,Left);
58 2 Delay(5000);
59 2 Stop();
60 2 // Delay(500);
61 2 // DirectionRight = 0;
62 2 // DirectionLeft = 0;
63 2 // Run();
64 2 // Run_at(5,Right);
65 2 // Run_at(5,Left);
66 2 Delay(5000);
67 2
68 2 DirectionRight = 1;
69 2 DirectionLeft = 1;
70 2 Run();
71 2 Run_at(10,Right);
72 2 Run_at(10,Left);
73 2 Delay(5000);
74 2 Stop();
75 2 Delay(5000);
76 2
77 2
78 2 }
79 1
80 1 }//end of main()
81
82
83
84
85
86 void Initialize (void)
87 {
88 1 P3 = 0xff; /*speed-up pull-ups*/
89 1 P1_6 = 0;
90 1
91 1 P1 = 0xff;
92 1
93 1 /* Timer0 Initialize */
94 1 TMOD = 0x01;
95 1 TH0 = 0xfe;
96 1 TL0 = 0xd4;
97 1 ET0 = 0;
98 1 TR0 = 0;
99 1 /* Timer1 Initialize */
100 1 /* Timer2 Initialize */
101 1
102 1 /* Out0 Initialize */
103 1
104 1 /* Out1 Initialize */
105 1
106 1 /* ALL interrupt */
107 1 EA = 1;
108 1
109 1 }
110
111
112 void Delay(unsigned int time) //time /ms
113 {unsigned int i;
114 1 register unsigned char j;
115 1 time*=2;
116 1 for (i=0;i<time;i++)
117 1 {_nop_ ();
C51 COMPILER V7.06 MAIN 04/26/2004 11:35:46 PAGE 3
118 2 for (j=0;j<197;j++)
119 2 {_nop_ ();
120 3 _nop_ ();
121 3 }
122 2 }
123 1 }
124
125
126 void Run()
127 {
128 1 _nop_();
129 1 _nop_();
130 1 PWM_0 = pwm[SpeedLeft];
131 1 PWM_1 = pwm[SpeedRight];
132 1 DriveLeftMo1 = 0;
133 1 DriveLeftMo2 =0;
134 1 DriveRightMo1 =0;
135 1 DriveRightMo2 =0;
136 1 ET0 = 1; //Timer 0 open
137 1 TR0 = 1; //Timer 0 begins
138 1 _nop_();
139 1 _nop_();
140 1 }
141
142 void Run_at(unsigned int Speed,bit Motor)
143 {
144 1 if(Motor==1)
145 1 { OldSpeedLeft = SpeedLeft;
146 2 SpeedLeft =Speed;
147 2 }
148 1 else
149 1 { OldSpeedRight = SpeedRight;
150 2 SpeedRight =Speed;
151 2 }
152 1 Run_in();
153 1 }
154
155 void Run_in()
156 { if(SpeedLeft!=OldSpeedLeft)
157 1 PWM_0 = pwm[SpeedLeft];
158 1 if(SpeedRight!=OldSpeedRight)
159 1 PWM_1 = pwm[SpeedRight];
160 1 _nop_();
161 1 _nop_();
162 1 }
163
164
165 void Stop()
166 {
167 1 DriveLeftMo1 = 0;
168 1 DriveLeftMo2 = 0;
169 1 DriveRightMo1 = 0;
170 1 DriveRightMo2 = 0;
171 1 TR0 = 0;
172 1 ET0 = 0;
173 1 TF0 = 0;
174 1 _nop_();
175 1 _nop_();
176 1 }
177
178
179 void SpeedUp(unsigned int Delta,bit Motor)
C51 COMPILER V7.06 MAIN 04/26/2004 11:35:46 PAGE 4
180 { int x,y;
181 1 x = SpeedLeft + Delta;
182 1 y = SpeedRight + Delta;
183 1 if(Motor==1)
184 1 { OldSpeedLeft = SpeedLeft;
185 2 if(x<=15)
186 2 {SpeedLeft +=Delta;}
187 2 }
188 1 else
189 1 { OldSpeedRight = SpeedRight;
190 2 if(y<=15)
191 2 {SpeedRight +=Delta; }
192 2 }
193 1
194 1
195 1 Run_in();
196 1 _nop_();
197 1 _nop_();
198 1 }
199
200
201 void SpeedDown(unsigned int Delta,bit Motor)
202 {
203 1 int x,y;
204 1
205 1 x = SpeedLeft - Delta;
206 1 y = SpeedRight - Delta;
207 1 if(Motor==1)
208 1 {OldSpeedLeft = SpeedLeft;
209 2 if(x>=1)
210 2 {SpeedLeft -=Delta;}
211 2 }
212 1 else
213 1 {OldSpeedRight = SpeedRight;
214 2 if(y>=1)
215 2 {SpeedRight -=Delta;}
216 2 }
217 1
218 1 Run_in();
219 1 _nop_();
220 1 _nop_();
221 1 }
222
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 479 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 45 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -