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

📄 key16.lst

📁 单片机控制FPGA的程序,包括AD转换,频率输出,测试程序
💻 LST
字号:
C51 COMPILER V8.02   KEY16                                                                 08/26/2002 21:45:31 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE KEY16
OBJECT MODULE PLACED IN key16.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key16.c LARGE BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include"includes.h"
   2          
   3          extern unsigned int L_num,R_num;    //左右移偏移量
   4          unsigned char keyread;       //按键值
   5          extern unsigned char xdata res1[256];
   6          extern unsigned char xdata resmem[256];      //存储数组
   7          extern unsigned char memshow_flag;           //显示存储波形标志位
   8          extern double setfreq;                  //设定的采样频率 
   9          extern double freq;                      //测定的实际频率
  10          extern double T;
  11          extern bit zero_flag;
  12          extern unsigned char freq_flag;
  13          
  14          void key16()                  //读取按键值
  15          {
  16   1        
  17   1              P3=1;
  18   1              mydelay(50);
  19   1              keyread=P3;
  20   1              if(keyread!=0x00)
  21   1              {
  22   2              turnward();
  23   2                  sword();
  24   2                  wav_mem();
  25   2              }
  26   1      
  27   1      }
  28          
  29          void turnward()                                   //根据按键向左右移动输出波形
  30          {
  31   1          if((keyread==0x10)||(keyread==0x12))
  32   1              {
  33   2                 
  34   2                 if(keyread==0x10)                      //按一下左移一位
  35   2                 {
  36   3                     if(R_num>0)
  37   3                         R_num--;
  38   3                         else
  39   3                     L_num++;
  40   3                         if(L_num>=255) L_num=0;
  41   3                 }
  42   2                 else if(keyread==0x12)                 //按一下右移一位
  43   2                 {   
  44   3                     if(L_num>0)
  45   3                         L_num--;
  46   3                         else
  47   3                     R_num++;
  48   3                         if(L_num>=255) L_num=0;
  49   3                 }
  50   2                 else
  51   2                 return;
  52   2              }
  53   1              else 
  54   1              return;   
  55   1      
C51 COMPILER V8.02   KEY16                                                                 08/26/2002 21:45:31 PAGE 2   

  56   1      
  57   1      }
  58          
  59          void sword()                                  //扫描时间选择档位
  60          {
  61   1          if((keyread==0x1f)||(keyread==0x1e)||(keyread==0x11))
  62   1              {
  63   2                  if(keyread==0x1f)                     //20ms/div
  64   2                      {
  65   3                         freq_flag=0;
  66   3                         
  67   3                      }
  68   2                      else if(keyread==0x1e)           //2us/div
  69   2                      {
  70   3                          freq_flag=1;
  71   3                         
  72   3                      }
  73   2                      else if(keyread==0x11)          //100ns/div
  74   2                      {
  75   3                          freq_flag=2;
  76   3                         
  77   3                      }
  78   2                      else
  79   2                      return;
  80   2              }
  81   1              else 
  82   1              return;
  83   1           
  84   1      }
  85          
  86          void freq_set()                     //计算9851所需频率
  87          {  
  88   1            T=1000/freq;                                      //测定时间单位:us
  89   1            zero_flag=0;
  90   1           if(freq_flag==0)
  91   1               {
  92   2                     
  93   2                     if(freq>=0.5)
  94   2                         {
  95   3                                zero_flag=1; 
  96   3                         }
  97   2                         
  98   2                         else 
  99   2                         {
 100   3                            setfreq=0.003;
 101   3                         }
 102   2                         
 103   2               }
 104   1               else if(freq_flag==1)
 105   1               {
 106   2                     if(freq<=1000)
 107   2                         {
 108   3                            setfreq=3/(T+0.1);
 109   3                         }
 110   2                         else if((freq>1000)&&(freq<5000))
 111   2                         {
 112   3                            setfreq=3/(10*T+0.1);
 113   3                         }  
 114   2                         else if(freq>5000)
 115   2                         {
 116   3                             zero_flag=1;
 117   3                         }
C51 COMPILER V8.02   KEY16                                                                 08/26/2002 21:45:31 PAGE 3   

 118   2               }
 119   1               else if(freq_flag==2)
 120   1               {
 121   2                       if(freq<=1000)
 122   2                         {
 123   3                             zero_flag=1;                                                                                              
 124   3                         }
 125   2                         else if(freq>1000)
 126   2                         {
 127   3                             setfreq=3/(10*T+0.005);
 128   3                         }  
 129   2               }
 130   1      
 131   1      }
 132          
 133          
 134          void wav_mem()                    //波形存储显示
 135          {
 136   1         unsigned int i;
 137   1         if((keyread==0x14)||(keyread==0x16))           //波形存储
 138   1         {
 139   2             if(keyread==0x14)
 140   2                 {
 141   3                     for(i=0;i<256;i++)
 142   3                         resmem[i]=res1[i];
 143   3                    
 144   3                 }
 145   2                 else if(keyread==0x16)                    //显示当前波形、存储波形转换
 146   2                 {
 147   3                     if(memshow_flag==0)
 148   3                         memshow_flag=1;
 149   3                         else if(memshow_flag==1)
 150   3                         memshow_flag=0;
 151   3                 }
 152   2         }
 153   1         else
 154   1         return;
 155   1      
 156   1      } 
*** WARNING C316 IN LINE 156 OF key16.c: unterminated conditionals


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    708    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      1    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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