📄 signal_show.lst
字号:
320 1 outcode(0x4c);
321 1 outcode(0x42);
322 1 lcd_a0=0;
323 1 outdata(0x3f);
324 1 for(i=1;i<31;i++)outdata(0xff);
325 1 lcd_cs=1;
326 1 }
327 /***************************************************************
328 *名称:DrawFrame(void)
329 *描述:在第二层画网格边框
330 *参数:
331 *返回:
332 ****************************************************************/
333 void DrawFrame(void) //画网格边框
334 {
335 1 fixline(0);
336 1 fixline(200);
337 1
338 1 Ver(0,1); //(8,12) --- (8,262)
339 1 Ver(LENGTH,1); //(208,12) --- (208,212)
340 1 fixline(40);
341 1 fixline(80);
342 1 fixline(120);
343 1 fixline(160);
344 1 fixline2(200);
345 1 fixline2(0);
346 1 }
347 /***************************************************************
348 *名称:DrawGrid(void)
349 *描述:在第二层画网格区内的网格线
350 *参数:
351 *返回:
352 ****************************************************************/
353 void DrawGrid(void) //画网格区内的网格线
354 {
355 1 uchar i;
356 1 Hori(1,5);
357 1 Hori(2,25);
358 1 Hori(WIDTH-2,0x19);
359 1 Hori(WIDTH-2,0x05);
360 1 Ver(0x02,0x19);
361 1 Ver(LENGTH-2,0x19);
362 1 for(i=1;i<0x08;i++){
363 2 Hori(25*i,5);
364 2 if(i==0x04){
365 3 Hori(0x19*i-1,5);
C51 COMPILER V7.06 SIGNAL_SHOW 03/26/2007 17:35:00 PAGE 7
366 3 Hori(0x19*i+1,5);//
367 3 }
368 2 }
369 1 for(i=0x01;i<0x0a;i++)
370 1 {
371 2 Ver(0x19*i,5);
372 2 if(i==0x05)
373 2 {
374 3 Ver(0x19*i-1,5);
375 3 Ver(0x19*i+1,5);
376 3 }
377 2 }
378 1 }
379 /***************************************************************
380 *名称:showchinese(uchar x,uchar y,int chin)
381 *描述:在x,y位置处,显示字符码为chin
382 *参数:坐标x,坐标y
383 *返回:
384 ****************************************************************/
385 void showchinese(uchar x,uchar y,int chin)
386 {
387 1 int idata temp1,temp2;
388 1 uchar idata hi,lo;
389 1 uchar idata b,c=0,d;
390 1 d=y;
391 1 temp2=chin;
392 1 lcd_cs=0;
393 1 lcd_a0=1;
394 1 outcode(0x4c);
395 1 for(b=0;b<16;b++){
396 2 temp1=0x5218+x/8+d*AP;//5218
397 2 hi=temp1>>8;//hi=temp1/256;
398 2 lo=(uchar)temp1;//lo=temp1%256;
399 2 lcd_a0=1;
400 2 outcode(0x46);
401 2 lcd_a0=0;
402 2 outdata(lo);
403 2 outdata(hi);
404 2 lcd_a0=1;
405 2 outcode(0x42);
406 2 lcd_a0=0;
407 2 outdata(hzdot[temp2]);
408 2 temp2++;
409 2 outdata(hzdot[temp2]);
410 2 temp2++;
411 2 d=d+1;
412 2 }
413 1 lcd_cs=1;
414 1 }
415 void show_num (unsigned int x, unsigned int y, int chin)
416 {
417 1 int temp1,temp2;
418 1 uchar hi,lo;
419 1 uchar b;
420 1 unsigned int d=y;
421 1 temp2=chin;
422 1 lcd_cs=0;
423 1 lcd_a0=1;
424 1 outcode(0x4f);
425 1 temp1=0x5218+x/8+d*AP;//5000
426 1 hi=temp1>>8;//hi=temp1/256;
427 1 lo=(uchar)temp1;//lo=temp1%256;
C51 COMPILER V7.06 SIGNAL_SHOW 03/26/2007 17:35:00 PAGE 8
428 1 lcd_a0=1;
429 1 outcode(0x46);
430 1 lcd_a0=0;
431 1 outdata(lo);
432 1 outdata(hi);
433 1 lcd_a0=1;
434 1 outcode(0x42);
435 1 lcd_a0=0;
436 1 for(b=0;b<16;b++){
437 2 outdata(hzdot[temp2]);
438 2 temp2++;
439 2 }
440 1 lcd_cs=1;
441 1 }
442 /***************************************************************
443 *名称:showchin(void)
444 *描述:显示四个汉字,波,形,正,弦
445 *参数:
446 *返回:
447 ****************************************************************/
448 void showchin(void)
449 {
450 1 uchar x,y;
451 1 x=10;y=4;
452 1 showchinese(x,y,CBCF2);//简
453 1 x=x+34;
454 1 showchinese(x,y,CD2D7);//易
455 1 x=10;y=22;
456 1 showchinese(x,y,CCABE);//示
457 1 x=x+17;
458 1 showchinese(x,y,CB2A8);//波
459 1 x=x+17;
460 1 showchinese(x,y,CC6F7);//器
461 1
462 1 x=10;y=82;
463 1 show_num(x,y,CC001);// 1
464 1 x=x+8;
465 1 show_num(x,y,CC000);// 0
466 1 x=x+8;
467 1 show_num(x,y,CC000);// 0
468 1 x=x+8;
469 1 show_num(x,y,CC000);// 0
470 1 x=10;y=100;
471 1 show_num(x,y,CC00M);// m
472 1 x=x+8;
473 1 show_num(x,y,CC00V);// V
474 1 x=x+8;
475 1 show_num(x,y,CC0ZZ);// /
476 1 x=x+8;
477 1 showchinese(x,y,CB8F1);//格
478 1
479 1 x=10;y=180;
480 1 show_num(x,y,CC00M);// m
481 1 x=x+8;
482 1 show_num(x,y,CC00S);// s
483 1 x=x+8;
484 1 show_num(x,y,CC0ZZ);// /
485 1 x=x+8;
486 1 showchinese(x,y,CB8F1);//格
487 1
488 1 // showchinese(10,140,CC6B5);
489 1 // showchinese(27,140,CC6D7);
C51 COMPILER V7.06 SIGNAL_SHOW 03/26/2007 17:35:00 PAGE 9
490 1 }
491 /***************************************************************
492 *名称:initall(void)
493 *描述:初始化液晶屏
494 *参数:
495 *返回:
496 ****************************************************************/
497 void initall(void)
498 {
499 1 lcd_cs=0;
500 1 turnoff();
501 1 init();
502 1 initram();
503 1 turnon();
504 1 lcd_cs=1;
505 1 DrawFrame();
506 1 // DrawGrid();
507 1 }
508 /***************************************************************
509 *名称:uchar adc0804(void)
510 *描述:AD0804采样一次
511 *参数:
512 *返回:采样值
513 ****************************************************************/
514 /*uchar adc0804(void)
515 {
516 uchar idata ad_data ;
517 P0=0xff;
518 Adc_cs = 0 ;
519 // lcd_rd = 1 ;
520 lcd_wr = 0 ;
521 lcd_wr = 1 ;
522 while(Adc_busy) ;
523 //lcd_rd = 0 ;
524 lcd_a0=0;
525 ad_data = P0 ;
526 //lcd_rd = 1 ;
527 lcd_a0=1;
528 Adc_cs = 1 ;
529 return ad_data ;
530 }*/
531 void clear(unsigned int x,unsigned int y,unsigned char ll)
532 {
533 1 unsigned int idata address;
534 1 uchar idata addh,addl;
535 1 uchar idata m;
536 1 // x=24;y=0;
537 1 address=0x01f9+x/8+y*AP;
538 1 addh=address>>8;//addh=address/256;
539 1 addl=(uchar)address;//addl=address%256;
540 1 lcd_cs=0;
541 1 lcd_a0=1;
542 1 outcode(0x46);
543 1 lcd_a0=0;
544 1 outdata(addl);
545 1 outdata(addh);
546 1 lcd_a0=1;
547 1 outcode(0x4f);
548 1 outcode(0x42);
549 1 lcd_a0=0;
550 1 for(m=0;m<ll;m++)
551 1 {
C51 COMPILER V7.06 SIGNAL_SHOW 03/26/2007 17:35:00 PAGE 10
552 2 EA=0;
553 2 lcd_a0=0;
554 2 P0=0xff;
555 2 lcd_rd=0;
556 2 // aaa=busy;
557 2 while(busy==1); //aaa=busy
558 2 lcd_rd=1;
559 2 lcd_a0=0;
560 2 EA=1;
561 2 //for(m=0;m<2;m++)
562 2 outdata(0);
563 2 }
564 1 lcd_cs=1;
565 1 }
566 void clear_1(unsigned int x,unsigned int y)
567 {
568 1 unsigned int idata address;
569 1 uchar idata addh,addl;
570 1 uchar idata n;
571 1 // uchar temp;
572 1 // bit aaa;
573 1 // x=24;y=0;
574 1 address=0x01f9+x/8+y*AP;
575 1 addh=address>>8;//addh=address/256;
576 1 addl=(uchar)address;//addl=address%256;
577 1 lcd_cs=0;
578 1 lcd_a0=1;
579 1 outcode(0x46);
580 1 lcd_a0=0;
581 1 outdata(addl);
582 1 outdata(addh);
583 1 lcd_a0=1;
584 1 outcode(0x4f);
585 1 outcode(0x42);
586 1 lcd_a0=0;
587 1 for(n=0;n<200;n++)
588 1 {
589 2 /* EA=0;
590 2 lcd_a0=0;
591 2 P0=0xff;
592 2 lcd_rd=0;
593 2 // aaa=busy;
594 2 while(busy==1); //aaa=busy
595 2 lcd_rd=1;
596 2 lcd_a0=0;
597 2 EA=1;*/
598 2 //for(m=0;m<2;m++)
599 2 outdata(0);
600 2 }
601 1 lcd_cs=1;
602 1 }
603 /***************************************************************
604 *名称:Adc_work(void)
605 *描述:AD0804采样
606 *参数:
607 *返回:采样值数组
608 ****************************************************************/
609 /*void Adc_work(void)
610 {
611 unsigned int k=0 ;
612 unsigned char temp_data1,temp_data2;
613 unsigned int x,y;
C51 COMPILER V7.06 SIGNAL_SHOW 03/26/2007 17:35:00 PAGE 11
614
615 clear(24,0,200);
616 x=32;y=35;
617 clear(x,y,21);
618
619 // while(!Adc_en) ;
620 P0=0xff;
621 temp_data1 = adc0804() ;
622 WriteD(25,(temp_data1>>1)+35);
623 y=y+21;
624 clear(x,y,21);
625 // while(!Adc_en) ;
626
627 for(k=1;k<Sam_N;k++)
628 {
629 // while(!Adc_en) ;
630 P0=0xff;
631 temp_data2 = adc0804() ;
632
633 WriteD(k+25,(temp_data2>>1)+35);
634
635 if(k%8==0)
636 {
637 x=x+8;
638 y=0;
639 }
640 else y=y+21;
641 test=1;
642 clear(x,y,21);
643 test=0;
644
645 // while(!Adc_en) ;
646 temp_data1=temp_data2;
647 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -