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 + -
显示快捷键?