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

📄 oscilloscope3.lst

📁 单片机通过DA对信号采样
💻 LST
📖 第 1 页 / 共 3 页
字号:
 494   2            temp=_iror_(X_Frequence,8);
 495   2            X_Freq_High=temp;
 496   2            temp=X_Frequence%256;
 497   2            X_Freq_Low=temp;
 498   2            ENTER=0;
 499   2            lcd_clear();
 500   2            lcd_write_sentence(1,0,"频率设置成功!");
 501   2            lcd_write_sentence(2,1,"当前频率:");
 502   2            lcd_write_command(0x89);
 503   2            lcd_write_data(0x30+distab[4]);
 504   2            lcd_write_data(0x30+distab[3]);
 505   2            lcd_write_data(0x30+distab[2]);
 506   2            lcd_write_data(0x30+distab[1]);
 507   2            lcd_write_data(0x30+distab[0]);
 508   2            lcd_write_sentence(3,4,"HZ");
 509   2         break;
 510   2         case 2:
 511   2           ENTER=0;
 512   2               lcd_clear();
 513   2           X_Pos=distab[2]*100+distab[1]*10+distab[0];
 514   2               if(X_Pos>200)
 515   2               {
 516   3               X_Pos=0;
 517   3           lcd_write_sentence(2,0,"输入范围太大!");
 518   3               }
 519   2               else
 520   2               {
 521   3           X_Move=X_Pos;
 522   3           lcd_write_sentence(1,0,"水平移相成功");
 523   3           lcd_write_sentence(2,1,"当前水平偏移:");
 524   3           lcd_write_command(0x8a);
 525   3           lcd_write_data(0x30+distab[2]);
 526   3               lcd_write_data(0x30+distab[1]);
 527   3           lcd_write_data(0x30+distab[0]);
 528   3               }
 529   2         break;
 530   2         case 3:
 531   2           ENTER=0;
 532   2               lcd_clear();
 533   2           Trigger_V=distab[2]*100+distab[1]*10+distab[0];
 534   2           if(Trigger_V>500)
 535   2           {
 536   3            lcd_write_sentence(1,0,"电平输入太大!");
 537   3            lcd_write_sentence(2,0,"请重新输入!");
 538   3            Trigger_V=0;
 539   3           }
 540   2           else
 541   2           { 
 542   3           Trigger_Voltage=Trigger_V/2;
 543   3           lcd_write_sentence(1,0,"触发电平设置成功");
 544   3           lcd_write_sentence(2,1,"当前触发电平:");
 545   3           lcd_write_command(0x89);
 546   3           lcd_write_data(0x30+distab[2]);
 547   3               lcd_write_sentence(3,2,".");
 548   3           lcd_write_data(0x30+distab[1]);
 549   3           lcd_write_data(0x30+distab[0]);
 550   3           lcd_write_sentence(3,4,"V");
 551   3           }
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 10  

 552   2         break;
 553   2         case 6:
 554   2           Vertical_Pos_A=distab[2]*100+distab[1]*10+distab[0];
 555   2               Vertical_Move_A=Vertical_Pos_A;
 556   2               lcd_clear();
 557   2               lcd_write_sentence(1,1,"当前垂直偏移A:");
 558   2               lcd_write_command(0x91);
 559   2           lcd_write_data(0x30+distab[2]);
 560   2               lcd_write_data(0x30+distab[1]);
 561   2           lcd_write_data(0x30+distab[0]);
 562   2         break;
 563   2         case 7:
 564   2           Vertical_Pos_B=distab[2]*100+distab[1]*10+distab[0];
 565   2           Vertical_Move_B=Vertical_Pos_B;
 566   2               lcd_clear();
 567   2           lcd_write_sentence(1,1,"当前垂直偏移B:");
 568   2               lcd_write_command(0x91);
 569   2           lcd_write_data(0x30+distab[2]);
 570   2               lcd_write_data(0x30+distab[1]);
 571   2           lcd_write_data(0x30+distab[0]);
 572   2         break;
 573   2         default:
 574   2         break;
 575   2         }
 576   1       } 
 577          
 578          
 579          //***************************************************************************************
 580          void keyprg(unchar key)  //键盘键值执行的程序
 581          {  
 582   1        //unchar i;
 583   1        if((key<=9)&Shift_Flag)
 584   1         {   
 585   2            distab[LED_CURSOR]=KEYNUM;        //键值送入distab最低位保存
 586   2                 if(LED_CURSOR>0)                //光标移位
 587   2                 LED_CURSOR--;
 588   2             else 
 589   2                 LED_CURSOR=0;
 590   2          display(0); //显示键值
 591   2              }
 592   1        else 
 593   1         {
 594   2          switch(key)
 595   2                 {
 596   3                   case 0x00:             
 597   3                            Set_X_Freq();
 598   3                   break;
 599   3                       case 0x01:             
 600   3                            Set_X_Pos();
 601   3                   break;      
 602   3                       case 0x02:             
 603   3                            Set_Trigger_Voltage();
 604   3                   break;      
 605   3                       case 0x03:             
 606   3                            Lock_Current_Wave();
 607   3                   break;      
 608   3                       case 0x04:             
 609   3                            Single_Select();
 610   3                   break;      
 611   3                       case 0x05:             
 612   3                            Vertical_GainA();
 613   3                   break;      
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 11  

 614   3                       case 0x06:             
 615   3                            //Vertical_GainB();
 616   3                                Frequence_Measure();
 617   3                   break;      
 618   3                       case 0x07:             
 619   3                            Vertical_MoveA();
 620   3                   break;
 621   3                   case 0x08:             
 622   3                            Vertical_MoveB();
 623   3                   break;
 624   3                       case 0x09:             
 625   3                            //Select_AB_Channel();
 626   3                    Input_Select();
 627   3                   break;
 628   3                       case 0x0A:             
 629   3                             //Reset();
 630   3                                 //Input_Select();
 631   3                                 //Frequence_Measure();
 632   3                   break;      
 633   3                       case 0x0B:                              //功能键F2
 634   3                         Shift_Flag=!Shift_Flag;
 635   3                   break;      
 636   3                       case 0x0C:                              //KeyprgBack();
 637   3                                if(LED_CURSOR<7)                //光标移位
 638   3                             LED_CURSOR++;
 639   3                         else 
 640   3                             LED_CURSOR=0;
 641   3                             display(0);               //显示键值
 642   3                   break;
 643   3                       case 0x0D:  //加
 644   3                                 if(distab[LED_CURSOR]<0x09)
 645   3                                      distab[LED_CURSOR]++;
 646   3                         else
 647   3                              distab[LED_CURSOR]=0;
 648   3                              display(0); //显示键值
 649   3                   break;     
 650   3                       case 0x0E:    //减
 651   3                                 if(distab[LED_CURSOR]>0)
 652   3                                 distab[LED_CURSOR]--;
 653   3                    
 654   3                       else
 655   3                     distab[LED_CURSOR]=9;
 656   3                                 display(0); //显示键值
 657   3                          
 658   3                   break;      
 659   3                       case 0x0F:       
 660   3                                ENTER_down();        
 661   3                   break;      
 662   3                       default:
 663   3                   break;      
 664   3                      }
 665   2               }
 666   1      
 667   1      }
 668          //**************************************************************************************
 669          void intt0() interrupt 0     //键盘中断
 670          { 
 671   1       
 672   1       //EX0=0;                //关键盘中断,禁止相应其他按键
 673   1       KEYNUM=P1;              //从p1口读入键盘值
 674   1       KEYNUM=KEYNUM&0x0f;     //取低四位;
 675   1       keyprg(KEYNUM);
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 12  

 676   1       //if(ENTER)             //不是ENTER键,屏蔽中断
 677   1       //EX0=1;
 678   1      }
 679          
 680          //**************************************************************************************
 681          void Initial8155()         //8155初始化程序
 682          {
 683   1       CMD8155=0x0f;             //PA,PB基本输出方式,PC作为控制信号
 684   1      }
 685          //**************************************************************************************
 686          void clock0_initial()      //定时器0初始化
 687          {
 688   1       TMOD=0x01;
 689   1       TF0=0;
 690   1       TH0=00;
 691   1       TL0=00;
 692   1       TR0=1;
 693   1      }
 694           
 695          void clock0_int() interrupt 1     //定时器0中断,向FPGA送入连续触发脉冲
 696          {
 697   1        TH0=00;
 698   1        TL0=00;
 699   1        tempflag=!tempflag;
 700   1        //if(Single_Flag)
 701   1        Single_Auto_Select=tempflag;
 702   1        //PA8155=tempflag;
 703   1        //PB8155=tempflag;
 704   1       }
 705          
 706          //**************************************************************************************
 707          void main()         
 708          {
 709   1        //uint i; 
 710   1        //while(i--);
 711   1        EX0=1;
 712   1        ET0=1;
 713   1        EA=1;
 714   1        PX0=1;
 715   1        lcd_init();
 716   1        Initial8155();
 717   1        Led_On=1;
 718   1        display(0);
 719   1        lcd_write_passage("南开大学信科院电信系:史永杰,余建伟,岳文赫--  简易示波器");
 720   1        //lcd_clear();
 721   1        //lcd_write_sentence(4,4,"南开大学");
 722   1        FpgaInitial();
 723   1        clock0_initial();
 724   1        while(1)
 725   1          {
 726   2          if(Glint_Flag)
 727   2            glint();
 728   2          }
 729   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2580    ----
   CONSTANT SIZE    =    608    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     27       9
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 13  

   IDATA SIZE       =   ----    ----
   BIT SIZE         =      7    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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