📄 max134.lst
字号:
159 2 MRF(); //设置并写入电阻测量相应的控制字节
160 2
161 2 EOCR(); //读取转换结果//
162 2
163 2
164 2 if(Y>4500 && Y<5500) //检测转换结果,如果转换结果在大于4500并小于5500的区间范围内
165 2 {
166 3 Y=Y-4952; //可以省去,说明输入为空,资料给定值也为49520//
167 3 Rx=0;
168 3 }
169 2 else
170 2 {
171 3 Y=Y+Radjust; //数据结果处理 待补//
172 3 if(RangeCode==1)
173 3 {
174 4 Rx=Y*10;
175 4 }
176 3 else
177 3 {
178 4 Rx=Y*Rref;
C51 COMPILER V8.02 MAX134 05/24/2007 12:05:40 PAGE 4
179 4 }
180 3 Rx=Rx/5; //转换代码到结果的转换公式//
181 3 }
182 2 //Rx=Rx+0;
183 2 Y=Rx;
184 2 if(Y>=10000||Y<0)//纠正错误数据
185 2 Y=0;
186 2 //Y=4952;
187 2
188 2 }
189 1
190 1 //-------------------------------------------------------------------------------------------------
191 1 else if(FSCode==4||FSCode==5)
192 1 {
193 2 P3=0XF3; //前端形成电流测量电路//
194 2 //LPI1:
195 2 MIF();
196 2 //LPI2:
197 2 EOCR(); //读取转换结果//
198 2 //数据结果处理 待补//
199 2 //if(FSCodeM==FSCode&&RangeCodeM==RangeCode) goto LPI2;
200 2 //if(!RangeCodeM==RangeCode) goto LPI1;
201 2 //else break; //
202 2 }
203 1 //-------------------------------------------------------------------------------------------------
204 1 else if(FSCode==6)
205 1 {
206 2 //P3=0XF1; //前端形成通断测试电路//
207 2 //P3=0XE1;
208 2
209 2 MCF();
210 2 //LPC:
211 2 EOCR(); //读取转换结果//
212 2
213 2 Rx=Y+20; //校正由于串连PTC而引起的误差。数据结果处理 待补//
214 2 Rx=Rx*Rref;
215 2 Rx=Rx/5; //转换代码到结果的转换公式//
216 2 if(Rx>-50&&Rx<50) //test continuity, if less than 50 OHM, mesn the circuit is shorten//
217 2 {
218 3 P3&=0X7F; //写控制有效//
219 3 P1=0X28; // beeper on//
220 3 delay50ms();
221 3 P1=0X08;
222 3 P3|=0X80; //关写控制//
223 3 //cr0=0X06; //set the information of beeper on//
224 3 }
225 2 if(Y>4500&&Y<5500)
226 2 {
227 3 Y=Y-4952; //说明输入为空,资料给定值也为49520//
228 3 Rx=0;
229 3 }
230 2 Rx=Rx+0;
231 2 //if(FSCodeM==FSCode) goto LPC;
232 2 //else break; //
233 2 }
234 1 //--------------------------------------------------------------------------------------------------
235 1 else if(FSCode==7)
236 1 {
237 2 //P3=0XF5; //前端形成二极管测试电路//
238 2 //P3=0XF9; //前端形成电阻测量电路,需在电阻模式下完成//
239 2 MDF();
240 2 // LPD:
C51 COMPILER V8.02 MAX134 05/24/2007 12:05:40 PAGE 5
241 2 EOCR(); //读取转换结果//
242 2 //数据结果处理 应该除以2才得到正确结果 待补//
243 2 Y=Y+0;
244 2 //
245 2 //if(FSCode==7) goto LPD;
246 2 //else break; //
247 2 }
248 1
249 1 // else
250 1 // {
251 1 // goto RESTAR;
252 1 // }
253 1 sx_data_disp();
254 1
255 1 }
256
257
258 /******************************************
259 * 涵数名: void delay(void)
260 *
261 *
262 * 涵数功能: 延时
263 *******************************************/
264 void delay(void)
265 {
266 1 ;
267 1 }
268 /******************************************
269 * 涵数名: void delay1(void)
270 *
271 *
272 * 涵数功能: 延时
273 *******************************************/
274
275 void delay1(void)
276 {
277 1 for(j=0;j<3000;j++){;}
278 1 }
279 /******************************************
280 * 涵数名: void delay50MS(void)
281 *
282 *
283 * 涵数功能: 延时
284 *******************************************/
285 void delay50ms()
286 {
287 1 for(j=0;j<5000;j++){;}
288 1 }
289 /******************************************
290 * 涵数名: void EOCR()
291 *
292 *
293 * 涵数功能: 从MAX134读取结果
294 * 备注:P3=控制口;P1=数据口
295 ******************************************/
296 void EOCR() /*转换结果读取函数*/
297 { /*extern int Y; */
298 1 //等待EOC变为高电平
299 1 P1=0X88; //
300 1 delay1();
301 1 WR_134=0;
302 1 delay1();
C51 COMPILER V8.02 MAX134 05/24/2007 12:05:40 PAGE 6
303 1 WR_134=1;
304 1 delay1();
305 1
306 1
307 1 LP1: P3|=0X08;/*while(!P3^3); wait EOC,get the ad convertion,*/ //P3.3=EOC-------------------------
308 1 delay(); /*need delay??*/
309 1 sp3=P3;
310 1 sp3&=0X08; //检测是EOC是不是有效
311 1 if(sp3==0) //如果是低就标志没有输出有效标志
312 1 {
313 2 goto LP1; /*test the P3^3 0 or 1*/ //如果没有输出有小信号就返回.
314 2 }
315 1 else //MAX134输出有效标志
316 1 {
317 2 //WD=0 //将写信号设置为有效状态.
318 2 P3&=0X7F; /*P3.7置零,写控制信号WD有效*/ //P3.7=RD--------------------------------------
319 2 } //---------------------------------------------------------------------------
320 1
321 1 //EOC输出有效信号后,要在21个周期以后.有效数据才会出现,下面输入的一些无效地址是为了延时
322 1 P1|=0X0F; //P1低四位送F //送无效地址的同时将读P1.3变成无效状态
323 1 delay(); //
324 1 P1=0X88; //P1=0X88 RD=0;HOLD=1; ???????????????????????//应该是先置保持模式,在读转换结
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -