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

📄 keys.lst

📁 7219、1620的综合温度显示
💻 LST
字号:
C51 COMPILER V7.06   KEYS                                                                  05/07/2009 08:52:36 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE KEYS
OBJECT MODULE PLACED IN Keys.OBJ
COMPILER INVOKED BY: E:\k51\C51\BIN\C51.EXE Keys.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /**********************************************
   2          *   File: Keys.C
   3          *   Description: Tri-Angle  
   4          *   Created Date:  2007-10-01
   5          *   Last Modified: 2007-10-01
   6          *   Author: Jeffrey - Schicksal@126.com
   7          *   Notes: None
   8          **********************************************/
   9          #include "Atmel/AT89X51.h"
  10          #include "INTRINS.H"
  11          #include "Keys.h"
  12          
  13          
  14          
  15          
  16          /**********************************************
  17          *   Function: void DelayMs(unsigned int i)
  18          *   Input Variables: unsigned int i
  19          *   Return Variables: void
  20          *   Usage: Delay Function
  21          **********************************************/
  22          void DelayMs(unsigned int i)  // Delay Function 1
  23          { 
  24   1        unsigned char j;
  25   1        for (; i!=0; i--)
  26   1          for (j=2000; j!=0; j--) {;}
  27   1      }
  28          
  29          /**********************************************
  30          *   Function: void SetBuzzer(unsigned char B)
  31          *   Input Variables: unsigned char B
  32          *   Return Variables: void
  33          *   Usage: Buzzer Driver
  34          **********************************************/
  35          void SetBuzzer(unsigned char B)
  36          {
  37   1              if(B>0x01)
  38   1                      return;                                 // 输入值超限
  39   1              Buzzer = B;                                     // 改变Buzzer状态
  40   1      }
  41          
  42          /**********************************************
  43          *   Function: unsigned char read_keys(void)
  44          *   Input Variables: void
  45          *   Return Variables: None
  46          *   Usage: Read keys
  47          **********************************************/
  48          unsigned char read_keys()
  49          {
  50   1              unsigned char keys;                             // 返回键值变量
  51   1              P1 = 0xff;                                              // 置高P1,准备读取
  52   1              keys = P1;                                              // 读取键值
  53   1              return keys;                                    // 返回键值
  54   1      }
  55          
C51 COMPILER V7.06   KEYS                                                                  05/07/2009 08:52:36 PAGE 2   

  56          extern volatile unsigned char time[4];
  57          extern volatile unsigned char alarm[2];
  58          volatile unsigned char flag=0;
  59          volatile unsigned char alarm_flag=1;
  60          volatile unsigned char change_timeflag=0;
  61          volatile unsigned char change_adjustflag=0;
  62          
  63          /**********************************************
  64          *   Function:void KeyProcess()
  65          *   Input Variables: void
  66          *   Return Variables: None
  67          *   Usage: key process
  68          **********************************************/
  69          void KeyProcess()
  70          {
  71   1      
  72   1        unsigned char Key, keyMODE, keySET, keyUP, keyDOWN;
  73   1        Key = read_keys();
  74   1        if (Key != 0x0f)
  75   1        {
  76   2          DelayMs(180);
  77   2          Key = read_keys();
  78   2          if (Key != 0x0f)
  79   2          {
  80   3            keyMODE = Key & 0x01;
  81   3            keySET =  Key & 0x08;
  82   3            keyUP =   Key & 0x04;
  83   3            keyDOWN = Key & 0x02;
  84   3            
  85   3              SetBuzzer(Buzzer_OFF);        //闹表不响
  86   3              alarm_flag=0;                // 取消闹表标示
  87   3            
  88   3            if (keyMODE==0)                // MODE键被按下
  89   3            {
  90   4               if (change_adjustflag==0)   // 当前是时钟模式
  91   4                 change_adjustflag=1;      // 改变为闹表模式
  92   4              else
  93   4                change_adjustflag=0;       // 改变为时钟模式
  94   4              change_timeflag=0;
  95   4            }
  96   3          
  97   3            if (keySET==0)                 // SET键被按下
  98   3            {
  99   4              if (change_adjustflag==0)    // 时钟模式
 100   4              {
 101   5                change_timeflag++;
 102   5                if (change_timeflag>=3)
 103   5                  change_timeflag=0;
 104   5              }
 105   4              else                         // 闹表模式
 106   4              {
 107   5                if (alarm_flag==0)
 108   5                {
 109   6                  alarm_flag=1;
 110   6                  change_timeflag=0;
 111   6                  flag=1;
 112   6                }
 113   5                else
 114   5                {
 115   6                  if (change_timeflag==0)
 116   6                  {
 117   7                    if (flag==1)  // 进入修改闹钟程序
C51 COMPILER V7.06   KEYS                                                                  05/07/2009 08:52:36 PAGE 3   

 118   7                    {
 119   8                      change_timeflag++;
 120   8                      flag=0;
 121   8                    }
 122   7                    else    // 退出闹钟修改程序
 123   7                    {
 124   8                      change_timeflag=0;
 125   8                      alarm_flag=0;
 126   8                    }
 127   7                  }  
 128   6                  else
 129   6                  {
 130   7                    change_timeflag++;
 131   7                    if (change_timeflag>=3)
 132   7                      change_timeflag=0;
 133   7                  }
 134   6                }
 135   5              }
 136   4            }
 137   3          
 138   3            if (keyUP==0)            // UP键被按下
 139   3            {
 140   4              if (change_adjustflag == 0)
 141   4              {
 142   5                // 调整时钟
 143   5                time[change_timeflag-1]++;
 144   5                if (time[1]==0xff)
 145   5                        {
 146   6                          time[1]=59;
 147   6                        }
 148   5      
 149   5                        if (time[0]==0xff)
 150   5                        {
 151   6                          time[0]=23;
 152   6                        }
 153   5      
 154   5                        if (time[3]>1)
 155   5                        {
 156   6                          time[3]=0;
 157   6                          time[2]++;
 158   6                        }
 159   5      
 160   5                        if (time[2]>=60)
 161   5                        { 
 162   6                          time[2]-=60;
 163   6                        }
 164   5                        if (time[1]>=60)
 165   5                        { 
 166   6                          time[1]-=60;
 167   6                        }
 168   5                        if (time[0]>=24)
 169   5                          time[0]-=24;  
 170   5      
 171   5              }
 172   4              else
 173   4              {
 174   5                // 调整闹表
 175   5                alarm[change_timeflag-1]++;
 176   5                if (time[1]==0xff)
 177   5                        {
 178   6                          time[1]=59;
 179   6                        }
C51 COMPILER V7.06   KEYS                                                                  05/07/2009 08:52:36 PAGE 4   

 180   5      
 181   5                        if (time[0]==0xff)
 182   5                        {
 183   6                          time[0]=23;
 184   6                        }
 185   5      
 186   5                        if (time[3]>1)
 187   5                        {
 188   6                          time[3]=0;
 189   6                          time[2]++;
 190   6                        }
 191   5      
 192   5                        if (time[2]>=60)
 193   5                        { 
 194   6                          time[2]-=60;
 195   6                        }
 196   5                        if (time[1]>=60)
 197   5                        { 
 198   6                          time[1]-=60;
 199   6                        }
 200   5                        if (time[0]>=24)
 201   5                          time[0]-=24; 
 202   5              }
 203   4            }  
 204   3          
 205   3            if (keyDOWN==0)          // DOWN键被按下
 206   3            {
 207   4               if (change_adjustflag == 0)
 208   4                      {
 209   5                // 调整时钟
 210   5                time[change_timeflag-1]--;
 211   5                          if (time[1]==0xff)
 212   5                        {
 213   6                          time[1]=59;
 214   6                        }
 215   5      
 216   5                        if (time[0]==0xff)
 217   5                        {
 218   6                          time[0]=23;
 219   6                        }
 220   5      
 221   5                        if (time[3]>1)
 222   5                        {
 223   6                          time[3]=0;
 224   6                          time[2]++;
 225   6                        }
 226   5      
 227   5                        if (time[2]>=60)
 228   5                        { 
 229   6                          time[2]-=60;
 230   6                        }
 231   5                        if (time[1]>=60)
 232   5                        { 
 233   6                          time[1]-=60;
 234   6                        }
 235   5                        if (time[0]>=24)
 236   5                          time[0]-=24; 
 237   5              }
 238   4              else
 239   4              {
 240   5                // 调整闹表
 241   5                alarm[change_timeflag-1]--;
C51 COMPILER V7.06   KEYS                                                                  05/07/2009 08:52:36 PAGE 5   

 242   5                  if (alarm[1]==0xff)
 243   5                                  alarm[1]=59;
 244   5                              if (alarm[0]==0xff)
 245   5                                  alarm[0]=23;
 246   5      
 247   5                              if (alarm[1]>=60)
 248   5                              {
 249   6                                  alarm[1]-=60;
 250   6                              }
 251   5                              if (alarm[0]>=24)
 252   5                                  alarm[0]-=24;
 253   5      
 254   5              }
 255   4            }
 256   3          }
 257   2        }
 258   1      }
 259          


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


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

⌨️ 快捷键说明

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