📄 main.lst
字号:
172 1 {
173 1 OLT9=0;
174 1 }//正方向 转
175 1 else
176 1 {
177 1 if(pwm4<PWM100) //关断时间 9-10
178 1 {
179 1 OLT9=1;
C51 COMPILER V7.20 MAIN 10/13/2008 13:13:43 PAGE 4
180 1 }//停
181 1 else
182 1 { pwm4=0; }
183 1 }
184 1 pwm4++;
185 1 }
186 1 else {
187 1 OLT9=1;
188 1 } //停
189 1
190 1 if(cardlamp)
191 1 {
192 1 if(pwm3<=PWM50)//导通时间 1-8
193 1 {
194 1 OLTA=0;
195 1 }//正方向 转
196 1 else
197 1 {
198 1 if(pwm3<PWM100) //关断时间 9-10
199 1 {
200 1 OLTA=1;
201 1 }//停
202 1 else
203 1 { pwm3=0; }
204 1 }
205 1 pwm3++;
206 1 }
207 1 else {
208 1 OLTA=1;
209 1 } //停
210 1 */
211 1 XBYTE[0x1000] = outputByte2; //公用
212 1
213 1 RCAP2H=LD_T2H;
214 1 RCAP2L=LD_T2L;
215 1
216 1 TR2=1; //开始定时
217 1 }
218
219 /////////////////////////////
220 //名称: timerSet
221 //功能: 设置定时器2
222 //输入: ms,定时时间,毫秒 1ms 最小单位
223 //输出: 定时时间到时,
224 ///////////////////////
225 /*void timerSet(uchar ms)
226 {
227 TR2=0; // 停止定时器
228 timerOver = 0;
229 timeCounter = ms;
230 TR2=1; // 重新启动定时器
231 }*/
232 /////////////////////////////
233 //名称: setTimer
234 //功能: 设置定时器
235 //输入: ms,定时时间,毫秒 10ms 最小单位
236 //输出: 定时时间到时,输出TF0
237 ///////////////////////
238 void setTimer(WORD ms)
239 {
240 1 TR0=0; // 停止定时器
241 1 timerHap = 0;
C51 COMPILER V7.20 MAIN 10/13/2008 13:13:43 PAGE 5
242 1 counter = ms/10;
243 1 //TF0=0; //清除标志位
244 1 TR0=1; // 重新启动定时器
245 1 }
246
247 main()
248 {
249 1 INIT_TIME2(); //first
250 1 //releaseAllMotor(); //锁住所有电机
251 1 init_serialcom();
252 1 INIT_TIME0();
253 1 // send_string_com(STAOUT,LENGTH);//发送 for test
254 1 while(1)
255 1 {
256 2 P2_0=!P2_0; //喂狗
257 2
258 2 switch(workState)
259 2 {
260 3 case HALT_STATUS:
261 3 if(RECE_flag) //1/ 如果有新数据 //pass
262 3 {
263 4 workState=EXEC_STATUS;
264 4 }
265 3 break;
266 3
267 3 case EXEC_STATUS: //执行报文
268 3 if(RECE_flag) //1/ 如果有新数据 //pass
269 3 {
270 4 execCommand();
271 4 RECE_flag=0;
272 4 }
273 3 break;
274 3
275 3
276 3 default:
277 3 break;
278 3 }
279 2
280 2 }//while end
281 1 }//main end
282
283 /**********************************************************************
284 ** 函数名称: serial_recive //pass
285 ** 功能描述: 串口接收中断函数接收一个字符串
286 ** 输 入: 无
287 ** 输 出: 无
288 ** 全局变量: count: 接收字符个数统计变量
289 inbuf1[LENGHT] 数据接收缓冲区
290 LENGHT 接收数据总长度
291 RECE_flag 接收标志位
292 ** 调用模块: 无
293 ***********************************************************************/
294 void serial_recive () interrupt 4
295 {
296 1 if(RI)
297 1 {
298 2 unsigned char ch;
299 2 RI = 0;
300 2 ch=SBUF;
301 2 if(first_DLE==0)
302 2 {
303 3 if(ch==DLE) //
C51 COMPILER V7.20 MAIN 10/13/2008 13:13:43 PAGE 6
304 3 {
305 4 first_DLE=1;
306 4 //丢掉 ch
307 4 }
308 3 else //(ch!=0x10)
309 3 {
310 4 if(ch==ETX)// 03 03 未处理
311 4 {
312 5 CMDIN[count++]=ch;
313 5 RECE_flag=1; //表示已经完成一次完整接收
314 5 IN_LENGTH=count; //接收到数据的总长度
315 5 count=0;
316 5 }
317 4 else
318 4 {
319 5 CMDIN[count++]=ch;
320 5 }
321 4 first_DLE=0;
322 4 }
323 3 }
324 2
325 2 else //first_DLE==1
326 2 {
327 3 // if(ch==DLE||ch==ETX||ch==STX) //
328 3 // {}//
329 3 // else {} //
330 3 CMDIN[count++]=ch;
331 3 first_DLE=0;
332 3 }
333 2 }
334 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 341 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 47 1
IDATA SIZE = ---- ----
BIT SIZE = 7 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -