📄 lcdkey03.lst
字号:
319 1 lcd_wrcmd(0x01);
320 1 delay(100);
321 1 }
322
323 //////////////////////////////////////////////
324 //
325 // 生成汉字子模函数
326 // 当lcd_wrdata(0);显示第一个汉字
327 // 当lcd_wrdata(1);显示第二个汉字
328 //
329 //////////////////////////////////////////////
330 lcd_h()
331 {
332 1 uchar i;
333 1 lcd_wrcmd(0x40);
334 1 for(i=0;i<24;i++) lcd_wrdata(hanzi[i]);
335 1 }
336
337
338 welcome()
339 {
340 1
341 1 uchar temp=0x12,w;
342 1 lcd_wrcmd(0x0c);
343 1 lcd_wrcmd(0x82);
344 1
345 1 for(w=0;w<strlen(str1);w++)
346 1 lcd_wrdata(str1[w]);
347 1 lcd_h();
348 1 lcd_wrcmd(0xc4);
349 1 lcd_wrdata('2'); lcd_wrdata('0');lcd_wrdata('0');lcd_wrdata('7');
350 1 lcd_wrdata(0);
351 1 lcd_wrdata('0');lcd_wrdata('7');
352 1 lcd_wrdata(1);
353 1 while(1)
354 1 {
355 2 temp=getkey();
356 2 if(temp!=0xff) //按任意键跳转
357 2 {
358 3 state=1;
359 3 lcd_wrcmd(1);
360 3 break;
361 3 }
362 2 }
363 1 }
364
C51 COMPILER V8.02 LCDKEY03 07/31/2007 09:25:36 PAGE 7
365
366 phase()
367 {
368 1 uchar i,j,t,cnt=0;
369 1 lcd_wrcmd(0x0f);
370 1 lcd_wrcmd(0xc9);
371 1 lcd_wrdata(2);
372 1 lcd_wrcmd(0x83);
373 1 for(t=0;t<strlen(fre);t++)lcd_wrdata(0x30+fre[t]);
374 1 lcd_wrcmd(0xc5);
375 1 while(1) //按键处理
376 1
377 1 {
378 2 i=table[getkey()];
379 2 if(i<10)
380 2 { cnt++;
381 3 if(cnt<=3)
382 3 {
383 4 lcd_wrcmd(0xc5+cnt-1);
384 4 lcd_wrdata(0x30+i);
385 4 }
386 3 else
387 3 {
388 4 cnt=0;
389 4 lcd_wrcmd(0xc5);
390 4 for(j=0;j<=3;j++)
391 4 lcd_wrdata(' ');
392 4 lcd_wrcmd(0xc5);
393 4 }
394 3 }
395 2 else if(i==12)
396 2 {
397 3 state=1;
398 3 lcd_wrcmd(0x0c);
399 3 lcd_wrcmd(1);
400 3 lcd_wrcmd(0x80);
401 3 break;
402 3 }
403 2 else if(i==13)
404 2 {
405 3 cnt=0;
406 3 lcd_wrcmd(0xc5);
407 3 for(j=0;j<=3;j++)
408 3 lcd_wrdata(' ');
409 3 lcd_wrcmd(0xc5);
410 3 }
411 2 }
412 1
413 1
414 1 }
415
416
417
418 frequency()
419 {
420 1 uchar i,j,cnt=0; // 假如将cnt定义成全局变量,当退出这个界面时,cnt仍然保存原来的值
421 1 lcd_wrcmd(0x80); //会出现光标乱跳的错误
422 1 lcd_wrcmd(0xce);
423 1 lcd_wrdata('H');
424 1 lcd_wrdata('Z');
425 1 lcd_wrcmd(0x81);
426 1 for(i=0;i<15;i++)lcd_wrdata(str2[i]);
C51 COMPILER V8.02 LCDKEY03 07/31/2007 09:25:36 PAGE 8
427 1 lcd_wrcmd(0x0f);
428 1 lcd_wrcmd(0xc0);
429 1 for(i=0;i<20;i++)
430 1 fre[i]=NULL;
*** WARNING C260 IN LINE 430 OF LCDKEY03.C: '=': pointer truncation
431 1 while(1) //按键处理
432 1 {
433 2 i=table[getkey()];
434 2
435 2 if(i<10)
436 2 { cnt++;
437 3 if(cnt<=10)
438 3 { fre[cnt-1]=i;
439 4 lcd_wrcmd(0xc0+cnt-1);
440 4 lcd_wrdata(0x30+i);
441 4
442 4 }
443 3 else
444 3 {
445 4 cnt=0;
446 4 lcd_wrcmd(0xc0);
447 4 for(j=0;j<=10;j++)
448 4 lcd_wrdata(' ');
449 4
450 4
451 4 lcd_wrcmd(0xc0);
452 4 }
453 3 }
454 2 else if(i==12)
455 2 {
456 3 state=1;
457 3 lcd_wrcmd(0x0c);
458 3 lcd_wrcmd(1);
459 3 lcd_wrcmd(0x80);
460 3 break;
461 3 }
462 2 else if(i==13)
463 2 {
464 3 cnt=0;
465 3 lcd_wrcmd(0xc0);
466 3 for(j=0;j<=10;j++)
467 3 lcd_wrdata(' ');
468 3 lcd_wrcmd(0xc0);
469 3 }
470 2 }
471 1
472 1 }
473
474 warning()
475 {
476 1 uchar i,ii;
477 1 lcd_wrcmd(1);
478 1 lcd_wrcmd(0x0c);
479 1 lcd_wrcmd(0x83);
480 1 for(i=0;i<9;i++)
481 1 lcd_wrdata(warn[i]);
482 1 lcd_wrcmd(0xc1);
483 1 for(i=0;i<12;i++)
484 1 lcd_wrdata(warn[i+9]);
485 1 while(1)
486 1 {
487 2 ii=getkey();
C51 COMPILER V8.02 LCDKEY03 07/31/2007 09:25:36 PAGE 9
488 2 if(ii!=0xff)
489 2 {
490 3 lcd_wrcmd(1);
491 3 break;
492 3
493 3 }
494 2
495 2 }
496 1 }
497
498
499 uchar dac_convert(uchar *amp)
500 {
501 1 uint v;
502 1 v=amp[2]*100+amp[1]*10+amp[0];
503 1 if(v<500)
504 1 {
505 2 v=32*v;
506 2 dac_tlc5620(v/100);
507 2 return 0;
508 2 }
509 1 else
510 1 {
511 2 return 1;
512 2 }
513 1
514 1 }
515
516
517 amplitude()
518 {
519 1 uchar i,ii;
520 1 uchar amp[3],t=0;
521 1 lcd_wrcmd(0x80);
522 1 for(i=0;i<16;i++)
523 1 lcd_wrdata(am[i]);
524 1 lcd_wrcmd(0xcc);
525 1 lcd_wrdata('V');
526 1 lcd_wrcmd(0xc7);
527 1 lcd_wrdata('.');
528 1 lcd_wrcmd(0x0f); //开光标
529 1 lcd_wrcmd(0xc7);
530 1 while(1)
531 1 {
532 2 ii=table[getkey()];
533 2 if(ii==11)
534 2 {
535 3 if(t==4)
536 3 {
537 4 if(dac_convert(amp))
538 4 {
539 5 warning();
540 5 break;
541 5 }
542 4 }
543 3 lcd_wrcmd(0x0c);
544 3 state=1;
545 3 lcd_wrcmd(1);
546 3 break;
547 3 }
548 2 if(ii<10)
549 2 {
C51 COMPILER V8.02 LCDKEY03 07/31/2007 09:25:36 PAGE 10
550 3 t++;
551 3 if(t==1)
552 3 {
553 4 lcd_wrcmd(0xc9);
554 4 }
555 3 if(t==2)t++;
556 3 if(t==1)amp[2]=ii;
557 3 else if(t==3)amp[1]=ii;
558 3 else if(t==4)amp[0]=ii;
559 3
560 3 if(t==5)
561 3 {
562 4 t=0;
563 4 lcd_wrcmd(0xc7);
564 4 lcd_wrdata(' '); lcd_wrdata('.');lcd_wrdata(' ');lcd_wrdata(' ');
565 4 lcd_wrcmd(0xc7);
566 4 }
567 3 else
568 3 {
569 4 lcd_wrcmd(0xc6+t);
570 4 lcd_wrdata(0x30+ii);
571 4 }
572 3
573 3
574 3 }
575 2
576 2
577 2 }
578 1
579 1 }
580
581 inputtl()
582 {
583 1 uchar i,j,n,cnt=0;
584 1 for(i=0;i<3;i++)
585 1 TL[i]=NULL;
*** WARNING C260 IN LINE 585 OF LCDKEY03.C: '=': pointer truncation
586 1 lcd_wrcmd(0x80);
587 1 lcd_wrdata('T');
588 1 lcd_wrdata('L');
589 1 lcd_wrdata('=');
590 1 while(1)
591 1 {i=table[getkey()];
592 2 if(i<10)
593 2 { cnt++;
594 3 if(cnt<=3)
595 3 { TL[cnt-1]=i;
596 4 lcd_wrcmd(0x83+cnt-1);
597 4 lcd_wrdata(0x30+i);
598 4
599 4 }
600 3 else{
601 4 cnt=0;
602 4 lcd_wrcmd(0x83);
603 4 for(j=0;j<=3;j++)
604 4 lcd_wrdata(' ');
605 4 lcd_wrcmd(0x83);
606 4
607 4 }
608 3 }
609 2
610 2 else if(i==12)
C51 COMPILER V8.02 LCDKEY03 07/31/2007 09:25:36 PAGE 11
611 2 {
612 3 state=1;
613 3 lcd_wrcmd(0x0c);
614 3 lcd_wrcmd(1);
615 3 lcd_wrcmd(0x80);
616 3 n=strlen(TL);
617 3 if(TL[2]>=0&&TL[2]<=9)
618 3 TLL=TL[0]*100+TL[1]*10+TL[2];
619 3
620 3 break;
621 3 }
622 2
623 2
624 2
625 2
626 2 }
627 1 }
628
629
630 inputth()
631 {
632 1 uchar i,j,n,cnt=0;
633 1 for(i=0;i<3;i++)
634 1 TL[i]=NULL;
*** WARNING C260 IN LINE 634 OF LCDKEY03.C: '=': pointer truncation
635 1 lcd_wrcmd(0x80);
636 1 lcd_wrdata('T');
637 1 lcd_wrdata('H');
638 1 lcd_wrdata('=');
639 1 while(1)
640 1 {i=table[getkey()];
641 2 if(i<10)
642 2 { cnt++;
643 3 if(cnt<=3)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -