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

📄 lesson9.lst

📁 用1602液晶显示屏显示出时间,并且可以定义按键更改时间
💻 LST
字号:
C51 COMPILER V8.08   LESSON9                                                               03/11/2009 11:47:29 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE LESSON9
OBJECT MODULE PLACED IN lesson9.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lesson9.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<reg52.h>
   2          #define uchar unsigned char 
   3          #define uint unsigned int
   4          sbit rs=P3^0;
   5          sbit rw=P3^1; 
   6          sbit s1=P1^1;
   7          sbit s2=P1^2;
   8          sbit s3=P1^3;
   9          sbit lcden=P3^2;
  10          uchar count,s1num;
  11          char shi,fen,miao;
  12          uchar code table[]="  2009-03-10 MON";
  13          uchar code table1[]="00:00:00";
  14          
  15          void delay (uint z)
  16          {
  17   1       uint x,y;
  18   1       for(x=z;x>0;x--)
  19   1         for(y=100;y>0;y--);
  20   1      }
  21          
  22          void write_com(uchar com)
  23          {
  24   1       rs=0;
  25   1       rw=0;
  26   1       P0=com;
  27   1       delay(5);
  28   1       lcden=1;
  29   1       delay(5);
  30   1       lcden=0;
  31   1      }
  32          
  33          
  34          void write_date(uchar date)
  35          {
  36   1       rs=1;
  37   1       rw=0;
  38   1       P0=date;
  39   1       delay(5);
  40   1       lcden=1;
  41   1       delay(5);
  42   1       lcden=0;
  43   1      }
  44          
  45          void write_sfm(uchar add,uchar date)
  46          {
  47   1              uchar shi,ge;
  48   1              shi=date/10;
  49   1              ge=date%10;
  50   1              write_com(0x80+0x40+add);
  51   1              write_date(0x30+shi);
  52   1              write_date(0x30+ge);
  53   1              }
  54          
  55          void init()
C51 COMPILER V8.08   LESSON9                                                               03/11/2009 11:47:29 PAGE 2   

  56          {
  57   1       uchar num;
  58   1       lcden=0;
  59   1       write_com(0x38);
  60   1       write_com(0x0c);
  61   1       write_com(0x06);
  62   1       write_com(0x01);
  63   1       write_com(0x80);
  64   1       for(num=0;num<15;num++)
  65   1        {
  66   2         write_date(table[num]);
  67   2      
  68   2         }
  69   1      
  70   1        write_com(0x80+0x40);
  71   1      
  72   1        for(num=0;num<8;num++)
  73   1         {
  74   2          write_date(table1[num]);
  75   2       
  76   2              TMOD=0x01;
  77   2              TH0=(65536-50000)/256;
  78   2          TL0=(65536-50000)%256;
  79   2              ET0=1;
  80   2              EA=1;
  81   2              TR0=1;
  82   2      
  83   2         }
  84   1      }
  85          
  86          void keyscan()
  87          {
  88   1       if(s1==0)
  89   1        {
  90   2          delay(5);
  91   2          if(s1==0)
  92   2          { 
  93   3            while (!s1);
  94   3                s1num++;        
  95   3           }
  96   2        }
  97   1        if(s1num==1)
  98   1        {
  99   2              TR0=0;
 100   2              write_com(0x0f);
 101   2              write_com(0x80+0x40+7); 
 102   2              if(s2==0)
 103   2          {
 104   3                      delay(5);
 105   3                      if(s2==0)
 106   3                      {
 107   4                       while(!s2);
 108   4                       miao++;
 109   4                       if(miao==60)
 110   4                       {
 111   5                        miao=0;
 112   5                        }
 113   4                        write_sfm(6,miao);
 114   4              }
 115   3           }
 116   2               if(s3==0)
 117   2           {
C51 COMPILER V8.08   LESSON9                                                               03/11/2009 11:47:29 PAGE 3   

 118   3                      delay(5);
 119   3                      if(s3==0)
 120   3                      {
 121   4                       while(!s3);
 122   4                       miao--;
 123   4                       if(miao==0)
 124   4                       {
 125   5                        miao=59;
 126   5                        }
 127   4                        write_sfm(6,miao);
 128   4               }
 129   3               }
 130   2        }
 131   1      
 132   1        if(s1num==2)
 133   1        {
 134   2              write_com(0x80+0x40+4); 
 135   2              if(s2==0)
 136   2          {
 137   3                      delay(5);
 138   3                      if(s2==0)
 139   3                      {
 140   4                       while(!s2);
 141   4                       fen++;
 142   4                       if(fen==60)
 143   4                       {
 144   5                        fen=0;
 145   5                        }
 146   4                        write_sfm(3,fen);
 147   4               }
 148   3          }
 149   2              if(s3==0)
 150   2           {
 151   3                      delay(5);
 152   3                      if(s3==0)
 153   3                      {
 154   4                       while(!s3);
 155   4                       fen--;
 156   4                        if(fen==0)
 157   4                       {
 158   5                        fen=59;
 159   5                        }     
 160   4                        write_sfm(3,fen);
 161   4               }
 162   3               }
 163   2        }
 164   1        if(s1num==3)
 165   1        {
 166   2              write_com(0x80+0x40+1); 
 167   2              if(s2==0)
 168   2          {
 169   3                      delay(5);
 170   3                      if(s2==0)
 171   3                      {
 172   4                       while(!s2);
 173   4                       shi++;
 174   4                       if(shi==24)
 175   4                       {
 176   5                        shi=0;
 177   5                        }
 178   4                        write_sfm(0,shi);
 179   4               }
C51 COMPILER V8.08   LESSON9                                                               03/11/2009 11:47:29 PAGE 4   

 180   3           }
 181   2               if(s3==0)
 182   2           {
 183   3                      delay(5);
 184   3                      if(s3==0)
 185   3                      {
 186   4                       while(!s3);
 187   4                       shi--;
 188   4                       if(shi==0)
 189   4                       {
 190   5                        shi=23;
 191   5                        }
 192   4                        write_sfm(0,shi);
 193   4               }
 194   3               }
 195   2               }
 196   1        if(s1num==4)
 197   1        {
 198   2          s1num=0;
 199   2              write_com(0x0c);
 200   2              TR0=1;
 201   2         }
 202   1        }
 203          
 204            
 205           
 206          
 207          void main()
 208          {
 209   1       init();
 210   1       while(1)
 211   1       {
 212   2       keyscan();
 213   2       }
 214   1       }
 215          
 216          void timer0() interrupt 1
 217          {
 218   1              TH0=(65536-50000)/256;
 219   1              TL0=(65536-50000)%256;
 220   1              count++;
 221   1              if(count==20)
 222   1                      {
 223   2                              count=0;
 224   2                              miao++;
 225   2                              if(miao==60)
 226   2                              {
 227   3                                      miao=0;
 228   3                                      fen++;
 229   3                                      if(fen==60)
 230   3                                      {
 231   4                                              fen=0;
 232   4                                              shi++;
 233   4                                              if(shi==24)
 234   4                                              {
 235   5                                                      shi=0;
 236   5                                              }
 237   4                                        write_sfm(0,shi);
 238   4                                      }
 239   3                                      write_sfm(3,fen);
 240   3                              }
 241   2                              write_sfm(6,miao);
C51 COMPILER V8.08   LESSON9                                                               03/11/2009 11:47:29 PAGE 5   

 242   2                              
 243   2                      }
 244   1      } 
 245              
 246          


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