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

📄 ds12887.lst

📁 万年历
💻 LST
字号:
C51 COMPILER V8.02   DS12887                                                               05/04/2002 11:07:14 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE DS12887
OBJECT MODULE PLACED IN DS12887.OBJ
COMPILER INVOKED BY: D:\keil\新建文件夹\C51\BIN\C51.EXE DS12887.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #include<all.h>
   3          #define uchar unsigned char
   4          #define uint unsigned int
   5          
   6          /*定义DS12CR887数据线--------------------------------------------------------*/
   7          //sbit DS_CS = P3^4;    //片选 直接接地
   8          sbit DS_AS = P3^5;//地址选通
   9          sbit DS_RW = P3^6;
  10          sbit DS_DS = P3^7;
  11          #define Ds_Bus P0  //DS12CR887数据总线 
  12          
  13          //uchar p[7]=0x00;          //定义时间数组为全局变量
  14          
  15          
  16          /*DS12CR887驱动程序----------------------------------------------------------*/
  17          
  18          //往DS12CR887写数据函数
  19          void ds_write(uchar add,uchar date)      
  20          {
  21   1              DS_RW=0;        //        写地址
  22   1              DS_AS=1;
  23   1              Ds_Bus=add;
  24   1              DS_AS=0;
  25   1      
  26   1              DS_DS=1;                
  27   1              Ds_Bus=date;     //写数据,数据由RW上升沿锁存
  28   1              DS_DS=0;                 //DS下降沿锁存数据
  29   1              
  30   1      }
  31          
  32                                                                                                                      
  33          //读取DS12CR887的数据
  34          uchar ds_read(uchar add)
  35          {        uchar z;
  36   1      
  37   1              
  38   1              DS_RW=0;        //        写地址
  39   1              DS_AS=1;
  40   1              Ds_Bus=add;
  41   1              DS_AS=0;
  42   1      
  43   1              DS_RW=1;                //读数据        
  44   1              DS_DS=1;
  45   1              Ds_Bus=0xff;
  46   1              z=Ds_Bus;
  47   1              DS_DS=0;
  48   1              return z;
  49   1      }
  50          
  51          
  52          
  53          //DS12CR887初始化
  54          void ds_int()
  55          {
C51 COMPILER V8.02   DS12887                                                               05/04/2002 11:07:14 PAGE 2   

  56   1               uchar i;
  57   1                      i=ds_read(0x0d);
  58   1              ds_write(0x0a,0x70);
  59   1              ds_write(0x0b,0xa2);    //DS12CR887寄存器A功能设置,开启时钟振荡器
  60   1              
  61   1              ds_write(0x0b,0x06);
  62   1              ds_write(0x0a,0x20);
  63   1         i=ds_read(0x0c);               //读c后,c清零
  64   1      }
  65          
  66          /****************************/
  67          //日期和星期显示
  68          /***************************/
  69          void day_time_display()
  70          {        uchar p[7]={0,0,0,0,0,0,0};
  71   1              p[0]=ds_read(0x00);
  72   1              p[1]=ds_read(0x02);
  73   1              p[2]=ds_read(0x04);
  74   1              p[3]=ds_read(0x06);
  75   1              p[4]=ds_read(0x07);
  76   1              p[5]=ds_read(0x08);
  77   1              p[6]=ds_read(0x09);
  78   1              
  79   1              LCD_write_shu(0,0,2);                   //2
  80   1              LCD_write_shu(1,0,0);                   //0
  81   1              LCD_write_shu(2,0,p[6]/10);             //年十位           
  82   1              LCD_write_shu(3,0,p[6]%10);             //年个位
  83   1                                                                              //                          _____________
  84   1              LCD_write_shu(4,0,12);                  // /               |2009/04/02   |
  85   1              LCD_write_shu(5,0,p[5]/10);             //月十位           | 13:06:25    |
  86   1              LCD_write_shu(6,0,p[5]%10);             //月个位           |星期四 17.2℃|
  87   1              LCD_write_shu(7,0,12);                  // /               |_____________|
  88   1              LCD_write_shu(8,0,p[4]/10);             //日十位          
  89   1              LCD_write_shu(9,0,p[4]%10);             //日个位
  90   1      
  91   1              LCD_write_hanzi(0,4,11);                //星
  92   1              LCD_write_hanzi(1,4,12);                //期
  93   1              LCD_write_hanzi(2,4,p[3]);              //×
  94   1                                              
  95   1      
  96   1                                                                                                  
  97   1              LCD_write_shu(0,2,13);                  //写空格,消除干扰      
  98   1              LCD_write_shu(1,2,p[2]/10);             //时十位                
  99   1              LCD_write_shu(2,2,p[2]%10);             //时个位                
 100   1              LCD_write_shu(3,2,10);                  //:                     
 101   1              LCD_write_shu(4,2,p[1]/10);             //分十位
 102   1              LCD_write_shu(5,2,p[1]%10);             //分个位
 103   1              LCD_write_shu(6,2,10);                  //:
 104   1              LCD_write_shu(7,2,p[0]/10);             //秒十位
 105   1              LCD_write_shu(8,2,p[0]%10);             //秒个位
 106   1              LCD_write_shu(9,2,13);                  //写空格,消除干扰
 107   1      }
 108                                                                                                                  


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    407    ----
   CONSTANT SIZE    =      7    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       7
   IDATA SIZE       =   ----    ----
C51 COMPILER V8.02   DS12887                                                               05/04/2002 11:07:14 PAGE 3   

   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 + -