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

📄 ds1302.lst

📁 使用51单片机作为控制器
💻 LST
字号:
C51 COMPILER V7.06   DS1302                                                                05/14/2007 22:03:39 PAGE 1   


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

stmt level    source

   1          ///////////////////////////////系统时钟////////////////////////////////
   2          #include <at89x52.h>
   3          #define uchar unsigned char
   4          #define uint  unsigned int
   5          
   6          sbit    RST        =    P1^6;
   7          sbit    SCL        =    P1^4;
   8          sbit    SDA        =    P1^5;
   9          
  10          #define READ            1
  11          #define WRITE           0
  12          
  13          unsigned char  SetTimeBuf[7]  =         {0x0,0x18,0x17,0x31,0x1,0x3,0x7};  
  14          //2007年1月18日20:30:00,当前时间格式为: 秒 分 时 日 月 星期 年      
  15          unsigned char  TimeBuf[7];
  16          
  17          void DS1302_SendByte(unsigned char Data)
  18          {
  19   1          unsigned char i;
  20   1          for(i=0;i<8;i++)
  21   1          {
  22   2              SDA = (bit)(Data & 0x01);
  23   2              SCL = 1;
  24   2              SCL = 0;
  25   2              Data >>= 1;
  26   2          }
  27   1          return;
  28   1      }
  29          
  30          
  31          unsigned char DS1302_ReadByte(void)
  32          {
  33   1          unsigned char i,Data;
  34   1          for(i=0;i<8;i++) 
  35   1          {   
  36   2                      SDA=0;
  37   2              Data >>= 1;
  38   2              if(SDA==1) Data |= 0x80;        
  39   2                      SCL = 1;
  40   2              SCL = 0;
  41   2              
  42   2          }
  43   1          return(Data);
  44   1      }
  45          
  46          void  DS1302WriteByte(unsigned char Addr, unsigned char Data)
  47          {
  48   1          SCL = 0;
  49   1          RST = 1;
  50   1          DS1302_SendByte(Addr);
  51   1          DS1302_SendByte(Data);
  52   1          RST = 0;
  53   1      }
  54          
  55          unsigned char DS1302ReadByte(unsigned char Addr)
C51 COMPILER V7.06   DS1302                                                                05/14/2007 22:03:39 PAGE 2   

  56          {
  57   1          unsigned char Data;
  58   1          SCL = 0;
  59   1          RST = 1;
  60   1          DS1302_SendByte(Addr | READ);
  61   1          Data = DS1302_ReadByte();
  62   1          RST = 0;
  63   1          return Data;
  64   1      }
  65          
  66          
  67          void SetTime(void)
  68          {
  69   1          uchar i,temp=0x80;
  70   1          DS1302WriteByte(0x8e,0x00);        //允许读写WP=0
  71   1          for(i=0;i<7;i++)
  72   1          {
  73   2              DS1302WriteByte(temp,SetTimeBuf[i]);
  74   2              temp+=2;
  75   2              }
  76   1          DS1302WriteByte(0x90,0xa5);        //充电器设置,禁止充电
  77   1          //DS1302WriteByte(0x8e,0x80);        //禁止写WP=1,write protect
  78   1      }
  79          
  80          
  81          
  82          unsigned char BCDConvert(unsigned char ucBCD)//ucBCD为待转换的BCD码;
  83          {
  84   1              unsigned char TempH,TempL;
  85   1              TempH = (ucBCD&0xF0)>>4;    //TempH保存十进制数的高位
  86   1              TempL = ucBCD&0x0f;         //TempL保存十进制数的低位
  87   1              return TempH*10+TempL;
  88   1      }
  89                  
  90          void ReadTime(void)
  91          {
  92   1          uchar i,temp,adderss=0x81;
  93   1          for(i=0;i<7;i++)
  94   1          {
  95   2              temp=DS1302ReadByte(adderss);
  96   2              TimeBuf[i]=BCDConvert(temp);
  97   2              adderss+=2;        
  98   2          }
  99   1      }
 100          
 101          
 102          
 103             


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