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

📄 kw_rtc.lst

📁 linux下数据下载器的设计与实现
💻 LST
📖 第 1 页 / 共 2 页
字号:
 143   1         {
 144   2              SCLK_C;
 145   2                      Delay_1us(1);
 146   2                      if(ADD&0X01)
 147   2                              IO1302_S;
 148   2                      else
 149   2                              IO1302_C;
 150   2                      ADD >>=1;
 151   2                      Delay(10);
 152   2                      SCLK_S;
 153   2                      Delay_1us(1);
 154   2         }
 155   1         OEE = 0xf7;
 156   1         Delay_1us(1);
 157   1      
 158   1         for(i=0;i<8;i++)                             //循环读取1位,共8位数据
 159   1         {
 160   2              SCLK_C;
 161   2                      Delay_1us(1);
 162   2                      temp >>=1;
 163   2                      if(IO1302_D)
 164   2                      {
 165   3                              temp|=0x80;     
 166   3                      }               
 167   2                      Delay(10);
 168   2                      SCLK_S;
 169   2                      Delay_1us(1);
 170   2         }
 171   1         RST1302_C;
 172   1         Delay_1us(4);
 173   1         SCLK_C;
 174   1         OEE = 0xff;
 175   1         return(temp);
 176   1      }
 177          
 178          /************************************************************************************* 
C51 COMPILER V7.50   KW_RTC                                                                10/12/2007 17:05:49 PAGE 4   

 179            Function:       RM_InitDS1302
 180            Description:    DS1302初始化函数
 181            Called By:      
 182            Input:          N/A
 183            Output:         N/A
 184            Return:         void
 185            Others:         
 186          *************************************************************************************/
 187          void RM_InitDS1302()
 188          {
 189   1              BYTE Temp;
 190   1      
 191   1              RM_WriteDS1302(0x8E, 0x00);                                                                     // 关闭写保护
 192   1              RM_WriteDS1302(0x90, 0xAB);                                                                     // 设置充电电阻
 193   1              Temp=RM_ReadDS1302(0x81);                                                                       // 设置CH位
 194   1              Temp&=0x7F;
 195   1              RM_WriteDS1302(0x80, Temp);
 196   1              RM_WriteDS1302(0x8E, 0x80);                                                                     // 打开写保护
 197   1      }
 198          
 199          /************************************************************************************* 
 200            Function:       RM_SetRTCTime
 201            Description:    设置RTC时间,时间值保存于配置参数CM_ConfigParameter。
 202            Called By:      
 203            Input:          N/A
 204            Output:         N/A
 205            Return:         void
 206            Others:         调用该模块时,须先对CM_ConfigParameter进行初始化
 207          *************************************************************************************/
 208          void RM_SetRTCTime(void)
 209          {
 210   1              RM_WriteDS1302(0x8E,0x00);
 211   1              RM_WriteDS1302(0x8C,CM_ConfigParameter.RTC_Time[0]);            //year
 212   1              RM_WriteDS1302(0x88,CM_ConfigParameter.RTC_Time[1]);            //month
 213   1              RM_WriteDS1302(0x86,CM_ConfigParameter.RTC_Time[2]);            //date
 214   1              RM_WriteDS1302(0x84,CM_ConfigParameter.RTC_Time[3]);            //hour
 215   1              RM_WriteDS1302(0x82,CM_ConfigParameter.RTC_Time[4]);            //min.
 216   1              RM_WriteDS1302(0x80,CM_ConfigParameter.RTC_Time[5]);            //sec.
 217   1              RM_WriteDS1302(0X8E,0X80);
 218   1      }
 219          
 220          /************************************************************************************* 
 221            Function:       RM_ReadRTCTime
 222            Description:    读取RTC时间,时间值保存于RM_Curtime。
 223            Called By:      
 224            Input:          N/A
 225            Output:         N/A
 226            Return:         void
 227            Others:         
 228          *************************************************************************************/
 229          void RM_ReadRTCTime(void)
 230          {
 231   1              RM_Curtime[0]=RM_ReadDS1302(0x8D);                                                      //year
 232   1              RM_Curtime[1]=RM_ReadDS1302(0x89);                                                      //month
 233   1              RM_Curtime[2]=RM_ReadDS1302(0x87);                                                      //date
 234   1              RM_Curtime[3]=RM_ReadDS1302(0x85);                                                      //hour
 235   1              RM_Curtime[4]=RM_ReadDS1302(0x83);                                                      //min.
 236   1              RM_Curtime[5]=RM_ReadDS1302(0x81);                                                      //sec.
 237   1      }
 238          
 239          /************************************************************************************* 
 240            Function:       RM_GetDateForFAT
C51 COMPILER V7.50   KW_RTC                                                                10/12/2007 17:05:49 PAGE 5   

 241            Description:    蒋保存于RM_Curtime 中的日期转换成用FAT的整型值,
 242            Called By:      
 243            Input:          N/A
 244            Output:         N/A
 245            Return:         WORD 转换结果
 246            Others:         计算方法 FAT_Date = (Year-1980)*512 + Month*32 + Date
 247          *************************************************************************************/
 248          WORD RM_GetDateForFAT()
 249          {
 250   1              BYTE xdata day,year,month;
 251   1              year = BCD2Byte(RM_Curtime[0]) + 2000;
 252   1              month = BCD2Byte(RM_Curtime[1]);
 253   1              day = BCD2Byte(RM_Curtime[2]);
 254   1              return ((year-1980)*512+month*32+day);
 255   1      }
 256          
 257          /************************************************************************************* 
 258            Function:       RM_GetTimeForFAT
 259            Description:    蒋保存于RM_Curtime 中的时间转换成用FAT的整型值,
 260            Called By:      
 261            Input:          N/A
 262            Output:         N/A
 263            Return:         WORD 转换结果
 264            Others:         计算方法 FAT_Time = Hour*2048 + Min.*32 + Sec. + 2
 265          *************************************************************************************/
 266          WORD RM_GetTimeForFAT()
 267          {
 268   1              BYTE xdata hour,min,sec;
 269   1              hour = BCD2Byte(RM_Curtime[3]);
 270   1              min = BCD2Byte(RM_Curtime[4]);
 271   1              sec = BCD2Byte(RM_Curtime[5]);
 272   1              return (hour*2048 + min*32 + sec + 2);
 273   1      }               
 274          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    680    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =      8       6
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
   EDATA SIZE       =   ----    ----
   HDATA SIZE       =   ----    ----
   XDATA CONST SIZE =   ----    ----
   FAR CONST SIZE   =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -