📄 test.lst
字号:
297 1
298 1
299 1
300 1
301 1
302 1
C51 COMPILER V7.06 TEST 12/14/2006 14:53:22 PAGE 6
303 1 }
304
305 //定时器0中断程序
306 void Timer0_int( void ) interrupt 1
307 { static unsigned char c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17; //计数用
308 1 TR0=0;
309 1 if( Count >= 7 )
310 1 { SEND();
311 2 flash=!flash; //快闪信号
312 2 Count = 0;
313 2 }
314 1 else Count++;
315 1
316 1 if( Count1 >= 15 )
317 1 {
318 2 flashs=!flashs; //慢闪信号
319 2 Count1 = 0;
320 2 }
321 1 else Count1++;
322 1
323 1
324 1 if( Count == 7 )
325 1 send_422();
326 1
327 1
328 1
329 1
330 1
331 1
332 1 ReadData();
333 1 if(as1) //按钮1
334 1 { c1++;
335 2 if(c1>4)
336 2 {ass1=1;c1=0;}
337 2 }
338 1 else
339 1 {ass1=0;c1=0;dis1=0;}
340 1
341 1 if(as2) //按钮2
342 1 { c2++;
343 2 if(c2>4)
344 2 {ass2=1;c2=0;}
345 2 }
346 1 else
347 1 {ass2=0;c2=0;dis2=0;}
348 1
349 1 if(as3) //按钮3
350 1 { c3++;
351 2 if(c3>4)
352 2 {ass3=1;c3=0;}
353 2 }
354 1 else
355 1 {ass3=0;c3=0;dis3=0;}
356 1
357 1
358 1 if(as4) //按钮4
359 1 { c4++;
360 2 if(c4>4)
361 2 {ass4=1;c4=0;}
362 2 }
363 1 else
364 1 {ass4=0;c4=0;dis4=0;}
C51 COMPILER V7.06 TEST 12/14/2006 14:53:22 PAGE 7
365 1
366 1 if(as5) //按钮5
367 1 { c5++;
368 2 if(c5>4)
369 2 {ass5=1;c5=0;}
370 2 }
371 1 else
372 1 {ass5=0;c5=0;dis5=0;}
373 1
374 1
375 1 if(as6) //按钮6
376 1 { c6++;
377 2 if(c6>4)
378 2 {ass6=1;c6=0;}
379 2 }
380 1 else
381 1 {ass6=0;c6=0;dis6=0;}
382 1
383 1
384 1
385 1 if(as7) //按钮7
386 1 { c7++;
387 2 if(c7>4)
388 2 {ass7=1;c7=0;}
389 2 }
390 1 else
391 1 {ass7=0;c7=0;dis7=0;}
392 1
393 1 if(as8) //按钮8
394 1 { c8++;
395 2 if(c8>4)
396 2 {ass8=1;c8=0;}
397 2 }
398 1 else
399 1 {ass8=0;c8=0;dis8=0;}
400 1
401 1
402 1 if(ls1) //指示灯1
403 1 { c9++;
404 2 if(c9>4)
405 2 {lss1=1;c9=0;}
406 2 }
407 1 else
408 1 {lss1=0;c9=0;}
409 1
410 1 if(ls2) //指示灯2
411 1 { c10++;
412 2 if(c10>4)
413 2 {lss2=1;c10=0;}
414 2 }
415 1 else
416 1 {lss2=0;c10=0;}
417 1
418 1 if(ls3) //指示灯3
419 1 { c11++;
420 2 if(c11>4)
421 2 {lss3=1;c11=0;}
422 2 }
423 1 else
424 1 {lss3=0;c11=0;}
425 1
426 1 if(ls4) //指示灯4
C51 COMPILER V7.06 TEST 12/14/2006 14:53:22 PAGE 8
427 1 { c12++;
428 2 if(c12>4)
429 2 {lss4=1;c12=0;}
430 2 }
431 1 else
432 1 {lss4=0;c12=0;}
433 1
434 1 if(ls5) //指示灯5
435 1 { c13++;
436 2 if(c13>4)
437 2 {lss5=1;c13=0;}
438 2 }
439 1 else
440 1 {lss5=0;c13=0;}
441 1
442 1 if(ls6) //指示灯6
443 1 { c14++;
444 2 if(c14>4)
445 2 {lss6=1;c14=0;}
446 2 }
447 1 else
448 1 {lss6=0;c14=0;}
449 1
450 1 if(ls7) //指示灯7
451 1 { c15++;
452 2 if(c15>4)
453 2 {lss7=1;c15=0;}
454 2 }
455 1 else
456 1 {lss7=0;c15=0;}
457 1
458 1 if(ls8) //指示灯8
459 1 { c16++;
460 2 if(c16>4)
461 2 {lss8=1;c16=0;}
462 2 }
463 1 else
464 1 {lss8=0;c16=0;}
465 1
466 1
467 1 if(!mute)
468 1 {dis1=ass1;
469 2 dis2=ass2;
470 2 dis3=ass3;
471 2 dis4=ass4;
472 2 dis5=ass5;
473 2 dis6=ass6;
474 2 dis7=ass7;
475 2 dis8=ass8;
476 2
477 2 }
478 1
479 1 if(astate!=(lstate|diss)) //蜂鸣器
480 1 {c17++;
481 2 if(c17>2)
482 2 {ha=flash;c17=3;bell=0;}
483 2 }
484 1 else
485 1 {ha=1;bell=1;c17=0;}
486 1
487 1 TR0=1;
488 1
C51 COMPILER V7.06 TEST 12/14/2006 14:53:22 PAGE 9
489 1 }
490
491
492 /* CAN总线中断子程序 */
493 void CANInt(void) interrupt 0
494 {
495 1 /*从SJA1000 读中断寄存器的内容并临时保存所有中断标志被清除在PeliCAN 模式里
496 1 接收中断RI 被首先清除当给出释放缓冲器命令时*/
497 1
498 1 ET0 = DISABLE; /* 定时器0 中断禁能 */
499 1 CANInterrupt = InterruptReg;
500 1 CANState = StatusReg;
501 1
502 1 if(BEI_BitVar )
503 1 InitSJA();
504 1
505 1
506 1 /* 错误中断处理 */
507 1 if(EI_BitVar == YES)
508 1 {
509 2 if((ModeControlReg&RM_RR_Bit) != ClrByte)
510 2 {
511 3 ModeControlReg = ClrByte; /* 进入工作模式 */
512 3 InterruptEnReg = RIE_Bit|EIE_Bit|DOIE_Bit; /*SJA1000 的接收中断使能 */
513 3 /*SJA1000 的错误中断使能 */
514 3 /*SJA1000 的溢出中断使能 */
515 3 }
516 2 }
517 1
518 1 /*检查接收中断和读一个或所有接收到的信息 */
519 1 if(RI_BitVar == YES) /*检测到接收中断 */
520 1 { /*从SJA1000 得到接收缓冲器的内容并将它存入控制器的内部存储器*/
521 2 RXDData[0]=RxBuffer5;
522 2 RXDData[1]=RxBuffer6;
523 2 RXDData[2]=RxBuffer7;
524 2 RXDData[3]=RxBuffer8;
525 2 RXDData[4]=RxBuffer9;
526 2 RXDData[5]=RxBuffer10;
527 2 RXDData[6]=RxBuffer11;
528 2 RXDData[7]=RxBuffer12;
529 2 CommandReg = RRB_Bit; /* 释放接收缓冲器 */
530 2 }
531 1
532 1 if(DOI_BitVar == YES ) /* 检查数据是否溢出 */
533 1 {
534 2 CommandReg = CDO_Bit; /* 发清除数据溢出命令 */
535 2 }
536 1
537 1 ET0 = ENABLE; /* 定时器0 中断使能 */
538 1 }
539
540
541
542
543
544
545
546 void main( void )
547 {
548 1 InitSYS();
549 1 InitSJA();
550 1 while( 1 )
C51 COMPILER V7.06 TEST 12/14/2006 14:53:22 PAGE 10
551 1 {
552 2 FramID[0] = 0x04; //帧ID
553 2 FramID[1] = 0xb1;
554 2 FramID[2] = 0xc0;
555 2 FramID[3] = 0x00;
556 2
557 2 TXDData[0] = 0xff-lstate; //发送的数据
558 2 TXDData[1] = 0xff-astate;
559 2 TXDData[2] = 0x00;
560 2 TXDData[3] = 0x00;
561 2 TXDData[4] = 0x00;
562 2 TXDData[5] = 0x00;
563 2 TXDData[6] = 0x00;
564 2 TXDData[7] = 0x00;
565 2
566 2
567 2
568 2
569 2 led1=!ass1|(!lss1&((flash&!dis1)|(flashs&dis1)));
570 2 led2=!ass2|(!lss2&((flash&!dis2)|(flashs&dis2)));
571 2 led3=!ass3|(!lss3&((flash&!dis3)|(flashs&dis3)));
572 2 led4=!ass4|(!lss4&((flash&!dis4)|(flashs&dis4)));
573 2 led5=!ass5|(!lss5&((flash&!dis5)|(flashs&dis5)));
574 2 led6=!ass6|(!lss6&((flash&!dis6)|(flashs&dis6)));
575 2 led7=!ass7|(!lss7&((flash&!dis7)|(flashs&dis7)));
576 2 led8=!ass8|(!lss8&((flash&!dis8)|(flashs&dis8)));
577 2
578 2 }
579 1
580 1 }
581
582
583
584
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1467 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 77 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -