📄 cpu_com.lst
字号:
471 /*小机器
472 unsigned char cpu_Open(void)
473 {
474 //unsigned char *data1;
475 //unsigned char *aa;
476 idata unsigned char i=0,z=0,ndata1[1];
477 //*aa = 0;
478 aa = aa|0X08; //打开使能开关
479 //CPU卡复位置低、下电、关时钟
480 BT_RST = 0; //设置为低
481 aa &=0XEF; //关闭时钟通道
482 aa &=0XBF; //下电
483 delay(); //
484 aa |=0X10; //为CPU卡上电并关时钟通道
485 aa &=0XDF;
486 aa |=0XBF; //为CPU卡上电并开时钟通道
C51 COMPILER V7.50 CPU_COM 05/16/2006 17:45:20 PAGE 9
487 BT_REC = 1; //准备接受
488 delay();
489 BT_RST = 1; //设置为高
490 // read_ATR();
491 //delay();
492 if(GetChar(ndata1)==TRUE)
493 {
494 ndata[0]=ndata1[0];
495 for(i=1;i<255;i++)
496 {
497 //BT_REC = 1;
498 if(GetChar(ndata1) == TRUE)
499 {
500 ndata[i]=ndata1[0];
501 }
502 else
503 {
504 //n=101;
505 break;
506 }
507 }
508 }
509 }*/
510 //触点激活子程序冷复位
511 //税控器
512 unsigned char cpu_Open(void)
513 {
514 1 //unsigned char *data1;
515 1 //unsigned char *aa;
516 1 idata unsigned char i=0,z=0,ndata1[1],y = 0;
517 1 //*aa = 0;
518 1 aa = 0xF9;
519 1 //aa = aa|0X08; //打开使能开关
520 1 aa = 0xF9;
521 1 //CPU卡复位置低、下电、关时钟
522 1 cpuope:
523 1 BT_RST = 0; //设置为低
524 1 //
525 1 // aa = 0xEB;
526 1 /*
527 1 aa &=0XEF; //关闭时钟通道..........
528 1 //
529 1 // C_PWR = 1; //下电
530 1 // CLOCK = 1; //关闭时钟通道
531 1 //
532 1 aa &=0XBF; //下电.................
533 1 // aa = 0xAB;
534 1 //
535 1 delay(); //
536 1 //
537 1 aa |=0X10; //为CPU卡上电并关时钟通道...........
538 1 //aa = 0xBB;
539 1 //
540 1 // C_PWR = 0;
541 1 // V_SEL = 0;
542 1 //
543 1 aa &=0XDF;
544 1 aa |=0XBF; //为CPU卡上电并开时钟通道
545 1 //aa = 0x9B;
546 1 //aa = 0xBF;
547 1 //
548 1 // CLOCK = 0;
C51 COMPILER V7.50 CPU_COM 05/16/2006 17:45:20 PAGE 10
549 1 */
550 1 aa = 0xE9;
551 1 aa = 0xA9;
552 1 delay();
553 1 aa = 0xB9;
554 1 aa = 0xD9;
555 1 BT_REC = 1; //准备接受
556 1 delay();
557 1 BT_RST = 1; //设置为高
558 1 // read_ATR();
559 1 if((i=read_ATR()) == FALSE)
560 1 {
561 2 if(tck == 1)
562 2 {
563 3 if(y == 4)
564 3 {
565 4 ndata[0] = 0xFF;
566 4 SendCom(1,ndata);
567 4 }
568 3 else
569 3 {
570 4 y++;
571 4 goto cpuope;
572 4 }
573 3 }
574 2 else
575 2 {
576 3 ndata[0] = 0xFF;
577 3 SendCom(1,ndata);
578 3 tck = 1;
579 3 }
580 2 }
581 1 else
582 1 {
583 2 SendCom(i,ndata);
584 2 }
585 1 //aa = 0x00;
586 1 //delay();
587 1 /* if(GetChar(ndata1)==TRUE)
588 1 {
589 1 ndata[0]=ndata1[0];
590 1 for(i=1;i<255;i++)
591 1 {
592 1 //BT_REC = 1;
593 1 if(GetChar(ndata1) == TRUE)
594 1 {
595 1 ndata[i]=ndata1[0];
596 1 }
597 1 else
598 1 {
599 1 //n=101;
600 1 break;
601 1 }
602 1 }
603 1 }
604 1 */
605 1 }
*** WARNING C173 IN LINE 605 OF CPU_COM.C: missing return-expression
*** WARNING C280 IN LINE 516 OF CPU_COM.C: 'ndata1': unreferenced local variable
606 /*小机器
607 void rest(void)
608 {
C51 COMPILER V7.50 CPU_COM 05/16/2006 17:45:20 PAGE 11
609 //*aa = *aa|0X08; //打开使能开关
610 //CPU卡复位置低、下电、关时钟
611 idata unsigned char i=0,ndata1[1];
612 BT_RST = 0; //设置为低
613 delay();
614 BT_RST = 1; //设置为低
615 read_ATR();
616 }
617 *///税控器
618 void rest(void)
619 {
620 1 //*aa = *aa|0X08; //打开使能开关
621 1 //CPU卡复位置低、下电、关时钟
622 1 idata unsigned char i=0,ndata1[1],y = 0;
623 1 resta1:
624 1 BT_RST = 0; //设置为低
625 1 delay();
626 1 BT_RST = 1; //设置为低
627 1 if((i=read_ATR()) == FALSE)
628 1 {
629 2 if(tck == 1)
630 2 {
631 3 if(y == 4)
632 3 {
633 4 ndata[0] = 0xFF;
634 4 SendCom(1,ndata);
635 4 }
636 3 else
637 3 {
638 4 y++;
639 4 goto resta1;
640 4 }
641 3 }
642 2 else
643 2 {
644 3 ndata[0] = 0xFF;
645 3 SendCom(1,ndata);
646 3 tck = 1;
647 3 }
648 2 }
649 1 else
650 1 {
651 2 SendCom(i,ndata);
652 2 }
653 1 }
*** WARNING C280 IN LINE 622 OF CPU_COM.C: 'ndata1': unreferenced local variable
654 //触点释放子程序
655 void cpu_Close(void)
656 {
657 1 BT_RST = 0; //复位端置低
658 1 //CLK置低
659 1 BT_SND = 0; //接收端置低
660 1 delay();
661 1 // aa = 0X00; //下电并关闭所有
662 1 }
663 //复位子程序,将CPU卡复位,reset_flag为1则冷复位,为0热复位
664 /*void Reset(unsigned char reset_flag)
665 {
666 unsigned char a,*ndata1;
667 if(reset_flag)
668 {
669 BT_RST = 1;//将复位信号置高
C51 COMPILER V7.50 CPU_COM 05/16/2006 17:45:20 PAGE 12
670 BT_SND = 1;
671 delay();
672 }
673 else
674 {
675 BT_RST = 0;
676 BT_SND = 1;
677 delay1();
678 BT_RST = 1;
679 delay();
680 }
681 }
682 */
683 //接收复位应答:返回TRUE正确,返回FALSE则错误应答信号装入ndata中
684 /*unsigned char Reset_answer(unsigned *ndata)
685 {
686 unsigned char *data1,len=0;
687 idata unsigned char i=0,ndata1[1];
688 xdata unsigned char ndata[255];
689 if(GetChar(ndata1)==TRUE)
690 {
691 ndata[0]=ndata1[0];
692 for(i=1;i<255;i++)
693 {
694 if(GetChar(ndata1)==TRUE)
695 {
696 ndata[i]=ndata1[0];
697 }
698 else
699 {
700 //n=10000001;
701 break;
702 }
703 }
704 if(ndata[1]==(i-3))
705 {
706 return TRUE;
707 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -