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

📄 m_ds1302.lst

📁 该程序详细介绍了实时时钟芯片DS1302的使用编程代码
💻 LST
字号:
C51 COMPILER V7.20   M_DS1302                                                              06/03/2005 17:25:52 PAGE 1   


C51 COMPILER V7.20, COMPILATION OF MODULE M_DS1302
OBJECT MODULE PLACED IN m_ds1302.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE m_ds1302.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /**************************************************************************
   2          YB-51-B  DS1302的时钟演示程序
   3          来源: 郑州远博科技   王兴民
   4          0371-66949037  0371-67256036 13949105551
   5          ***************************************************************************/
   6          #include <config.h>
   7          
   8          data Uchar yjdispbuff[32];    //液晶屏显示缓冲区
   9          data Uchar clockdata2[7];     //时钟数据缓冲区
  10          data Uchar *clockdatain;
  11          data Uchar *clockdataout;
  12          data Uchar cmddata;
  13          data Uchar indata,outdata;
  14          data Uchar houtdatal,houtdatah,moutdatal,moutdatah,soutdatal,soutdatah; //时、分、秒
  15          data Uchar noutdatal,noutdatah,youtdatal,youtdatah,routdatal,routdatah; //年、月、日
  16          data Uchar woutdatal, woutdatah;                                        //星期
  17          void main()                     {
  18   1      Uchar j;
  19   1      for(j=0;j<32;j++)  {
  20   2       yjdispbuff[j]=32;
  21   2                          }
  22   1      Delayms(100);
  23   1      Lcdreset();
  24   1      cmddata=0x8e;
  25   1      indata=0x00;
  26   1      v_W1302(cmddata, indata); //init
  27   1      cmddata=0x80;
  28   1      indata=0x33;
  29   1      v_W1302(cmddata, indata);//秒
  30   1      cmddata=0x82;
  31   1      indata=0x00;
  32   1      v_W1302(cmddata, indata);//分
  33   1      cmddata=0x84;
  34   1      indata=0x00;
  35   1      v_W1302(cmddata, indata);//小时
  36   1      cmddata=0x86;
  37   1      indata=0x31;
  38   1      v_W1302(cmddata, indata);//日
  39   1      cmddata=0x88;
  40   1      indata=0x03;
  41   1      v_W1302(cmddata, indata);//月
  42   1      cmddata=0x8A;
  43   1      indata=0x03;
  44   1      v_W1302(cmddata, indata);//星期
  45   1      cmddata=0x8C;
  46   1      indata=0x05;
  47   1      v_W1302(cmddata, indata);//年
  48   1      while(1)  {
  49   2                 clockdataout=&clockdata2;     
  50   2                 v_BurstR1302T(clockdataout);
  51   2                 soutdatal=clockdata2[0]&0x0f;
  52   2                 soutdatah=(clockdata2[0]>>4)&0x07;
  53   2                 moutdatal=clockdata2[1]&0x0f;
  54   2                 moutdatah=(clockdata2[1]>>4)&0x07;
  55   2                 houtdatal=clockdata2[2]&0x0f;
C51 COMPILER V7.20   M_DS1302                                                              06/03/2005 17:25:52 PAGE 2   

  56   2                 houtdatah=(clockdata2[2]>>4)&0x07; 
  57   2                 routdatal=clockdata2[3]&0x0f;
  58   2                 routdatah=(clockdata2[3]>>4)&0x07;
  59   2                 youtdatal=clockdata2[4]&0x0f;
  60   2                 youtdatah=(clockdata2[4]>>4)&0x07;
  61   2                 woutdatal=clockdata2[5]&0x0f;
  62   2                 woutdatah=(clockdata2[5]>>4)&0x07;
  63   2                 noutdatal=clockdata2[6]&0x0f;
  64   2                 noutdatah=(clockdata2[6]>>4)&0x07;
  65   2                 yjdispbuff[0]=50;          //50代表数字‘2’的ASC码,液晶屏是按照ASC码来显示字符的
  66   2                 yjdispbuff[1]=48;           //48代表数字‘0’的ASC码
  67   2                 yjdispbuff[2]=noutdatah+48; //48表示对应数字的实际值和相对应的ASC码的偏移量
  68   2                 yjdispbuff[3]=noutdatal+48;
  69   2                 yjdispbuff[5]=youtdatah+48;
  70   2                 yjdispbuff[6]=youtdatal+48;
  71   2                 yjdispbuff[8]=routdatah+48;
  72   2                 yjdispbuff[9]=routdatal+48;
  73   2                 yjdispbuff[13]=woutdatal+48;
  74   2                 yjdispbuff[17]=houtdatah+48;
  75   2                 yjdispbuff[18]=houtdatal+48;
  76   2                 yjdispbuff[20]=moutdatah+48;
  77   2                 yjdispbuff[21]=moutdatal+48;
  78   2                 yjdispbuff[23]=soutdatah+48;
  79   2                 yjdispbuff[24]=soutdatal+48;
  80   2                 yjdispbuff[4]=45;      //‘-’的ASC码
  81   2                 yjdispbuff[7]=45;
  82   2                 yjdispbuff[10]=32;      //空格的ASC码
  83   2                 yjdispbuff[11]=32;
  84   2                 yjdispbuff[12]=32;
  85   2                 yjdispbuff[14]=32;
  86   2                 yjdispbuff[15]=32;
  87   2                 yjdispbuff[16]=32;
  88   2                 yjdispbuff[19]=45;
  89   2                 yjdispbuff[22]=45;
  90   2                 for(j=0;j<32;j++) 
  91   2                    {
  92   3                     Disponechar(0,j+2,yjdispbuff[j]);
  93   3      
  94   3                    }
  95   2                 }
  96   1                      }
  97          


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