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

📄 ds1302.lst

📁 该程序为RS485通信协议
💻 LST
字号:
C51 COMPILER V6.23a  DS1302                                                                09/09/2007 15:51:26 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN ds1302.OBJ
COMPILER INVOKED BY: e:\my_soft\keil\C51\Bin\c51.exe ds1302.c DB OE SMALL ROM(LARGE) OT(7) 

stmt level    source

   1          //HT1380实时时钟驱动程序****(改用DS1302)****
   2          #include <reg52.h>
   3          #include <A102.h>
   4          #include <delay.h>
   5          #include <Intrins.h>
   6          extern unsigned char idata      display_buff[COUNT]; //显示缓冲
   7          
   8          sbit clock_dat=P2^1;
   9          sbit clock_clk=P2^2;
  10          sbit clock_rst=P2^0;
  11          
  12          sbit a0=ACC^0;
  13          sbit a1=ACC^1;
  14          sbit a2=ACC^2;
  15          sbit a3=ACC^3;
  16          sbit a4=ACC^4;
  17          sbit a5=ACC^5;
  18          sbit a6=ACC^6;
  19          sbit a7=ACC^7;
  20          
  21          void ClockOut(unsigned char dd) 
  22          {       ACC=dd;
  23   1              clock_dat=a0;clock_clk=1;clock_clk=0;
  24   1              clock_dat=a1;clock_clk=1;clock_clk=0;
  25   1              clock_dat=a2;clock_clk=1;clock_clk=0;
  26   1              clock_dat=a3;clock_clk=1;clock_clk=0;
  27   1              clock_dat=a4;clock_clk=1;clock_clk=0;
  28   1              clock_dat=a5;clock_clk=1;clock_clk=0;
  29   1              clock_dat=a6;clock_clk=1;clock_clk=0;
  30   1              clock_dat=a7;clock_clk=1;clock_clk=0;
  31   1      }
  32          unsigned char ClockIn(void) 
  33          {       clock_dat=1;
  34   1              a0=clock_dat;
  35   1              clock_clk=1;clock_clk=0;a1=clock_dat;
  36   1              clock_clk=1;clock_clk=0;a2=clock_dat;
  37   1              clock_clk=1;clock_clk=0;a3=clock_dat;
  38   1              clock_clk=1;clock_clk=0;a4=clock_dat;
  39   1              clock_clk=1;clock_clk=0;a5=clock_dat;
  40   1              clock_clk=1;clock_clk=0;a6=clock_dat;
  41   1              clock_clk=1;clock_clk=0;a7=clock_dat;
  42   1              return(ACC);
  43   1      }
  44          unsigned char ReadClock(unsigned char ord) 
  45          {       unsigned int dd=0;
  46   1              clock_clk=0;
  47   1              clock_rst=0;
  48   1              clock_rst=1;
  49   1              ClockOut(ord);
  50   1              dd=ClockIn();
  51   1              clock_rst=0;
  52   1              clock_clk=1;
  53   1              return(dd);
  54   1      }
  55          void WriteClock(unsigned char ord,unsigned char dd) 
C51 COMPILER V6.23a  DS1302                                                                09/09/2007 15:51:26 PAGE 2   

  56          {       clock_clk=0;
  57   1              clock_rst=0;
  58   1              clock_rst=1;
  59   1              ClockOut(ord);
  60   1              ClockOut(dd);
  61   1              clock_rst=0;
  62   1              clock_clk=1;
  63   1      }
  64          
  65          void WriteNumber(void)
  66          {       unsigned char i,j;
  67   1              EA=0;
  68   1              j=0;
  69   1              WriteClock(0x8e,0);     //关闭写保护
  70   1              
  71   1              for(i=2;i<0x0f;i+=2)
  72   1              {       WriteClock(0xc0|i,display_buff[j++]);
  73   2              }
  74   1              for(i=2;i<0x0f;i+=2)
  75   1              {       WriteClock(0xd0|i,display_buff[j++]);
  76   2              }
  77   1              for(i=2;i<0x0f;i+=2)
  78   1              {       WriteClock(0xe0|i,display_buff[j++]);
  79   2              }
  80   1              for(i=2;i<0x0f;i+=2)
  81   1              {       WriteClock(0xf0|i,display_buff[j++]);
  82   2              }
  83   1              DelayX50us(50);
  84   1              WriteClock(0x8e,0x80);  //开启写保护*/
  85   1              EA=1;
  86   1      }
  87          void ReadNumber(void)
  88          {       unsigned char i,j;
  89   1              j=0;
  90   1              EA=0;
  91   1              for(i=3;i<=0x0f;i+=2)
  92   1              {       display_buff[j]=ReadClock(0xc0|i);
  93   2                      j++;
  94   2              }
  95   1              for(i=3;i<=0x0f;i+=2)
  96   1              {       display_buff[j]=ReadClock(0xd0|i);
  97   2                      j++;
  98   2              }
  99   1              for(i=3;i<=0x0f;i+=2)
 100   1              {       display_buff[j]=ReadClock(0xe0|i);
 101   2                      j++;
 102   2              }
 103   1              for(i=3;i<=0x0f;i+=2)
 104   1              {       display_buff[j]=ReadClock(0xf0|i);
 105   2                      j++;
 106   2              }
 107   1              EA=1;
 108   1      }
 109          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    403    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
C51 COMPILER V6.23a  DS1302                                                                09/09/2007 15:51:26 PAGE 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 + -