⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ss_sweep.lst

📁 单片机与fpga组成的dds,单片机部分的原码,其中有320*240的液晶屏的控制
💻 LST
📖 第 1 页 / 共 2 页
字号:
 248   1      Mh=0;
 249   1      DC=1;
 250   1      Cmd_CS=1;
 251   1      Cmd_CS=0;
 252   1      Cmd_CS=1;
 253   1      P0=(div<<3)|((phase&0x0700)>>8);//((unsigned char *)&phase)[0];
 254   1      Mh=1;
 255   1      DC=1;
 256   1      Cmd_CS=1;
 257   1      Cmd_CS=0;
 258   1      Cmd_CS=1;
 259   1      }
 260          
 261          void SetCMD(unsigned char Cmd)
 262          {
 263   1      P0=Cmd;
 264   1      DC=0;
 265   1      Cmd_CS=1;
 266   1      Cmd_CS=0;
 267   1      Cmd_CS=1;
 268   1      }
 269          
 270          void refresh_led()
 271          {
 272   1      led_display(10);
 273   1      led_display(value[0]);
 274   1      led_display(value[1]);
 275   1      led_display(value[2]);
 276   1      led_display(value[3]);
 277   1      led_display(value[4]);
 278   1      }
 279          
 280          
 281          
 282          void display_mod(unsigned char mod)
 283          {
 284   1      Set_Display_Add(768);
 285   1      printf("MOD:");
 286   1              switch(mod)
 287   1              {
 288   2                      case Wsin: printf("SIN  ");
 289   2                                      break;
 290   2                      case Wtri: printf("TRI  ");
 291   2                                      break;
 292   2                      case Wpul: printf("PULSE");
 293   2                                      break;
 294   2                      case Wclr: printf("NONE ");
 295   2                                      break;
 296   2              }
 297   1      }
 298          #define Start           0
 299          #define Screen          1
 300          #define Setup           2
 301          #define FreqScan        3
 302          
 303          #define enter_num       0
C51 COMPILER V7.07   SS_SWEEP                                                              05/29/2007 13:40:18 PAGE 6   

 304          #define wait_key        1
 305          #define exit_setup      2
 306          
 307          unsigned long int Freq,FreqS;
 308          unsigned long int Freq_temp;
 309          unsigned char MainSM=0;
 310          unsigned char SetupSM=0;
 311          
 312          void main(void)
 313          {
 314   1              unsigned char mod,value_index;
 315   1              init_port();
 316   1              init_interrupt();
 317   1              _nop_();
 318   1              _nop_();
 319   1              _nop_();
 320   1              display_init();
 321   1              cls();
 322   1              Set_Display_Add(0);
 323   1              printf("dds        \nPlease press enter key to set Frequency");
 324   1              while(1){
 325   2              //SetCommand(0xaa,1);
 326   2              
 327   2             switch(MainSM)
 328   2              {
 329   3              case Start:     MainSM=Screen;
 330   3                              SetPhase(2000);
 331   3                              SetCMD(mod&0x03);
 332   3                              display_mod((mod)&0x03);
 333   3                              Set_Display_Add(560);
 334   3                              putchar(value[0]+0x30);
 335   3                              putchar(value[1]+0x30);
 336   3                              putchar(value[2]+0x30);
 337   3                              putchar(value[3]+0x30);
 338   3                              putchar(value[4]+0x30);
 339   3                              refresh_led();
 340   3                      break;
 341   3              case Screen:    if(key_pressed==ON)
 342   3                              {
 343   4                              switch(key_no)
 344   4                              {
 345   5                                      case key_enter: MainSM=Setup;
 346   5                                                      break;
 347   5                                      case key_clr:   MainSM=FreqScan;
 348   5                                                      FreqS=Freq;
 349   5                                                      break;
 350   5                                      case key_mod: SetCMD((++mod)&0x03);
 351   5                                                    display_mod((mod)&0x03);
 352   5                                                    refresh_led();
 353   5                                                      break;
 354   5                                      default:  break;                                
 355   5                              }
 356   4                              key_pressed=OFF;
 357   4                              }
 358   3                      break;
 359   3              case FreqScan:  //扫频输出状态
 360   3                              delayMs(10);    //延时函数,每隔若干毫秒步进50Hz
 361   3                              SetPhase(FreqS&0x7fff); //设置频率,以模32k循环
 362   3                              FreqS+=50;              //频率步进50hz
 363   3                              if(key_pressed==ON)
 364   3                              {
 365   4                              switch(key_no)
C51 COMPILER V7.07   SS_SWEEP                                                              05/29/2007 13:40:18 PAGE 7   

 366   4                              {
 367   5                                      case key_enter: MainSM=Setup;
 368   5                                                      break;
 369   5                                      case key_clr:   MainSM=Screen;
 370   5                                                      SetPhase(Freq);
 371   5                                                      break;
 372   5                                      case key_mod: SetCMD((++mod)&0x03);
 373   5                                                    display_mod((mod)&0x03);
 374   5                                                    refresh_led();
 375   5                                                      break;
 376   5                                      default:  break;                                
 377   5                              }
 378   4                              key_pressed=OFF;
 379   4                              }
 380   3                      break;
 381   3                      
 382   3              case Setup:     Set_Display_Add(428);
 383   3                              printf("SETUP");
 384   3                                      switch(SetupSM)
 385   3                                      {
 386   4                                              case  enter_num:        value[0]=0;
 387   4                                                                      value[1]=0;
 388   4                                                                      value[2]=0;
 389   4                                                                      value[3]=0;
 390   4                                                                      value[4]=0;
 391   4                                                                      Set_Display_Add(560);
 392   4                                                                      putchar(value[0]+0x30);
 393   4                                                                      putchar(value[1]+0x30);
 394   4                                                                      putchar(value[2]+0x30);
 395   4                                                                      putchar(value[3]+0x30);
 396   4                                                                      putchar(value[4]+0x30);
 397   4                                                                      value_index=0;
 398   4                                                                      SetupSM=wait_key;
 399   4                                                                      break;
 400   4                                              case  wait_key:         if(key_pressed==ON)
 401   4                                                                      {
 402   5                                                                      switch(key_no)
 403   5                                                                              {
 404   6                                                                              case key0:
 405   6                                                                              case key1: 
 406   6                                                                              case key2: 
 407   6                                                                              case key3: 
 408   6                                                                              case key4: 
 409   6                                                                              case key5:
 410   6                                                                              case key6:
 411   6                                                                              case key7:
 412   6                                                                              case key8:
 413   6                                                                              case key9:
 414   6                                                                                      if(value_index<5)
 415   6                                                                                      {
 416   7                                                                                      value[value_index]=key_no;
 417   7                                                                                      value_index++;
 418   7                                                                                      }
 419   6                                                                                      
 420   6                                                                                      break;
 421   6                                                                              case key_enter:SetupSM=exit_setup;
 422   6                                                                                      break;
 423   6                                                                              case key_mod: SetCMD((++mod)&0x03);
 424   6                                                                                            display_mod((mod)&0x03);
 425   6                                                                                            refresh_led();
 426   6                                                                                      break;
 427   6                                                                              default:  break;                                
C51 COMPILER V7.07   SS_SWEEP                                                              05/29/2007 13:40:18 PAGE 8   

 428   6                                                                              }
 429   5                                                                      Set_Display_Add(560);
 430   5                                                                      putchar(value[0]+0x30);
 431   5                                                                      putchar(value[1]+0x30);
 432   5                                                                      putchar(value[2]+0x30);
 433   5                                                                      putchar(value[3]+0x30);
 434   5                                                                      putchar(value[4]+0x30);
 435   5                                                                      refresh_led();
 436   5                                                                      key_pressed=OFF;
 437   5                                                                      }
 438   4                                                                                                                              
 439   4                                                                      break;
 440   4                                              case  exit_setup:       Freq_temp=value[0];
 441   4                                                                      Freq=Freq_temp*10000;
 442   4                                                                      Freq_temp=value[1];
 443   4                                                                      Freq=Freq+Freq_temp*1000;
 444   4                                                                      Freq_temp=value[2];
 445   4                                                                      Freq=Freq+Freq_temp*100;
 446   4                                                                      Freq_temp=value[3];
 447   4                                                                      Freq=Freq+Freq_temp*10;
 448   4                                                                      Freq=Freq+value[4];
 449   4                                                                      SetPhase(Freq);
 450   4                                                                      Set_Display_Add(560);
 451   4                                                                      putchar(value[0]+0x30);
 452   4                                                                      putchar(value[1]+0x30);
 453   4                                                                      putchar(value[2]+0x30);
 454   4                                                                      putchar(value[3]+0x30);
 455   4                                                                      putchar(value[4]+0x30);
 456   4                                                                      refresh_led();
 457   4                                                                      Set_Display_Add(428);
 458   4                                                                      printf("     ");
 459   4                                                                      refresh_led();
 460   4                                                                      SetupSM=enter_num;
 461   4                                                                      MainSM=Screen;
 462   4                                                                      break;
 463   4                                      }
 464   3                      break;
 465   3              default:
 466   3                      break;
 467   3              }
 468   2              
 469   2              
 470   2              
 471   2              }          //等待中断
 472   1      }
 473          
 474          void interrupt_handle() interrupt 0     
 475          {                                               
 476   1              //uchar disdata;
 477   1              DISABLE;                //CPU关中断
 478   1              wait();                 //键盘消抖延时
 479   1              if (Int_wire==0)
 480   1              {
 481   2              key_pressed=ON;
 482   2              P2=0xFF;
 483   2              key_no=P2&0x0F;        //读取P2口的低四位显示数据编码   
 484   2              }          
 485   1              ENABLE;                   //CPU开中断
 486   1      }
 487          


C51 COMPILER V7.07   SS_SWEEP                                                              05/29/2007 13:40:18 PAGE 9   

MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1667    ----
   CONSTANT SIZE    =    104    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     18      11
   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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -