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

📄 ds12887.lst

📁 用DS12C887RTC芯片实现高精度数字时钟的1602显示
💻 LST
字号:
C51 COMPILER V8.08   DS12887                                                               02/05/2009 15:57:56 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE DS12887
OBJECT MODULE PLACED IN Ds12887.OBJ
COMPILER INVOKED BY: F:\安装包\Keilc uv2\C51\BIN\C51.EXE Ds12887.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*************************************************************************
   2          文件名  :ds12887.c
   3          作        者:eleclike
   4          修改日期:2008-9-9
   5          版        本:v1.00
   6          版权说明:本程序只供学习使用,未经作者许可,不得用于其它任何用途
   7          备    注:
   8          **************************************************************************/
   9          
  10          
  11          #include "My52.h"
  12          #include "Mmi.h"
  13          #include "ds12887.h"
  14          
  15          uchar Month = 0;
  16          uchar Date  = 0;
  17          
  18          uchar Year  = 0;
  19          uchar Day   = 0;
  20          
  21          uchar Hour = 0;
  22          uchar Minute = 0;
  23          uchar Second = 0;
  24          
  25          uchar AlmHour =0;
  26          uchar AlmMinute =0;
  27          uchar AlmSecond =0;
  28          
  29          uchar AlarmEnable=0;    //报警使能
  30          
  31          /*********************************************************
  32          函数名称:IsInitDs12887()
  33          函数功能:判断是否需要初始化DS12887
  34          入口参数:无
  35          出口参数:无
  36          备    注:
  37          *********************************************************/
  38          void IsInitDs12887(void)        
  39          {
  40   1              uchar t;
  41   1              t = REGISTERA;
  42   1              t &= 0x70;                              //取RegisterA的DV2-DV0 
  43   1              if(t != 0x20)                   
  44   1              {                       
  45   2                      InitDs12887();          //初始化DS12887
  46   2              }
  47   1      }
  48          /*********************************************************
  49          函数名称:InitDs12887()
  50          函数功能:初始化DS12887
  51          入口参数:无
  52          出口参数:无
  53          备    注:
  54          *********************************************************/
  55          void InitDs12887(void)          
C51 COMPILER V8.08   DS12887                                                               02/05/2009 15:57:56 PAGE 2   

  56          {
  57   1              uchar temp;
  58   1              REGISTERB = 0x82;
  59   1              //初始化闹钟
  60   1              ALARM_SECOND= 0x00;     //闹钟早上7点30分
  61   1              ALARM_MINUTE= 0x30;
  62   1              ALARM_HOUR  = 0x07;
  63   1              //初始化时间
  64   1              TIME_SECOND= 0x13;      //23:59:13
  65   1              TIME_MINUTE= 0x59;
  66   1              TIME_HOUR  = 0x23;
  67   1              TIME_DAY   = 0x04;              //星期四
  68   1              TIME_DATE  = 0x11;              //08-09-11
  69   1              TIME_MONTH = 0x09;
  70   1              TIME_YEAR  = 0x08;
  71   1              //计时开始
  72   1              REGISTERA = 0x20;       //开始走时
  73   1              REGISTERB = 0x22;       //更新,允许IRQ
  74   1              temp = REGISTERC;       //读寄存器C,清楚IRQF
  75   1      }
  76          /*********************************************************
  77          函数名称:ReadDs12887()
  78          函数功能:读取DS12887各寄存器值
  79          入口参数:无
  80          出口参数:无
  81          备    注:
  82          *********************************************************/
  83          void ReadDs12887(void)
  84          {
  85   1              AlmHour   =ALARM_HOUR;
  86   1              AlmMinute =ALARM_MINUTE;
  87   1              AlmSecond =ALARM_SECOND;
  88   1      
  89   1              Second = TIME_SECOND;
  90   1              Minute = TIME_MINUTE;
  91   1              Hour   = TIME_HOUR;
  92   1      
  93   1              Day   = TIME_DAY;
  94   1              Date  = TIME_DATE;
  95   1              Month = TIME_MONTH;
  96   1              Year  = TIME_YEAR;
  97   1      }
  98          
  99          /*********************************************************
 100          函数名称:ReadAlarmFlag()
 101          函数功能:读报警标志
 102          入口参数:无
 103          出口参数:无
 104          备    注:
 105          *********************************************************/
 106          void ReadAlarmFlag(void)
 107          {
 108   1              uchar t;
 109   1              ALARM_FLAG =1;
 110   1              t = P3;
 111   1              t &= (1<<3); 
 112   1              if(t == 0 )             //如果DS12887 IRQ为低
 113   1              {
 114   2                      AlarmEnable = 1;
 115   2                      t = REGISTERC;  //读RegisterC,清楚中断标志
 116   2              }
 117   1      }
C51 COMPILER V8.08   DS12887                                                               02/05/2009 15:57:56 PAGE 3   



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