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

📄 ds1302-3.lst

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


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

line level    source

   1                          #include<reg51.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          uchar sec,min,hr;
   5          sbit clk=P1^0;
   6          sbit dat=P1^1;
   7          sbit rst=P1^2;
   8          sbit A0=ACC^0;
   9          sbit A1=ACC^1;
  10          sbit A2=ACC^2;      
  11          sbit A3=ACC^3;
  12          sbit A4=ACC^4;
  13          sbit A5=ACC^5;
  14          sbit A6=ACC^6;
  15          sbit A7=ACC^7;
  16          sbit blue=P1^5;
  17          sbit green=P1^6;
  18          sbit red=P1^7;
  19          void InputByte(uchar dd)//mcu to ds1302
  20             {
  21   1           uchar i;
  22   1           ACC=dd;
  23   1           for(i=8;i>0;i--)
  24   1            {
  25   2             dat=A0;
  26   2             clk=1;
  27   2             clk=0;
  28   2             ACC=ACC>>=1;
  29   2              }
  30   1           }  
  31          //-------------------------------------------------------
  32          uchar OutputByte(void) //ds1302 to mcu
  33             {
  34   1           uchar i;
  35   1           dat=1;      
  36   1           for(i=8;i>0;i--)
  37   1            {
  38   2              ACC=ACC>>1;
  39   2              A7=dat;
  40   2              clk=1;
  41   2              clk=0;
  42   2              }      
  43   1            return(ACC);
  44   1           }
  45          //--------------------------------------------------
  46          void Write(uchar addr,uchar num)
  47            {
  48   1          rst=0;
  49   1          clk=0;
  50   1          rst=1;
  51   1          InputByte(addr);   // address
  52   1          InputByte(num);    //data
  53   1          clk=1;
  54   1          rst=0;
  55   1          }
C51 COMPILER V7.20   DS1302_3                                                              07/12/2008 10:29:40 PAGE 2   

  56          //-------------------------------------------------
  57          uchar Read(uchar addr)
  58            {
  59   1          uchar dd=0;
  60   1          rst=0;
  61   1          clk=0;
  62   1          rst=1;
  63   1          InputByte(addr);
  64   1          dd=OutputByte();
  65   1          clk=1;
  66   1          rst=0;
  67   1          return(dd);
  68   1         }
  69          //--------------------------------------------------------------
  70          uchar ReadSec()
  71            {
  72   1         uchar dd; 
  73   1         dd=Read(0x81);
  74   1         return(dd);
  75   1         }
  76          //--------------------------------------------------------------
  77          uchar ReadMin()
  78            {
  79   1         uchar dd; 
  80   1         dd=Read(0x83);
  81   1         return(dd);
  82   1          }       
  83          //--------------------------------------------------------------
  84          uchar ReadHr()
  85            {
  86   1          uchar dd; 
  87   1          dd=Read(0x85);
  88   1          return(dd);
  89   1         }
  90          //------------------------------------------------------------   
  91          uchar ReadWe()
  92            {
  93   1          uchar dd; 
  94   1          dd=Read(0x8b);
  95   1          return(dd);
  96   1          }
  97          //------------------------------------------------------------
  98          uchar ReadDay()
  99            {
 100   1          uchar dd; 
 101   1          dd=Read(0x87);
 102   1          return(dd);
 103   1         }
 104          //------------------------------------------------------------
 105          uchar ReadMn()
 106            {
 107   1          uchar dd; 
 108   1          dd=Read(0x89);
 109   1          return(dd);
 110   1         }
 111          //------------------------------------------------------------
 112          uchar ReadYs()
 113            {
 114   1          uchar dd; 
 115   1          dd=Read(0x8d);
 116   1          return(dd);
 117   1         }
C51 COMPILER V7.20   DS1302_3                                                              07/12/2008 10:29:40 PAGE 3   

 118          //------------------------------------------------------------
 119          void WriteSec(uchar num)
 120                {
 121   1             Write(0x80,num);
 122   1             }
 123          //-----------------------------------------------------------
 124          void WriteMin(uchar num)
 125            {
 126   1          Write(0x82,num);
 127   1         }
 128          //-----------------------------------------------------------
 129          void WriteHr(uchar num)
 130            {
 131   1          Write(0x84,num);
 132   1         }
 133          //-----------------------------------------------------------
 134          void WriteDay(uchar num)
 135           {
 136   1         Write(0x86,num);
 137   1        }
 138          //-----------------------------------------------------------
 139          void WriteMn(uchar num)
 140            {
 141   1          Write(0x88,num);
 142   1         }
 143          //-----------------------------------------------------------
 144          void WriteWe(uchar num)
 145           {
 146   1         Write(0x8a,num);
 147   1         }
 148          //-----------------------------------------------------------
 149          void WriteYs(uchar num)
 150            {
 151   1          Write(0x8c,num);
 152   1         }
 153          //-----------------------------------------------------------
 154          void DisableWP(void)        //write data,read 0
 155           {
 156   1         Write(0x8e,0x00);
 157   1         }
 158          //----------------------------------------------------------
 159          void EnableWP(void)              //can''d write,read data   
 160           {
 161   1         Write(0x85,0x80);
 162   1         }
 163             void delay()
 164             {uint i,j;
 165   1         for(i=0;i<1000;i++)    
 166   1           {
 167   2           for(j=0;j<40;j++){}
 168   2           } 
 169   1         }
 170             
 171             void main(void)
 172             {
 173   1                
 174   1      DisableWP();
 175   1       WriteSec(0x00);
 176   1        WriteMin(0x57);
 177   1       WriteHr(0x10);
 178   1      WriteDay(0x07);
 179   1      WriteMn(0x06);
C51 COMPILER V7.20   DS1302_3                                                              07/12/2008 10:29:40 PAGE 4   

 180   1        WriteWe(0x02);
 181   1       WriteYs(0x05);
 182   1             }


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