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

📄 text1.lst

📁 单片机写的程序都含有Protues仿真结果
💻 LST
字号:
C51 COMPILER V7.10   TEXT1                                                                 06/04/2008 00:15:32 PAGE 1   


C51 COMPILER V7.10, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: D:\程序\keil51\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND TABS(6)

line level    source

   1          #include<reg51.h>
   2          #define uchar unsigned char
   3          #define uint unsigned int
   4          uchar a,b,c=0,num,count,sec=0,min=30,hour=12,s1num=0,ri=27,mon=5;
   5          char year1=8,year2=20,week1;
   6          uchar week[]="Mon Tur Wed Thu Fri Sat Sun";
   7          sbit lcden=P3^4;
   8          sbit rs=P3^5;
   9          sbit s1=P1^0;
  10          sbit s2=P1^1;
  11          sbit s3=P1^2;     
  12          uchar table[]="2008-05-27 Tur";
  13          uchar table1[]="   12:30:00  WMZ";
  14          void delay(uint z)
  15          {
  16   1            uint x,y;
  17   1            for(x=z;x>0;x--)
  18   1                  for(y=110;y>0;y--);
  19   1      }
  20           //*********************************************
  21          void write_date(date)
  22            { rs=1;
  23   1          lcden=0;
  24   1          P0=date;
  25   1            delay(5);
  26   1            lcden=1;
  27   1            delay(5);
  28   1            lcden=0;
  29   1        }
  30           //*********************************************
  31          void write_com(com)
  32            { rs=0;
  33   1          lcden=0;
  34   1          P0=com;
  35   1            delay(5);
  36   1            lcden=1;
  37   1            delay(5);
  38   1            lcden=0;
  39   1        }
  40          
  41           //*********************************************
  42          
  43          void init()
  44          {
  45   1        lcden=0;
  46   1        write_com(0x38);
  47   1        write_com(0x0c);
  48   1        write_com(0x01);
  49   1        write_com(0x06);
  50   1        write_com(0x80);
  51   1            for(num=0;num<16;num++)
  52   1            {
  53   2            write_date(table[num]);
  54   2            delay(5);
  55   2            }
C51 COMPILER V7.10   TEXT1                                                                 06/04/2008 00:15:32 PAGE 2   

  56   1            write_com(0x80+0x40);
  57   1                  for(num=0;num<16;num++)
  58   1            {
  59   2            write_date(table1[num]);
  60   2            delay(5);
  61   2            TMOD=0x01;
  62   2            TH0=(65536-50000)/256;
  63   2            TL0=(65536-50000)%256;
  64   2            EA=1;
  65   2            ET0=1;
  66   2            TR0=1;
  67   2      
  68   2            }
  69   1      }
  70           //*********************************************
  71          void sfm(uchar add,uchar shu)
  72          {  uchar shi,ge;
  73   1            shi=shu/10;
  74   1            ge=shu%10;
  75   1            write_com(0x80+0x40+add); // 选择地址
  76   1            write_date(0x30+shi);     //显示的数的十位
  77   1            write_date(0x30+ge);
  78   1      }
  79           //*********************************************
  80          
  81          void yyr(uchar ad,uchar su)
  82          {  uchar shi,ge;
  83   1            shi=su/10;
  84   1            ge=su%10;
  85   1            write_com(0x80+ad); // 选择地址
  86   1            write_date(0x30+shi);     //显示的数的十位
  87   1            write_date(0x30+ge);
  88   1      }
  89          void keyscan()
  90          {
  91   1      if(s1==0)
  92   1        {
  93   2            delay(5);
  94   2             if(s1==0)
  95   2             {  
  96   3             s1num++;
  97   3             while(!s1);
  98   3             
  99   3             if(s1num==1)
 100   3             {    TR0=0;
 101   4             write_com(0x80+0x40+10);
 102   4               write_com(0x0f);
 103   4             }
 104   3              if(s1num==2)
 105   3             { write_com(0x80+0x40+7);
 106   4               }
 107   3      
 108   3              if(s1num==3)
 109   3             { write_com(0x80+0x40+4);
 110   4               }
 111   3                if(s1num==4)
 112   3             { write_com(0x80+11);
 113   4               }
 114   3                   if(s1num==5)
 115   3             { write_com(0x80+8);
 116   4               }
 117   3                   if(s1num==6)
C51 COMPILER V7.10   TEXT1                                                                 06/04/2008 00:15:32 PAGE 3   

 118   3             { write_com(0x80+5);
 119   4               }
 120   3                   if(s1num==7)
 121   3             { write_com(0x80+2);
 122   4               }
 123   3               if(s1num==8)
 124   3             { write_com(0x80+0);
 125   4               }
 126   3             if(s1num==9)
 127   3             { s1num=0;
 128   4             write_com(0x0c);
 129   4                TR0=1;
 130   4               }
 131   3           }
 132   2        }
 133   1      
 134   1              if(s1num!=0)
 135   1             { if(s2==0)
 136   2              {
 137   3               delay(5);
 138   3               if(s2==0)
 139   3               {  
 140   4               while(!s2);
 141   4               
 142   4               if(s1num==1)
 143   4               { sec++;
 144   5               if(sec==60)
 145   5                 { sec=0;}
 146   5                   sfm(9,sec);
 147   5                 write_com(0x80+0x40+10);
 148   5               }
 149   4                if(s1num==2)
 150   4               { min++;
 151   5               if(min==60)
 152   5                 { min=0;}
 153   5                   sfm(6,min);
 154   5                 write_com(0x80+0x40+7);
 155   5               }
 156   4                if(s1num==3)
 157   4               { hour++;
 158   5               if(hour==24)
 159   5                 { hour=0;}
 160   5                   sfm(3,hour);
 161   5                 write_com(0x80+0x40+4);
 162   5               }
 163   4                   //下行的哦
 164   4      
 165   4                if(s1num==4)
 166   4               { 
 167   5                
 168   5               if(week1==7)
 169   5                 { week1=0;}
 170   5                   write_com(0x80+10);
 171   5                   c=0;
 172   5                   b=week1*4;
 173   5                   a=b;
 174   5                   for(b;b<a+3;b++)
 175   5                   {    c++;
 176   6                     write_com(0x80+10+c);
 177   6                     write_date(week[b]);
 178   6                     }  week1++;
 179   5                   
C51 COMPILER V7.10   TEXT1                                                                 06/04/2008 00:15:32 PAGE 4   

 180   5      
 181   5               }
 182   4      
 183   4               if(s1num==5)
 184   4               { ri++;
 185   5               if(ri==31)
 186   5                 {ri=0;}
 187   5                   yyr(8,ri);
 188   5                 write_com(0x80+9);
 189   5               }
 190   4               if(s1num==6)
 191   4               { mon++;
 192   5               if(mon==13)
 193   5                 {mon=0;}
 194   5                   yyr(5,mon);
 195   5                 write_com(0x80+6);
 196   5               }
 197   4               if(s1num==7)
 198   4               { year1++;
 199   5               if(year1==100)
 200   5                 {year1=0;}
 201   5                   yyr(2,year1);
 202   5                 write_com(0x80+3);
 203   5               }
 204   4               if(s1num==8)
 205   4               { year2++;
 206   5               if(year2==100)
 207   5                 {year2=0;}
 208   5                   yyr(0,year2);
 209   5                 write_com(0x80+1);
 210   5               }
 211   4      
 212   4      
 213   4      
 214   4      
 215   4      
 216   4      
 217   4      
 218   4               
 219   4      
 220   4               }
 221   3              }
 222   2             }
 223   1      
 224   1      
 225   1                    if(s1num!=0)
 226   1             { if(s3==0)
 227   2              {
 228   3               delay(5);
 229   3               if(s3==0)
 230   3               {  
 231   4               while(!s3);
 232   4               
 233   4               if(s1num==1)
 234   4               { sec--;
 235   5               if(sec==0)
 236   5                 { sec=59;}
 237   5                   sfm(9,sec);
 238   5                 write_com(0x80+0x40+10);
 239   5               }
 240   4                if(s1num==2)
 241   4               { min--;
C51 COMPILER V7.10   TEXT1                                                                 06/04/2008 00:15:32 PAGE 5   

 242   5               if(min==0)
 243   5                 { min=59;}
 244   5                   sfm(6,min);
 245   5                 write_com(0x80+0x40+7);
 246   5               }
 247   4                if(s1num==3)
 248   4               { hour--;
 249   5               if(hour==0)
 250   5                 { hour=23;}
 251   5                   sfm(3,hour);
 252   5                 write_com(0x80+0x40+4);
 253   5               }
 254   4                //下行的哦
 255   4      
 256   4      
 257   4                  if(s1num==4)
 258   4                  { 
 259   5                if(week1==-1)
 260   5                 { week1=6;}
 261   5                   write_com(0x80+10);
 262   5                   c=0;
 263   5                   b=week1*4;
 264   5                   a=b;
 265   5                   for(b;b<a+3;b++)
 266   5                   {    c++;
 267   6                     write_com(0x80+10+c);
 268   6                     write_date(week[b]);
 269   6                    }  
 270   5                    week1--;
 271   5                   
 272   5      
 273   5               }
 274   4               if(s1num==5)
 275   4               { ri--;
 276   5               if(ri==0)
 277   5                 {ri=31;}
 278   5                   yyr(8,ri);
 279   5                 write_com(0x80+9);
 280   5               }
 281   4               if(s1num==6)
 282   4               { mon--;
 283   5               if(mon==0)
 284   5                 {mon=12;}
 285   5                   yyr(5,mon);
 286   5                 write_com(0x80+6);
 287   5               }
 288   4               if(s1num==7)
 289   4               { year1--;
 290   5               if(year1==-1)
 291   5                 {year1=99;}
 292   5                   yyr(2,year1);
 293   5                 write_com(0x80+3);
 294   5               }
 295   4               if(s1num==8)
 296   4               { year2--;
 297   5               if(year2==-1)
 298   5                 {year2=99;}
 299   5                   yyr(0,year2);
 300   5                 write_com(0x80+1);
 301   5               }
 302   4               
 303   4      
C51 COMPILER V7.10   TEXT1                                                                 06/04/2008 00:15:32 PAGE 6   

 304   4               }
 305   3              }
 306   2             }
 307   1            
 308   1      }
 309          
 310           //*********************************************
 311          void main()
 312          {
 313   1        init();
 314   1        while(1)
 315   1        keyscan();
 316   1      }
 317           //*********************************************
 318          void timer0() interrupt 1
 319          {      TH0=(65536-50000)/256;
 320   1            TL0=(65536-50000)%256;
 321   1          count++;
 322   1          if(count==15)
 323   1            {
 324   2                  count=0;
 325   2                  sec++;
 326   2             if(sec==60)
 327   2              {
 328   3                  sec=0;
 329   3                  min++;
 330   3                  if(min==60)
 331   3                  {
 332   4                        min=0;
 333   4                        hour++;
 334   4                        if(hour==24)
 335   4                        {
 336   5                          hour=0;
 337   5                        }
 338   4                        sfm(3,hour);
 339   4                  }
 340   3                  sfm(6,min);
 341   3              }
 342   2              sfm(9,sec);
 343   2            }
 344   1      }
 345          
 346           //*********************************************


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