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

📄 ds1302.lst

📁 实时时钟ds1302的c语言程序。开发环境为vw。
💻 LST
📖 第 1 页 / 共 2 页
字号:
 173   1          RTInputByte(0xbf);             /* 0xbf:时钟多字节读命令 */
 174   1          for (i=8; i>0; i--)
 175   1          {
 176   2             *pRClock = RTOutputByte();   /* 读1Byte数据 */
 177   2             pRClock++;
 178   2          }
 179   1          T_CLK = 1;
C51 COMPILER V7.50   DS1302                                                                08/15/2007 10:09:59 PAGE 4   

 180   1          T_RST = 0;
 181   1      }
 182          /********************************************************************
 183          函 数 名:BurstW1302R()
 184          功    能:往DS1302寄存器数写入数据(多字节方式)
 185          说    明:先写地址,后写数据(寄存器多字节方式)
 186          调    用:RTInputByte()
 187          入口参数:pWReg: 寄存器数据地址
 188          返 回 值:无
 189          设    计:zhaojunjie           日    期:2002-03-19
 190          修    改:                     日    期:
 191          ***********************************************************************/
 192          void BurstW1302R(uchar *pWReg)
 193          {
 194   1          uchar i;
 195   1          W1302(0x8e,0x00);         /* 控制命令,WP=0,写操作*/
 196   1          T_RST = 0;
 197   1          T_CLK = 0;
 198   1          T_RST = 1;
 199   1          RTInputByte(0xfe);         /* 0xbe:时钟多字节写命令 */
 200   1          for (i=31; i>0; i--)       /* 31Byte 寄存器数据 */
 201   1          {
 202   2              RTInputByte(*pWReg);    /* 写1Byte数据*/
 203   2              pWReg++;
 204   2          }
 205   1          T_CLK = 1;
 206   1          T_RST = 0;
 207   1      }
 208          /********************************************************************
 209          函 数 名:BurstR1302R()
 210          功    能:读取DS1302寄存器数据
 211          说    明:先写地址,后读命令/数据(寄存器多字节方式)
 212          调    用:RTInputByte() , RTOutputByte()
 213          入口参数:pRReg: 寄存器数据地址
 214          返 回 值:无
 215          设    计:zhaojunjie           日    期:2002-03-19
 216          修    改:                     日    期:
 217          ***********************************************************************/
 218          void BurstR1302R(uchar *pRReg)
 219          {
 220   1          uchar i;
 221   1          T_RST = 0;
 222   1          T_CLK = 0;
 223   1          T_RST = 1;
 224   1          RTInputByte(0xff);            /* 0xff:时钟多字节读命令 */
 225   1          for (i=31; i>0; i--)          /*31Byte 寄存器数据 */
 226   1          {
 227   2              *pRReg = RTOutputByte();  /* 读1Byte数据 */
 228   2              pRReg++;
 229   2          }
 230   1          T_CLK = 1;
 231   1          T_RST = 0;
 232   1      }
 233          /********************************************************************
 234          函 数 名:Set1302()
 235          功    能:设置初始时间
 236          说    明:先写地址,后读命令/数据(寄存器多字节方式)
 237          调    用:W1302()
 238          入口参数:pClock: 设置时钟数据地址 格式为: 秒 分 时 日 月 星期 年
 239                                         7Byte (BCD码)1B 1B 1B 1B 1B  1B  1B
 240          返 回 值:无
 241          设    计:zhaojunjie           日    期:2002-03-19
C51 COMPILER V7.50   DS1302                                                                08/15/2007 10:09:59 PAGE 5   

 242          修    改:                     日    期:
 243          ***********************************************************************/
 244          void Set1302(uchar *pClock)
 245          {
 246   1          uchar i;
 247   1          uchar ucAddr = 0x80;
 248   1          W1302(0x8e,0x00);           /* 控制命令,WP=0,写操作?*/
 249   1          for(i =7; i>0; i--)
 250   1          {
 251   2              W1302(ucAddr,*pClock);  /* 秒 分 时 日 月 星期 年 */
 252   2              pClock++;
 253   2              ucAddr +=2;
 254   2          }
 255   1          W1302(0x8e,0x80);           /* 控制命令,WP=1,写保护?*/
 256   1      }
 257          /********************************************************************
 258          函 数 名:Get1302()
 259          功    能:读取DS1302当前时间
 260          说    明:
 261          调    用:R1302()
 262          入口参数:ucCurtime: 保存当前时间地址。当前时间格式为: 秒 分 时 日 月 星期 年
 263                                                  7Byte (BCD码)   1B 1B 1B 1B 1B  1B  1B
 264          返 回 值:无
 265          设    计:zhaojunjie           日    期:2002-03-19
 266          修    改:                     日    期:
 267          ***********************************************************************/
 268          void Get1302(uchar ucCurtime[])
 269          {
 270   1          uchar i;
 271   1          uchar ucAddr = 0x81;
 272   1          for (i=0; i<7; i++)
 273   1          {
 274   2              ucCurtime[i] = R1302(ucAddr);/*格式为: 秒 分 时 日 月 星期 年 */
 275   2              ucAddr += 2;
 276   2          }
 277   1      }
 278          
C51 COMPILER V7.50   DS1302                                                                08/15/2007 10:09:59 PAGE 6   

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


ACC7 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00E7H  1
P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
P2 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A0H  1
P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
T_CLK. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00A7H  1
IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  time_init. . . . . . . . . . . . . .  AUTO     DATA   ARRAY    0000H  7
  time . . . . . . . . . . . . . . . .  AUTO     DATA   ARRAY    0007H  7
T_RST. . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0097H  1
_RTInputByte . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0006H  -----
  d. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
_?ix1000 . . . . . . . . . . . . . . .  STATIC   CODE   ARRAY    0000H  7
_?ix1001 . . . . . . . . . . . . . . .  STATIC   CODE   ARRAY    0007H  7
ACC. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00E0H  1
_Get1302 . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ucCurtime. . . . . . . . . . . . . .  AUTO     DATA   PTR      0000H  3
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  ucAddr . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
T_IO . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      0094H  1
RTOutputByte . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
_Set1302 . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  pClock . . . . . . . . . . . . . . .  * REG *  DATA   PTR      0001H  3
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
  ucAddr . . . . . . . . . . . . . . .  AUTO     DATA   U_CHAR   0000H  1
_BurstR1302R . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  pRReg. . . . . . . . . . . . . . . .  * REG *  DATA   PTR      0001H  3
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
_BurstR1302T . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  pRClock. . . . . . . . . . . . . . .  * REG *  DATA   PTR      0001H  3
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
_BurstW1302R . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  pWReg. . . . . . . . . . . . . . . .  * REG *  DATA   PTR      0001H  3
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
_BurstW1302T . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  pWClock. . . . . . . . . . . . . . .  * REG *  DATA   PTR      0001H  3
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1
T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
ACC0 . . . . . . . . . . . . . . . . .  ABSBIT   -----  BIT      00E0H  1
_R1302 . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  ucAddr . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  ucData . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1
_W1302 . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0004H  -----
  ucAddr . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0007H  1
  ucDa . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0006H  1


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    342    ----
   CONSTANT SIZE    =     14    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
C51 COMPILER V7.50   DS1302                                                                08/15/2007 10:09:59 PAGE 7   

   DATA SIZE        =   ----      18
   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 + -