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

📄 time.lst

📁 用NXP公司P89LPC9401单片机开发液晶显示,包括开发资料,各功能驱动程序.
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.06   TIME                                                                  11/09/2004 16:39:45 PAGE 1   


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

stmt level    source

   1          //***********************************************************************
   2          //FILE: time.c
   3          //功能: 定义与时间相关的所有变量和相关处理函数
   4          //***********************************************************************
   5          #include"main.h"
   6          #include"spi.h"
   7          #include"key.h"
   8          //***********************************************************************
   9          uchar   HalfSec;                                        //秒信号量
  10          uchar   Year;                                           //年低位        
  11          uchar   Month;                                          //月
  12          uchar   Day;                                            //日
  13          uchar   Hour;                                           //小时
  14          uchar   Minute;                                         //分钟
  15          uchar   Second;                                         //秒
  16          uchar   AlarmHour;                                      //闹钟小时
  17          uchar   AlarmMinute;                            //闹钟分钟
  18          uchar   Alarm;                                          //闹钟LED闪烁变量
  19          bit             Ampm;                                           //AM/PM
  20          bit             AlarmAmpm;                                      //闹钟AM/PM
  21          bit             BeepAlarm;                                      //闹钟标志
  22          bit     RTCflag;
  23          //***********************************************************************
  24          uchar  code  DayTab[]=                          //月份天数表
  25          {                                                                       //2月除外
  26                  31,28,31,30,31,30,
  27                  31,31,30,31,30,31
  28          };
  29          //***********************************************************************
  30          bit             AddSecond()                                     //秒加1函数
  31          {       
  32   1              if(Second<59)                                   //秒<59
  33   1              {
  34   2                      Second++;                                       //秒加1
  35   2                      return(0);                                      //返回进位标志为0
  36   2              }
  37   1              else                                                    //秒>=59
  38   1              {
  39   2                      Second=0;                                       //秒清零
  40   2                      return(1);                                      //返回进位标志为1
  41   2              }
  42   1      }
  43          //***********************************************************************
  44          bit             ModifyMinute(bit b)                     //分调整函数
  45          {                                                                       //(b=1加1,否则减1)下同
  46   1              if(b==1)                                                //加1操作
  47   1              {
  48   2                      if(Minute<59)                           //分<59
  49   2                      {
  50   3                              Minute++;                               //分加1
  51   3                              return(0);                              //返回进位标志为0       
  52   3                      }
  53   2                      else                                            //分>=59
  54   2                      {
  55   3                              Minute=0;                               //分清零        
C51 COMPILER V7.06   TIME                                                                  11/09/2004 16:39:45 PAGE 2   

  56   3                              return(1);                              //返回进位标志为1
  57   3                      }
  58   2              }
  59   1              else                                                    //减1操作
  60   1              {
  61   2                      if(Minute>0)                            //分>0
  62   2                              Minute--;                               //分减1
  63   2                      else                                            //分等于0
  64   2                              Minute=59;                              //分=59 
  65   2                      return(0);                                      //返回无进位标志
  66   2               }
  67   1      }
  68          //***********************************************************************
  69          bit             ModifyHour(bit b)                       //小时调整函数
  70          {
  71   1              if(b==1)                                                //加1操作
  72   1              {
  73   2                      if(Hour<12)                                     //小时<12
  74   2                      {
  75   3                              Hour++;                                 //小时加1
  76   3                              return(0);                              //返回进位标志0
  77   3                      }
  78   2                      else                                            //小时>=12
  79   2                      {                               
  80   3                              Hour=1;                                 //小时=1
  81   3                              Ampm=!Ampm;                             //取反AM/PM
  82   3                              return(!Ampm);                  //如果AM为0则返回进位标志1
  83   3                      }
  84   2              }
  85   1              else                                                    //减1操作
  86   1              {
  87   2                      if(Hour>1)                                      //如果小时>1
  88   2                              Hour--;                                 //则小时减1
  89   2                      else                                            //否则
  90   2                      {
  91   3                              Hour=12;                                //小时=12
  92   3                              Ampm=!Ampm;                             //取反AMPM标志
  93   3                      }
  94   2                      return(0);                                      //返回无进位标志
  95   2               }
  96   1      
  97   1      }
  98          //***********************************************************************
  99          void    ModifyAlarmMinute(bit b)        //闹钟分调整函数
 100          {
 101   1              if(b==1)                                                //加1操作
 102   1              {
 103   2                      if(AlarmMinute<59)                      //小于59则加1
 104   2                              AlarmMinute++;
 105   2                      else                                            //否则清零              
 106   2                              AlarmMinute=0;
 107   2              }
 108   1              else                                                    //减1操作
 109   1              {
 110   2                      if(AlarmMinute>0)                       //大于0则减1
 111   2                              AlarmMinute--;
 112   2                      else                                            //否则设置为59          
 113   2                              AlarmMinute=59;
 114   2              }
 115   1      }
 116          
 117          //***********************************************************************
C51 COMPILER V7.06   TIME                                                                  11/09/2004 16:39:45 PAGE 3   

 118          void    ModifyAlarmHour(bit b)          //闹钟小时调整函数
 119          {
 120   1              if(b==1)                                                //加法操作
 121   1              {
 122   2                      if(AlarmHour<12)                        //<12则加1
 123   2                              AlarmHour++;
 124   2                      else                                            //否则闹钟小时置为1
 125   2                      {
 126   3                              AlarmHour=1;
 127   3                              AlarmAmpm=!AlarmAmpm;   //取反闹钟AM/PM
 128   3                      }
 129   2              }
 130   1              else                                                    //减1操作
 131   1              {
 132   2                      if(AlarmHour>1)                         //如果闹钟小时>1
 133   2                              AlarmHour--;                    //则减1
 134   2                      else
 135   2                      {
 136   3                              AlarmHour=12;                   //否则则置为12
 137   3                              AlarmAmpm=!AlarmAmpm;   //取反闹钟AMPM标志

⌨️ 快捷键说明

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