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

📄 lcd1602.lst

📁 1602字符液晶在89C52单片机上的应用实例和在proteus环境下的仿真实例!
💻 LST
📖 第 1 页 / 共 3 页
字号:
 424   2                      LCD_Print(0,1,"CHOICE FILE STOP");
 425   2              }
 426   1              else 
 427   1              {
C51 COMPILER V8.02   LCD1602                                                               08/11/2007 18:24:45 PAGE 8   

 428   2                      if(FILESTATE==0)LCD_Print(0,1,"            STOP");
 429   2                      else if(FILESTATE==1)LCD_Print(0,1,"            RUN "); 
 430   2                      else if(FILESTATE==2)LCD_Print(0,1,"           PAUSE");
 431   2              }
 432   1      }
 433          //文件选择界面
 434          void Filechoise()
 435          {
 436   1                
 437   1              uchar count = 0;
 438   1              uchar filename;
 439   1              uint  intertime;
 440   1              uint  cycletime;
 441   1              uchar i;
 442   1              uchar buf[5];
 443   1              count=key();
 444   1              filenum1=filenum;
 445   1              while(count!=10&&count!=14)
 446   1              {               
 447   2                      mianface(filenum);
 448   2                      if(count)
 449   2                      {
 450   3                              while(count==key());
 451   3                              switch(count)
 452   3                              {
 453   4                               case 12:               //X+
 454   4                                              if(filenum<=filetotal)filenum++;
 455   4                                              if(filenum>filetotal)filenum=1;
 456   4                                              break;
 457   4                               case 3:                //X-
 458   4                                              if(filenum>0)filenum--;
 459   4                                              if(filenum==0) filenum=filetotal;
 460   4                                              break;
 461   4                              case 6:                                         //循环
 462   4                                              Uart_putchar('c');
 463   4                                              Uart_putchar(filenum);
 464   4                                              cycset();
 465   4                                              break;
 466   4                              case 2:                                         //获取文件      增加验收功能
 467   4                                              i=0;
 468   4                                              RI=0;                                   
 469   4                                              Uart_putchar('1');
 470   4                                              LCD_Print(0,1,"GET FILE    STOP");
 471   4                                              Uart_putchar('y');
 472   4                                              filename=Uart_getchar();
 473   4                                              while(filename!='z')
 474   4                                              {       
 475   5                                                      i++;
 476   5                                                      while(filename==0)
 477   5                                                      {
 478   6                                                              Uart_putchar('y');
 479   6                                                      filename=Uart_getchar(); 
 480   6                                                      }
 481   5                                                      intertime=Uart_get_uint();
 482   5                                                      cycletime=Uart_get_uint();
 483   5                                                      buf[0]=(filename/100)%10+'0';
 484   5                                                      buf[1]=(filename/10)%10+'0';
 485   5                                                      buf[2]=filename%10+'0';
 486   5                                                      buf[3]=' ';
 487   5                                                      buf[4]='\n';
 488   5                                                      LCD_Print(13,1,buf);
 489   5                                                      AT24C02_write(i*5,filename);
C51 COMPILER V8.02   LCD1602                                                               08/11/2007 18:24:45 PAGE 9   

 490   5                                                      Delay1ms(5);
 491   5                                                      AT24C02_write(i*5+1,((intertime)>>8)&0xff);
 492   5                                                      Delay1ms(5);
 493   5                                                      AT24C02_write(i*5+2,(intertime)&0xff);
 494   5                                                      Delay1ms(5);
 495   5                                                      AT24C02_write(i*5+3,((cycletime)>>8)&0xff);
 496   5                                                      Delay1ms(5);
 497   5                                                      AT24C02_write(i*5+4,(cycletime)&0xff);
 498   5                                                      Delay1ms(5);                                            
 499   5                                                      Uart_putchar('y');
 500   5                                                      filename=Uart_getchar();        
 501   5                                              }
 502   4                                              filetotal=i;
 503   4                                              AT24C02_write(0x01,i);
 504   4                                              break;          
 505   4                               default:break;
 506   4                              }
 507   3                      }
 508   2                      count=key();    
 509   2              }
 510   1              if(count==14)
 511   1              {
 512   2                      Uart_putchar('c');
 513   2                      Uart_putchar(AT24C02_read(filenum*5));
 514   2              }
 515   1              if(count==10)
 516   1              {
 517   2                      filenum=filenum1;
 518   2              }
 519   1      }
 520          
 521          void main()
 522          {
 523   1              uchar count = 0;
 524   1              uchar a[8]={0,};
 525   1              uchar i=0;
 526   1              LCD_Initial();
 527   1              LCD_Print(0,0,"  www.nsxk.com  ");
 528   1              LCD_Print(0,1,"  LOADING.....  ");
 529   1              Uart_init();
 530   1              AT24C02_Rest();
 531   1              Delay1ms(1000);
 532   1              filenum=AT24C02_read(0x00);
 533   1              if(filenum>120)filenum=1;
 534   1              Delay1ms(1);
 535   1              filetotal=AT24C02_read(0x01);
 536   1              Delay1ms(1);    
 537   1              mianface(filenum);
 538   1              Uart_putstring("FILENAME work  \n");
 539   1              Uart_putstring("N=     T=      \n");
 540   1      
 541   1              while(1)
 542   1              {
 543   2                      count=key();
 544   2                      if(count)
 545   2                      {
 546   3                      while(count==key());
 547   3                      switch(count)
 548   3                      {
 549   4                              case 1:                                         //文件
 550   4                                      if(FILESTATE!=1)
 551   4                                      {
C51 COMPILER V8.02   LCD1602                                                               08/11/2007 18:24:45 PAGE 10  

 552   5                                              filechoice=1;
 553   5                                              Filechoise(); 
 554   5                                              filechoice=0;
 555   5                                              mianface(filenum);
 556   5                                      }
 557   4                                      break;
 558   4                              case 2:                                         //测试
 559   4                                      if(FILESTATE!=1)
 560   4                                      {
 561   5                                              xyzDisplay(0);
 562   5                                              mianface(filenum);
 563   5                                              
 564   5                                      }
 565   4                                       break;
 566   4                              case 6:                                         //循环
 567   4                                      if(FILESTATE!=1)
 568   4                                      {
 569   5                                              cycset();
 570   5                                              mianface(filenum);
 571   5                                      }
 572   4                                      break;
 573   4                              case 5:                                         //零点
 574   4                                      if(FILESTATE!=1)
 575   4                                      {       
 576   5                                              Uart_putchar('2');
 577   5                                              LCD_Print(6,1," GO ORIGIN");
 578   5                                              while(Uart_getchar()!='z');
 579   5                                              Uart_putchar('d');
 580   5                                              xyzDisplay(1);
 581   5      
 582   5                                              mianface(filenum);
 583   5                                      }
 584   4                                              break;          
 585   4                              case 13:           //开始
 586   4                                              if(FILESTATE==1)
 587   4                                                      FILESTATE=2;
 588   4                                              else 
 589   4                                              FILESTATE=1; 
 590   4                                              AT24C02_write(0x00,filenum);
 591   4                                              Uart_putchar('3');
 592   4                                              mianface(filenum);
 593   4                                      break;
 594   4                              case 7:    //复位
 595   4                                       if(FILESTATE!=1)
 596   4                                      {
 597   5                                              Uart_putchar('2');
 598   5                                              LCD_Print(6,1," GO ORIGIN");
 599   5                                              while(Uart_getchar()!='z');
 600   5                                              mianface(filenum);
 601   5                                      }       
 602   4                                      break;
 603   4                              case 9:    //停止
 604   4                                              Uart_putchar('4');
 605   4                                              FILESTATE=0;
 606   4                                              LCD_Print(6,1,"      STOP");
 607   4                                              mianface(filenum);      
 608   4                                      break;
 609   4                              default: break;
 610   4                              count=0;
 611   4                      }
 612   3                      }
 613   2               if(FILESTATE==1)  //文件在运行中
C51 COMPILER V8.02   LCD1602                                                               08/11/2007 18:24:45 PAGE 11  

 614   2               {
 615   3           if(!RI);// 检查是否文件运行结束
 616   3           RI=0;
 617   3           count=SBUF;
 618   3               if(count=='o')FILESTATE=0;
 619   3               count=0;
 620   3               }
 621   2              }
 622   1      }


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