📄 main.lst
字号:
398 4 }
399 3
400 3 cKeyCodeReceiveState=0;
401 3 while(!cKeyCodeReceiveState) //读码等待
402 3 {
403 4 _nop_();
404 4 }
405 3 x=0;
406 3 x=cKeyCodeReceive;
407 3
408 3 while(!cKeyCodeReceiveState) //读码等待
409 3 {
410 4 _nop_();
411 4 }
412 3 x+=(cKeyCodeReceive<<8);
413 3 cKeyCodeReceiveState=0; //取走键盘码
414 3
415 3 WdtCls();
416 3 switch(x)
417 3 {
418 4 case 0x0200: //光圈开
419 4 TxdString(IRISOPEN);
420 4 break;
421 4 case 0x0400: //光圈关
422 4 TxdString(IRISCLOSE);
423 4 break;
424 4 case 0x0100: //焦距拉近
425 4 TxdString(FOCUSNEAR);
426 4 break;
427 4 case 0x0080: //焦距拉远
C51 COMPILER V8.01 MAIN 01/09/2009 17:53:57 PAGE 8
428 4 TxdString(FOCUSFAR);
429 4 break;
430 4 case 0x0040: //视角宽
431 4 TxdString(ZOOMWIDE);
432 4 break;
433 4 case 0x0020: //视角窄
434 4 TxdString(ZOOMTELE);
435 4 break;
436 4 case 0x0008: //向上
437 4 TxdString(UP);
438 4 break;
439 4 case 0x0010: //向下
440 4 TxdString(DOWN);
441 4 break;
442 4 case 0x0004: //向左
443 4 TxdString(LEFT);
444 4 break;
445 4 case 0x0002: //向右
446 4 TxdString(RIGHT);
447 4 break;
448 4 case 0: //结束所有运动 标准的
449 4 TxdString(STOP);
450 4 break;
451 4 default :break;
452 4 }
453 3
454 3 } //end case while rotate
455 2 break; //finish case
456 2
457 2
458 2
459 2
460 2 } //switch cProtocol end
461 1
462 1 } //end main
*** WARNING C280 IN LINE 133 OF MAIN.C: 'y': unreferenced local variable
463
464
465
466
467
468
469
470 void receive_send(void) interrupt SIO_VECTOR
471 {
472 1
473 1 switch((char)RI)
474 1 {
475 2 case 1:
476 2
477 2 RI=0;
478 2 cKeyCodeReceiveState=1; //有接收时就置位 然后在主程序中清除
479 2 cKeyCodeReceive=SBUF;
480 2 break;
481 2
482 2 case 0:
483 2 TI=0;
484 2 if(flagTxd==0xff)
485 2 {
486 3 SBUF=(unsigned char)(comTxd>>countTxd);
487 3 countTxd+=8;
488 3 if(countTxd==16)
C51 COMPILER V8.01 MAIN 01/09/2009 17:53:57 PAGE 9
489 3 flagTxd=0xee;
490 3 }
491 2 break;
492 2 }
493 1 }
494
495
496 void UpLim(void) interrupt IE0_VECTOR //上下方向
497 {
498 1 ET0=0;
499 1 }
500
501 void DownLim(void) interrupt IE1_VECTOR
502
503 {
504 1 ET0=1;
505 1 }
506
507 void HorizonalOrigin(void) interrupt IE2_VECTOR //水平方向
508 {
509 1 T2Stop();
510 1 hAbsolutionPosition=0;
511 1 }
512
513
514
515 void verticalmotor(void) interrupt TF0_VECTOR
516 {
517 1 static unsigned char currentCount=0;
518 1 static unsigned char accDecCount=0;
519 1 TL0=-250;
520 1
521 1 // if(!vSoftTimer0++)
522 1 {
523 2 switch(vRotationManner)
524 2 {
525 3 default:break;
526 3 case FREEMOTION:
527 3 {
528 4 switch(vOrientFlag)
529 4 {
530 5 default:break;
531 5 case 1:
532 5 {
533 6 switch(vaccDecFlag)
534 6 {
535 7 default :break;
536 7 case ACCELERATION:
537 7 if(currentCount==15)
538 7 currentCount=0;
539 7 else
540 7 ++currentCount;
541 7 VMotorOut(SIN16[currentCount]) ;
542 7 ++vAbsolutionPosition;
543 7 if(accDecCount==15)
544 7 {
545 8 vSoftTimer0=ACCTABLE[accDecCount]/250;
546 8 accDecCount=0;
547 8 vaccDecFlag=NORMALMOTION;
548 8 }
549 7 else
550 7 {
C51 COMPILER V8.01 MAIN 01/09/2009 17:53:57 PAGE 10
551 8 vSoftTimer0=ACCTABLE[accDecCount]/250;
552 8 ++accDecCount;
553 8 }
554 7 break;
555 7 case NORMALMOTION:
556 7 if(currentCount==15)
557 7 currentCount=0;
558 7 else
559 7 ++currentCount;
560 7 VMotorOut(SIN16[currentCount]) ;
561 7 ++vAbsolutionPosition;
562 7 vSoftTimer0=-5;
563 7
564 7 break;
565 7
566 7 }
567 6 break;
568 6 }
569 5 case -1:
570 5 {
571 6 switch(vaccDecFlag)
572 6 {
573 7 default :break;
574 7 case ACCELERATION:
575 7 if(currentCount==0)
576 7 currentCount=15;
577 7 else
578 7 --currentCount;
579 7 VMotorOut(SIN16[currentCount]) ;
580 7 --vAbsolutionPosition;
581 7 if(accDecCount==15)
582 7 {
583 8 vSoftTimer0=ACCTABLE[accDecCount]/250;
584 8 accDecCount=0;
585 8 vaccDecFlag=NORMALMOTION;
586 8 }
587 7 else
588 7 {
589 8 vSoftTimer0=ACCTABLE[accDecCount]/250;
590 8 ++accDecCount;
591 8 }
592 7
593 7 break;
594 7 case NORMALMOTION:
595 7 if(currentCount==0)
596 7 currentCount=15;
597 7 else
598 7 --currentCount;
599 7 VMotorOut(SIN16[currentCount]) ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -