📄 7705.lst
字号:
346 2 }
347 1 else if(value >= 0)
348 1 {
349 2 value = 32768 - value;
350 2 // Dec_consult(value);
351 2 #ifndef DC_SINGAL
if(CONTROL == 1)
{
Dec_consult(value);
}
else
{
Add_consult(value);
}
#else
361 2 Dec_consult(value);
362 2 #endif
363 2 }
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 7
364 1
365 1
366 1
367 1
368 1 #else
if (value < 0)
{
value = 32768+value;
#ifndef DC_SINGAL
if(CONTROL == 1)
{
Dec_consult(value);
// liuxiang_F = REVERSE ;
}
else
{
Add_consult(value);
// liuxiang_F = POSITIVE;
}
#else
Dec_consult(value);
#endif
}
else if(value >= 0)
{
value = 32768 - value;
#ifndef DC_SINGAL
if(CONTROL == 1)
{
Add_consult(value);
// liuxiang_F = POSITIVE;
}
else
{
Dec_consult(value);
// liuxiang_F = REVERSE ;
}
#else
Add_consult(value);
#endif
}
#endif
407 1
408 1 return;
409 1 }
410 /************************************/
411 /************************************/
412 void Add_consult( int value)
413 {
414 1
415 1 if(consult_coun == 1)
416 1 consult_1 += value;
417 1 else if(consult_coun == 2)
418 1 consult_2 += value;
419 1 else if(consult_coun == 3)
420 1 consult_3 += value;
421 1
422 1 return;
423 1 }
424 /*********************************/
425 /*********************************/
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 8
426 void Dec_consult( int value)
427 {
428 1 if(consult_coun == 1)
429 1 consult_1 -= value;
430 1 else if(consult_coun == 2)
431 1 consult_2 -= value;
432 1 else if(consult_coun == 3)
433 1 consult_3 -= value;
434 1 return;
435 1 }
436
437 //************** AD self autojust**************
438
439 void Self_adjust(void)
440 {
441 1
442 1 Write_reg(SET_REG|WRITE|CHANEL_0); //0X10
443 1 Write_reg(ADC_SELF|adc_gain|ADC_BIPOLAR);
444 1 self_adj_F = 1 ;
445 1 // Delay_ms(DELAY200MS);
446 1 return;
447 1
448 1 }
449
450 //****************start ad turn****************
451 /*
452 void Ad_start(void)
453 {
454 // Return_to_init_status();
455 Write_reg(0x10); //active chanel 1, next operation is write setup register
456 Write_reg(ADC_NORMAL|adc_gain|ADC_BIPOLAR);
457 // Write_reg(0x20);
458 return;
459
460 } */
461
462 //*****************read ad result***************
463 unsigned int Read_con_data(void)
464 {
465 1 unsigned int word;
466 1 while(Check_drdy());
467 1 // if(Check_drdy()) //wait DRDY changed low
468 1 // return(last_ad_value);
469 1 // Write_reg(0x38); //set the next operation for 16 bit read from the data register
470 1 Write_reg(0x38);
471 1 word = Read_word();
472 1 while(!Check_drdy());
473 1 // last_ad_value = word ;
474 1 return(word);
475 1 }
476
477 //*******************read DRDY**************
478 unsigned char Check_drdy(void)
479 {
480 1 unsigned char status;
481 1 Write_reg(0x08); //next read opration register is com
482 1 status = Read_reg_byte();
483 1 return(status&0x80) ;
484 1 }
485
486
487 //************************************
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 9
488 // write a byte to register
489 //************************************
490 void Write_reg(unsigned char reg_data)
491 {
492 1 unsigned char i;
493 1 unsigned char tr_data;
494 1 tr_data = reg_data;
495 1
496 1
497 1
498 1 for(i=1;i<=8;++i)
499 1 {
500 2 //7705-CLK low level
501 2
502 2 AD_IN = tr_data & 0x80;
503 2 tr_data <<= 1;
504 2
505 2 AD_CLK = 0;
506 2
507 2 AD_CLK = 1 ;
508 2
509 2
510 2 }
511 1 AD_IN = 1 ;
512 1 AD_CLK = 1;
513 1 return ;
514 1
515 1 }
516
517 //************************************
518 // read a word from data register
519 //************************************
520
521 unsigned int Read_word(void)
522 {
523 1 bit flag;
524 1 unsigned int ad_byte=0x0000;
525 1 unsigned char i ;
526 1
527 1 AD_CLK = 1;
528 1 AD_OUT = 1;
529 1 for(i=1;i<=16;++i)
530 1
531 1 {
532 2 AD_CLK = 1 ;
533 2
534 2 AD_CLK=0;
535 2 AD_OUT = 1;
536 2 flag= AD_OUT ;
537 2
538 2 if(!flag)
539 2 ad_byte |= 0x01;
540 2 if(i<16)
541 2 ad_byte <<= 1 ;
542 2
543 2
544 2 }
545 1
546 1
547 1 AD_IN = 1 ;
548 1 AD_CLK = 1;
549 1
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 10
550 1 return(ad_byte); //because tonguo fanxiang
551 1 }
552
553 //***************************************************
554 // read a byte from register
555 //***************************************************
556
557 unsigned char Read_reg_byte(void)
558 {
559 1 bit flag;
560 1 unsigned char i;
561 1 unsigned char com_data ;
562 1 com_data = 0x00;
563 1 AD_CLK=1;
564 1 AD_OUT = 1 ;
565 1
566 1 for(i=1;i<=8;++i)
567 1 {
568 2 AD_CLK=1;
569 2
570 2 AD_CLK=0;
571 2 AD_OUT=1;
572 2 flag = AD_OUT;
573 2 if(!flag)
574 2 com_data |= 0x01;
575 2 if(i<8)
576 2 com_data <<= 1;
577 2
578 2 }
579 1
580 1
581 1 AD_IN = 1;
582 1 AD_CLK = 1 ;
583 1 return(com_data);
584 1 }
585
586 /***********************************/
587 /***********************************/
588
589 void Precess_con_data(void)
590 {
591 1 unsigned int value ;
592 1
593 1 if(self_adj_F != 1)
594 1 {
595 2
596 2 value = Read_con_data();
597 2 Poisitive(value);
598 2
599 2 }
600 1 return;
601 1 }
602
603
604 /**********************************/
605 /**********************************/
606 void Delay(unsigned int timer)
607 {
608 1 unsigned char i,j;
609 1 while(timer)
610 1 {
611 2 for(i=0;i<14;i++) ///delay 10ms
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 11
612 2 for(j=0;j<217;j++)
613 2 ;
614 2 timer--;
615 2 }
616 1 return;
617 1 }
618 /*************************************/
619 /*************************************/
620 void Return_to_init_status(void)
621 {
622 1 unsigned char i;
623 1
624 1 AD_CLK = 1 ;
625 1
626 1 for(i=1;i<=36;++i)
627 1 {
628 2 AD_CLK=0; //7705-CLK low level
629 2
630 2 AD_CLK=1; //7705-CLK high level
631 2
632 2 }
633 1
634 1 AD_IN = 1;
635 1 AD_CLK = 1 ;
636 1 return ;
637 1
638 1 }
639
640 /*******************************/
641 /*******************************/
642 void Delay_1us(void)
643 {
644 1 unsigned int i ;
645 1 for(i=0;i<300;i++)
646 1 ;
647 1 return;
648 1 }
649
650
651
652 /**********************************/
653 /**********************************/
654 unsigned char Two_square(void)
655 {
656 1 switch(filter_data)
657 1 {
658 2 case 0:
659 2 return(1);
660 2
661 2 case 1:
662 2 return(2);
663 2
664 2 case 2:
665 2 return(4);
666 2
667 2 case 3:
668 2 return(8);
669 2
670 2 case 4:
671 2 return(16);
672 2
673 2 case 5:
C51 COMPILER V6.02 7705 09/10/2005 17:11:39 PAGE 12
674 2 return(32);
675 2
676 2 case 6:
677 2 return(64);
678 2
679 2 default:
680 2 return(1);
681 2 }
682 1 }
683
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1187 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 12
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 + -