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

📄 计价器存储.lst

📁 刚学时编的小程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 402   3                              {
 403   4                                      led=1;
 404   4                                      a=0;
 405   4                                      lucheng[5]=0;
 406   4                                      lucheng[6]=18;
 407   4                                      lucheng[7]=0;
 408   4                      lucheng[0]=0; 
 409   4                      lucheng[1]=0;
 410   4                      lucheng[2]=18;
 411   4                      lucheng[3]=0;
 412   4                                      zongjia[0]=18;
 413   4                                      zongjia[1]=0;
 414   4                                      zongjia[5]=0;
 415   4                                      zongjia[6]=18;
 416   4                                      zongjia[7]=0;
 417   4                                      break;
 418   4                              } 
 419   3                      }
 420   2              }
 421   1      }
 422          
 423          gaijia()                                                        //改价子程序
 424          {
 425   1              a=2;                                                          //改价显示
 426   1              i=8;
 427   1              while(1)
C51 COMPILER V8.02   计价芲存储                                                            04/22/2007 20:47:35 PAGE 8   

 428   1              {
 429   2                      if(shangjian()==1)                                          //三键按下,退出程序
 430   2                      goto loop;
 431   2                      if(erjian()==1)                                             //二键按下,进入输密码程序
 432   2                      {
 433   3                              if(mi()==1)                                               //密码正确,跳出循环
 434   3                              {
 435   4                                      a=2;
 436   4                                      break; 
 437   4                              }
 438   3                              else 
 439   3                              {
 440   4                                      a=0;goto loop;                                          //密码错误,退出
 441   4                              }        
 442   3                      }
 443   2                      if(yijian()==1)                                             //按下一键,进入改密码单元
 444   2                      {
 445   3                              gaimi();
 446   3                              goto loop;
 447   3                      }
 448   2              }       
 449   1              for(i=7;i>=0;i--)                                             //循环8次
 450   1              {
 451   2                      if(i==5|i==2)   continue;                                     //如果是第二位或第五位,不改
 452   2                      if((i==7|i==4|i==1)&jiage[i]<18)  jiage[i]=18;              //一、四、七位显示小数点
 453   2                      while(1)
 454   2                      {       
 455   3                              if(shangjian()==1)                                        //按下三键,价格减1
 456   3                               {
 457   4                                       jiage[i]--;
 458   4                                       if(jiage[i]<0|jiage[i]==17)
 459   4                                       jiage[i]=jiage[i]+10;
 460   4                               }
 461   3                               if(erjian()==1)                                          //按下二键,价格加1
 462   3                               {
 463   4                                       jiage[i]++;
 464   4                                       if(jiage[i]==10|jiage[i]==28)
 465   4                                       jiage[i]=jiage[i]-10;
 466   4                               }
 467   3                               if(yijian()==1)        break;                                  //按下一键,移到下一位
 468   3                      }
 469   2              }
 470   1              wrtorom(jiage,8,8);
 471   1              jia=1;
 472   1              loop:;
 473   1              a=0;                                                          //退出后显示时间
 474   1              i=0;
 475   1      }
 476          
 477          void main()                                                     //主程序
 478          {
 479   1              led=1;
 480   1              TMOD=0x11;                                                                                                                    //初始化
 481   1              TH0=(65536-100)/256;
 482   1              TL0=(65536-100)%256;
 483   1              TH1=(65536-65000)/256;
 484   1              TL1=(65536-65000)%256;
 485   1              TR0=1;
 486   1              TR1=1;                                                                                          
 487   1              ET0=1;                                                                                          
 488   1              ET1=1;
 489   1              EA=1;
C51 COMPILER V8.02   计价芲存储                                                            04/22/2007 20:47:35 PAGE 9   

 490   1              PT1=1;
 491   1              P0=duanma[shijian[dis]] ;                                     //P0口输出段码
 492   1              P2=weima[dis];                                                                           //P2口输出位码
 493   1              if(jia==1)
 494   1              rdfromrom(jiage,8,8)    ;                                          
 495   1              while(1)
 496   1              {       
 497   2                      if(yijian()==1)                                                                           //一键按下,进入改时间程序
 498   2                      {
 499   3                              tiaoshi();
 500   3                      }        
 501   2                      if(erjian()==1)                                                                           //二键按下,进入计价程序
 502   2                      {
 503   3                               led=0;
 504   3                               jijia();
 505   3                      } 
 506   2                      if(shangjian()==1)                                                                      //三键按下,进入改价格程序
 507   2                      {
 508   3                              gaijia();
 509   3                      }
 510   2                      if(kaiguan()==1)                                                                          //白天,晚上转换开关
 511   2                      {
 512   3                              m=1;
 513   3                      }
 514   2                      else m=0;
 515   2              }
 516   1      }
 517          
 518          void t0(void) interrupt 1 using 1                                                                   //定时器0中断
 519          {
 520   1              
 521   1              TH1=(65536-65000)/256;
 522   1              TL1=(65536-65000)%256;
 523   1              tcnt++;
 524   1              ms++;
 525   1              if(ms==8) 
 526   1              {
 527   2                      ms=0;
 528   2                      switch(a)                                                   //显示模块开关
 529   2                      {       
 530   3                              case 0: if((i==dis|(i-1)==dis)&i>0)                       //0:显示时间
 531   3                                              {
 532   4                                                      if(tcnt<1500)                                       //闪动程序
 533   4                                                      {
 534   5                                                              P0=duanma[17];
 535   5                                                      }
 536   4                                                      else P0=duanma[shijian[dis]];
 537   4                                                      break;
 538   4                                              }               
 539   3                                              else   P0=duanma[shijian[dis]];         break;
 540   3                              case 1: P0=duanma[lucheng[dis]];    break;                //1:显示路程
 541   3                              case 2: if(i==dis&i>=0)                                   //2:显示价格
 542   3                                              {
 543   4                                                      if(tcnt<1500)
 544   4                                                      {
 545   5                                                              P0=duanma[17];
 546   5                                                      }
 547   4                                                      else P0=duanma[jiage[dis]] ;    break;
 548   4                                              }               
 549   3                                              else   P0=duanma[jiage[dis]] ;    break;
 550   3                              case 3: if(shijian[1]%2==1)                                   //3:路程,总价循环显示
 551   3                                              {
C51 COMPILER V8.02   计价芲存储                                                            04/22/2007 20:47:35 PAGE 10  

 552   4                                                      P0=duanma[lucheng[dis]] ;        break;
 553   4                                              }        
 554   3                                              else    P0=duanma[zongjia[dis]];        break;
 555   3                              case 4: P0=duanma[zongjia[dis]];        break;                  //4:总价显示
 556   3                              case 5: if(i==dis&i>=0)                                   //5:输密码显示
 557   3                                              {
 558   4                                                      if(tcnt<1500)
 559   4                                                      {
 560   5                                                              P0=duanma[17];
 561   5                                                      }
 562   4                                                      else P0=duanma[mima[dis]];
 563   4                                                      break;
 564   4                                              }               
 565   3                                              else   P0=duanma[mima[dis]];    break;
 566   3                              case 6: if(i==dis&i>=0)                                   //6:改密码显示
 567   3                                              {
 568   4                                                      if(tcnt<1500)
 569   4                                                      {
 570   5                                                              P0=duanma[17];
 571   5                                                      }
 572   4                                                      else P0=duanma[mima1[dis]];
 573   4                                                      break;
 574   4                                              }               
 575   3                                              else   P0=duanma[mima1[dis]];   break;
 576   3                      }
 577   2                      P2=weima[dis];                                              //位码扫描
 578   2                      dis++;
 579   2                      if(dis==8)
 580   2                      {
 581   3                              dis=0;
 582   3                      }
 583   2              }
 584   1              
 585   1              if(tcnt==5000)                                                
 586   1              {       
 587   2                      tcnt=0;
 588   2                      if(a==1|a==3)                                                  //计数器开始状态,计时间
 589   2                      {
 590   3                              lucheng[0]++;
 591   3                              if(lucheng[0]==10)
 592   3                              {
 593   4                                      lucheng[0]=0;
 594   4                                      lucheng[1]++;
 595   4                                      if(lucheng[1]==6)
 596   4                                      {
 597   5                                              lucheng[1]=0;
 598   5                                              lucheng[2]++;
 599   5                                              if(lucheng[2]==28)
 600   5                                              {
 601   6                                                      lucheng[2]=18;
 602   6                                                      lucheng[3]++;
 603   6                                                      if(lucheng[3]==6)
 604   6                                                      lucheng[3]=0;
 605   6                                              }
 606   5                                      }

⌨️ 快捷键说明

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