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

📄 da1302.lst

📁 51单片机
💻 LST
字号:
C51 COMPILER V7.02a   DA1302                                                               08/21/2007 08:23:04 PAGE 1   


C51 COMPILER V7.02a, COMPILATION OF MODULE DA1302
OBJECT MODULE PLACED IN da1302.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE da1302.c DEBUG OBJECTEXTEND

stmt level    source

   1          //#include <at89c51RB2.h>
   2          #include <intrins.h>
   3          #include "ds1302.h"
   4          //#include "lm3228.h"
   5          #include "hanzi.h"
   6          
   7          #define uchar unsigned char
   8          #define nop() _nop_()
   9          //uchar time1[8];
  10          //uchar time2[15]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,':','A','P','M',0x00};//0-9,:,A,P,M的
             -CGROM代码
  11          //extern void Print(uchar *);
  12          //extern void print_char(uchar);
  13          //extern void GotoXY(uchar ,uchar );
  14          
  15          
  16          //从1302读取一个字节
  17          uchar read_1302(void)
  18          {
*** ERROR C132 IN LINE 18 OF DA1302.C: 'read_1302': not in formal parameter list
*** ERROR C141 IN LINE 18 OF DA1302.C: syntax error near '{'
  19                  uchar i,data_1302;
*** ERROR C132 IN LINE 19 OF DA1302.C: 'i': not in formal parameter list
*** ERROR C132 IN LINE 19 OF DA1302.C: 'data_1302': not in formal parameter list
  20                  
  21                  for(i=0;i<8;i++)
*** ERROR C141 IN LINE 21 OF DA1302.C: syntax error near 'for'
*** ERROR C141 IN LINE 21 OF DA1302.C: syntax error near '=', expected ')'
*** ERROR C129 IN LINE 21 OF DA1302.C: missing ';' before '<'
  22                  {       
  23                          
  24                          data_1302>>=1;
  25                          if(IO_DATA)
  26                          {
  27                                  data_1302|=0x80;
  28                          }
  29                          CLK=1;
  30                          //nop();
  31                          CLK=0;
  32                  }
  33                  return(data_1302);
  34          }
  35          //向1302写入一个字节
  36          void write_1302(uchar data_1302)
  37          {
  38                  uchar i;
  39                  
  40                  for(i=0;i<8;i++)
  41                  {
  42                          
  43                          data_1302>>=1;
  44                          IO_DATA=CY;
  45                          CLK=0;
  46                          //nop();
  47                          CLK=1;
C51 COMPILER V7.02a   DA1302                                                               08/21/2007 08:23:04 PAGE 2   

  48                          //nop();
  49                          CLK=0;
  50                  }
  51                  
  52          }
  53          //从1302的某地址读一个字节的数据
  54          uchar read_byte_1302(uchar addr)
  55          {
  56                  uchar data_1302;
  57                  RST=0;
  58                  CLK=0;
  59                  RST=1;
  60                  write_1302(addr|0x01);
  61                  data_1302=read_1302();
  62                  CLK=1;
  63                  RST=0;
  64                  CLK=0;
  65                  return (data_1302);
  66          }
  67          //向1302的某地址写入一个字节的数据
  68          void write_byte_1302(uchar addr,uchar data_1302)
  69          {
  70                  RST=0;
  71                  CLK=0;
  72                  RST=1;
  73                  write_1302(addr);
  74                  write_1302(data_1302);
  75                  CLK=1;
  76                  RST=0;
  77                  CLK=0;
  78          }
  79          //是否写保护
  80          void protect_1302(bit flag)
  81          {
  82                  if(flag)
  83                          write_byte_1302(DS1302_CONTROL,0x80);
  84                  else
  85                          write_byte_1302(DS1302_CONTROL,0x00);
  86          }
  87          
  88          //停止1302时钟
  89          void stop_1302(void)
  90          {
  91                  write_byte_1302(DS1302_SECOND,0x80);
  92          }
  93          //启动1302时钟
  94          void start_1302(void)
  95          {
  96                  write_byte_1302(DS1302_SECOND,0x00);
  97          }
  98          
  99          //读1302的时间序列
 100          void read_data(uchar *j)
 101          {
 102                  uchar i;
 103                  RST=0;
 104                  CLK=0;
 105                  RST=1;
 106                  write_1302(0xbf);
 107                  for(i=0;i<8;i++)
 108                  {
 109                          *(j)=read_1302();
C51 COMPILER V7.02a   DA1302                                                               08/21/2007 08:23:04 PAGE 3   

 110                          j++;
 111                          
 112                  }
 113                  CLK=1;
 114                  RST=0;
 115                  CLK=0;
 116          }
 117          //写1302的时间序列
 118          void write_data(uchar *j)
 119          {
 120                  uchar i;
 121                  RST=0;
 122                  CLK=0;
 123                  RST=1;
 124                  write_1302(0xbe);
 125                  for(i=0;i<8;i++)                                                 
 126                  {
 127                          write_1302(*j);
 128                          j++;
 129                  }
 130                  CLK=1;
 131                  RST=0;
 132                  CLK=0;
 133          }       
 134          //显示时间
 135          DS1302_GetTime(SYSTEMTIME *Time)
 136          {
 137                          
 138                  
 139                  unsigned char time1[8];
 140                  unsigned char ReadValue;
 141              read_data(time1);
 142              ReadValue=time1[0];
 143                  Time->Second = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);
 144                  ReadValue=time1[1];
 145                  Time->Minute = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);
 146                  ReadValue = time1[2];
 147                  Time->Hour = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);
 148                  ReadValue = time1[3];
 149                  Time->Day = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);        
 150                  ReadValue = time1[5];
 151                  Time->Week = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);
 152                  ReadValue = time1[4];
 153                  Time->Month = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);
 154                  ReadValue = time1[6];
 155                  Time->Year = ((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);                                                                       
 156                          
 157          }
 158          //设置时间
 159          void set_time(uchar *time)
 160          {
 161                  protect_1302(0);                                                                                                                //清除写保护
 162                                                                                                                                                                  //写预设时间
 163                  write_data(time);
 164                  
 165                  start_1302();                                                                                                                    //启动1302
 166          
 167                  protect_1302(1);                                                                                                                  //开启写保护
 168          }
 169          
 170          
 171           //显示星期
C51 COMPILER V7.02a   DA1302                                                               08/21/2007 08:23:04 PAGE 4   

 172          void display_week(uchar lowaddr,uchar highaddr)
 173          {
 174                                                                    //显示星期几
 175          }
 176          //显示“现在时间”
 177          void display_currenttime(uchar lowaddr,uchar highaddr)
 178          {
 179                  
 180          }

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

⌨️ 快捷键说明

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