📄 arithmetic.lst
字号:
C51 COMPILER V7.50 ARITHMETIC 03/06/2007 20:40:54 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE ARITHMETIC
OBJECT MODULE PLACED IN Arithmetic.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE Arithmetic.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "TempCtrl.h"
2
3 #define NBP (-10)
4 #define NSP (-2)
5 #define ZP 2
6 #define PSP 10
7
8 void SamplingProcess()
9 {
10 1
11 1 //频率->电阻
12 1
13 1 k1=TpTH0<<8;
14 1 k1+=TpTL0;//k1:freq
15 1
16 1 //FF功能
17 1 if(FFSta)
18 1 switch(FFSta)
19 1 {
20 2 case 3000:
21 2 //(EPP_F100,k1);//零点漂移
22 2 if(k1>=Fr2Temp[0])
23 2 {
24 3 k0=k1-Fr2Temp[0];
25 3 }
26 2 else
27 2 {
28 3 k0=Fr2Temp[0]-k1;
29 3 k0|=0x8000;
30 3 }
31 2 PassWordLock=0;
32 2 Write(EP_FrMin,k0);
33 2 PassWordLock=1;
34 2
35 2 UpdateFrZero(); //使用了k0
36 2
37 2 AdmitFlag=5;
38 2 Led(k1);
39 2 LedBuf[0]=LedCode[C_A];
40 2 break;
41 2 case 3001:
42 2 if(k1>=Fr2Temp[45])
43 2 {
44 3 k0=k1-Fr2Temp[45];
45 3 }
46 2 else
47 2 {
48 3 k0=Fr2Temp[45]-k1;
49 3 k0|=0x8000;
50 3 }
51 2 PassWordLock=0;
52 2 Write(EP_FrMax,k0);
53 2 PassWordLock=1;
54 2
55 2 UpdateFrZero();
C51 COMPILER V7.50 ARITHMETIC 03/06/2007 20:40:54 PAGE 2
56 2
57 2 AdmitFlag=5;
58 2 Led(k1);
59 2 LedBuf[0]=LedCode[C_b];
60 2 break;
61 2 case 1000://频率显示
62 2 AdmitFlag=2;
63 2 Led(k1);
64 2 LedBuf[0]=LedCode[C_F];
65 2 break;
66 2 case 2000://补偿显示:100欧时
67 2 AdmitFlag=6;
68 2 k0=Read(EP_FrMin);
69 2 if(k0 & 0x8000)
70 2 {
71 3 Led(k0 & 0x7fff);
72 3 LedBuf[1]=LedCode[C_Fuhao];
73 3 }
74 2 else
75 2 Led(FrZero);
76 2 LedBuf[0]=LedCode[C_c];
77 2 break;
78 2 case 2001://补偿显示:250欧时
79 2 AdmitFlag=6;
80 2 k0=Read(EP_FrMax);
81 2 if(k0 & 0x8000)
82 2 {
83 3 Led(k0 & 0x7fff);
84 3 LedBuf[1]=LedCode[C_Fuhao];
85 3 }
86 2 else
87 2 Led(FrZero);
88 2 LedBuf[0]=LedCode[C_d];
89 2 break;
90 2 default:
91 2 AdmitFlag=1;
92 2 FFSta=0;
93 2 }
94 1
95 1 if(FrZero>=0)
96 1 {
97 2 k0=FrZero;
98 2 k1=k1-k0;
99 2 }
100 1 else
101 1 {
102 2 k0=-FrZero;
103 2 k1=k1+k0;
104 2 }
105 1
106 1 //k1为频率值
107 1
108 1 if(k1<Fr2Temp[0])
109 1 k1=Fr2Temp[0];
110 1
111 1 if((k1>Fr2Temp[0])&&(k1<Fr2Temp[45]))
112 1 {
113 2 for(i=0;i<46;i++)//(6-1)次即可
114 2 if(k1<Fr2Temp[i])
115 2 break;
116 2 i-=1;
117 2 x1=100.0*i+(k1-Fr2Temp[i])*100.0/(Fr2Temp[i+1]-Fr2Temp[i])+0.5;
C51 COMPILER V7.50 ARITHMETIC 03/06/2007 20:40:54 PAGE 3
118 2 }
119 1 else if(k1<=Fr2Temp[0])
120 1 {
121 2 x1=0;
122 2 }
123 1 else
124 1 {
125 2 LedBuf[0]=LedCode[C_o];LedBuf[1]=LedCode[C_o];
126 2 LedBuf[2]=LedCode[C_o];LedBuf[3]=LedCode[C_o];
127 2 //return;//超范围则直接返回
128 2 }
129 1
130 1 //Temperature=x1;//kf
131 1 if(IdTimeCnt==0)
132 1 {
133 2 PreTemperature=LastTemperature;
134 2 LastTemperature=Temperature;
135 2 Temperature=x1;
136 2
137 2 dError=Error;
138 2 Error=Setted_Temperature-Temperature;
139 2 dError=Error-dError;
140 2 }
141 1 else
142 1 {
143 2 FastLastTemperature=Temperature;
144 2 Temperature=x1;
145 2 }
146 1 //显示温度
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -