📄 math.lst
字号:
602 , 23 //点数
603 , 400 //倍率
604 , -100 //起始点数值
605 // j
606 , 27 //点数
607 , 400 //倍率
608 , -100 //起始点数值
609 // n
610 , 29 //点数
611 , 500 //倍率
612 , -100 //起始点数值
613 // t
C51 COMPILER V7.06 MATH 01/03/2008 17:28:43 PAGE 11
614 , 11 //点数
615 , 1000 //倍率
616 , -100 //起始点数值
617 // tu3
618 , 47 //点数
619 , 500 //倍率
620 , 0 //起始点数值
621 // tu5
622 , 47 //点数
623 , 500 //倍率
624 , 0 //起始点数值
625 // tu20
626 , 41 //点数
627 , 1000 //倍率
628 , 0 //起始点数值
629 // tu26
630 , 47 //点数
631 , 500 //倍率
632 , 0 //起始点数值
633 // pt100
634 , 22 //点数
635 , 50 //倍率
636 , -2000 //由于精度原因 * 10, 应为 -200
637 // cu100
638 , 5 //点数
639 , 100 //倍率
640 , -500 //由于精度原因 * 10, 应为 -50
641 // cu50
642 , 5 //点数
643 , 200 //倍率
644 , -500 //由于精度原因 * 10, 应为 -50
645 };
646
647 //=========================================================================================
648 //阻型电阻表
649 int unsigned code Tab_rt[5]= //wint
650 {
651 18
652 , 70
653 , 170
654 , 270
655 , 350
656
657 };
658
659 /*************************************************************************************
660 函数名 mat_scale
661 功能 标度变换
662 入口条件 tt 目标标度高端
663 tb 目标标度低端
664 st 源标度高端
665 sb 源标度低端
666 **************************************************************************************/
667 int mat_scale(int temp_value) //stt
668 {
669 1 if(temp_value>st)
670 1 {
671 2 temp_value=st;
672 2 }
673 1 if(temp_value<sb)
674 1 {
675 2 temp_value=sb;
C51 COMPILER V7.06 MATH 01/03/2008 17:28:43 PAGE 12
676 2 }
677 1 return mat_calculate(temp_value,1);
678 1 }
679
680 int mat_calculate(int temp_value,int multiple)
681 {
682 1 calculate=(long)(temp_value-sb)*(tt-tb)*multiple/(st-sb)+tb*multiple;//
683 1 return (int)calculate;
684 1 }
685
686 /**************************************************************************************
687 函数名 mat_du_add
688 功能 对当前的温度进行修正,根据du0,duf,sc0,scf进行修正
689 入口条件 当前的温度
690 出口条件 修正后的温度
691 ***************************************************************************************/
692 int mat_du_add(int temp_value)
693 {
694 1 int data cycle_value;
695 1 cycle_value=temp_value;
696 1 tb=ref_table[ref_du0]+1000;
697 1 tt=ref_table[ref_duf]+1000;
698 1 sb=ref_table[ref_sc0];
699 1 st=ref_table[ref_scf];
700 1 temp_value= mat_scale(temp_value);
701 1 return (temp_value+cycle_value-1000);
702 1 }
703
704 /****************************************************************************************
705 函数名 choose_range
706 功能 根据分度号类型和量程选择不同的AD放大倍数
707 //////current 指向要查的表项
708 ****************************************************************************************/
709 void choose_range(void)
710 {
711 1 unsigned char data temp=ref_table[ref_sn];
712 1 switch(temp)
713 1 {
714 2 // s
715 2 case 0: current=tab_sn_s; // 铂铑10-铂热电偶分度表(℃) ;( 型号代码: S )
716 2 choose_range_sub(1700,0,0,0);
717 2 break;
718 2 // r
719 2 case 1: current=tab_sn_r;
720 2 choose_range_sub(1750,0,0,0);
721 2 break;
722 2 // b
723 2 case 2: current=tab_sn_b;
724 2 choose_range_sub(1800,0,0,0);
725 2 break;
726 2 // k
727 2 case 3: current=tab_sn_k;
728 2 choose_range_sub(484,967,1350,0);
729 2 break;
730 2 // e
731 2 case 4: current=tab_sn_e;
732 2 choose_range_sub(286,536,787,1000);
733 2 break;
734 2 // j
735 2 case 5: current=tab_sn_j;
736 2 choose_range_sub(366,713,1034,1200);
737 2 break;
C51 COMPILER V7.06 MATH 01/03/2008 17:28:43 PAGE 13
738 2 // n
739 2 case 6: current=tab_sn_n;
740 2 choose_range_sub(584,1100,1300,0);
741 2 break;
742 2 // t
743 2 case 7: current=tab_sn_t;
744 2 choose_range_sub(400,0,0,0);
745 2 break;
746 2 // tu3
747 2 case 8: current=tab_sn_tu3;
748 2 choose_range_sub(1089,2300,0,0);
749 2 break;
750 2 // tu5
751 2 case 9: current=tab_sn_tu5;
752 2 choose_range_sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -