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

📄 oscilloscope1.lst

📁 单片机通过DA对信号采样
💻 LST
📖 第 1 页 / 共 3 页
字号:
 273   1      }
 274          
 275          //***************************************************************************************
 276          /*
 277          void Select_AB_Channel()
 278          {
 279            lcd_clear();
 280            Led_On=0;
 281            
 282           // if(Select_Flag%3)
 283           // Select_Flag=0;
 284           // else
 285           // {
 286             if(AD_Controll)
 287             {
 288             switch(Select_Flag%3)
 289             {
 290              case 0:
 291              Select_AB=1;
 292                  //Select_B=0;
 293              lcd_clear();
 294              lcd_write_sentence(2,1,"A 路选通");
 295              lcd_write_sentence(3,1,"B 路关闭");
 296                  break;
 297              case 1:
 298              Select_AB=2;
 299                  //Select_B=1;
 300              lcd_clear();
 301              lcd_write_sentence(2,1,"A 路关闭");
 302              lcd_write_sentence(3,1,"B 路选通");
 303                  break;
C51 COMPILER V7.06   OSCILLOSCOPE1                                                         08/17/2005 17:00:43 PAGE 6   

 304                  case 2:
 305              Select_AB=3;
 306                  //Select_B=1;
 307              lcd_clear();
 308              lcd_write_sentence(2,1,"A 路选通");
 309              lcd_write_sentence(3,1,"B 路选通");
 310                  break;
 311              default:
 312                  break;
 313           //  }
 314              }
 315              Select_Flag++; 
 316             }
 317          }
 318          */
 319          //***************************************************************************************
 320          void Input_Select()   //AD114输入选择
 321          {
 322   1       unchar temp1,temp2;
 323   1       temp1=AD_Channel%3;
 324   1       temp2=PB8155;
 325   1       temp2=temp2&0xFC;
 326   1       switch(temp1)
 327   1       {
 328   2        case 0:
 329   2        //AD_Controll=0;
 330   2        PB8155=temp2;
 331   2        lcd_clear();
 332   2        lcd_write_sentence(2,1,"A 路选通");
 333   2        lcd_write_sentence(3,1,"B 路关闭");
 334   2        Select_AB=1;
 335   2        break;
 336   2        case 1:
 337   2        //AD_Controll=0;
 338   2        PB8155=temp2+2;
 339   2        Select_AB=2;
 340   2        lcd_clear();
 341   2        lcd_write_sentence(2,1,"A 路关闭");
 342   2        lcd_write_sentence(3,1,"B 路选通");
 343   2        break;
 344   2        case 2:
 345   2        //AD_Controll=1;
 346   2        lcd_clear();
 347   2        PB8155=temp2+1;
 348   2        lcd_write_sentence(2,1,"A 路选通");
 349   2        lcd_write_sentence(3,1,"B 路选通");
 350   2        Select_AB=3;
 351   2        break;
 352   2       }
 353   1        AD_Channel++;
 354   1      }
 355          
 356          //***************************************************************************************
 357          void Vertical_GainA()
 358          { 
 359   1        unchar temp;
 360   1        Led_On=1;
 361   1        Key_Flag=4;
 362   1        if(Vertical_Gain_A_Grade<7)
 363   1        {
 364   2          Vertical_Gain_A_Grade++;
 365   2        }
C51 COMPILER V7.06   OSCILLOSCOPE1                                                         08/17/2005 17:00:43 PAGE 7   

 366   1        else
 367   1        Vertical_Gain_A_Grade=0;
 368   1        distab_clear();
 369   1        distab[0]=Vertical_Gain_A_Grade;
 370   1        display(0);
 371   1        temp=PB8155;
 372   1        temp=temp&0x03;
 373   1        PB8155=temp+_crol_(Vertical_Gain_A_Grade,5);
 374   1        //if(Vertical_Gain_A_Grade>2)
 375   1        //Vertical_Gain_A_Grade=0;
 376   1        //else
 377   1        //{
 378   1        // Vertical_Gain_B=Vertical_Gain_B_Grade;
 379   1        lcd_clear();
 380   1        lcd_write_sentence(1,0,"当前垂直增益档位");
 381   1        lcd_write_sentence(2,2,"A 路");
 382   1        //lcd_write_sentence(3,1,"0.01V/div");
 383   1        //lcd_write_command(0x8A);
 384   1        //lcd_write_data(0x30+Vertical_Gain_B_Grade);
 385   1        switch(Vertical_Gain_A_Grade)
 386   1         {
 387   2         case 0:
 388   2         lcd_write_sentence(3,1,"10mV/div");
 389   2         break;
 390   2         case 1:
 391   2         lcd_write_sentence(3,1,"20mV/div");
 392   2         break;
 393   2         case 2:
 394   2         lcd_write_sentence(3,1,"50mv/div");
 395   2         break;
 396   2         case 3:
 397   2         lcd_write_sentence(3,1,"0.1V/div");
 398   2         break;
 399   2         case 4:
 400   2         lcd_write_sentence(3,1,"0.2V/div");
 401   2         break;
 402   2         case 5:
 403   2         lcd_write_sentence(3,1,"0.5v/div");
 404   2         break;
 405   2         case 6:
 406   2         lcd_write_sentence(3,1,"1V/div");
 407   2         break;
 408   2         case 7:
 409   2         lcd_write_sentence(3,1,"2v/div");
 410   2         break;
 411   2         default:
 412   2         break;
 413   2         }
 414   1       
 415   1      }
 416          //***************************************************************************************
 417          void Vertical_GainB()
 418          {
 419   1        unchar temp;
 420   1        Led_On=1;
 421   1        Key_Flag=5;
 422   1        if(Vertical_Gain_B_Grade<7)
 423   1        {
 424   2          Vertical_Gain_B_Grade++;
 425   2        }
 426   1        else
 427   1        Vertical_Gain_B_Grade=0;
C51 COMPILER V7.06   OSCILLOSCOPE1                                                         08/17/2005 17:00:43 PAGE 8   

 428   1        distab_clear();
 429   1        distab[0]=Vertical_Gain_B_Grade;
 430   1        display(0);
 431   1        temp=PB8155;
 432   1        temp=temp&0x03;
 433   1        PB8155=temp+_crol_(Vertical_Gain_B_Grade,5);
 434   1        //if(Vertical_Gain_A_Grade>2)
 435   1        //Vertical_Gain_A_Grade=0;
 436   1        //else
 437   1        //{
 438   1        // Vertical_Gain_B=Vertical_Gain_B_Grade;
 439   1        lcd_clear();
 440   1        lcd_write_sentence(1,0,"当前垂直增益档位");
 441   1        lcd_write_sentence(2,2,"B 路");
 442   1        //lcd_write_sentence(3,1,"0.01V/div");
 443   1        //lcd_write_command(0x8A);
 444   1        //lcd_write_data(0x30+Vertical_Gain_B_Grade);
 445   1        switch(Vertical_Gain_B_Grade)
 446   1         {
 447   2         case 0:
 448   2         lcd_write_sentence(3,1,"10mV/div");
 449   2         break;
 450   2         case 1:
 451   2         lcd_write_sentence(3,1,"20mV/div");
 452   2         break;
 453   2         case 2:
 454   2         lcd_write_sentence(3,1,"50mv/div");
 455   2         break;
 456   2         case 3:
 457   2         lcd_write_sentence(3,1,"0.1V/div");
 458   2         break;
 459   2         case 4:
 460   2         lcd_write_sentence(3,1,"0.2V/div");
 461   2         break;
 462   2         case 5:
 463   2         lcd_write_sentence(3,1,"0.5v/div");
 464   2         break;
 465   2         case 6:
 466   2         lcd_write_sentence(3,1,"1V/div");
 467   2         break;
 468   2         case 7:
 469   2         lcd_write_sentence(3,1,"2v/div");
 470   2         break;
 471   2         default:
 472   2         break;
 473   2         }
 474   1      }
 475          //***************************************************************************************
 476          void Vertical_MoveA()
 477          {
 478   1       Shift_Flag=1;
 479   1       ledcursor=2;
 480   1       Key_Flag=6;
 481   1       Led_On=1;
 482   1       Glint_Flag=1;
 483   1       lcd_clear();
 484   1       lcd_write_sentence(1,0,"按加减键上下移动");
 485   1       lcd_write_sentence(2,1,"A 路波形");
 486   1       distab[0]=0x00;
 487   1       distab[1]=0x00;
 488   1       distab[2]=0x00;
 489   1       distab[3]=0x10;
C51 COMPILER V7.06   OSCILLOSCOPE1                                                         08/17/2005 17:00:43 PAGE 9   

 490   1       distab[4]=0x10;
 491   1       distab[5]=0x10;
 492   1       distab[6]=0x10;
 493   1       distab[7]=0x04;
 494   1      }
 495          //***************************************************************************************
 496          void Vertical_MoveB()
 497          {
 498   1       Shift_Flag=1;
 499   1       ledcursor=2;
 500   1       Key_Flag=7;
 501   1       lcd_clear();
 502   1       Led_On=1;
 503   1       Glint_Flag=1;
 504   1       lcd_write_sentence(1,0,"按加减键上下移动");
 505   1       lcd_write_sentence(2,1,"B 路波形");
 506   1       distab[0]=0x00;
 507   1       distab[1]=0x00;
 508   1       distab[2]=0x00;
 509   1       distab[3]=0x10;
 510   1       distab[4]=0x10;
 511   1       distab[5]=0x10;
 512   1       distab[6]=0x10;
 513   1       distab[7]=0x05;
 514   1      }
 515          //***************************************************************************************
 516          void Frequence_Measure()
 517          {
 518   1        long temp,temph,templ;
 519   1        //Frequence_Measure_Flag=!Frequence_Measure_Flag;
 520   1        //while(Frequence_Measure_Flag) 
 521   1        //{
 522   1        unint i=5000;
 523   1        Frequence_Start=1;
 524   1        Frequence_Start=0;
 525   1        while(--i);
 526   1        temph=Wave_Frequence_High;
 527   1        templ=Wave_Frequence_Low;
 528   1        Wave_Frequence=(templ+temph*0x100)*3052/100;
 529   1        //Wave_Frequence=20000000/(templ+temph*0x100);
 530   1        lcd_clear();
 531   1        lcd_write_sentence(1,0,"当前频率:        ");
 532   1        //lcd_write_sentence(2,1,"A 路波形");
 533   1        lcd_write_command(0x91);
 534   1        temp=Wave_Frequence/10000;
 535   1        lcd_write_data(0x30+temp);
 536   1        Wave_Frequence%=10000;
 537   1        temp=Wave_Frequence/1000;
 538   1        lcd_write_data(0x30+temp);
 539   1        Wave_Frequence%=1000;
 540   1        temp=Wave_Frequence/100;
 541   1        lcd_write_data(0x30+temp);
 542   1        Wave_Frequence%=100;
 543   1        temp=Wave_Frequence/10;
 544   1        lcd_write_data(0x30+temp);
 545   1        Wave_Frequence%=10;
 546   1        temp=Wave_Frequence;
 547   1        lcd_write_data(0x30+temp);
 548   1        //Wave_Frequence%=10000;
 549   1        lcd_write_sentence(2,4," HZ"); 
 550   1        //}
 551   1        //lcd_write_sentence(2,5,"暂停");
C51 COMPILER V7.06   OSCILLOSCOPE1                                                         08/17/2005 17:00:43 PAGE 10  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -