📄 soundintel.lst
字号:
464 4 }
465 3 return;
466 3 }
467 2 }
468 1 }
469
470 void ConnectTowPoint_CD22100(UCHAR x,UCHAR y)
471 {
472 1 idata UCHAR add;
473 1
474 1 add=(x-1)+((y-1)<<2);
475 1
476 1 ///if(add>=16){rs232write(0xfe);return;} //地址出错
477 1
478 1 CD22100_DataIn=CD_1; //接点连接
479 1
480 1 add=add&0x0f;
481 1 switch(add)
482 1 {
483 2 case 0 :CD22100_A=CD_0 ;CD22100_B=CD_0 ;CD22100_C=CD_0 ;CD22100_D=CD_0 ;break;
484 2 case 1 :CD22100_A=CD_1 ;CD22100_B=CD_0 ;CD22100_C=CD_0 ;CD22100_D=CD_0 ;break;
485 2 case 2 :CD22100_A=CD_0 ;CD22100_B=CD_1 ;CD22100_C=CD_0 ;CD22100_D=CD_0 ;break;
486 2 case 3 :CD22100_A=CD_1 ;CD22100_B=CD_1 ;CD22100_C=CD_0 ;CD22100_D=CD_0 ;break;
487 2 case 4 :CD22100_A=CD_0 ;CD22100_B=CD_0 ;CD22100_C=CD_1 ;CD22100_D=CD_0 ;break;
488 2 case 5 :CD22100_A=CD_1 ;CD22100_B=CD_0 ;CD22100_C=CD_1 ;CD22100_D=CD_0 ;break;
489 2 case 6 :CD22100_A=CD_0 ;CD22100_B=CD_1 ;CD22100_C=CD_1 ;CD22100_D=CD_0 ;break;
C51 COMPILER V7.06 SOUNDINTEL 11/15/2007 09:02:22 PAGE 9
490 2 case 7 :CD22100_A=CD_1 ;CD22100_B=CD_1 ;CD22100_C=CD_1 ;CD22100_D=CD_0 ;break;
491 2 case 8 :CD22100_A=CD_0 ;CD22100_B=CD_0 ;CD22100_C=CD_0 ;CD22100_D=CD_1 ;break;
492 2 case 9 :CD22100_A=CD_1 ;CD22100_B=CD_0 ;CD22100_C=CD_0 ;CD22100_D=CD_1 ;break;
493 2 case 10:CD22100_A=CD_0 ;CD22100_B=CD_1 ;CD22100_C=CD_0 ;CD22100_D=CD_1 ;break;
494 2 case 11:CD22100_A=CD_1 ;CD22100_B=CD_1 ;CD22100_C=CD_0 ;CD22100_D=CD_1 ;break;
495 2 case 12:CD22100_A=CD_0 ;CD22100_B=CD_0 ;CD22100_C=CD_1 ;CD22100_D=CD_1 ;break;
496 2 case 13:CD22100_A=CD_1 ;CD22100_B=CD_0 ;CD22100_C=CD_1 ;CD22100_D=CD_1 ;break;
497 2 case 14:CD22100_A=CD_0 ;CD22100_B=CD_1 ;CD22100_C=CD_1 ;CD22100_D=CD_1 ;break;
498 2 case 15:CD22100_A=CD_1 ;CD22100_B=CD_1 ;CD22100_C=CD_1 ;CD22100_D=CD_1 ;break;
499 2 default: break;
500 2 }
501 1
502 1 _nop_();
503 1 _nop_();
504 1 _nop_();
505 1 _nop_();
506 1 _nop_();
507 1 _nop_();
508 1 _nop_();
509 1 _nop_();
510 1 CD22100_Storbe=CD_1;
511 1 _nop_();
512 1 _nop_();
513 1 _nop_();
514 1 _nop_();
515 1 _nop_();
516 1 _nop_();
517 1 _nop_();
518 1 _nop_();
519 1 CD22100_Storbe=CD_0;
520 1 _nop_();
521 1 _nop_();
522 1 _nop_();
523 1 _nop_();
524 1 _nop_();
525 1 _nop_();
526 1 _nop_();
527 1 _nop_();
528 1 CD22100_Storbe=CD_1;
529 1 P1=0XFF;
530 1 }
531
532 void CutTowPoint_CD22100(UCHAR x,UCHAR y)
533 {
534 1 idata UCHAR add;
535 1
536 1 add=(x-1)+((y-1)<<2);
537 1
538 1 ///if(add>=16){rs232write(0xfe);return;} //地址出错
539 1
540 1 CD22100_DataIn=CD_0; //断开连接
541 1
542 1 add=add&0x0f;
543 1 switch(add)
544 1 {
545 2 case 0 :CD22100_A=CD_0 ;CD22100_B=CD_0 ;CD22100_C=CD_0 ;CD22100_D=CD_0 ;break;
546 2 case 1 :CD22100_A=CD_1 ;CD22100_B=CD_0 ;CD22100_C=CD_0 ;CD22100_D=CD_0 ;break;
547 2 case 2 :CD22100_A=CD_0 ;CD22100_B=CD_1 ;CD22100_C=CD_0 ;CD22100_D=CD_0 ;break;
548 2 case 3 :CD22100_A=CD_1 ;CD22100_B=CD_1 ;CD22100_C=CD_0 ;CD22100_D=CD_0 ;break;
549 2 case 4 :CD22100_A=CD_0 ;CD22100_B=CD_0 ;CD22100_C=CD_1 ;CD22100_D=CD_0 ;break;
550 2 case 5 :CD22100_A=CD_1 ;CD22100_B=CD_0 ;CD22100_C=CD_1 ;CD22100_D=CD_0 ;break;
551 2 case 6 :CD22100_A=CD_0 ;CD22100_B=CD_1 ;CD22100_C=CD_1 ;CD22100_D=CD_0 ;break;
C51 COMPILER V7.06 SOUNDINTEL 11/15/2007 09:02:22 PAGE 10
552 2 case 7 :CD22100_A=CD_1 ;CD22100_B=CD_1 ;CD22100_C=CD_1 ;CD22100_D=CD_0 ;break;
553 2 case 8 :CD22100_A=CD_0 ;CD22100_B=CD_0 ;CD22100_C=CD_0 ;CD22100_D=CD_1 ;break;
554 2 case 9 :CD22100_A=CD_1 ;CD22100_B=CD_0 ;CD22100_C=CD_0 ;CD22100_D=CD_1 ;break;
555 2 case 10:CD22100_A=CD_0 ;CD22100_B=CD_1 ;CD22100_C=CD_0 ;CD22100_D=CD_1 ;break;
556 2 case 11:CD22100_A=CD_1 ;CD22100_B=CD_1 ;CD22100_C=CD_0 ;CD22100_D=CD_1 ;break;
557 2 case 12:CD22100_A=CD_0 ;CD22100_B=CD_0 ;CD22100_C=CD_1 ;CD22100_D=CD_1 ;break;
558 2 case 13:CD22100_A=CD_1 ;CD22100_B=CD_0 ;CD22100_C=CD_1 ;CD22100_D=CD_1 ;break;
559 2 case 14:CD22100_A=CD_0 ;CD22100_B=CD_1 ;CD22100_C=CD_1 ;CD22100_D=CD_1 ;break;
560 2 case 15:CD22100_A=CD_1 ;CD22100_B=CD_1 ;CD22100_C=CD_1 ;CD22100_D=CD_1 ;break;
561 2 default: break;
562 2 }
563 1 _nop_();
564 1 _nop_();
565 1 _nop_();
566 1 _nop_();
567 1 _nop_();
568 1 _nop_();
569 1 _nop_();
570 1 _nop_();
571 1 CD22100_Storbe=CD_1;
572 1 _nop_();
573 1 _nop_();
574 1 _nop_();
575 1 _nop_();
576 1 _nop_();
577 1 _nop_();
578 1 _nop_();
579 1 _nop_();
580 1 CD22100_Storbe=CD_0;
581 1 _nop_();
582 1 _nop_();
583 1 _nop_();
584 1 _nop_();
585 1 _nop_();
586 1 _nop_();
587 1 _nop_();
588 1 _nop_();
589 1 CD22100_Storbe=CD_1;
590 1 P1=0XFF;
591 1 }
592
593
594 void DTMFSend()
595 {
596 1 idata UCHAR i;
597 1 if(DTMFSendStep==0)
598 1 {//检查是否有发送任务
599 2 if(ReadCID(CID_state)==CID_STATE_ENREAD)
600 2 {//允许发送
601 3 if(ReadCID(CID_length)==0)
602 3 {//发送完毕 允许重新写入
603 4 for(i=0;i<CIDLENGTH;i++)
604 4 {
605 5 WriteCID(i,0x00);
606 5 }
607 4 WriteCID(CID_state,CID_STATE_SENDOVER); //发送完毕
608 4 WriteCID(CID_ptr,(CID_ptr+1));//初始化指针
609 4
610 4 return;
611 4 }
612 3
613 3 DTMFData=ReadCID(ReadCID(CID_ptr));
C51 COMPILER V7.06 SOUNDINTEL 11/15/2007 09:02:22 PAGE 11
614 3 if(DTMFData==0){DTMFData=0x0a;}
615 3 DTMFSendStep=1; //启动发送过程
616 3
617 3 WriteCID(CID_ptr,(ReadCID(CID_ptr)+1)); //指向下一个数据
618 3 WriteCID(CID_length,(ReadCID(CID_length)-1)); //长度
619 3 }
620 2 return;
621 2 }
622 1
623 1 if(DTMFSendStep==1)
624 1 {//控制产生DTMF信号
625 2 EnDTMFCreate=0;
626 2
627 2 //DTMF信号产生
628 2 DTMFData=DTMFData&0x0f;
629 2 for(i=0;i<5;i++)
630 2 {
631 3 DTMF_Data=(bit)((DTMFData>>i)&0x01);
632 3 _nop_();
633 3 DTMF_Clk=0;
634 3 _nop_();
635 3 _nop_();
636 3 DTMF_Clk=1;
637 3 }
638 2 //调用时间周期为2ms
639 2 DTMFStandingTime=40; //持续时间为100ms
640 2 DTMFSendStep=2;
641 2 return;
642 2 }
643 1
644 1 if(DTMFSendStep==2)
645 1 {//持续发送时间
646 2 DTMFStandingTime--;
647 2
648 2 if(DTMFStandingTime==0)
649 2 {
650 3 DTMFSendStep=3; //调用时间周期为2ms
651 3 EnDTMFCreate=1;
652 3 DTMFStandingTime=20;//空白间隔时间
653 3 }
654 2 return;
655 2 }
656 1
657 1 if(DTMFSendStep==3)
658 1 {//间隙时间
659 2 DTMFStandingTime--;
660 2 if(DTMFStandingTime==0)
661 2 {//完成一个信号的发送,恢复正常状态
662 3 EnDTMFCreate=0;
663 3 DTMFData=0xff; //DTMF stop
664 3 for(i=0;i<5;i++)
665 3 {
666 4 DTMF_Data=(bit)((DTMFData>>i)&0x01);
667 4 _nop_();
668 4 DTMF_Clk=0;
669 4 _nop_();
670 4 _nop_();
671 4 DTMF_Clk=1;
672 4 }
673 3
674 3 DTMFSendStep=0;
675 3 EnDTMFCreate=1;
C51 COMPILER V7.06 SOUNDINTEL 11/15/2007 09:02:22 PAGE 12
676 3 DTMF_Data=1;
677 3 DTMF_Clk=1;
678 3 DTMFStandingTime=0;
679 3 }
680 2 return;
681 2 }
682 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3078 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 29
IDATA SIZE = 3 28
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 + -