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

📄 ds12887.lst

📁 这是一个51单片机实现的控制器程序
💻 LST
字号:
C51 COMPILER V6.12  DS12887                                                                09/04/2004 08:17:25 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE DS12887
OBJECT MODULE PLACED IN D:\DDYK\DS12887.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\DDYK\DS12887.C DB SB OE

stmt level    source

   1          /************************************************************* 
   2          文件名称:ds12c887.c
   3          适用范围:时钟芯片ds12c887的驱动程序
   4          *************************************************************/   
   5          #include <absacc.h>
   6          
   7          /* 命令常量定义 */
   8          #define CMD_START_DS12C887     0x20            /* 开启时钟芯片 
   9          */
  10          #define CMD_START_OSCILLATOR 0x70            /* 开启振荡器,
  11          处于抑制状态 */
  12          #define CMD_CLOSE_DS12C887     0x30            /* 关掉时钟芯片 
  13          */
  14          /* 所有的置位使用或操作,清除使用与操作 */
  15          #define MASK_SETB_SET         0x80            /* 禁止刷新 */
  16          #define MASK_CLR_SET         0x7f            /* 使能刷新 */
  17          #define MASK_SETB_DM         0x04            /* 使用HEX格式 
  18          */
  19          #define MASK_CLR_DM             0xfb            /* 使
  20          用BCD码格式 */
  21          #define MASK_SETB_2412         0x02            /* 使
  22          用24小时模式 */
  23          #define MASK_CLR_2412         0xfd            /* 使用12小时模
  24          式 */
  25          #define MASK_SETB_DSE         0x01            /* 使用夏令时 */
  26          #define MASK_CLR_DSE         0xfe            /* 不使用夏令时 
  27          */
  28          
  29          /* 寄存器地址通道定义 */
  30          xdata char chSecondsChannel _at_ 0xdf00;
  31          xdata char chMinutesChannel _at_ 0xdf02;
  32          xdata char chHoursChannel   _at_ 0xdf04;
  33          xdata char chDofWChannel    _at_ 0xdf06;
  34          xdata char chDateChannel    _at_ 0xdf07;
  35          xdata char chMonthChannel   _at_ 0xdf08;
  36          xdata char chYearChannel    _at_ 0xdf09;
  37          xdata char chCenturyChannel _at_ 0xdf32;
  38          xdata char chRegA    _at_ 0xdf0a;
  39          xdata char chRegB    _at_ 0xdf0b;
  40          xdata char chRegC    _at_ 0xdf0c;
  41          xdata char chRegD    _at_ 0xdf0d;
  42          
  43          /* 函数声明部分 */
  44          void StartDs12c887(void);
  45          void CloseDs12c887(void);
  46          void InitDs12c887(void);
  47          unsigned char GetSeconds(void);
  48          unsigned char GetMinutes(void);
  49          unsigned char GetHours(void);
  50          unsigned char GetDate(void);
  51          unsigned char GetMonth(void);
  52          unsigned char GetYear(void);
  53          unsigned char GetCentury(void);
  54          void SetTime(unsigned char chSeconds,unsigned char chMinutes,unsigned char 
  55          chHours);
C51 COMPILER V6.12  DS12887                                                                09/04/2004 08:17:25 PAGE 2   

  56          void SetDate(unsigned char chDate,unsigned char chMonth,unsigned char chYear);
  57          
  58          /************************************************************* 
  59          函数功能:该函数用来启动时钟芯片工作
  60          应用范围:仅在时钟芯片首次使用时用到一次
  61          入口参数:
  62          出口参数:
  63          *************************************************************/   
  64          void StartDs12c887(void)
  65          {
  66   1          chRegA = CMD_START_DS12C887;
  67   1      }
  68          
  69          /************************************************************* 
  70          函数功能:该函数用来关闭时钟芯片
  71          应用范围:一般用不到
  72          入口参数:
  73          出口参数:
  74          *************************************************************/   
  75          void CloseDs12c887(void)
  76          {
  77   1          chRegA = CMD_CLOSE_DS12C887;
  78   1      }
  79          
  80          void InitDs12c887()
  81          {
  82   1          StartDs12c887();
  83   1          chRegB = chRegB | MASK_SETB_SET;        /* 禁止刷新 */
  84   1          chRegB = chRegB & MASK_CLR_DM | MASK_SETB_2412 \
  85   1                          & MASK_CLR_DSE;
  86   1                                  
  87   1                      /* 使用BCD码格式、24小时模式、不使用
  88   1      夏令时 */
  89   1          chCenturyChannel = 0x21;                /* 设
  90   1      置为21世纪 */
  91   1          chRegB = chRegB & MASK_CLR_SET;            /* 使能刷新 */
  92   1      }
  93          
  94          /************************************************************* 
  95          函数功能:该函数用来从时钟芯片读取秒字节
  96          应用范围:
  97          入口参数:
  98          出口参数:
  99          *************************************************************/   
 100          unsigned char GetSeconds(void)
 101          {
 102   1          return(chSecondsChannel);
 103   1      }
 104          
 105          /************************************************************* 
 106          函数功能:该函数用来从时钟芯片读取分字节
 107          应用范围:
 108          入口参数:
 109          出口参数:
 110          *************************************************************/   
 111          unsigned char GetMinutes(void)
 112          {
 113   1          return(chMinutesChannel);
 114   1      }
 115          
 116          /************************************************************* 
 117          函数功能:该函数用来从时钟芯片读取小时字节
C51 COMPILER V6.12  DS12887                                                                09/04/2004 08:17:25 PAGE 3   

 118          应用范围:
 119          入口参数:
 120          出口参数:
 121          *************************************************************/   
 122          unsigned char GetHours(void)
 123          {
 124   1          return(chHoursChannel);
 125   1      }
 126          
 127          /************************************************************* 
 128          函数功能:该函数用来从时钟芯片读取日字节
 129          应用范围:
 130          入口参数:
 131          出口参数:
 132          *************************************************************/   
 133          unsigned char GetDate(void)
 134          {
 135   1          return(chDateChannel);
 136   1      }
 137          /************************************************************* 
 138          函数功能:该函数用来从时钟芯片读取月字节
 139          应用范围:
 140          入口参数:
 141          出口参数:
 142          *************************************************************/   
 143          unsigned char GetMonth(void)
 144          {
 145   1          return(chMonthChannel);
 146   1      }
 147          
 148          /************************************************************* 
 149          函数功能:该函数用来从时钟芯片读取年字节
 150          应用范围:
 151          入口参数:
 152          出口参数:
 153          *************************************************************/   
 154          unsigned char GetYear(void)
 155          {
 156   1          return(chYearChannel);
 157   1      }
 158          
 159          /************************************************************* 
 160          函数功能:该函数用来从时钟芯片读取世纪字节
 161          应用范围:
 162          入口参数:
 163          出口参数:
 164          *************************************************************/   
 165          unsigned char GetCentury(void)
 166          {
 167   1          return(chCenturyChannel);
 168   1      }    
 169          
 170          /************************************************************* 
 171          函数功能:该函数用来设置时钟芯片的时间
 172          应用范围:
 173          入口参数:chSeconds、chMinutes、chHours是设定时间的压缩BCD码
 174          出口参数:
 175          *************************************************************/   
 176          void SetTime(unsigned char chSeconds,unsigned char chMinutes,unsigned char 
 177          chHours)
 178          {
 179   1          chRegB = chRegB | MASK_SETB_SET;        /* 禁止刷新 */
C51 COMPILER V6.12  DS12887                                                                09/04/2004 08:17:25 PAGE 4   

 180   1          chSecondsChannel = chSeconds;
 181   1          chMinutesChannel = chMinutes;
 182   1          chHoursChannel = chHours;
 183   1          chRegB = chRegB & MASK_CLR_SET;            /* 使能刷新 */
 184   1      }
 185          
 186          /************************************************************* 
 187          函数功能:该函数用来设置时钟芯片的日期
 188          应用范围:
 189          入口参数:chDate、chMonth、chYear是设定日期的压缩BCD码
 190          出口参数:
 191          *************************************************************/   
 192          void SetDate(unsigned char chDate,unsigned char chMonth,unsigned char chYear)
 193          {
 194   1          chRegB = chRegB | MASK_SETB_SET;        /* 禁止刷新 */
 195   1          chDateChannel = chDate;
 196   1          chMonthChannel = chMonth;
 197   1          chYearChannel = chYear;
 198   1          chRegB = chRegB & MASK_CLR_SET;            /* 使能刷新 */
 199   1      }      
C51 COMPILER V6.12  DS12887                                                                09/04/2004 08:17:25 PAGE 5   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


chDateChannel. . . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF07H  1
GetMinutes . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_SetDate . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  chDate . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  chMonth. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  chYear . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
GetCentury . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
chMonthChannel . . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF08H  1
chYearChannel. . . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF09H  1
_SetTime . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  chSeconds. . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  chMinutes. . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  chHours. . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0003H  1
chHoursChannel . . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF04H  1
CloseDs12c887. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
GetDate. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
GetMonth . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
chRegA . . . . . . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF0AH  1
chRegB . . . . . . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF0BH  1
chRegC . . . . . . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF0CH  1
chRegD . . . . . . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF0DH  1
GetYear. . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
GetHours . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
StartDs12c887. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
InitDs12c887 . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
chSecondsChannel . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF00H  1
chMinutesChannel . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF02H  1
GetSeconds . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
chCenturyChannel . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF32H  1
chDofWChannel. . . . . . . . . . . . .  PUBLIC   XDATA  CHAR     DF06H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    144    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -