sweep_320_240.lst
来自「在采用 320x240 屏的设计实验箱上运行」· LST 代码 · 共 714 行 · 第 1/3 页
LST
714 行
454 {
455 1 int temp1,temp2;
456 1 uchar hi,lo;
457 1 uchar b;
458 1 unsigned int d=y;
459 1 temp2=chin;
460 1 outcode(0x4f);
461 1 temp1=0x5000+x/8+d*AP;//5218
462 1 hi=temp1>>8;//hi=temp1/256;
463 1 lo=(uchar)temp1;//lo=temp1%256;
464 1 outcode(0x46);
465 1 outdata(lo);
466 1 outdata(hi);
467 1 outcode(0x42);
468 1 for(b=0;b<16;b++){
469 2 outdata(hzdot[temp2]);
470 2 temp2++;
471 2 }
472 1 }
473
474 #define Start 0
475 #define Screen 1
476 #define Setup 2
477 #define FreqScan 3
478
479 #define enter_num 0
480 #define wait_key 1
481 #define exit_setup 2
482
483 unsigned long int Freq,FreqS;
484 unsigned long int Freq_temp;
485 unsigned char MainSM=0;
486 unsigned char SetupSM=0;
487
488 void main(void)
489 {
C51 COMPILER V7.06 SWEEP_320_240 02/25/2007 18:14:54 PAGE 9
490 1 unsigned char mod,value_index;
491 1 init_port();
492 1 init_interrupt();
493 1 _nop_();
494 1 _nop_();
495 1 _nop_();
496 1 display_init();
497 1 //cls();
498 1 //Set_Display_Add(0);
499 1 //printf("dds \nPlease press enter key to set Frequency");
500 1 while(1){
501 2 //SetCommand(0xaa,1);
502 2
503 2 switch(MainSM)
504 2 {
505 3 case Start: MainSM=Screen;
506 3 SetPhase(2000);
507 3 SetCMD(mod&0x03);
508 3 display_mod((mod)&0x03);
509 3 //Set_Display_Add(560);
510 3 //putchar(value[0]+0x30);
511 3 //putchar(value[1]+0x30);
512 3 //putchar(value[2]+0x30);
513 3 //putchar(value[3]+0x30);
514 3 //putchar(value[4]+0x30);
515 3 show_fre();
516 3 refresh_led();
517 3 break;
518 3 case Screen: if(key_pressed==ON)
519 3 {
520 4 switch(key_no)
521 4 {
522 5 case key_enter: MainSM=Setup;
523 5 break;
524 5 case key_clr: MainSM=FreqScan;
525 5 FreqS=Freq;
526 5 break;
527 5 case key_mod: SetCMD((++mod)&0x03);
528 5 display_mod((mod)&0x03);
529 5 refresh_led();
530 5 break;
531 5 default: break;
532 5 }
533 4 key_pressed=OFF;
534 4 }
535 3 break;
536 3 case FreqScan: //扫频输出状态
537 3 delayMs(10); //延时函数,每隔若干毫秒步进50Hz
538 3 SetPhase(FreqS&0x7fff); //设置频率,以模32k循环
539 3 FreqS+=50; //频率步进50hz
540 3 if(key_pressed==ON)
541 3 {
542 4 switch(key_no)
543 4 {
544 5 case key_enter: MainSM=Setup;
545 5 break;
546 5 case key_clr: MainSM=Screen;
547 5 SetPhase(Freq);
548 5 break;
549 5 case key_mod: SetCMD((++mod)&0x03);
550 5 display_mod((mod)&0x03);
551 5 refresh_led();
C51 COMPILER V7.06 SWEEP_320_240 02/25/2007 18:14:54 PAGE 10
552 5 break;
553 5 default: break;
554 5 }
555 4 key_pressed=OFF;
556 4 }
557 3 break;
558 3
559 3 case Setup: //Set_Display_Add(428);
560 3 //printf("SETUP");
561 3 set_up(1);//设置
562 3 switch(SetupSM)
563 3 {
564 4 case enter_num: value[0]=0;
565 4 value[1]=0;
566 4 value[2]=0;
567 4 value[3]=0;
568 4 value[4]=0;
569 4 //Set_Display_Add(560);
570 4 //putchar(value[0]+0x30);
571 4 //putchar(value[1]+0x30);
572 4 //putchar(value[2]+0x30);
573 4 //putchar(value[3]+0x30);
574 4 //putchar(value[4]+0x30);
575 4 show_fre();
576 4 value_index=0;
577 4 SetupSM=wait_key;
578 4 break;
579 4 case wait_key: if(key_pressed==ON)
580 4 {
581 5 switch(key_no)
582 5 {
583 6 case key0:
584 6 case key1:
585 6 case key2:
586 6 case key3:
587 6 case key4:
588 6 case key5:
589 6 case key6:
590 6 case key7:
591 6 case key8:
592 6 case key9:
593 6 if(value_index<5)
594 6 {
595 7 value[value_index]=key_no;
596 7 value_index++;
597 7 }
598 6
599 6 break;
600 6 case key_enter:SetupSM=exit_setup;
601 6 break;
602 6 case key_mod: SetCMD((++mod)&0x03);
603 6 display_mod((mod)&0x03);
604 6 refresh_led();
605 6 break;
606 6 default: break;
607 6 }
608 5 //Set_Display_Add(560);
609 5 //putchar(value[0]+0x30);
610 5 //putchar(value[1]+0x30);
611 5 //putchar(value[2]+0x30);
612 5 //putchar(value[3]+0x30);
613 5 //putchar(value[4]+0x30);
C51 COMPILER V7.06 SWEEP_320_240 02/25/2007 18:14:54 PAGE 11
614 5 show_fre();
615 5 refresh_led();
616 5 key_pressed=OFF;
617 5 }
618 4
619 4 break;
620 4 case exit_setup: Freq_temp=value[0];
621 4 Freq=Freq_temp*10000;
622 4 Freq_temp=value[1];
623 4 Freq=Freq+Freq_temp*1000;
624 4 Freq_temp=value[2];
625 4 Freq=Freq+Freq_temp*100;
626 4 Freq_temp=value[3];
627 4 Freq=Freq+Freq_temp*10;
628 4 Freq=Freq+value[4];
629 4 SetPhase(Freq);
630 4 //Set_Display_Add(560);
631 4 //putchar(value[0]+0x30);
632 4 //putchar(value[1]+0x30);
633 4 //putchar(value[2]+0x30);
634 4 //putchar(value[3]+0x30);
635 4 //putchar(value[4]+0x30);
636 4 show_fre();
637 4 refresh_led();
638 4 //Set_Display_Add(428);
639 4 //printf(" ");
640 4 set_up(0);//设置00
641 4 refresh_led();
642 4 SetupSM=enter_num;
643 4 MainSM=Screen;
644 4 break;
645 4 }
646 3 break;
647 3 default:
648 3 break;
649 3 }
650 2
651 2
652 2
653 2 } //等待中断
654 1 }
655
656 void interrupt_handle() interrupt 0
657 {
658 1 //uchar disdata;
659 1 DISABLE; //CPU关中断
660 1 wait(); //键盘消抖延时
661 1 if (Int_wire==0)
662 1 {
663 2 key_pressed=ON;
664 2 P2=0xFF;
665 2 key_no=P2&0x0F; //读取P2口的低四位显示数据编码
666 2 }
667 1 ENABLE; //CPU开中断
668 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2422 ----
CONSTANT SIZE = 1987 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
C51 COMPILER V7.06 SWEEP_320_240 02/25/2007 18:14:54 PAGE 12
DATA SIZE = 18 39
IDATA SIZE = 6 ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?