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

📄 ds1302.lst

📁 RM0038红外传感器接收电视机摇控的源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
                              RTC_Write_Byte(*pDat);/* 写1Byte数据*/
C51 COMPILER V7.00  DS1302                                                                 07/18/2007 12:16:44 PAGE 4   

                              pDat++;
                      }
                      Set_CLK;
                      DS1302_WAIT;
                      Clr_RST;
                      DS1302_WP_EN;
              }
              #endif
 188          /********************************************************************
 189          *
 190          * 名称: RTC_Time_Get_Burst
 191          * 说明: 先写地址,后读命令/数据(时钟多字节方式)
 192          * 功能: 读取DS1302时钟数据
 193          * 调用: RTC_Write_Byte() , RTC_Read_Byte()
 194          * 输入: pDat: 时钟数据地址 格式为: 秒 分 时 日 月 星期 年
 195          * 7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B
 196          * 返回值: ucDa :读取的数据
 197          ***********************************************************************/
 198          #if 0
              void RTC_Time_Get_Burst(uchar *pDat)
              {
                      uchar i;
                      Clr_RST;
                      DS1302_WAIT;
                      Clr_CLK;
                      DS1302_WAIT;
                      Set_RST;
                      DS1302_WAIT;
                      RTC_Write_Byte(DS1302_CLKBURST_Reg+1); /* 0xbf:时钟多字节读命令 */
                      for (i=8; i>0; i--)
                      {
                              *pDat = RTC_Read_Byte(); /* 读1Byte数据 */
                              pDat++;
                      }
                      Set_CLK;
                      DS1302_WAIT;
                      Clr_RST;
              }
              #endif
 219          /********************************************************************
 220          *
 221          * 名称: RTC_RAM_Write_Burst
 222          * 说明: 先写地址,后写数据(寄存器多字节方式)
 223          * 功能: 往DS1302寄存器数写入数据(多字节方式)
 224          * 调用: RTC_Write_Byte()
 225          * 输入: pDat: 寄存器数据地址
 226          * 返回值: 无
 227          ***********************************************************************/
 228          #if 0
              void RTC_RAM_Write_Burst(uchar *pDat)
              {
                      uchar i;
                      DS1302_WP_DIS; //解除写保护
                      Clr_RST;
                      DS1302_WAIT;
                      Clr_CLK;
                      DS1302_WAIT;
                      Set_RST;
                      DS1302_WAIT;
                      DS1302_RAM_BURST_WRITE; /* 0xfe:RAM多字节写命令 */
                      for (i=31;i>0;i--) /*31Byte 寄存器数据 */
                      {
C51 COMPILER V7.00  DS1302                                                                 07/18/2007 12:16:44 PAGE 5   

                              RTC_Write_Byte(*pDat); /* 写1Byte数据*/
                              pDat++;
                      }
                      Set_CLK;
                      DS1302_WAIT;
                      Clr_RST;
                      DS1302_WP_EN;
              }
              #endif
 251          /********************************************************************
 252          *
 253          * 名称: RTC_RAM_Read_Burst
 254          * 说明: 先写地址,后读命令/数据(寄存器多字节方式)
 255          * 功能: 读取DS1302寄存器数据
 256          * 调用: RTC_Write_Byte() , RTC_Read_Byte()
 257          * 输入: pDat: 寄存器数据地址
 258          * 返回值: 无
 259          ***********************************************************************/
 260          #if 0
              void RTC_RAM_Read_Burst(uchar *pDat)
              {
                      uchar i;
                      Clr_RST;
                      DS1302_WAIT;
                      Clr_CLK;
                      DS1302_WAIT;
                      Set_RST;
                      DS1302_WAIT;
                      DS1302_RAM_BURST_READ;/* 0xff:RAM字节读命令 */
                      for (i=31; i>0; i--) /*31Byte 寄存器数据 */
                      {
                              *pDat = RTC_Read_Byte(); /* 读1Byte数据 */
                              pDat++;
                      }
                      Set_CLK;
                      DS1302_WAIT;
                      Clr_RST;
              }
              #endif
 281          /********************************************************************
 282          *
 283          * 名称: RTC_IniTime_Set
 284          * 说明:
 285          * 功能: 设置初始时间
 286          * 调用: v_W1302()
 287          * 输入: pDat: 初始时间地址。初始时间格式为: 秒 分 时 日 月 星期 年
 288          * 7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B
 289          * 返回值: 无
 290          ***********************************************************************/
 291          #if 0
              void RTC_IniTime_Set(uchar *pDat)
              {
                      uchar i;
                      uchar Addr = DS1302_SEC_Reg;
                      DS1302_WP_DIS;
                      for(i =7;i>0;i--)
                      {
                              RTC_Write(Addr,*pDat); /* 秒 分 时 日 月 星期 年 */
                              pDat++;
                              Addr +=2;
                      }
                      DS1302_WP_EN;
C51 COMPILER V7.00  DS1302                                                                 07/18/2007 12:16:44 PAGE 6   

              }
              #endif
 306          
 307          /********************************************************************
 308          *
 309          * 名称: RTC_CurTime_Get
 310          * 说明:
 311          * 功能: 读取DS1302当前时间
 312          * 调用: RTC_Read()
 313          * 输入: Curtime: 保存当前时间地址。当前时间格式为: 秒 分 时 日 月 星期 年
 314          * 7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B
 315          * 返回值: 无
 316          ***********************************************************************/
 317          #if 0
              void RTC_CurTime_Get(uchar Curtime[])
              {
                      uchar i;
                      uchar Addr = DS1302_SEC_Reg+1;          //读操作
                      for (i=0;i<7;i++)
                      {
                              Curtime[i] = RTC_Read(Addr);/*格式为: 秒 分 时 日 月 星期 年 */
                              Addr += 2;
                      }
              }
              #endif
 329          
 330          
 331          
 332          long GetTime()
 333          {
 334   1              long lRTime = 0;
 335   1              uchar aa = 0xFF;
 336   1              aa = RTC_Read(0x81);
 337   1              aa = (aa&0x0F) + ((aa&0xF0) >> 4)*10;
 338   1              lRTime = aa;
 339   1              aa = RTC_Read(0x83);
 340   1              aa = (aa&0x0F) + ((aa&0xF0) >> 4)*10;
 341   1              lRTime += aa*60;
 342   1              aa = RTC_Read(0x85);
 343   1              aa = (aa&0x0F) + ((aa&0xF0) >> 4)*10;
 344   1              lRTime += aa*3600;
 345   1              return lRTime;
 346   1      }
 347          


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