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

📄 ds1302.lst

📁 ds1302 程序 包括一些基本的功能:输入、输出、显示等
💻 LST
字号:
C51 COMPILER V7.20   DS1302                                                                07/12/2008 10:30:08 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN ds1302.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ds1302.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /************************Ds1302时钟芯片***************************/
   2          
   3          #include "dpj.h"
   4          
   5          
   6          /*****************************************************************/
   7          
   8          sbit t_clk=P2^7;
   9          sbit t_io=P1^4 ;
  10          sbit t_rst=P1^5 ;
  11          
  12          /*****************************************************************/
  13                                                                                                            
  14          
  15          
  16          /*******************写入1byte数据到ds1302*************************/
  17          void rt_setbyte(byte ucda)
*** ERROR C141 IN LINE 17 OF DS1302.C: syntax error near 'ucda', expected ')'
  18          {
  19   1              byte i,acc,acc0;
*** ERROR C141 IN LINE 19 OF DS1302.C: syntax error near 'i'
*** ERROR C202 IN LINE 19 OF DS1302.C: 'i': undefined identifier
  20   1              acc=ucda;
*** ERROR C202 IN LINE 20 OF DS1302.C: 'acc': undefined identifier
  21   1              for(i=8;i>0;i--)
*** ERROR C202 IN LINE 21 OF DS1302.C: 'i': undefined identifier
  22   1              {                                               
  23   2                      t_io=acc0;                        
*** ERROR C202 IN LINE 23 OF DS1302.C: 'acc0': undefined identifier
  24   2                      t_clk=1;
  25   2                      t_clk=0;
  26   2                      acc=acc>>1;
*** ERROR C202 IN LINE 26 OF DS1302.C: 'acc': undefined identifier
  27   2              }
  28   1      }
  29          /*****************************************************************/
  30          
  31          
  32          
  33          /*******************从ds1302读取1byte数据*************************/
  34          
  35          byte rt_getbyte(void)
*** ERROR C129 IN LINE 35 OF DS1302.C: missing ';' before 'rt_getbyte'
  36          {
  37                  byte i;                          
  38                  for(i=8;i>0;i--)
  39                  {
  40                          acc=acc>>1;
  41                          acc7=t_i0;
  42                          t_clk=1;
  43                          t_clk=0;
  44                  }
  45                  return (acc);                                                                                                                                    
  46          } 
  47          /*****************************************************************/
C51 COMPILER V7.20   DS1302                                                                07/12/2008 10:30:08 PAGE 2   

  48          
  49          
  50          
  51          /*******************先写地址,后写命令/数据***********************/
  52          void rt_w1302(byte caddr,byte cdata)
  53          {
  54                  t_rst=0;
  55                  t_clk=0;
  56                  t_rst=1;
  57                  rt_setbyte(caddr);                                         /*地址,命令*/
  58                  rt_setbyte(cdata);                                         /*写1byte数据*/
  59                  t_clk=1;
  60                  t_rst=0;
  61          }
  62          /*****************************************************************/
  63          
  64          
  65          
  66          /******************先写地址,后写命令/数据************************/
  67          byte rt_r1302(byte caddr)
  68          {
  69                  byte cadta;
  70                  t_rst=0;
  71                  t_clk=0;
  72                  t_rst=1;
  73                  rt_setbyte(caddr);                                        /*地址,命令*/
  74                  cdata=rt_getbyte();                                       /*读取1byte数据*/
  75                  t_clk=1;
  76                  t_rst=0;
  77                  return(cdata);
  78          }
  79          /*****************************************************************/
  80          
  81          
  82          
  83          /************先写地址,后写数据(时钟多字节模式)******************/
  84          void rt_burstw1302t(byte *psecda)
  85          {
  86                  byte i;
  87                  rt_w1302(0x8e,0x00);
  88                  t_rst=0;
  89                  t_clk=0;
  90                  t_rst=1;
  91                  rt_setbyte(0xbe);                                          /*0xbe:时钟多字节写命令*/    
  92                  for(i=8;i>0;i--)                          
  93                  {
  94                          rt_setbyte(*psecda);                       /*写1byte数据*/
  95                          psecda++;
  96                  }
  97                  t_clk=1;
  98                  t_rst=0;
  99          }
 100          /****************************************************************/
 101          
 102          
 103          
 104          /*********先写地址,后读命令/数据(时钟多字节模式)**************/
 105          void rt_burstr1302t(byte *psecda)
 106          {
 107                  byte i;
 108                  t_rst=0;
 109                  t_clk=0;
C51 COMPILER V7.20   DS1302                                                                07/12/2008 10:30:08 PAGE 3   

 110                  t_rst=1;
 111                  rt_setbyte(0xbf);                                          /*0xbe:时钟多字节读命令*/
 112                  for(i=8;i>0;i--)
 113                  {
 114                          *psecda=rt_getbyte();                     /*读取1byte数据*/
 115                          psecda++;
 116                  }
 117                  t_clk=1;
 118                  t_rst=0;
 119          }
 120          /****************************************************************/
 121          
 122          
 123          
 124          /***********先写地址,后写数据(寄存器多字节模式)***************/
 125          void rt_burstr1302t(byte *preda)
 126          {
 127                  byte i;
 128                  rt_w1302(0x8e,0x00);
 129                  t_rst=0;
 130                  t_clk=0;
 131                  t_rst=1;
 132                  rt_setbyte(0xfe);                                          /*0xbe:寄存器多字节写命令*/
 133                  for(i=31;i>0;i--)
 134                  {
 135                          rt_setbyte(*preda);                               /*写1byte数据*/
 136                          preda++;
 137                  }
 138                  t_clk=1;
 139                  t_rst=0;
 140          }
 141          /****************************************************************/
 142          
 143          
 144          
 145          /********先写地址,后读命令/数据(寄存器多字节模式)*************/
 146          void rt_burstr1302r(byte *preda)
 147          {
 148                  byte i;
 149                  rt_w1302(0x8e,0x00);
 150                  t_rst=0;
 151                  t_clk=0;
 152                  t_rst=1;                                                          /*0xbe:寄存器多字节读命令*/
 153                  rt_setbyte(0xff);
 154                  for(i=31;i>0;i--)
 155                  {
 156                          *preda=rt_getbyte();                     /*读取1byte数据*/
 157                          preda++;
 158                  }
 159                  t_clk=1;
 160                  t_rst=0;
 161          }
 162          /****************************************************************/
 163          
 164          
 165          
 166          /************************设置初始时间****************************/
 167          void rt_set1302(byte *psecda)
 168          {
 169                  byte i;
 170                  byte caddr=0x80;
 171                  rt_w1302(0x8e,0x00);                         /*秒 分 时 日 月 星期 年*/
C51 COMPILER V7.20   DS1302                                                                07/12/2008 10:30:08 PAGE 4   

 172                  for(i=7;i>0;i--)
 173                  {
 174                          rt_w1302(caddr,*psecda);
 175                          caddr=2;
 176                  }
 177                  rt_w1302(0x8e,0x80);
 178          }
 179          /*****************************************************************/
 180          
 181          
 182          
 183          /******************读取ds1302时间********************************/
 184          void rt_get1302(byte ccurtime[])
 185          {
 186                  byte i;
 187                  byte caddr=0x81;
 188                  for(i=0;i=7;i++)
 189                  {
 190                          ccurtime[i]=uc_r1302(ucaddr);      /*格式设为:秒 分 时 日 月 星期 年*/
 191                          caddr+=2;
 192                  }
 193                  rt_w1302(0x8e,0x80);
 194          }
 195          /*****************************************************************/
 196          

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

⌨️ 快捷键说明

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