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

📄 oscilloscope2.lst

📁 单片机通过DA对信号采样
💻 LST
📖 第 1 页 / 共 3 页
字号:
 257   2         lcd_write_sentence(2,1,"单步");
 258   2         TR0=0;
 259   2         Single_Auto_Select=1;
 260   2         Single_Auto_Select=0;
 261   2        }
 262   1        else
 263   1        {
 264   2        lcd_write_sentence(2,1,"连续");
 265   2        TR0=1;
 266   2        }
 267   1      }
 268          //***************************************************************************************
 269          void Input_Select()   //AD114输入选择
 270          {
 271   1       unchar temp1,temp2;
 272   1       temp1=AD_Channel%3;
 273   1       temp2=PB8155;
 274   1       temp2=temp2&0xFC;
 275   1       switch(temp1)
 276   1       {
 277   2        case 0:
 278   2        //AD_Controll=0;
 279   2        PB8155=temp2;
 280   2        lcd_clear();
 281   2        lcd_write_sentence(2,1,"A 路选通");
 282   2        lcd_write_sentence(3,1,"B 路关闭");
 283   2        Select_AB=1;
 284   2        break;
 285   2        case 1:
 286   2        //AD_Controll=0;
 287   2        PB8155=temp2+2;
 288   2        Select_AB=2;
 289   2        lcd_clear();
 290   2        lcd_write_sentence(2,1,"A 路关闭");
 291   2        lcd_write_sentence(3,1,"B 路选通");
 292   2        break;
 293   2        case 2:
 294   2        //AD_Controll=1;
 295   2        lcd_clear();
 296   2        PB8155=temp2+1;
 297   2        lcd_write_sentence(2,1,"A 路选通");
 298   2        lcd_write_sentence(3,1,"B 路选通");
 299   2        Select_AB=3;
 300   2        break;
 301   2       }
 302   1        AD_Channel++;
 303   1      }
C51 COMPILER V7.06   OSCILLOSCOPE2                                                         08/19/2005 08:58:26 PAGE 6   

 304          
 305          //***************************************************************************************
 306          void Vertical_GainA()
 307          { 
 308   1        unchar temp;
 309   1        Led_On=1;
 310   1        Key_Flag=4;
 311   1        if(Vertical_Gain_A_Grade<7)
 312   1        {
 313   2          Vertical_Gain_A_Grade++;
 314   2        }
 315   1        else
 316   1        Vertical_Gain_A_Grade=0;
 317   1        distab_clear();
 318   1        distab[0]=Vertical_Gain_A_Grade;
 319   1        display(0);
 320   1        temp=PB8155;
 321   1        temp=temp&0x03;
 322   1        PB8155=temp+_crol_(Vertical_Gain_A_Grade,5);
 323   1        //if(Vertical_Gain_A_Grade>2)
 324   1        //Vertical_Gain_A_Grade=0;
 325   1        //else
 326   1        //{
 327   1        // Vertical_Gain_B=Vertical_Gain_B_Grade;
 328   1        lcd_clear();
 329   1        lcd_write_sentence(1,0,"当前垂直增益档位");
 330   1        lcd_write_sentence(2,2,"A 路");
 331   1        //lcd_write_sentence(3,1,"0.01V/div");
 332   1        //lcd_write_command(0x8A);
 333   1        //lcd_write_data(0x30+Vertical_Gain_B_Grade);
 334   1        switch(Vertical_Gain_A_Grade)
 335   1         {
 336   2         case 0:
 337   2         lcd_write_sentence(3,1,"10mV/div");
 338   2         break;
 339   2         case 1:
 340   2         lcd_write_sentence(3,1,"20mV/div");
 341   2         break;
 342   2         case 2:
 343   2         lcd_write_sentence(3,1,"50mv/div");
 344   2         break;
 345   2         case 3:
 346   2         lcd_write_sentence(3,1,"0.1V/div");
 347   2         break;
 348   2         case 4:
 349   2         lcd_write_sentence(3,1,"0.2V/div");
 350   2         break;
 351   2         case 5:
 352   2         lcd_write_sentence(3,1,"0.5v/div");
 353   2         break;
 354   2         case 6:
 355   2         lcd_write_sentence(3,1,"1V/div");
 356   2         break;
 357   2         case 7:
 358   2         lcd_write_sentence(3,1,"2v/div");
 359   2         break;
 360   2         default:
 361   2         break;
 362   2         }
 363   1       
 364   1      }
 365          //***************************************************************************************
C51 COMPILER V7.06   OSCILLOSCOPE2                                                         08/19/2005 08:58:26 PAGE 7   

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

 428   1       ledcursor=2;
 429   1       Key_Flag=6;
 430   1       Led_On=1;
 431   1       Glint_Flag=1;
 432   1       lcd_clear();
 433   1       lcd_write_sentence(1,0,"按加减键上下移动");
 434   1       lcd_write_sentence(2,1,"A 路波形");
 435   1       distab[0]=0x00;
 436   1       distab[1]=0x00;
 437   1       distab[2]=0x00;
 438   1       distab[3]=0x10;
 439   1       distab[4]=0x10;
 440   1       distab[5]=0x10;
 441   1       distab[6]=0x10;
 442   1       distab[7]=0x04;
 443   1      }
 444          //***************************************************************************************
 445          void Vertical_MoveB()
 446          {
 447   1       Shift_Flag=1;
 448   1       ledcursor=2;
 449   1       Key_Flag=7;
 450   1       lcd_clear();
 451   1       Led_On=1;
 452   1       Glint_Flag=1;
 453   1       lcd_write_sentence(1,0,"按加减键上下移动");
 454   1       lcd_write_sentence(2,1,"B 路波形");
 455   1       distab[0]=0x00;
 456   1       distab[1]=0x00;
 457   1       distab[2]=0x00;
 458   1       distab[3]=0x10;
 459   1       distab[4]=0x10;
 460   1       distab[5]=0x10;
 461   1       distab[6]=0x10;
 462   1       distab[7]=0x05;
 463   1      }
 464          //***************************************************************************************
 465          void Frequence_Measure()         //测量当前波形的频率和波形
 466          {
 467   1        long temph,templ;
 468   1        unint temp;
 469   1        //Frequence_Measure_Flag=!Frequence_Measure_Flag;
 470   1        //while(Frequence_Measure_Flag)
 471   1        //{
 472   1        unint i=5000;
 473   1        Frequence_Start=1;
 474   1        Frequence_Start=0;
 475   1        while(--i);
 476   1        temph=Wave_Frequence_High;
 477   1        templ=Wave_Frequence_Low;
 478   1        //templ=(templ+temph<<8)*3052/100;
 479   1        //temph=temph<<8;
 480   1        //temp=(templ+temph)*61;
 481   1        //Wave_Frequence=temp>>1;
 482   1        Wave_Frequence=(templ+temph*0x100)*2;
 483   1        //Wave_Frequence=10000000/(templ+temph*0x100);
 484   1        lcd_clear();
 485   1        lcd_write_sentence(1,0,"当前频率:        ");
 486   1        //lcd_write_sentence(2,1,"A 路波形");
 487   1        lcd_write_command(0x91);
 488   1        temp=Wave_Frequence/10000;
 489   1        lcd_write_data(0x30+temp);
C51 COMPILER V7.06   OSCILLOSCOPE2                                                         08/19/2005 08:58:26 PAGE 9   

 490   1        Wave_Frequence%=10000;
 491   1        temp=Wave_Frequence/1000;
 492   1        lcd_write_data(0x30+temp);
 493   1        Wave_Frequence%=1000;
 494   1        temp=Wave_Frequence/100;
 495   1        lcd_write_data(0x30+temp);
 496   1        Wave_Frequence%=100;
 497   1        temp=Wave_Frequence/10;
 498   1        lcd_write_data(0x30+temp);
 499   1        Wave_Frequence%=10;
 500   1        temp=Wave_Frequence;
 501   1        lcd_write_data(0x30+temp);
 502   1        //Wave_Frequence%=10000;
 503   1        lcd_write_sentence(2,4," HZ"); 
 504   1        //}
 505   1        //lcd_write_sentence(2,5,"暂停");
 506   1        //以下为测量幅度
 507   1        temp=Wave_Amplitude_Add;
 508   1        Wave_Amplitude=temp;
 509   1        lcd_write_sentence(3,0,"当前幅度:        ");
 510   1        lcd_write_command(0x99);
 511   1        temp=Wave_Amplitude/100;
 512   1        lcd_write_data(0x30+temp);
 513   1        Wave_Amplitude%=100;
 514   1        temp=Wave_Amplitude/10;
 515   1        lcd_write_data(0x30+temp);
 516   1        Wave_Amplitude%=10;
 517   1        temp=Wave_Amplitude;
 518   1        lcd_write_data(0x30+temp);
 519   1        //Wave_Frequence%=10000;
 520   1        lcd_write_sentence(4,4," V"); 
 521   1        

⌨️ 快捷键说明

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