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

📄 ds1307.lst

📁 矿工定位系统单端
💻 LST
字号:
C51 COMPILER V7.05   DS1307                                                                12/20/2004 15:31:06 PAGE 1   


C51 COMPILER V7.05, COMPILATION OF MODULE DS1307
OBJECT MODULE PLACED IN ds1307.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ds1307.c DEBUG OBJECTEXTEND

stmt level    source

   1          #include "REG51F.H"
   2          #include "ds1307.H"
   3          #include <stdio.h>
   4          /***********************1307*********************/
   5          
   6          #define USER_SNR   0x10   //1307 address
   7          #define WR1307  0xD0
   8          #define RD1307  0xD1
   9          sbit SCL    = P1^3;
  10          sbit SDA    = P1^7;
  11          bit cart;
  12          unsigned char dell=2;
  13           bit tflag;
  14          extern unsigned char cardstate,b,bitnum,bytenum ;
  15          /***********************************************************************
  16          *   void        Delay5(void)            *
  17          ***********************************************************************/
  18          void    Delay5(void)            // 5 us
  19          {       
  20   1         unsigned char data i; 
  21   1         for(i=0;i<10;i++);
  22   1      }
  23          
  24          /***********************************************************************
  25          *    I2c BUS Related       sbit SCL= P1^0;  sbit SDA  = P1^1;          *
  26          ***********************************************************************/
  27          /*void  Delay5(void)            // 5 us
  28          {       unsigned char data i;
  29              for(i=0;i<8;i++);   
  30          }*/
  31          void    Start(void)
  32          {       SDA=1;SCL=1;Delay5();SDA=0;Delay5();SCL=0;      }
  33          
  34          void    Stop(void)
  35          {       SDA=0;Delay5();SCL=1;Delay5();SDA=1;Delay5();   }
  36          
  37          void    SendByte(unsigned char b)
  38          {
  39   1              unsigned char i;
  40   1              unsigned char bb=0x80;
  41   1              for(i=0;i<8;i++)
  42   1              {
  43   2                SDA=b&bb;
  44   2                bb>>=1;
  45   2                Delay5();
  46   2                SCL=1;
  47   2                Delay5();
  48   2                SCL=0;
  49   2              }       
  50   1              Delay5();
  51   1              SCL=1;
  52   1              Delay5();
  53   1              SCL=0;
  54   1              Delay5();
  55   1      }
C51 COMPILER V7.05   DS1307                                                                12/20/2004 15:31:06 PAGE 2   

  56          
  57          unsigned char ReceByte(bit ack)
  58          {
  59   1              unsigned char i;
  60   1              unsigned char b=0;
  61   1              for(i=0;i<8;i++)
  62   1              {
  63   2                Delay5();
  64   2                SDA=1;
  65   2                SCL=1;
  66   2                Delay5();
  67   2                b=2*b+(unsigned char)SDA;
  68   2                SCL=0;
  69   2              }
  70   1              SDA=ack;        //ACK
  71   1              Delay5();
  72   1              SCL=1;
  73   1              Delay5();
  74   1              SCL=0;
  75   1              Delay5();
  76   1              return b;       
  77   1      }
  78          /**************************************************
  79          *           DS1307  relate Functons               *
  80          **************************************************/
  81          void Init_1307(unsigned char control)
  82          {  Start();
  83   1         SendByte(WR1307);
  84   1         SendByte(0x07);
  85   1         SendByte(control);
  86   1         Stop();      
  87   1      }
  88          void GetTime(unsigned char *t)
  89          {  unsigned char data i;
  90   1         //TOGGLE_WD();
  91   1         Start();
  92   1         SendByte(WR1307);
  93   1         SendByte(0x00);
  94   1         Start();
  95   1         SendByte(RD1307);
  96   1         for(i=6;i>0;i--)t[i] = ReceByte(0);
  97   1         t[0] = ReceByte(1);
  98   1         Stop();
  99   1      }
 100          void SetTime(unsigned char *t)
 101          {  unsigned char data i;
 102   1        // TOGGLE_WD();
 103   1         Start();
 104   1         SendByte(WR1307);
 105   1         SendByte(0x00);
 106   1         for(i=0;i<7;i++)SendByte(t[6-i]);
 107   1         Stop();
 108   1      }
 109          unsigned char Rd1307(unsigned char Adrr)
 110          {  unsigned char b;
 111   1         //TOGGLE_WD();
 112   1         Start();
 113   1         SendByte(WR1307);
 114   1         SendByte(Adrr);
 115   1         Start();
 116   1         SendByte(RD1307);
 117   1         b=ReceByte(1);
C51 COMPILER V7.05   DS1307                                                                12/20/2004 15:31:06 PAGE 3   

 118   1         Stop();
 119   1         return(b);   
 120   1      }
 121          void Wr1307(unsigned char Addr,unsigned char b)
 122          { // TOGGLE_WD();
 123   1         Start();
 124   1         SendByte(WR1307);
 125   1         SendByte(Addr);
 126   1         SendByte(b);
 127   1         Stop();
 128   1      }
 129          void T1307(void) interrupt 2  using 0
 130          { 
 131   1        // unsigned char i;
 132   1              EX1 = 0 ; //close INT0
 133   1              tflag=1;
 134   1         
 135   1              EX1 = 1 ; //open INT0
 136   1        
 137   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    307    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      1       6
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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