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

📄 oscilloscope3.lst

📁 单片机通过DA对信号采样
💻 LST
📖 第 1 页 / 共 3 页
字号:
 243   1        distab_clear();
 244   1        distab[0]=Vertical_Gain_A_Grade;
 245   1        display(0);
 246   1        temp=PB8155;
 247   1        temp=temp&0x03;
 248   1        PB8155=temp+_crol_(Vertical_Gain_A_Grade,5);
 249   1        //if(Vertical_Gain_A_Grade>2)
 250   1        //Vertical_Gain_A_Grade=0;
 251   1        //else
 252   1        //{
 253   1        // Vertical_Gain_B=Vertical_Gain_B_Grade;
 254   1        lcd_clear();
 255   1        lcd_write_sentence(1,0,"当前垂直增益档位");
 256   1        lcd_write_sentence(2,2,"(A,B)");
 257   1        //lcd_write_sentence(3,1,"0.01V/div");
 258   1        //lcd_write_command(0x8A);
 259   1        //lcd_write_data(0x30+Vertical_Gain_B_Grade);
 260   1        switch(Vertical_Gain_A_Grade)
 261   1         {
 262   2         case 0:
 263   2         lcd_write_sentence(3,1,"10mV/div");
 264   2         break;
 265   2         case 1:
 266   2         lcd_write_sentence(3,1,"20mV/div");
 267   2         break;
 268   2         case 2:
 269   2         lcd_write_sentence(3,1,"50mv/div");
 270   2         break;
 271   2         case 3:
 272   2         lcd_write_sentence(3,1,"0.1V/div");
 273   2         break;
 274   2         case 4:
 275   2         lcd_write_sentence(3,1,"0.2V/div");
 276   2         break;
 277   2         case 5:
 278   2         lcd_write_sentence(3,1,"0.5v/div");
 279   2         break;
 280   2         case 6:
 281   2         lcd_write_sentence(3,1,"1V/div");
 282   2         break;
 283   2         case 7:
 284   2         lcd_write_sentence(3,1,"2v/div");
 285   2         break;
 286   2         default:
 287   2         break;
 288   2         }
 289   1       
 290   1      }
 291          /*
 292          //***************************************************************************************
 293          void Vertical_GainB()
 294          {
 295            unchar temp;
 296            Led_On=1;
 297            Key_Flag=5;
 298            if(Vertical_Gain_B_Grade<7)
 299            {
 300              Vertical_Gain_B_Grade++;
 301            }
 302            else
 303            Vertical_Gain_B_Grade=0;
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 6   

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

 366   1       distab[3]=0x10;
 367   1       distab[4]=0x10;
 368   1       distab[5]=0x10;
 369   1       distab[6]=0x10;
 370   1       distab[7]=0x04;
 371   1      }
 372          //***************************************************************************************
 373          void Vertical_MoveB()
 374          {
 375   1       Shift_Flag=1;
 376   1       LED_CURSOR=2;
 377   1       Key_Flag=7;
 378   1       lcd_clear();
 379   1       Led_On=1;
 380   1       Glint_Flag=1;
 381   1       lcd_write_sentence(1,0,"请输入纵向平移值");
 382   1       lcd_write_sentence(2,1,"B 路波形");
 383   1       distab[0]=0x00;
 384   1       distab[1]=0x00;
 385   1       distab[2]=0x00;
 386   1       distab[3]=0x10;
 387   1       distab[4]=0x10;
 388   1       distab[5]=0x10;
 389   1       distab[6]=0x10;
 390   1       distab[7]=0x05;
 391   1      }
 392          //***************************************************************************************
 393          void Frequence_Measure()         //测量当前波形的频率和波形
 394          {
 395   1        long temph,templ;
 396   1        unint temp;
 397   1        //Frequence_Measure_Flag=!Frequence_Measure_Flag;
 398   1        //while(Frequence_Measure_Flag)
 399   1        //{
 400   1        unint i=5000;
 401   1        Frequence_Start=1;
 402   1        Frequence_Start=0;
 403   1        while(--i);
 404   1        temph=Wave_Frequence_High;
 405   1        templ=Wave_Frequence_Low;
 406   1        //templ=(templ+temph<<8)*3052/100;
 407   1        //temph=temph<<8;
 408   1        //temp=(templ+temph)*61;
 409   1        //Wave_Frequence=temp>>1;
 410   1        Wave_Frequence=(templ+temph*0x100)*2;
 411   1        //Wave_Frequence=10000000/(templ+temph*0x100);
 412   1        lcd_clear();
 413   1        lcd_write_sentence(1,0,"当前频率:        ");
 414   1        //lcd_write_sentence(2,1,"A 路波形");
 415   1        lcd_write_command(0x91);
 416   1        temp=Wave_Frequence/10000;
 417   1        lcd_write_data(0x30+temp);
 418   1        Wave_Frequence%=10000;
 419   1        temp=Wave_Frequence/1000;
 420   1        lcd_write_data(0x30+temp);
 421   1        Wave_Frequence%=1000;
 422   1        temp=Wave_Frequence/100;
 423   1        lcd_write_data(0x30+temp);
 424   1        Wave_Frequence%=100;
 425   1        temp=Wave_Frequence/10;
 426   1        lcd_write_data(0x30+temp);
 427   1        Wave_Frequence%=10;
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 8   

 428   1        temp=Wave_Frequence;
 429   1        lcd_write_data(0x30+temp);
 430   1        //Wave_Frequence%=10000;
 431   1        lcd_write_sentence(2,4," HZ"); 
 432   1        //}
 433   1        //lcd_write_sentence(2,5,"暂停");
 434   1        //以下为测量幅度
 435   1        temp=Wave_Amplitude_Add;
 436   1        switch(Vertical_Gain_B_Grade)
 437   1         {
 438   2         case 0:
 439   2         Wave_Amplitude=(temp*8)/255;
 440   2         break;
 441   2         case 1:
 442   2         Wave_Amplitude=(temp*16)/255;
 443   2         break;
 444   2         case 2:
 445   2         Wave_Amplitude=(temp*40)/255;
 446   2         break;
 447   2         case 3:
 448   2         Wave_Amplitude=(temp*100)/255;
 449   2         break;
 450   2         case 4:
 451   2         Wave_Amplitude=(temp*160)/255;
 452   2         break;
 453   2         case 5:
 454   2         Wave_Amplitude=(temp*500)/255;
 455   2         break;
 456   2         case 6:
 457   2         Wave_Amplitude=(temp*800)/255;
 458   2         break;
 459   2         case 7:
 460   2         Wave_Amplitude=(temp*1600)/255;
 461   2         break;
 462   2         default:
 463   2         break;
 464   2         }
 465   1        //Wave_Amplitude=temp;
 466   1        lcd_write_sentence(3,0,"当前幅度:        ");
 467   1        lcd_write_command(0x99);
 468   1        temp=Wave_Amplitude/100;
 469   1        lcd_write_data(0x30+temp);
 470   1        lcd_write_sentence(4,2,".");
 471   1        Wave_Amplitude%=100;
 472   1        temp=Wave_Amplitude/10;
 473   1        lcd_write_data(0x30+temp);
 474   1        Wave_Amplitude%=10;
 475   1        temp=Wave_Amplitude;
 476   1        lcd_write_data(0x30+temp);
 477   1        //Wave_Frequence%=10000;
 478   1        lcd_write_sentence(4,4," V"); 
 479   1        
 480   1      }
 481          //***************************************************************************************
 482           void ENTER_down()              //ENTER键按下,根据特殊功能号,执行相应的功能
 483           {
 484   1        unint temp;
 485   1        ENTER=!ENTER;
 486   1        //Led_On=0;
 487   1        Glint_Flag=!Glint_Flag;
 488   1        Shift_Flag=0;
 489   1        switch(Key_Flag)
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 9   

 490   1        {
 491   2         case 1:
 492   2            X_Frequence=distab[4]*10000+distab[3]*1000+distab[2]*100+distab[1]*10+distab[0];
 493   2                //Frequence*=5;

⌨️ 快捷键说明

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