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

📄 计价器.lst

📁 刚学时编的小程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
 390   3                      }
 391   2                      if(shangjian()==1)                                          //按下三键,停止
 392   2                      {
 393   3                              k=~k;
 394   3                              if(k==1)                                                  //第一次按下,停止计价
 395   3                              {
 396   4                                      TR1=0;
 397   4                                      a=4;
 398   4                              }
 399   3                              if(k==0)                                                  //第二次按下,显示时间,数据清0
 400   3                              {
 401   4                                      a=0;
 402   4                                      lucheng[5]=0;
 403   4                                      lucheng[6]=18;
 404   4                                      lucheng[7]=0;
 405   4                                      lucheng[0]=0; 
 406   4                                      lucheng[1]=0;
 407   4                                      lucheng[2]=18;
 408   4                                      lucheng[3]=0;
 409   4                                      zongjia[0]=18;
 410   4                                      zongjia[1]=0;
 411   4                                      zongjia[5]=0;
 412   4                                      zongjia[6]=18;
 413   4                                      zongjia[7]=0;
 414   4                                      break;
 415   4                              } 
 416   3                      }
 417   2              }
 418   1      }
 419          
 420          gaijia()                                                        //改价子程序
 421          {
 422   1              a=2;                                                          //改价显示
 423   1              i=8;
 424   1              while(1)
 425   1              {
 426   2                      if(shangjian()==1)                                          //三键按下,退出程序
 427   2                      goto loop;
C51 COMPILER V8.02   计价芲                                                                04/12/2007 08:50:21 PAGE 8   

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

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

 552   4                                                      else P0=duanma[mima[dis]];
 553   4                                                      break;
 554   4                                              }               
 555   3                                              else   P0=duanma[mima[dis]];    break;
 556   3                              case 6: if(i==dis&i>=0)                                   //6:改密码显示
 557   3                                              {
 558   4                                                      if(tcnt<1500)
 559   4                                                      {
 560   5                                                              P0=duanma[17];
 561   5                                                      }
 562   4                                                      else P0=duanma[mima1[dis]];
 563   4                                                      break;
 564   4                                              }               
 565   3                                              else   P0=duanma[mima1[dis]];   break;
 566   3                      }
 567   2                      P2=weima[dis];                                              //位码扫描
 568   2                      dis++;
 569   2                      if(dis==8)
 570   2                      {
 571   3                              dis=0;
 572   3                      }
 573   2              }
 574   1              
 575   1              if(tcnt==3685)                                                
 576   1              {       
 577   2                      if(TR1==1)                                                  //计数器开始状态,计时间
 578   2                      {
 579   3                              lucheng[0]++;
 580   3                              if(lucheng[0]==10)
 581   3                              {
 582   4                                      lucheng[0]=0;
 583   4                                      lucheng[1]++;
 584   4                                      if(lucheng[1]==6)
 585   4                                      {
 586   5                                              lucheng[1]=0;
 587   5                                              lucheng[2]++;
 588   5                                              if(lucheng[2]==28)

⌨️ 快捷键说明

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