📄 main.lst
字号:
241 {
C51 COMPILER V8.16 MAIN 12/27/2008 15:34:42 PAGE 5
242 1 if(RXD1 == 1)
243 1 {
244 2 COM1_OK = 0;
245 2 PCA0CPM0 = 0x31; //开捕捉中断
246 2 }
247 1 else
248 1 {
249 2 if(COM1_OK == 0)
250 2 {
251 3 os_wait( K_TMO,20,0); //延迟约20MS后,判断RXD是否恢复为高电平
252 3 if(RXD1 == 1)
253 3 {
254 4 COM1_OK = 0; //通道1正常
255 4 PCA0CPM0 = 0x31;
256 4 }
257 3 else
258 3 {
259 4 TXD_BUS = 1;
260 4 COM1_OK = 1; //通道1不正常
261 4 PCA0CPM0 = 0x30; //禁止PCA捕捉模块0中断产生
262 4 TXD_BUS = 1;
263 4 P2 = 0xff;
264 4 }
265 3 }
266 2 }
267 1 }
268 /***************************************************************************
269 函数名称:ComDisplay()
270 简要描述:RXD通道运行状态显示,COMn_OK = 0正常,1不正常
271 输入: 无
272 输出: 无
273 修改日志:
274 ***************************************************************************/
275 void Com2Display()
276 {
277 1 if(RXD2 == 1)
278 1 {
279 2 COM2_OK = 0;
280 2 PCA0CPM1 = 0x31; //开捕捉中断
281 2 }
282 1 else
283 1 {
284 2 if(COM2_OK == 0)
285 2 {
286 3 os_wait( K_TMO,20,0);
287 3 if(RXD2 == 1)
288 3 {
289 4 COM2_OK = 0;
290 4 PCA0CPM1 = 0x31;
291 4 }
292 3 else
293 3 {
294 4 TXD_BUS = 1;
295 4 COM2_OK = 1;
296 4 PCA0CPM1 = 0x30; //禁止PCA捕捉模块1中断产生
297 4 TXD_BUS = 1;
298 4 P2 = 0xff;
299 4 }
300 3 }
301 2 }
302 1 }
303 /***************************************************************************
C51 COMPILER V8.16 MAIN 12/27/2008 15:34:42 PAGE 6
304 函数名称:ComDisplay()
305 简要描述:RXD通道运行状态显示,COMn_OK = 0正常,1不正常
306 输入: 无
307 输出: 无
308 修改日志:
309 ***************************************************************************/
310 void Com3Display()
311 {
312 1 if(RXD3 == 1)
313 1 {
314 2 COM3_OK = 0;
315 2 PCA0CPM2 = 0x31;
316 2 }
317 1 else
318 1 {
319 2 if(COM3_OK == 0)
320 2 {
321 3 os_wait( K_TMO,20,0);
322 3 if(RXD3 == 1)
323 3 {
324 4 COM3_OK = 0;
325 4 PCA0CPM2 = 0x31;
326 4 }
327 3 else
328 3 {
329 4 TXD_BUS = 1;
330 4 COM3_OK = 1;
331 4 PCA0CPM2 = 0x30; //禁止PCA捕捉模块2中断产生
332 4 TXD_BUS = 1;
333 4 P2 = 0xff;
334 4 }
335 3 }
336 2 }
337 1 }
338 /***************************************************************************
339 函数名称:ComDisplay()
340 简要描述:RXD通道运行状态显示,COMn_OK = 0正常,1不正常
341 输入: 无
342 输出: 无
343 修改日志:
344 ***************************************************************************/
345 void Com4Display()
346 {
347 1 if(RXD4 == 1)
348 1 {
349 2 COM4_OK = 0;
350 2 PCA0CPM3 = 0x31;
351 2 }
352 1 else
353 1 {
354 2 if(COM4_OK == 0)
355 2 {
356 3 os_wait( K_TMO,20,0);
357 3 if(RXD4 == 1)
358 3 {
359 4 COM4_OK = 0;
360 4 PCA0CPM3 = 0x31; //开捕捉中断
361 4 }
362 3 else
363 3 {
364 4 TXD_BUS = 1;
365 4 COM4_OK = 1;
C51 COMPILER V8.16 MAIN 12/27/2008 15:34:42 PAGE 7
366 4 PCA0CPM3 = 0x30; //禁止PCA捕捉模块3中断产生
367 4 TXD_BUS = 1;
368 4 P2 = 0xff;
369 4 }
370 3 }
371 2 }
372 1 }
373 /***************************************************************************
374 函数名称:ComDisplay()
375 简要描述:RXD通道运行状态显示,COMn_OK = 0正常,1不正常
376 输入: 无
377 输出: 无
378 修改日志:
379 ***************************************************************************/
380 void Com5Display()
381 {
382 1 if(RXD5 == 1)
383 1 {
384 2 COM5_OK = 0;
385 2 PCA0CPM4 = 0x31;
386 2 }
387 1 else
388 1 {
389 2 if(COM5_OK == 0)
390 2 {
391 3 os_wait( K_TMO,20,0);
392 3 if(RXD5 == 1)
393 3 {
394 4 PCA0CPM4 = 0x31;
395 4 COM5_OK = 0;
396 4 }
397 3 else
398 3 {
399 4 TXD_BUS = 1;
400 4 COM5_OK = 1;
401 4 PCA0CPM4 = 0x30; //禁止PCA捕捉模块4中断产生
402 4 TXD_BUS = 1;
403 4 P2 = 0xff;
404 4 }
405 3 }
406 2 }
407 1 }
408 /***************************************************************************
409 函数名称:Task0()
410 简要描述:任务0,初始化,建立任务1,2
411 输入: 无
412 输出: 无
413 修改日志:
414 ***************************************************************************/
415 void Task0() _task_ 0
416 {
417 1 EA=0;
418 1 Init_Device();
419 1 EA = 1;
420 1 os_create_task(1);
421 1 os_create_task(2);
422 1 os_create_task(3);
423 1 os_create_task(4);
424 1 os_create_task(5);
425 1 os_create_task(6);
426 1 os_delete_task(0);
427 1 }
C51 COMPILER V8.16 MAIN 12/27/2008 15:34:42 PAGE 8
428 /*******************任务1 通道状态灯显示****************************/
429 void Task1() _task_ 1
430 { while(1)
431 1 {
432 2 Com1Display();
433 2 }
434 1 }
435 /*******************任务2 通道状态灯显示****************************/
436 void Task2() _task_ 2
437 { while(1)
438 1 {
439 2 Com2Display();
440 2 }
441 1 }
442 /*******************任务3 通道状态灯显示****************************/
443 void Task3() _task_ 3
444 { while(1)
445 1 {
446 2 Com3Display();
447 2 }
448 1 }
449 /*******************任务4 通道状态灯显示****************************/
450 void Task4() _task_ 4
451 { while(1)
452 1 {
453 2 Com4Display();
454 2 }
455 1 }
456 /*******************任务5 通道状态灯显示****************************/
457 void Task5() _task_ 5
458 { while(1)
459 1 {
460 2 Com5Display();
461 2 }
462 1 }
463 /*******************任务6 系统状态灯显示****************************/
464 void Task6() _task_ 6
465 {
466 1 while(1)
467 1 {
468 2 os_wait( K_TMO,500,0); //延时500MS
469 2 SYS_RUNNING = ~SYS_RUNNING;
470 2 }
471 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 516 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 2
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 + -