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

📄 ds1302.lst

📁 DS1302 18B20程序第一版
💻 LST
字号:
C51 COMPILER V9.01   DS1302                                                                04/28/2012 12:23:32 PAGE 1   


C51 COMPILER V9.01, 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          #include "DS1302.h"
   2          
   3          volatile char datetime[]={0,0,12,26,4,4,12};    //SEC,MIN,HR,DATE,MONTH,DAY,YEAR   12年4月26日星期四12:00:00 
   4          
   5          void write_byte(dat)
   6          {
   7   1        unsigned char i;
   8   1        ACC=dat;
   9   1        for(i=8;i>0;i--)
  10   1        {
  11   2          SCLK=0;
  12   2          IO=ACC0;
  13   2              ACC=ACC>>1;     
  14   2              SCLK=1; 
  15   2        }
  16   1      }
  17          
  18          unsigned char read_byte()
  19          {
  20   1        unsigned char i;
  21   1        for(i=8;i>0;i--)
  22   1        {
  23   2          ACC=ACC>>1;
  24   2          SCLK=0;
  25   2              ACC7=IO;
  26   2          SCLK=1;             
  27   2        }
  28   1        return(ACC);
  29   1      }
  30          
  31          
  32          void write_DS1302(address,dat)
  33          {
  34   1        RST=0;
  35   1        SCLK=0;
  36   1        RST=1;
  37   1        write_byte(address);
  38   1        write_byte(dat);
  39   1        RST=0;
  40   1        SCLK=1;
  41   1      }
  42          
  43          
  44          unsigned char read_DS1302(address)
  45          {
  46   1        unsigned char temp;
  47   1        RST=0;                                         
  48   1        SCLK=0;
  49   1        RST=1;
  50   1        write_byte(address);
  51   1        temp=read_byte();
  52   1        RST=0;
  53   1        SCLK=1;
  54   1        temp=temp/16*10+temp%16;
  55   1        return(temp);
C51 COMPILER V9.01   DS1302                                                                04/28/2012 12:23:32 PAGE 2   

  56   1      }
  57          
  58          /*void init_DS1302()    //全部初始化
  59          {
  60            unsigned char i,j=0x80;
  61            for(i=0;i<7;i++)
  62            {
  63              datetime[i]=datetime[i]/10*16+datetime[i]%10;
  64            }
  65            write_DS1302(0x8e,0x00);
  66            for(i=0;i<7;i++)
  67            {
  68              write_DS1302(j,datetime[i]);
  69              j+=2;
  70            }
  71            write_DS1302(0x8e,0x80);
  72          } */ 
  73          
  74          
  75          void init_DS1302()                      //部分初始化
  76          {
  77   1        unsigned char i,j=0x80;
  78   1        for(i=0;i<7;i++)
  79   1        {
  80   2          datetime[i]=datetime[i]/10*16+datetime[i]%10;
  81   2        }
  82   1        write_DS1302(0x8e,0x00);                //写保护关闭
  83   1        write_DS1302(0x80,datetime[0]); //秒清零,主要是bit7=0,使ds1302时钟启动
  84   1        write_DS1302(0x8c,datetime[7]); //年设置,为12年
  85   1        write_DS1302(0x8e,0x80);        //写保护
  86   1      }
  87          
  88          
  89          void read_RTC()
  90          {
  91   1        unsigned char i,j=0x81;
  92   1        for(i=0;i<7;i++)
  93   1        {
  94   2          datetime[i]=read_DS1302(j);
  95   2              j+=2;
  96   2        }
  97   1      }


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