📄 succeed.lst
字号:
242 3 iccode[w]=(iccode[w])|0x80;
243 3 }
244 2 else if( (d1==0) && (d2==1) )
245 2 {
246 3 iccode[w]=(iccode[w])|0x00;
247 3 write_bit(0);
248 3 }
249 2 else if( (d1==0) && (d2==0) )
250 2 {
251 3 iccode[w]=(iccode[w])|0x00;
252 3 write_bit(1);
253 3 }
254 2 }
255 1 }
256
257 /************************writeorreaddata************************/
258
259 void write_date(uchar z)
260 {
261 1 uchar t,i;
262 1 uchar temper;
263 1 uchar dat=z;
264 1
265 1 for(i=0;i<8;i++)
266 1 {
267 2 temper=dat&0x01;
268 2 if(temper)
269 2 {
270 3 dq=0;
271 3 delay_us();
272 3 delay_us();
273 3 dq=1;
274 3 for(t=30;t>0;t--);
275 3 }
276 2 else
277 2 {
278 3 dq=0;
279 3 for(t=50;t>0;t--);
280 3 dq=1;
281 3 delay_us(); delay_us();
282 3 }
283 2 dat=_cror_(dat,1);
284 2 }
285 1 }
286 /*
287 uchar read_date()
288 {
289
290 uchar t;
291 uchar i;
292 uchar temper;
293
294 temper=0x00;
295 for(i=0;i<8;i++)
296 {
297 temper=_cror_(temper,1);
298 dq=0;
299 delay_us();
300 delay_us();
301 dq=1;
302 delay_us();delay_us();
C51 COMPILER V6.12 SUCCEED 04/28/2009 23:07:23 PAGE 6
303 if(dq==1)
304 {
305 temper=temper | 0x80;
306 }
307 else
308 {
309 temper=temper | 0x00;
310 }
311 for(t=20;t>0;t--);
312 }
313 return(temper);
314 } */
315
316 /*************************ramfuntion********************************/
317
318 void convert_t()//温度转变
319 {
320 1 write_cmd(0x44);
321 1 }
322
323 /****************************temperdeal***********************************/
324
325 void deal_temper()
326 {
327 1 while(1)
328 1 {
329 2 deal_ds1();
330 2 deal_ds2();
331 2 }
332 1 }
333
334 void deal_ds1()
335 {
336 1 uchar t1;
337 1 uchar i;
338 1
339 1 dq_reset();
340 1 write_cmd(0x55);
341 1 for(i=0;i<8;i++)
342 1 {
343 2 write_date(iccode[i]);
344 2 }
345 1 while(1){
346 2 convert_t();
347 2 c1_temper=get_temper();
348 2 for(t1=0;t1<20;t1++)
349 2 {
350 3 display_temper(get_temper,1);
351 3 if((c1_temper>H_temper)||(c1_temper<L_temper)) warn_temper(1);
352 3 }
353 2 }
354 1 }
355
356 void deal_ds2()
357 {
358 1 uchar t1;
359 1 uchar i;
360 1
361 1 dq_reset();
362 1 write_cmd(0x55);
363 1 for(i=8;i<16;i++)
364 1 {
C51 COMPILER V6.12 SUCCEED 04/28/2009 23:07:23 PAGE 7
365 2 write_date(iccode[i]);
366 2 }
367 1
368 1 convert_t();
369 1 for(t1=0;t1<20;t1++)
370 1 {
371 2 c2_temper=get_temper();
372 2 display_temper(c2_temper,1);
373 2 // if(c2_temper>H_temper||c2_temper<L_temper) warn_temper(2);
374 2 }
375 1
376 1 }
377
378 void warn_temper(uchar dj)//温度告警
379 {
380 1 uchar t;
381 1 uchar flag=1;
382 1 uchar c_temp;
383 1
384 1 while(flag)
385 1 {
386 2 for(t=0;t<10;t++)
387 2 {
388 3 feng=0;
389 3 display_temper(get_temper(),dj);
390 3 }
391 2 convert_t();
392 2 c_temp=get_temper();
393 2 if((c_temp<=H_temper)&&(c_temp>L_temper))
394 2 {
395 3 flag=0;
396 3 feng=1;
397 3 }
398 2 }
399 1 }
400
401 void display_temper(uint wengdu,uchar fc)//显示当前温度值
402 {
403 1 uchar xx,yy,zz;
404 1 uint temp;
405 1
406 1 temp=wengdu;
407 1 xx=temp/100;
408 1 yy=temp%100/10;
409 1 zz=temp%10;
410 1
411 1 wela=1;
412 1 P0=0xfe;
413 1 wela=0;
414 1
415 1 P0=0x00;
416 1 dula=1;
417 1 P0=table[xx];
418 1 dula=0;
419 1 delay_ms(2);
420 1
421 1 P0=0xff;
422 1 wela=1;
423 1 P0=0xfd;
424 1 wela=0;
425 1
426 1 P0=0x00;
C51 COMPILER V6.12 SUCCEED 04/28/2009 23:07:23 PAGE 8
427 1 dula=1;
428 1 P0=(table[yy]+0x80);
429 1 dula=0;
430 1 delay_ms(2);
431 1
432 1 P0=0xff;
433 1 wela=1;
434 1 P0=0xfb;
435 1 wela=0;
436 1
437 1 P0=0x00;
438 1 dula=1;
439 1 P0=table[zz];
440 1 dula=0;
441 1 delay_ms(1);
442 1
443 1 P0=0xff;
444 1 wela=1;
445 1 P0=0xdf;
446 1 wela=0;
447 1
448 1 P0=0x00;
449 1 dula=1;
450 1 P0=table[fc];
451 1 dula=0;
452 1 delay_ms(1);
453 1 }
454
455 /**********************init()andmain()******************************/
456
457 void init2()//初始化
458 {
459 1 L_temper=100;
460 1 H_temper=320;
461 1
462 1 c1_temper=200;
463 1 c2_temper=200;
464 1 dula=0;
465 1 wela=0;
466 1 }
467
468 void main()
469 {
470 1 init2();
471 1 while(1)
472 1 {
473 2 get_firstid();
474 2 get_seconedid();
475 2 deal_temper();
476 2 }
477 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 983 ----
CONSTANT SIZE = 20 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 32 18
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V6.12 SUCCEED 04/28/2009 23:07:23 PAGE 9
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -