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

📄 ds1302.lst

📁 一体化锁主程序
💻 LST
字号:
C51 COMPILER V7.50   DS1302                                                                02/16/2009 09:18:56 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN D:\VW\INTEGR~1\MAIN\DS1302.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\VW\INTEGR~1\MAIN\DS1302.C DB SB OE

line level    source

   1          #include "system.h"
   2          
   3          //======================================================
   4          //                  RAM资源
   5          //   占用7个字节
   6          //=======================================================
   7          //
   8          idata UINT8 sys_second;                             //系统时间 秒
   9          idata UINT8 sys_min;                                //系统时间 分
  10          idata UINT8 sys_hour;                               //系统时间 时
  11          idata UINT8 sys_date;                               //系统时间 日
  12          idata UINT8 sys_mon;                                //系统时间 月
  13          idata UINT8 sys_week;                               //系统时间 星期
  14          idata UINT8 sys_year;                               //系统时间 年
  15          //  地址 80h ---- 写秒
  16          //  地址 82h ---- 写分
  17          //  地址 84h ---- 写时
  18          //  地址 86h ---- 写日
  19          //  地址 88h ---- 写月
  20          //  地址 8ah ---- 写星期
  21          //  地址 8ch ---- 写年
  22          
  23          //  地址 81h ---- 读秒
  24          //  地址 83h ---- 读分
  25          //  地址 85h ---- 读时
  26          //  地址 87h ---- 读日
  27          //  地址 89h ---- 读月
  28          //  地址 8bh ---- 读星期
  29          //  地址 8dh ---- 读年
  30          
  31          //
  32          //==========================================================================================
  33          //
  34          // filename : read_byte(UINT8 addr)
  35          // 功    能 : 从给定地址(addr)读1个字节数据
  36          // 返 回 值 : 返回读出的数据
  37          //
  38          //==========================================================================================
  39          UINT8 read_time_byte(UINT8 addr)
  40          {  UINT8 i,k;
  41   1         _nop_();  _nop_();
  42   1         k=addr;
  43   1         DST_RST = 1;
  44   1            _nop_();   _nop_();
  45   1         for(i=8;i>0;i--)
  46   1         {  DST_CLK = 0;
  47   2            k>>=1;
  48   2      
  49   2            _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
  50   2            DST_IO = CY;
  51   2      
  52   2            _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
  53   2            DST_CLK = 1;
  54   2      
  55   2      
C51 COMPILER V7.50   DS1302                                                                02/16/2009 09:18:56 PAGE 2   

  56   2            _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
  57   2         }
  58   1         k=0; DST_IO=1;
  59   1         for(i=8;i>0;i--)
  60   1         {  DST_CLK=1;
  61   2      
  62   2            _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
  63   2            DST_CLK = 0;
  64   2            k>>=1;
  65   2      
  66   2            _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
  67   2            if (DST_IO) k|=0x80;
  68   2      
  69   2            _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
  70   2         }
  71   1         DST_RST =0;
  72   1      
  73   1         return(k);
  74   1      }
  75          //==========================================================================================
  76          //
  77          // filename : write_time_byte(UINT8 addr,UINT8 tdata)
  78          // 功    能 : 向给定地址(addr)写入1个字节数据(tdata)
  79          // 返 回 值 : 无
  80          //
  81          //==========================================================================================
  82          //
  83          void write_time_byte(UINT8 addr,UINT8 tdata)
  84          {  UINT8 i,k;
  85   1         k=addr;
  86   1         DST_RST = 0;DST_RST = 1;
  87   1         _nop_();  _nop_();
  88   1         for(i=8;i>0;i--)
  89   1         {  DST_CLK = 0;
  90   2            k>>=1;   _nop_(); _nop_(); _nop_(); _nop_();   _nop_();
  91   2            DST_IO = CY;  _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
  92   2            DST_CLK = 1;
  93   2            _nop_(); _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
  94   2         }
  95   1         k=tdata;
  96   1         for(i=8;i>0;i--)
  97   1         {  DST_CLK = 0;
  98   2            k>>=1;  _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
  99   2            DST_IO = CY;   _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
 100   2            DST_CLK = 1;
 101   2            _nop_();  _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
 102   2         }
 103   1         DST_CLK=0;  _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
 104   1         DST_RST =0; _nop_(); _nop_(); _nop_(); _nop_();  _nop_();
 105   1      }
 106          
 107          
 108          //==========================================================================================
 109          // filename : write_systime()
 110          // 功    能 : 向ds1302中写入当前时间(秒,分,时,日,月,星期,年)
 111          // 返 回 值 : 无
 112          // 本程序精确到时间 --- 分,秒单位默认 0
 113          // 时间数据格式如下
 114          //         13: 25              0x13  0x25   BCD码表示
 115          //==========================================================================================
 116          //
 117          void write_systime()
C51 COMPILER V7.50   DS1302                                                                02/16/2009 09:18:56 PAGE 3   

 118          {
 119   1         write_time_byte(0x8e,0x00);         //WP=0, 取消写保护
 120   1         write_time_byte(0x80,sys_second);      //设置 --- 秒
 121   1         write_time_byte(0x82,sys_min);      //设置 --- 分
 122   1         write_time_byte(0x84,sys_hour);      //设置 --- 时
 123   1         write_time_byte(0x86,sys_date);      //设置 --- 日
 124   1         write_time_byte(0x88,sys_mon);      //设置 --- 月
 125   1         write_time_byte(0x8a,sys_week);      //设置 --- 星期
 126   1         write_time_byte(0x8c,sys_year);      //设置 --- 年
 127   1         write_time_byte(0x8e,0x80);         //WP=1, 设置写保护
 128   1      }
 129          
C51 COMPILER V7.50   DS1302                                                                02/16/2009 09:18:56 PAGE 4   

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


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
sys_hour . . . . . . . . . . . . . . .  PUBLIC   IDATA  U_CHAR   0000H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
XICON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C0H  1
P4 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00E8H  1
sys_min. . . . . . . . . . . . . . . .  PUBLIC   IDATA  U_CHAR   0001H  1
sys_mon. . . . . . . . . . . . . . . .  PUBLIC   IDATA  U_CHAR   0002H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
size_t . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
festa. . . . . . . . . . . . . . . . .  TYPEDEF  -----  UNION    -----  2
  whole. . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  2
  holiday. . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  2
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
CY . . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00D7H  1
write_systime. . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
_read_time_byte. . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  addr . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  k. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
DST_CLK. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B5H  1
UINT16 . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_INT    -----  2
bool . . . . . . . . . . . . . . . . .  TYPEDEF  -----  BIT      -----  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
_write_time_byte . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  addr . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  tdata. . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
  k. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
sys_second . . . . . . . . . . . . . .  PUBLIC   IDATA  U_CHAR   0003H  1
user . . . . . . . . . . . . . . . . .  TYPEDEF  -----  UNION    -----  16
  whole. . . . . . . . . . . . . . . .  MEMBER   -----  ARRAY    0000H  16
  class. . . . . . . . . . . . . . . .  MEMBER   -----  STRUCT   0000H  16
DST_RST. . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B7H  1
sys_date . . . . . . . . . . . . . . .  PUBLIC   IDATA  U_CHAR   0004H  1
DST_IO . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00B6H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
ULONG32. . . . . . . . . . . . . . . .  TYPEDEF  -----  U_LONG   -----  4
sys_week . . . . . . . . . . . . . . .  PUBLIC   IDATA  U_CHAR   0005H  1
sys_year . . . . . . . . . . . . . . .  PUBLIC   IDATA  U_CHAR   0006H  1
UINT8. . . . . . . . . . . . . . . . .  TYPEDEF  -----  U_CHAR   -----  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


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