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

📄 ds1302.lst

📁 DS1302的驱动程序
💻 LST
字号:
C51 COMPILER V8.01   DS1302                                                                09/20/2008 10:13:45 PAGE 1   


C51 COMPILER V8.01, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN DS1302.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE DS1302.c BROWSE DEBUG OBJECTEXTEND SRC(.\DS1302.SRC)

line level    source

   1          /************************************************************************************************
   2                     实时时钟模块 时钟芯片型号:DS1302 
   3                     使用8位动态共阴极数码管动态显示当前时间,没有设定初始时间的功能,
   4                     显示有闪烁,延时函数有可能有问题,其他显示正常
   5                     
   6          *************************************************************************************************/
   7          
   8          
   9          #include <at89x51.h>
  10          #include<intrins.h>
  11          #include <DS1302.h>
  12          #define uchar unsigned char
  13          #define uint unsigned int
  14          /*********************************************************************/
  15          
  16          
  17           uchar ucCurtime[7];
  18           uchar buf[]={0,0,0,0,0,0,0,0};
  19          SYSTEMTIME  time1;
  20          
  21          sbit d1=P1^0;
  22          sbit d2=P1^1;
  23          sbit d3=P1^2;
  24          sbit d4=P1^3;
  25          sbit d5=P1^4;
  26          sbit d6=P1^5;
  27          sbit d7=P1^6;
  28          sbit d8=P1^7;
  29          
  30          //0--9 位码,0X00:清显示。
  31          unsigned char code  dispcode[13]={
  32                                                                  
  33                  0X3F,/*0*/
  34                  0X06,/*1*/
  35                  0X5B,/*2*/
  36                  0X4F,/*3*/
  37                  0X66,/*4*/
  38                  0X6D,/*5*/
  39                  0X7D,/*6*/
  40                  0X07,/*7*/
  41                  0X7F,/*8*/
  42                  0X6F,/*9*/
  43                  0X40,/*-*/
  44                  0XBF,/*0.*/
  45                  0X00,/*NULL*/   };
  46                          
  47          
  48          void delay1ms()
  49          {
  50   1      /*      unsigned int i,j;
  51   1              for(i=0;i<c;i++)
  52   1                      for(j=0;j<100;j++);
  53   1      unsigned int c  */
  54   1      
  55   1              #pragma asm
C51 COMPILER V8.01   DS1302                                                                09/20/2008 10:13:45 PAGE 2   

  56   1            MOV  R4,#5
  57   1                MOV  R6,#100
  58   1                MOV  R7, #250
  59   1            DJNZ R7,$
  60   1                DJNZ R6, $
  61   1                DJNZ R4, $
  62   1              #pragma endasm  
  63   1      } 
  64          
  65          void main()
  66          {
  67   1          while(1)
  68   1          {  DS1302_GetTime(&time1);
  69   2      
  70   2                 buf[7]=(time1.Second)%10;
  71   2             buf[6]=(time1.Second)/10;
  72   2             buf[4]=(time1.Minute)%10;
  73   2             buf[3]=(time1.Minute)/10;
  74   2             buf[1]=(time1.Hour)%10;
  75   2             buf[0]=(time1.Hour)/10;
  76   2      
  77   2                      d1=0;
  78   2                      P2=     dispcode[buf[0]];        //显示时的十位数
  79   2                      delay1ms();
  80   2                      d1=1;
  81   2      
  82   2                      d2=0;
  83   2                      P2=     dispcode[buf[1]];        //显示时的个位数
  84   2                      delay1ms();
  85   2                      d2=1;
  86   2      
  87   2                      d3=0;
  88   2                      P2=     dispcode[10];    //显示“-”
  89   2                      delay1ms();
  90   2                      d3=1;
  91   2      
  92   2                      d4=0;
  93   2                      P2=     dispcode[buf[3]];        
  94   2                      delay1ms();
  95   2                      d4=1;                                      //分的十位数
  96   2      
  97   2                      d5=0;
  98   2                      P2=     dispcode[buf[4]];        //显示分的个位数
  99   2                      delay1ms();
 100   2                      d5=1;
 101   2      
 102   2                      d6=0;
 103   2                      P2=     dispcode[10];    //显示“-”
 104   2                      delay1ms();
 105   2                      d6=1;
 106   2                      
 107   2                      d7=0;
 108   2                      P2=     dispcode[buf[6]];        //显示时的个位数
 109   2                      delay1ms();
 110   2                      d7=1;
 111   2      
 112   2                      d8=0;
 113   2                      P2=     dispcode[buf[7]];        //显示时的个位数
 114   2                      delay1ms();
 115   2                      d8=1;
 116   2                              
 117   2          }                      
C51 COMPILER V8.01   DS1302                                                                09/20/2008 10:13:45 PAGE 3   

 118   1              }
 119          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    761    ----
   CONSTANT SIZE    =     13    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     40    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       1
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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