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

📄 oscilloscope3.lst

📁 单片机通过DA对信号采样
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE OSCILLOSCOPE3
OBJECT MODULE PLACED IN oscilloscope3.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE oscilloscope3.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include"global.h"
   2          #include"oscilloscope.h"
   3          #include"LCD/lcd.h"
   4          //included"include.h"
   5          
   6          //*****************************************************************************************************
   7          void delay200ms()
   8           { 
   9   1         int i=10000,j=1000;
  10   1         for(;i>0;i--)
  11   1         for(;j>0;j--);
  12   1        } 
  13          //***************************************************************************************   
  14          void display(unchar dot)
  15          {
  16   1         unchar i; 
  17   1         LedMode=1;
  18   1         DisCmd=SCODE;            //采用软件译码
  19   1         LedMode=0;
  20   1         if(Led_On)
  21   1         {
  22   2         for(i=0;i<8;i++)                    //将distab中的数据送如7218
  23   2         {
  24   3           if((i==dot)&(dot!=0))
  25   3                 DisData=ledtab[distab[i]]+0x80; //查表转化并将字型送入7218
  26   3              else
  27   3             DisData=ledtab[distab[i]];      //查表转化并将字型送入7218
  28   3         } 
  29   2        }
  30   1      } 
  31          //*************************************************************************************** 
  32          void distab_clear()
  33          {
  34   1        unchar i;
  35   1        for(i=0;i<8;i++)
  36   1        {
  37   2        distab[i]=0x10;
  38   2        }
  39   1      } 
  40          //***************************************************************************************  
  41          void glint() //glintflag为1闪烁,flag为0,不闪烁;
  42          {
  43   1        
  44   1        unchar  i;
  45   1        while(Glint_Flag&Led_On)            //光标位置闪烁
  46   1         {
  47   2          LedMode=1;
  48   2          DisCmd=SCODE;         //采用软件译码
  49   2              LedMode=0;
  50   2          for(i=0;i<8;i++)      //将distab中的数据送如7218       
  51   2            {
  52   3              if(i==LED_CURSOR)
  53   3                      DisData=0x80; //查表转化并将字型送入7218 
  54   3                  else
  55   3                  DisData=ledtab[distab[i]]; //查表转化并将字型送入7218
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 2   

  56   3            }
  57   2               delay200ms();
  58   2               LedMode=1;
  59   2               DisCmd=SCODE;            
  60   2               display(0);
  61   2           delay200ms();
  62   2         }
  63   1      }
  64          //***************************************************************************************
  65          /*初始化:A0F3:1, A0F4:2, A0F5:00, A0F6:0, A0F7:2, A0F8:00, A0F9:0, 
  66                    A0FA:00, A0FB:0, A0FC:40, A0FD:00;初始挡位, A0FE:00  */
  67          void FpgaInitial()     //初始化程序
  68          {
  69   1        Select_AB=1;
  70   1        Vertical_Gain_A_Grade=7;
  71   1        Vertical_Move_A=0;
  72   1        //Select_A=0;
  73   1        Vertical_Gain_B_Grade=7;
  74   1        Vertical_Move_B=0;
  75   1        Single_Auto_Select=0;
  76   1        Trigger_Voltage=127;
  77   1        Lock_Wave=0;
  78   1        X_Freq_High=0x03;
  79   1        X_Freq_Low=0xE8;
  80   1        X_Move=0;
  81   1        Frequence_Start=0;
  82   1      }
  83          //***************************************************************************************
  84          void Set_X_Freq()   //设置X轴扫描频率,Key_Flag:1
  85          {  
  86   1         Shift_Flag=1;
  87   1         //unint Freq,temp;
  88   1         Led_On=1;
  89   1         Key_Flag=1;
  90   1         LED_CURSOR=4;
  91   1         Glint_Flag=1;
  92   1         distab[0]=0x00;
  93   1         distab[1]=0x00;
  94   1         distab[2]=0x00;
  95   1         distab[3]=0x00;
  96   1         distab[4]=0x00;
  97   1         distab[5]=0x10;
  98   1         distab[6]=0x10;
  99   1         distab[7]=0x01;
 100   1         display(0);
 101   1         lcd_clear();
 102   1         lcd_write_sentence(1,0,"请输X 轴扫描频率");
 103   1         lcd_write_sentence(2,1,"频率范围:");
 104   1         lcd_write_sentence(3,1,"0-100KHZ");
 105   1         
 106   1      }
 107          //***************************************************************************************
 108          void Set_X_Pos()        //设置波形在X轴上的移位
 109          {
 110   1         Shift_Flag=1;
 111   1         lcd_clear();
 112   1         Key_Flag=2;
 113   1         LED_CURSOR=2;
 114   1         Glint_Flag=1;
 115   1         Led_On=1;
 116   1         distab[0]=0x00;
 117   1         distab[1]=0x00;
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 3   

 118   1         distab[2]=0x00;
 119   1         distab[3]=0x10;
 120   1         distab[4]=0x10;
 121   1         distab[5]=0x10;
 122   1         distab[6]=0x10;
 123   1         distab[7]=0x02;
 124   1         display(0); 
 125   1         lcd_write_sentence(1,0,"请输入水平移相");
 126   1         lcd_write_sentence(2,1,"位置范围:");
 127   1         lcd_write_sentence(3,2,"0-200");
 128   1         
 129   1      }
 130          void Set_Trigger_Voltage()      //设置触发电平
 131          {
 132   1         Shift_Flag=1;
 133   1         lcd_clear();
 134   1         Key_Flag=3;
 135   1         LED_CURSOR=2;
 136   1         Led_On=1;
 137   1         Glint_Flag=1;
 138   1         distab[0]=0x00;
 139   1         distab[1]=0x00;
 140   1         distab[2]=0x00;
 141   1         distab[3]=0x10;
 142   1         distab[4]=0x10;
 143   1         distab[5]=0x10;
 144   1         distab[6]=0x10;
 145   1         distab[7]=0x03;
 146   1         //display(2); 
 147   1         lcd_write_sentence(1,0,"请输入触发电平");
 148   1         lcd_write_sentence(2,1,"电平范围:");
 149   1         lcd_write_sentence(3,2,"0-5V");
 150   1         
 151   1       }
 152          //***************************************************************************************
 153          void Lock_Current_Wave()       //锁存当前波形
 154          {
 155   1        //Special_Down_Flag;
 156   1        Lock_Wave_Flag=!Lock_Wave_Flag;
 157   1        Led_On=0;
 158   1        //Lock_Wave=Lock_Wave_Flag;
 159   1        lcd_clear();
 160   1        if(Lock_Wave_Flag)
 161   1        {
 162   2        lcd_write_sentence(2,1,"波形锁存成功!");
 163   2        Lock_Wave=1;
 164   2        }
 165   1        else
 166   1        {
 167   2        lcd_write_sentence(2,1,"波形解除锁定!");
 168   2        Lock_Wave=0;
 169   2        }
 170   1      }
 171          //***************************************************************************************
 172          void Single_Select()         //单步,连续选择
 173          {
 174   1        //Special_Down_Flag
 175   1        lcd_clear();
 176   1        Led_On=0;
 177   1        Single_Flag=!Single_Flag;
 178   1        //Single_Auto_Select=Single_Flag;
 179   1        lcd_clear();
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 4   

 180   1        lcd_write_sentence(2,1,"当前触发状态:");
 181   1        if(Single_Flag)
 182   1        {
 183   2         lcd_write_sentence(3,2,"单步");
 184   2         TR0=0;
 185   2         Single_Auto_Select=1;
 186   2         Single_Auto_Select=0;
 187   2        }
 188   1        else
 189   1        {
 190   2        lcd_write_sentence(3,2,"连续");
 191   2        TR0=1;
 192   2        }
 193   1      }
 194          //***************************************************************************************
 195          void Input_Select()   //AD114输入选择
 196          {
 197   1       unchar temp1,temp2;
 198   1       temp1=AD_Channel%3;
 199   1       temp2=PB8155;
 200   1       temp2=temp2&0xFC;
 201   1       switch(temp1)
 202   1       {
 203   2        case 0:
 204   2        //AD_Controll=0;
 205   2        PB8155=temp2;
 206   2        lcd_clear();
 207   2        lcd_write_sentence(2,1,"A 路选通");
 208   2        lcd_write_sentence(3,1,"B 路关闭");
 209   2        Select_AB=1;
 210   2        break;
 211   2        case 1:
 212   2        //AD_Controll=0;
 213   2        PB8155=temp2+2;
 214   2        Select_AB=2;
 215   2        lcd_clear();
 216   2        lcd_write_sentence(2,1,"A 路关闭");
 217   2        lcd_write_sentence(3,1,"B 路选通");
 218   2        break;
 219   2        case 2:
 220   2        //AD_Controll=1;
 221   2        lcd_clear();
 222   2        PB8155=temp2+1;
 223   2        lcd_write_sentence(2,1,"A 路选通");
 224   2        lcd_write_sentence(3,1,"B 路选通");
 225   2        Select_AB=3;
 226   2        break;
 227   2       }
 228   1        AD_Channel++;
 229   1      }
 230          
 231          //***************************************************************************************
 232          void Vertical_GainA()          //垂直增益选择(共8档,A,B路相同)
 233          { 
 234   1        unchar temp;
 235   1        Led_On=1;
 236   1        Key_Flag=4;
 237   1        if(Vertical_Gain_A_Grade<7)
 238   1        {
 239   2          Vertical_Gain_A_Grade++;
 240   2        }
 241   1        else
C51 COMPILER V7.06   OSCILLOSCOPE3                                                         08/19/2005 09:01:53 PAGE 5   

 242   1        Vertical_Gain_A_Grade=0;

⌨️ 快捷键说明

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