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

📄 shizhong.lst

📁 利用ds1302芯片实现proteus的led1602的时间显示
💻 LST
字号:
C51 COMPILER V7.00  SHIZHONG                                                               07/21/2005 07:34:16 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE SHIZHONG
OBJECT MODULE PLACED IN shizhong.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE shizhong.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h> 
   2          #define uchar unsigned char 
   3          #define uint unsigned int
   4          uchar code table[]=" 2008-08-20 MON";
   5          uchar code table1[]="   10-10-10";
   6          uchar code table2[]="  LIU TIAN WEI";
   7          
   8          uchar ci,miao=10 ,fen=10 ,shi=10,jianci  ,gao,di,zen,jian;
   9          sbit RS=P2^0;
  10          sbit RW=P2^1;
  11          sbit E=P2^2;
  12          sbit AA=P2^6;
  13          sbit BB=P2^7;
  14          sbit CC=P3^0;
  15          void delay(uint x)          /*延时函数*/
  16          {
  17   1          uint i,j;
  18   1          for(i=x;i>0;i--)
  19   1              for(j=110;j>0;j--);
  20   1      }
  21          void write_cod(uchar cod)   /*写指令函数*/
  22          {
  23   1          E=0;
  24   1          RS=0;
  25   1          RW=0;
  26   1          P0=cod;
  27   1          delay(5);
  28   1          E=1;
  29   1          delay(5);
  30   1          E=0;
  31   1              
  32   1      }
  33          void write_date(uchar date)  /*写数据函数*/
  34          {
  35   1          E=0;
  36   1          RS=1;
  37   1          RW=0;
  38   1          P0=date;
  39   1          delay(5);
  40   1          E=1;
  41   1          delay(5);
  42   1          E=0;
  43   1              
  44   1      }
  45          void init()                  /*初始化函数*/
  46          {
  47   1          uchar num;
  48   1          write_cod(0x38);        /*液晶工作状态定义*/
  49   1          write_cod(0x0c);
  50   1          write_cod(0x06);
  51   1          write_cod(0x01);
  52   1          write_cod(0x80+0x16);   /*第一行*/ 
  53   1          for(num=0;num<14;num++)
  54   1          {
  55   2              write_date(table2[num]);        
C51 COMPILER V7.00  SHIZHONG                                                               07/21/2005 07:34:16 PAGE 2   

  56   2              delay(5);
  57   2          }
  58   1          write_cod(0x80+0x56);    /*第二行*/ 
  59   1       
  60   1          for(num=0;num<20;num++)
  61   1          {
  62   2              write_cod(0x1c);
  63   2              delay(100);
  64   2          }
  65   1          delay(1000);
  66   1          write_cod(0x01);
  67   1          write_cod(0x06);
  68   1          write_cod(0x80);
  69   1          for(num=0;num<15;num++)
  70   1          {
  71   2              write_date(table[num]); 
  72   2              delay(80);
  73   2          }
  74   1          write_cod(0x80+0x40);
  75   1          for(num=0;num<12;num++)
  76   1          {
  77   2              write_date(table1[num]);        
  78   2              delay(80);
  79   2          }
  80   1          TMOD=0x01;
  81   1          TH0=(65536-50000)/256;
  82   1          TL0=(65536-50000)%256;
  83   1          EA=1;       
  84   1          ET0=1;
  85   1          TR0=1;
  86   1      }
  87          void xianshi(uchar add,uchar shu)
  88          {
  89   1          gao=shu/10;
  90   1          di=shu%10;
  91   1          write_cod(0x80+0x40+add);
  92   1          write_date(0x30+gao);
  93   1          write_date(0x30+di);
  94   1      }
  95          zenjian(uchar xx)
  96          {
  97   1                  zen=xx;
  98   1                  if(BB==0)
  99   1                  delay(15);
 100   1                  if(BB==0)
 101   1              { 
 102   2                  while(!BB);
 103   2                  zen++;
 104   2                  if(zen==60)
 105   2                  zen=0;
 106   2                  //miao=zen;
 107   2                      
 108   2              }
 109   1                  if(CC==0)
 110   1                  delay(15);
 111   1                  if(CC==0)
 112   1              { 
 113   2                  while(!CC);
 114   2                  zen--;
 115   2                  if(zen==0)
 116   2                  zen=59;
 117   2                  //miao=zen;
C51 COMPILER V7.00  SHIZHONG                                                               07/21/2005 07:34:16 PAGE 3   

 118   2                      
 119   2              }  
 120   1      
 121   1      return zen;
 122   1      }
 123          void  key()
 124          {
 125   1          if(AA==0)
 126   1          delay(15);
 127   1          if(AA==0)
 128   1          { while(!AA);
 129   2           TR0=0;
 130   2           jianci++;
 131   2          }
 132   1          if(jianci==1)
 133   1          {
 134   2          
 135   2              write_cod(0x80+0x40+9);
 136   2              write_cod(0x0e);
 137   2              miao=zenjian( miao);
 138   2              xianshi(9,miao);
 139   2          
 140   2              
 141   2               
 142   2              
 143   2          }
 144   1          if(jianci==2)
 145   1          {
 146   2              write_cod(0x80+0x40+6);
 147   2              write_cod(0x0e);
 148   2              fen=zenjian(fen);
 149   2          
 150   2              xianshi(6,fen);
 151   2               
 152   2          }
 153   1          if(jianci==3)
 154   1          {
 155   2              write_cod(0x80+0x40+3);
 156   2              write_cod(0x0e);
 157   2              shi=zenjian(shi);
 158   2              xianshi(3,shi);
 159   2               
 160   2          }
 161   1          if(jianci==4)
 162   1          {
 163   2              jianci=0;
 164   2            //write_cod(0x80+0x40+7);
 165   2              write_cod(0x0c);
 166   2              TR0=1;
 167   2          }
 168   1      
 169   1      }
 170          
 171          void main()
 172          {
 173   1          init();
 174   1          while(1)
 175   1          {
 176   2              key();
 177   2              if(ci==20)
 178   2              {
 179   3                  ci=0;
C51 COMPILER V7.00  SHIZHONG                                                               07/21/2005 07:34:16 PAGE 4   

 180   3                  miao++;
 181   3                  if(miao==60)
 182   3                      {
 183   4                      miao=0;
 184   4                      fen++;
 185   4                      if(fen==60)
 186   4                              {
 187   5                                fen=0;
 188   5                                shi++;
 189   5                              if(shi==24)
 190   5                                shi=0;
 191   5                          xianshi(3,shi);
 192   5                                      
 193   5                              }
 194   4                      xianshi(6,fen);
 195   4                      }
 196   3                  xianshi(9,miao);    
 197   3              }
 198   2       
 199   2          }
 200   1       
 201   1      }
 202          void timer0() interrupt 1
 203          {
 204   1          EA=0;
 205   1          ET0=0;
 206   1          TR0=0;
 207   1          ci++;
 208   1          TH0=(65536-50000)/256;
 209   1          TL0=(65536-50000)%256;
 210   1          EA=1;
 211   1          ET0=1;
 212   1          TR0=1;
 213   1          
 214   1          
 215   1      }


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