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

📄 计价器存储.lst

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

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

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

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

⌨️ 快捷键说明

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