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

📄 ds1302.lst

📁 1602+1302液晶时钟显示
💻 LST
字号:
C51 COMPILER V8.02   DS1302                                                                06/25/2008 15:41:46 PAGE 1   


C51 COMPILER V8.02, 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 <5410AD.H>
   2          #include "DS1302.h"
   3          #define DataPort P2
   4          #define Busy     0x80
   5          sbit RSPIN=P3^4;
   6          sbit RWPIN=P3^5;
   7          sbit LCDEN=P3^7;
   8          void DelayMs(unsigned int number);
   9          void WaitForEnable(void);
  10          void Lcdclsp(void);
  11          void WriteCommand(unsigned char c);
  12          void WriteData(unsigned char c);
  13          void ShowChar(unsigned char pos,unsigned char c);
  14          void ShowString(unsigned char line,char *prt);
  15          void InitLcd();
  16          void Delay1ms(unsigned int count)
  17          {
  18   1              unsigned int i,j;
  19   1              for(i=0;i<count;i++)
  20   1              for(j=0;j<120;j++);
  21   1      }
  22          main(void)
  23          { 
  24   1              SYSTEMTIME CurrentTime;
  25   1              DelayMs(2000);
  26   1              InitLcd();
  27   1              Initial_DS1302();
  28   1              while(1){
  29   2                  DS1302_GetTime(&CurrentTime);
  30   2                      DateToStr(&CurrentTime);
  31   2                      TimeToStr(&CurrentTime);
  32   2                      ShowString(0,CurrentTime.DateString);
  33   2                  ShowString(1,CurrentTime.TimeString);
  34   2                      Delay1ms(300);
  35   2      
  36   2                 }
  37   1      }
  38          /***************************************************************/
  39          void DelayMs(unsigned int number) 
  40          {
  41   1              unsigned char temp;
  42   1              for(;number!=0;number--) {
  43   2                      for(temp=112;temp!=0;temp--) {
  44   3                       }
  45   2              }
  46   1      }
  47          /*****************************************************************/
  48           void InitLcd()
  49          {       DelayMs(10);
  50   1              WriteCommand(0x38);
  51   1              DelayMs(10);
  52   1              WriteCommand(0x38);
  53   1              DelayMs(10);
  54   1              WriteCommand(0x08);
  55   1              WriteCommand(0x01);
C51 COMPILER V8.02   DS1302                                                                06/25/2008 15:41:46 PAGE 2   

  56   1              WriteCommand(0x06);
  57   1              WriteCommand(0x0E); 
  58   1        }
  59          /*****************************************************************/
  60          void WriteCommand(unsigned char c)
  61          {       
  62   1              WaitForEnable();
  63   1              RSPIN=0;
  64   1              RWPIN=0;
  65   1              LCDEN=1;
  66   1              DataPort=c;
  67   1          LCDEN=0;
  68   1       }
  69          /*****************************************************************/
  70          void WriteData(unsigned char c)
  71          {       
  72   1          WaitForEnable();
  73   1              RSPIN=1;
  74   1              RWPIN=0;
  75   1              LCDEN=1;    
  76   1              DataPort=c;
  77   1              LCDEN=0;
  78   1       }
  79          /*****************************************************************/                                                                                                                                        
  80          void ShowChar(unsigned char pos,unsigned char c)
  81          {       unsigned char p;
  82   1              if (pos<0x10)                                                                                                                                         
  83   1                 p=pos+0x80;
  84   1              else  
  85   1                 p=pos+0xB0;
  86   1              WriteCommand(p);
  87   1              WriteData(c);
  88   1       }
  89          /*****************************************************************/
  90          void ShowString(unsigned char line,char *prt)
  91          {       unsigned char L,i;
  92   1              L=line*0x10;
  93   1              for(i=0;i<13;i++)
  94   1              ShowChar(L++,*(prt+i));                                                                 
  95   1         }
  96          /*****************************************************************/
  97          void WaitForEnable(void)
  98          {   DataPort = 0xff;
  99   1              RWPIN=1;
 100   1              RSPIN=0;
 101   1              LCDEN=1;
 102   1              while(DataPort & Busy );
 103   1              LCDEN=0;
 104   1      }
 105          /*****************************************************************/   


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