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

📄 ds12c887.lst

📁 自己做的单片机Proteus仿真实例
💻 LST
📖 第 1 页 / 共 2 页
字号:
 259   4                                                       if(s1num==2)
 260   4                                                       {
 261   5                                                            fen++;
 262   5                                                                if(fen==60)
 263   5                                                                      fen=0;
 264   5                                                                write_sfm(7,fen);
 265   5                                                                write_com(0x80+0x40+7);
 266   5                                                       }                 
 267   4                                                       if(s1num==3)
 268   4                                                       {
 269   5                                                            shi++;
 270   5                                                                if(shi==24)
 271   5                                                                      shi=0;
 272   5                                                                write_sfm(4,shi);
 273   5                                                                write_com(0x80+0x40+4);
 274   5                                                       }
 275   4                                                       if(s1num==4)
 276   4                                                       {
 277   5                                                            week++;
 278   5                                                                if(week==8)
 279   5                                                                      week=1;
 280   5                                                                write_week(week);
 281   5                                                                write_com(0x80+12);
 282   5                                                       }
 283   4                                                       if(s1num==5)
 284   4                                                       {
 285   5                                                            day++;
 286   5                                                                if(day==32)
 287   5                                                                      day=1;
 288   5                                                                write_nyr(9,day);
 289   5                                                                write_com(0x80+9);
 290   5                                                       }
 291   4                                                       if(s1num==6)
 292   4                                                       {
 293   5                                                            month++;
 294   5                                                                if(month==13)
 295   5                                                                      month=1;
 296   5                                                                write_nyr(6,month);
 297   5                                                                write_com(0x80+6);
 298   5                                                       }
 299   4                                                       if(s1num==7)
 300   4                                                       {
 301   5                                                            year++;
 302   5                                                                if(year==100)
 303   5                                                                      day=0;
C51 COMPILER V8.02   DS12C887                                                              07/27/2012 12:43:51 PAGE 6   

 304   5                                                                write_nyr(3,year);
 305   5                                                                write_com(0x80+3);
 306   5                                                       }
 307   4                                                               
 308   4                                         }
 309   3      
 310   3                               }         
 311   2                               if(s3==0)
 312   2                               {
 313   3                                      delay(5);
 314   3                                              if(s3==0)
 315   3                                              {
 316   4                                                   while(!s3);
 317   4                                                       if(s1num==1)
 318   4                                                       {
 319   5                                                            miao--;
 320   5                                                                if(miao==-1)
 321   5                                                                     miao=59;
 322   5                                                                write_sfm(10,miao);
 323   5                                                                write_com(0x80+0x40+10);
 324   5                                                       }
 325   4                                                       if(s1num==2)
 326   4                                                       {
 327   5                                                            fen--;
 328   5                                                                if(fen==-1)
 329   5                                                                     fen=59;
 330   5                                                                write_sfm(7,fen);
 331   5                                                                write_com(0x80+0x40+7);
 332   5                                                       }                 
 333   4                                                       if(s1num==3)
 334   4                                                       {
 335   5                                                            shi--;
 336   5                                                                if(shi==-1)
 337   5                                                                     shi=23;
 338   5                                                                write_sfm(4,shi);
 339   5                                                                write_com(0x80+0x40+4);
 340   5                                                       }
 341   4                                                       if(s1num==4)
 342   4                                                       {
 343   5                                                            week--;
 344   5                                                                if(week==0)
 345   5                                                                      week=7;
 346   5                                                                write_week(week);
 347   5                                                                write_com(0x80+12);
 348   5                                                       }
 349   4                                                       if(s1num==5)
 350   4                                                       {
 351   5                                                            day--;
 352   5                                                                if(day==0)
 353   5                                                                      day=31;
 354   5                                                                write_nyr(9,day);
 355   5                                                                write_com(0x80+9);
 356   5                                                       }
 357   4                                                       if(s1num==6)
 358   4                                                       {
 359   5                                                            month--;
 360   5                                                                if(month==0)
 361   5                                                                      month=12;
 362   5                                                                write_nyr(6,month);
 363   5                                                                write_com(0x80+6);
 364   5                                                       }
 365   4                                                       if(s1num==7)
C51 COMPILER V8.02   DS12C887                                                              07/27/2012 12:43:51 PAGE 7   

 366   4                                                       {
 367   5                                                            year--;
 368   5                                                                if(year==0)
 369   5                                                                      day=99;
 370   5                                                                write_nyr(3,year);
 371   5                                                                write_com(0x80+3);
 372   5                                                       }       
 373   4                                                               
 374   4                                           }
 375   3      
 376   3                                      }          
 377   2                 
 378   2                }
 379   1                  if(s4==0)
 380   1                  {
 381   2                            delay(5);
 382   2                                if(s4==0)
 383   2                                {
 384   3                                    flag1=~flag1;
 385   3                                        while(!s4);
 386   3                                        if(flag1==0)
 387   3                                        {
 388   4                                                 s1num=0;
 389   4                                                 write_com(0x0c);
 390   4                                             flag=0;
 391   4                                                 write_com(0x80+0x40);
 392   4                                                 write_data(' ');
 393   4                                                 write_data(' ');
 394   4                                                 write_data(' ');
 395   4                                                
 396   4                                                 write_ds(1,miao);
 397   4                                                 write_ds(3,fen);
 398   4                                                 write_ds(5,shi);
 399   4                                         }
 400   3                                         else
 401   3                                         {
 402   4                                             s1num=0;
 403   4                                                 write_com(0x0c);
 404   4                                                 read_alarm();
 405   4                                                 miao=alarm_miao;
 406   4                                                 fen=alarm_fen;
 407   4                                                 shi=alarm_shi;
 408   4                                                 write_com(0x80+0x40);
 409   4                                                 write_data('A');
 410   4                                                 write_data('L');
 411   4                                                 write_data('R');
 412   4                                                 write_sfm(4,alarm_shi);
 413   4                                                 write_sfm(7,alarm_fen);
 414   4                                                 write_sfm(10,alarm_miao);
 415   4                                         }
 416   3      
 417   3                                 }    
 418   2                       
 419   2                        }
 420   1                
 421   1      
 422   1      }
 423          ////////////////////////////////////////////////////////////////////
 424          /////////初始化部分//////////////////////////////////////////////////////////////////
 425          void set_time( )   
 426          {
 427   1         write_ds(0x00,50);
C51 COMPILER V8.02   DS12C887                                                              07/27/2012 12:43:51 PAGE 8   

 428   1         write_ds(0x01,10); 
 429   1         write_ds(0x02,59);  
 430   1         write_ds(0x03,1);
 431   1         write_ds(0x04,9);
 432   1         write_ds(0x05,10);
 433   1         write_ds(0x06,4);
 434   1         write_ds(0x07,26);
 435   1         write_ds(0x08,7);            
 436   1         write_ds(0x09,12);
 437   1      
 438   1      }
 439          void init()
 440          {       
 441   1               uchar num;
 442   1               EA=1;
 443   1               EX0=1;
 444   1               IT0=1;
 445   1               flag1=0;
 446   1               s1num=0;
 447   1               lcden=0;
 448   1           write_ds(0x0A,0x20);
 449   1               write_ds(0x0B,0x26);
 450   1               set_time();
 451   1           write_com(0x38);
 452   1               write_com(0x0c);
 453   1               write_com(0x06);
 454   1           write_com(0x01); 
 455   1               write_com(0x81);
 456   1               for(num=0;num<10;num++) 
 457   1                       {
 458   2                       write_data(table1[num]);
 459   2                           delay(5);
 460   2                       }
 461   1               write_com(0x80+0x40+4);
 462   1               for(num=0;num<8;num++) 
 463   1                       {
 464   2                       write_data(table2[num]);
 465   2                           delay(5);
 466   2                       }
 467   1      }  
 468          
 469          //////////////////////////////////////////////////////////////
 470          void main()
 471          {
 472   1           init();
 473   1               gettime();
 474   1               display();
 475   1               while(1)
 476   1               {
 477   2                        keyscan();
 478   2                        if(flag_alarm==1)
 479   2                        {
 480   3                            di();
 481   3                                delay(100);
 482   3                                di();
 483   3                                delay(500);
 484   3                         }
 485   2                         if(flag==0&&flag1==0)
 486   2                         {
 487   3      
 488   3                            gettime();
 489   3                        display(); 
C51 COMPILER V8.02   DS12C887                                                              07/27/2012 12:43:51 PAGE 9   

 490   3              
 491   3                     }
 492   2               }
 493   1      }
 494          void ser() interrupt 0
 495          {
 496   1           uchar c;
 497   1               flag_alarm=1;
 498   1               c=read_ds(0x0c);
 499   1      } 
 500          
 501          
 502          
 503          
 504          
 505          
 506          
 507          
 508          
 509          
 510          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1381    ----
   CONSTANT SIZE    =     20    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     12       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =      2    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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