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

📄 03.lst

📁 ds12c887实时时钟
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.07   03                                                                    12/11/2008 18:28:31 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE 03
OBJECT MODULE PLACED IN 03.OBJ
COMPILER INVOKED BY: e:\Keil\C51\BIN\C51.EXE 03.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          //      工程名称:      DS12CR887实时时钟
   2          //   2008/12/10 
   3          //      功能描述:      万年历,农历和电子钟,具备拨报日期、时间、正点报时、秒表、闹钟等功能。
   4          //      更多功拨报日期、时间、正点报时、秒表、闹钟等功能。进一步添加中...
   5          //======================================================================
   6          //对主函数调用的函数声明
   7          //======================================================================
   8          #include<reg52.h>
   9          #define uint unsigned int
  10          #define uchar unsigned char
  11          
  12          char temp03,aa,bb,cc,dd,ee,ff,gg,hh;
  13          
  14          char ge,shi,bai,qian,w2,shiwan,xin;
  15          sbit dula=P2^0;
  16          sbit wela=P2^1;
  17          sbit wela02=P2^2;
  18          sbit dian=P2^3;
  19          
  20          sbit dscs=P1^0;
  21          sbit dsas=P1^1;
  22          sbit dsrw=P1^2;
  23          sbit dsds=P1^3;
  24          
  25          
  26          //======================================================================
  27          //0-f字库
  28          //======================================================================
  29          uchar code table[]={
  30          0xc0,0xf9,0xa4,0xb0,
  31          0x99,0x92,0x82,0xf8,
  32          0x80,0x90,0x88,0x83,
  33          0xc6,0xa1,0x86,0x8e};
  34          
  35          void displayxq(uchar xin);
  36          void display12(uchar aa,uchar bb);
  37          void display34(uchar cc,uchar dd);
  38          void display56(uchar ee,uchar ff);
  39          void display78(uchar gg,uchar hh);
  40          void display(uchar shi,uchar ge);
  41          void display01(uchar qian,uchar bai);
  42          void display02(uchar shiwan,uchar w2);
  43          void delay(uint z);
  44          
  45          /*void write_ds(uchar add,uchar date)
  46          {
  47                  dscs=0;
  48                  dsas=1;
  49                  dsds=1;
  50                  dsrw=1;
  51                  P0=add;
  52                  dsas=0;
  53                  dsrw=0;
  54                  P0=date;
  55                  dsrw=1;
C51 COMPILER V7.07   03                                                                    12/11/2008 18:28:31 PAGE 2   

  56                  dsas=1;
  57                  dscs=1; 
  58          
  59                  
  60          } */ //写芯片的时候才用write_ds
  61          
  62          uchar read_ds(uchar add)
  63          {
  64   1              uchar ds_date;
  65   1              dscs=0;
  66   1              dsas=1;
  67   1              dsds=1;
  68   1              dsrw=1;
  69   1              P0=add;
  70   1              dsas=0;
  71   1              dsds=0;
  72   1              ds_date=P0;
  73   1              dsds=1;
  74   1              dscs=1;
  75   1              dsas=1;
  76   1              return ds_date; 
  77   1      }
  78          
  79          //======================================================================
  80          //显示初始化2008 年12 月10日 星期2  23:11:20//
  81          //======================================================================
  82          
  83          /*void init()
  84          {
  85                  //write_ds(10,160);这几行为初始化芯片时钟
  86              //write_ds(11,06);
  87          
  88          
  89                  //write_ds(0,00);//秒
  90                  //write_ds(2,28);//分 
  91                  //write_ds(4,18);//时
  92              //write_ds(6,03);//星期
  93                  //write_ds(7,10);//日
  94                  //write_ds(8,12);//月
  95                  //write_ds(9,0x08);//年后
  96                  //temp03=20;//2008的前两位100年+1不用,固定为20
  97          }*/
  98          //======================================================================
  99          //主函数//
 100          //======================================================================
 101          void main()
 102          {
 103   1      
 104   1      
 105   1              //init();
 106   1              temp03=20;
 107   1              dian=0; 
 108   1              while(1)
 109   1              {
 110   2                              
 111   2                      display(shi,ge);
 112   2                  display01(qian,bai);
 113   2                      display02(shiwan,w2);           
 114   2                      display78(gg,hh);
 115   2                      display56(ee,ff);
 116   2                      display34(cc,dd);
 117   2                      display12(aa,bb);
C51 COMPILER V7.07   03                                                                    12/11/2008 18:28:31 PAGE 3   

 118   2                      displayxq(xin);
 119   2                      
 120   2              }
 121   1              
 122   1      }
 123          //======================================================================
 124          //延时子程序//
 125          //======================================================================
 126          void delay(uint z)
 127          {
 128   1              uint x,y;
 129   1              for(x=z;x>0;x--)
 130   1                      for(y=110;y>0;y--);
 131   1      }
 132          //======================================================================
 133          //星期显示子程序//
 134          //======================================================================
 135          void displayxq(uchar xin)
 136          {
 137   1                      
 138   1                      xin=read_ds(6)%10;
 139   1                      
 140   1      
 141   1                      wela02=1;
 142   1                      P0=0x00;
 143   1                      wela02=0;
 144   1      
 145   1                      dula=1;
 146   1                      P0=table[xin];
 147   1                      dula=0;
 148   1      
 149   1                      wela=1;
 150   1                      P0=0x40;
 151   1                      delay(1);
 152   1                      wela=0;
 153   1                      
 154   1              
 155   1      }
 156          //======================================================================
 157          //秒显示子程序//
 158          //======================================================================
 159          void display(uchar shi,uchar ge)
 160          {
 161   1                      
 162   1                      ge=read_ds(0)%10;
 163   1                      shi=read_ds(0)/10;      
 164   1      
 165   1                      wela02=1;
 166   1                      P0=0x00;
 167   1                      wela02=0;
 168   1      
 169   1                      dula=1;
 170   1                      P0=table[shi];
 171   1                      dula=0;
 172   1      
 173   1                      wela=1;
 174   1                      P0=0x10;
 175   1                      delay(1);
 176   1                      wela=0;
 177   1                      
 178   1                      dula=1;
 179   1                      P0=table[ge];
C51 COMPILER V7.07   03                                                                    12/11/2008 18:28:31 PAGE 4   

 180   1                      dula=0;
 181   1      
 182   1                      wela=1;
 183   1                      P0=0x20;
 184   1                      delay(1);
 185   1                      wela=0;
 186   1      }
 187          //======================================================================
 188          //分显示子程序//
 189          //======================================================================
 190          void display01(uchar qian,uchar bai)
 191          {
 192   1                      qian=read_ds(2)/10;
 193   1                      bai=read_ds(2)%10;

⌨️ 快捷键说明

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