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

📄 key.lst

📁 用TEA7567做的调频收音机,本人经测试通过的
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   KEY                                                                   03/16/2009 19:12:49 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: G:\Keil\C51\BIN\C51.EXE key.c OPTIMIZE(9,SIZE) BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "global.h"
   2          #include "key.h"
   3                  //获取键值程序
   4                    unsigned char Key_Process(void)
   5                    {
   6   1                      Up_Key=1;   Down_Key=1;  //初始值
   7   1                      _nop_();_nop_();
   8   1                      if(!Up_Key)     //如果上键按下了   
   9   1                      {
  10   2                              if(Down_Key)     //第一种情况
  11   2                          {
  12   3                      Delay_ms(20);//去抖动
  13   3                                      if(!Up_Key)//现在键值还是一样的话
  14   3                                      {
  15   4                                              Key_Down=1;//按下了
  16   4                                              Data_Change=0;//表示关键数据无改变了
  17   4                                              Count_5s=0;//用于计数5秒时间的,5秒到后才存数据
  18   4                                              Auto_Search_Flag=0;
  19   4                                              Count_500ms=0;
  20   4                                              Add_Process(); //加键处理程序
  21   4                                              if(Mode==0)     //在频率设置模式下时
  22   4                                                      VolSet(Volume/2+19);//不要太大声了
  23   4      //                                      if(Mode==0)     //在频率设置模式下时
  24   4      //                                      {
  25   4                                                      
  26   4      //                                              Tuner_Preset (False,True,Low,gdwPresetVCO);
  27   4      //                                      }
  28   4                                              while(!Up_Key)//判断是否有松键
  29   4                                              {
  30   5                                                              if(Long_Click==1)//长按成功了,用于手动设置频率的
  31   5                                                              {
  32   6                                                                      if(Auto_Search_Flag==0)//如果不在自动搜频模式时
  33   6                                                                      {
  34   7                                                                              if(CountTime_Key>40)
  35   7                                                                              {
  36   8                                                                                      CountTime_Key=0;
  37   8                                                                                      Add_Process(); //加键处理程序
  38   8      //                                                                              if(Mode==0) //在频率设置模式下时
  39   8      //                                                                                      Tuner_Preset(False,True,High,gdwPresetVCO);
  40   8                                                                                      WatchDog;//喂狗 
  41   8                                                                              }
  42   7                                                                      }
  43   6                                                                      else //在自动搜索状态了,计时成功了
  44   6                                                                      {
  45   7                                                                              Autosearch_Up();
  46   7                                                                                      
  47   7                                                                              while(!Up_Key)//判断是否有松键
  48   7                                                                              {
  49   8                                                                                              WatchDog;//喂狗 
  50   8                                                                              }
  51   7                                                                              break;
  52   7                                                                      }
  53   6                                                              
  54   6                                                              }
  55   5                                                      WatchDog;//喂狗 
C51 COMPILER V7.06   KEY                                                                   03/16/2009 19:12:49 PAGE 2   

  56   5                                              }
  57   4                                              Key_Down=0;//没按下
  58   4                                              Long_Click=0;//清长按
  59   4                                              //Count_500ms=0;
  60   4                                              CountTime_Key=0;//清长按时间的
  61   4                                              Count_Auto_Search=0;//清自动搜索的计时
  62   4                                              //Auto_Search_Flag=0;
  63   4                                              Data_Change=1;//表示关键数据有改变了
  64   4                                              if(Mode==0)
  65   4                                              {
  66   5                                                      Delay_ms(200);//稍作延时
  67   5                                                      VolSet(Volume+19);//还原应有的声音
  68   5                                              }
  69   4                                          return 0;
  70   4                                      }
  71   3                                      
  72   3                               }
  73   2                       }
  74   1                       else
  75   1                       {
  76   2                               if(!Down_Key)  //如果下键按下了   //第二种情况
  77   2                               { 
  78   3                                      Delay_ms(20);//去抖动
  79   3                                      if(!Down_Key)//现在键值还是一样的话
  80   3                                      {
  81   4                                              Key_Down=1;//按下了
  82   4                                              Count_5s=0;//用于计数5秒时间的,5秒到后才存数据
  83   4                                              Data_Change=0;//表示关键数据无改变了
  84   4                                              Auto_Search_Flag=0;
  85   4                                              Count_500ms=0;
  86   4                                              Dec_Process();  //减键处理程序
  87   4                                              if(Mode==0)     //在频率设置模式下时
  88   4                                                      VolSet(Volume/2+19);//不要太大声了
  89   4      //                                      if(Mode==0)     //在频率设置模式下时
  90   4      //                                      {
  91   4                                                      
  92   4      //                                              Tuner_Preset (False,True,Low,gdwPresetVCO);    // Preset to searched station 0301 mao
  93   4      //                                      }
  94   4                                              while(!Down_Key)//判断是否有松键
  95   4                                              {
  96   5                                                      if(Long_Click==1)//长按成功了
  97   5                                                      {
  98   6                                                              if(Auto_Search_Flag==0)//如果不在自动搜频模式时
  99   6                                                              {
 100   7                                                                      if(CountTime_Key>30)
 101   7                                                                      {
 102   8                                                                              CountTime_Key=0;
 103   8                                                                              Dec_Process();  //减键处理程序                                                          
 104   8      //                                                                      Tuner_Preset(False,True,High,gdwPresetVCO);
 105   8                                                                              WatchDog;//喂狗 
 106   8                                                                      }
 107   7                                                              }
 108   6                                                              else //在自动搜索状态了,计时成功了
 109   6                                                              {
 110   7                                                                              Autosearch_Down();
 111   7                                                                              WatchDog;//喂狗 
 112   7                                                                              while(!Down_Key)//判断是否有松键
 113   7                                                                              {
 114   8                                                                                      WatchDog;//喂狗 
 115   8                                                                              }
 116   7                                                                              break;
 117   7      
C51 COMPILER V7.06   KEY                                                                   03/16/2009 19:12:49 PAGE 3   

 118   7                                                              }
 119   6                                                      }
 120   5                                                      WatchDog;//喂狗
 121   5      
 122   5                                              }
 123   4                                              Key_Down=0;//没按下
 124   4                                              //Count_500ms=0;
 125   4                                              Long_Click=0;//清长按
 126   4                                              CountTime_Key=0;//清长按时间的
 127   4                                              Count_Auto_Search=0;//清自动搜索的计时
 128   4                                              Data_Change=1;//表示关键数据有改变了
 129   4                                              if(Mode<2)//在频率与音量模式 下时,在音量执行减少音量时,会有噪音,这是为了去噪音的
 130   4                                              {
 131   5                                                      Delay_ms(200);//稍作延时
 132   5                                                      VolSet(Volume+19);//还原应有的声音
 133   5                                              }
 134   4                                          return 0;
 135   4                                      }
 136   3                               }
 137   2                               else
 138   2                               {
 139   3                                      Up_Key=0;  
 140   3                                      if(!Down_Key)//下键按下了//第三种情况功能切换键
 141   3                                  {
 142   4                                          Up_Key=1;   Down_Key=0;
 143   4                                          if(!Up_Key)
 144   4                                              {
 145   5                                                      Delay_ms(20);//去抖动
 146   5                                                      if(!Up_Key)//现在键值还是一样的话
 147   5                                                      {
 148   6                                                              Mode++;        //显示状态的切换
 149   6                                                              if(Mode>4)  Mode=0;                                                     
 150   6                                                      }
 151   5                                              }
 152   4                                              while(!Up_Key&&!Down_Key)//判断是否有松键
 153   4                                              {
 154   5                                                      WatchDog;                       //喂狗
 155   5                                              }
 156   4      //                                      AutoS_LongClick=0;//清自动搜频长按开始计数标志
 157   4      //                                      Count_Auto_Search=0;// 清自动搜频长按计数标志
 158   4                                              Data_Change=1;//有关键数据改变标志
 159   4                                              return 0;
 160   4                                              
 161   4                                   }
 162   3                           }
 163   2                       }
 164   1                       //第三种情况*********************
 165   1                              Band=1;
 166   1                              _nop_();_nop_();
 167   1                              if(Band==0)
 168   1                              {
 169   2                                      Delay_ms(20);//去抖动
 170   2                                      if(Band==0) //还有键按下
 171   2                                      {
 172   3                                              Band_Data++;
 173   3                                              Count_5s=0;//用于计数5秒时间的,5秒到后才存数据
 174   3                                              Data_Change=0;//表示关键数据无改变了
 175   3                                              if(Auto_Search_Flag==1)
 176   3                                                      Auto_Search_Flag=0;
 177   3                                              if(Band_Data>1)   

⌨️ 快捷键说明

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