📄 shtxx_self.lst
字号:
282 1 i = IRcvStr_8(0xd0,0x05);
283 1 i = ((i&0x10)>>4)*10+(i&0x0f);
284 1 lcd_add(2,4);
285 1 lcd_dis_num(i);
286 1 i = IRcvStr_8(0xd0,0x06);
287 1 i = ((i&0xf0)>>4)*10+(i&0x0f);
288 1 lcd_add(2,1);
289 1 lcd_dis_num(i);
290 1 }
291
292 void lcd_read_time(void) //时钟显示函数
293 {
294 1 uchar i=0;
295 1 i = IRcvStr_8(0xd0,0x00);
296 1 i = ((i&0x70)>>4)*10+(i&0x0f);
297 1 b_data.second = i;
298 1 // lcd_add(3,7);
299 1 // lcd_dis_num(i);
300 1 i = IRcvStr_8(0xd0,0x01);
301 1 i = ((i&0x70)>>4)*10+(i&0x0f);
302 1 b_data.minute = i;
C51 COMPILER V7.07 SHTXX_SELF 06/14/2007 21:21:35 PAGE 6
303 1 // lcd_add(3,4);
304 1 // lcd_dis_num(i);
305 1 i = IRcvStr_8(0xd0,0x02);
306 1 i = ((i&0x30)>>4)*10+(i&0x0f);
307 1 b_data.hour = i;
308 1 // lcd_add(3,1);
309 1 // lcd_dis_num(i);
310 1 i = IRcvStr_8(0xd0,0x03);
311 1 i = i&0x07;
312 1 b_data.day = i;
313 1 // lcd_add(4,1);
314 1 // lcd_dis_num(i);
315 1 i = IRcvStr_8(0xd0,0x04);
316 1 i = ((i&0x30)>>4)*10+(i&0x0f);
317 1 b_data.date = i;
318 1 // lcd_add(2,7);
319 1 // lcd_dis_num(i);
320 1 i = IRcvStr_8(0xd0,0x05);
321 1 i = ((i&0x10)>>4)*10+(i&0x0f);
322 1 b_data.month = i;
323 1 // lcd_add(2,4);
324 1 // lcd_dis_num(i);
325 1 i = IRcvStr_8(0xd0,0x06);
326 1 i = ((i&0xf0)>>4)*10+(i&0x0f);
327 1 b_data.year = i;
328 1 // lcd_add(2,1);
329 1 // lcd_dis_num(i);
330 1 }
331 void set_time(uchar sec, uchar min, uchar hr, uchar dy, uchar dt,uchar mn,uchar yr) //时钟设置sec, min, h
-r, dy, dt, mn, yr
332 {
333 1 uchar i;
334 1 lcd_add(4,1);
335 1 i = ISendStr_8(0xd0,0x00,0);
336 1 lcd_wrd(0x30+(uchar)i);
337 1 sec = ((sec/10)<<4)+(sec%10);
338 1 i = ISendStr_8(0xd0,0x00,sec);
339 1 lcd_wrd(0x30+(uchar)i);
340 1 min = ((min/10)<<4)+(min%10);
341 1 i = ISendStr_8(0xd0,0x01,min);
342 1 lcd_wrd(0x30+(uchar)i);
343 1 hr = ((hr/10)<<4)+(hr%10);
344 1 i = ISendStr_8(0xd0,0x02,hr);
345 1 lcd_wrd(0x30+(uchar)i);
346 1
347 1 i = ISendStr_8(0xd0,0x03,dy);
348 1 lcd_wrd(0x30+(uchar)i);
349 1 dt = ((dt/10)<<4)+(dt%10);
350 1 i = ISendStr_8(0xd0,0x04,dt);
351 1 lcd_wrd(0x30+(uchar)i);
352 1 mn = ((mn/10)<<4)+(mn%10);
353 1 i = ISendStr_8(0xd0,0x05,mn);
354 1 lcd_wrd(0x30+(uchar)i);
355 1 yr = ((yr/10)<<4)+(yr%10);
356 1 i = ISendStr_8(0xd0,0x06,yr);
357 1 lcd_wrd(0x30+(uchar)i);
358 1 }
359
360
361 void ad_en(void)
362 {
363 1
C51 COMPILER V7.07 SHTXX_SELF 06/14/2007 21:21:35 PAGE 7
364 1 e = 0; //lcd not enable
365 1 le = 0; //three-states latched
366 1 ce = 0; //ad enable
367 1
368 1 }
369 void lcd_en(void)
370 {
371 1 ce = 1; //ad not enable
372 1 le = 0; //three-states latched
373 1 e = 1; //lcd enable
374 1 }
375
376 void three_open(void)
377 {
378 1 ce = 1; //ad not enable
379 1 e = 0; //lcd not enable
380 1 le = 1; //tree-states open
381 1 }
382 void three_close(void)
383 {
384 1 ce = 1; //ad not enable
385 1 e = 0; //lcd not enable
386 1 le = 0; //tree-states close
387 1 }
388
389
390 void lcd_ini()
391 {
392 1 delay(100);
393 1 lcd_wrc(0x34);
394 1 delay(10);
395 1 lcd_wrc(0x30);
396 1 delay(10);
397 1 lcd_wrc(0x01);
398 1 delay(10);
399 1 lcd_wrc(0x06);
400 1 delay(10);
401 1 lcd_wrc(0x0c);
402 1 delay(200);
403 1 }
404 void lcd_wrc(uchar com)
405 {
406 1 lcd_en();
407 1 lcd_checkbusy();
408 1 rs = 0;
409 1 rw = 0;
410 1 P0 = com;
411 1 e = 1;
412 1 delay(10);
413 1 e = 0;
414 1 }
415
416 void lcd_wrd(uchar dat)
417 {
418 1 // checkbusy();
419 1 lcd_en();
420 1 lcd_checkbusy();
421 1 rs = 1;
422 1 rw = 0;
423 1 P0 = dat;
424 1 e = 1;
425 1 delay(5);
C51 COMPILER V7.07 SHTXX_SELF 06/14/2007 21:21:35 PAGE 8
426 1 e = 0;
427 1 }
428 void lcd_checkbusy()
429 {
430 1
431 1 uchar busy = 0;
432 1 lcd_en();
433 1 P0 = 0XFF;
434 1 busy = P0;
435 1 if(busy>0x7f)
436 1 {
437 2 rs = 0;
438 2 rw = 1;
439 2 e = 1;
440 2 busy = P0;
441 2 e = 0;
442 2 delay(10);
443 2 }
444 1 }
445 //uchar lcd_rdd();
446 void delay(uchar n)
447 {
448 1 while(n--);
449 1 }
450
451 void ldelay(uchar n)
452 {
453 1 uchar a=250;
454 1 while(a--)
455 1 {
456 2 while(n--);
457 2 }
458 1 }
459
460
461 void lcd_on()
462 {
463 1 lcd_deng = 0;
464 1 }
465 void lcd_off()
466 {
467 1 lcd_deng = 1;
468 1 }
469 uchar lcd_read_ac()
470 {
471 1 uchar dat = 0;
472 1 lcd_en();
473 1 // P0 = 0X00;
474 1 e = 1;
475 1 rs = 0;
476 1 rw = 1;
477 1 // e = 1;
478 1 delay(10);
479 1 dat = P0;
480 1 // delay(10);
481 1 // e = 0;
482 1 return(dat&0x7f);
483 1 }
484 void lcd_dis_num(uint dat)
485 {
486 1 uint a=0;
487 1 dat =dat%10000;
C51 COMPILER V7.07 SHTXX_SELF 06/14/2007 21:21:35 PAGE 9
488 1 a =dat/1000;
489 1 lcd_wrd(0x30+a);
490 1 dat =dat%1000;
491 1 a =dat/100;
492 1 lcd_wrd(0x30+a);
493 1 dat =dat%100;
494 1 a=dat/10;
495 1 lcd_wrd(0x30+a);
496 1 dat =dat%10;
497 1 lcd_wrd(0x30+dat);
498 1 }
499 void lcd_dis_num_1(uint dat)
500 {
501 1 dat = dat%10;
502 1 lcd_wrd(0x30+dat);
503 1 }
504 void lcd_dis_num_2(uint dat)
505 {
506 1 uint a=0;
507 1 dat =dat%100;
508 1 a=dat/10;
509 1 lcd_wrd(0x30+a);
510 1 dat =dat%10;
511 1 lcd_wrd(0x30+dat);
512 1 }
513 void lcd_dis_num_3(uint dat)
514 {
515 1 uint a=0;
516 1 dat =dat%1000;
517 1 a =dat/100;
518 1 lcd_wrd(0x30+a);
519 1 dat =dat%100;
520 1 a=dat/10;
521 1 lcd_wrd(0x30+a);
522 1 dat =dat%10;
523 1 lcd_wrd(0x30+dat);
524 1 }
525 void lcd_dis_num_4(uint dat)
526 {
527 1 uint a=0;
528 1 dat =dat%10000;
529 1 a =dat/1000;
530 1 lcd_wrd(0x30+a);
531 1 dat =dat%1000;
532 1 a =dat/100;
533 1 lcd_wrd(0x30+a);
534 1 dat =dat%100;
535 1 a=dat/10;
536 1 lcd_wrd(0x30+a);
537 1 dat =dat%10;
538 1 lcd_wrd(0x30+dat);
539 1 }
540 void lcd_dis_num_bit(uint dat,uchar bits)
541 {
542 1 uint a=0;
543 1 // uint b=pow(10,bits);
544 1 int b=pow(10,3);
545 1 float c=pow((float)10,(float)bits);
546 1 // int c = pow(10,2);
547 1 b = (uint)c;
548 1 lcd_dis_num(b);
549 1
C51 COMPILER V7.07 SHTXX_SELF 06/14/2007 21:21:35 PAGE 10
550 1 dat =dat%10000;
551 1 dat =dat%b;
552 1 b = b/10;
553 1 lcd_dis_num(b);
554 1 for(;b>5;b=b/10)
555 1 {
556 2 // b = b/10;
557 2 a = dat/b;
558 2 lcd_wrd(0x30+a);
559 2 dat = dat%b;
560 2 }
561 1 lcd_wrd(0x30+dat);
562 1 /* a =dat/1000;
563 1 lcd_wrd(0x30+a);
564 1 dat =dat%1000;
565 1 a =dat/100;
566 1 lcd_wrd(0x30+a);
567 1 dat =dat%100;
568 1
569 1 a=dat/10;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -