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

📄 lprtpos1.lst

📁 原创一个简单打小票POS机源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 312   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 313   1      p37=0;
 314   1      P2=P2&0xe0;vp15=0;
 315   1      P0=led[ time[2] % 16];
 316   1      p37=1;
 317   1      vp21=1;
 318   1      delay(1); 
 319   1      
 320   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 321   1      p37=0;
 322   1      P2=P2&0xe0;vp15=0;
 323   1      if ((nmm / 50)==0) {P0=0x08;} else {P0=0x00;}
 324   1      p37=1;
 325   1      vp21=1;
 326   1      delay(1); 
 327   1      
 328   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 329   1      p37=0;
 330   1      P2=P2&0xe0;vp15=0;
 331   1      P0=led[ time[1] / 16];
 332   1      p37=1;
 333   1      vp22=1;
 334   1      delay(1); 
 335   1      
 336   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 337   1      p37=0;
 338   1      P2=P2&0xe0;vp15=0;
 339   1      P0=led[ time[1] % 16];
 340   1      p37=1;
 341   1      vp23=1;
 342   1      delay(1); 
 343   1      
 344   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 345   1      p37=0;
 346   1      P2=P2&0xe0;vp15=0;
 347   1      P0=0;
 348   1      p37=1;
 349   1      vp24=1;
 350   1      delay(1); 
 351   1      
 352   1      /*
 353   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 354   1      p37=0;
 355   1      P2=P2&0xe0;vp15=0;
 356   1      P0=0;
 357   1      p37=1;
 358   1      vp15=1;
 359   1      delay(1); 
 360   1      */
 361   1      }
 362           
 363          /*pad program*/
 364          UINT8 kbscanR(void)
 365          {
C51 COMPILER V7.06   LPRTPOS1                                                              01/08/2007 10:43:11 PAGE 7   

 366   1      UINT8 jjz;
 367   1      jjz=0;
 368   1      P1=0x9f;
 369   1      P2=P2&0x1f;
 370   1      if ((P1&0x9f)!=0x9f) 
 371   1       {
 372   2         delay(3);
 373   2          if  ((P1&0x9f)!=0x9f) 
 374   2          {
 375   3                   switch (P1&0x9f)
 376   3                   {
 377   4                   case 0x9e:  /* 1、2、3*/
 378   4                      jjz=1;break;
 379   4                   case 0x9d:  /*4、5、6*/
 380   4                      jjz=2;break;
 381   4                   case 0x9b:  /*7、8、9*/
 382   4                      jjz=3;break;
 383   4                   case 0x97:   /*0、A、B*/
 384   4                      jjz=4;break;
 385   4                   case 0x8f:   /*C、F、D*/
 386   4                      jjz=5;break;        
 387   4                   case 0x1f:   /*回车键*/                    
 388   4                     jjz=6; lcbj=1; break;
 389   4                   case 0x1e:     /*回车+1、2、3*/
 390   4                    jjz=7;break;
 391   4                   case 0x1d:     /*回车+4、5、6*/
 392   4                    jjz=8;break;
 393   4                  case 0x1b:      /*回车+7、8、9*/
 394   4                    jjz=9;break;
 395   4                  case 0x17:          /*回车+0、A、B*/
 396   4                    jjz=10;break;
 397   4                 case 0x0f:           /*回车+C、F、D*/ 
 398   4                   jjz=11;break;        
 399   4                   default :
 400   4                   jjz=0;break;  
 401   4                   }         
 402   3          }
 403   2       }
 404   1       
 405   1       return(jjz);  
 406   1           
 407   1      }
 408          
 409          UINT8 kbscanL(void)
 410          {
 411   1      UINT8 jjz;
 412   1      jjz=0;
 413   1      
 414   1      P2=P2|0xe0;
 415   1      P1=P1&0x60;
 416   1      if ((P2&0xe0)!=0xe0) 
 417   1       {
 418   2         delay(3);
 419   2          if ((P2&0xe0)!=0xe0) 
 420   2          {
 421   3                   switch (P2&0xe0)
 422   3                   {
 423   4                   case 0x60:       /*1、4、7、0、C*/
 424   4                      jjz=1;break;
 425   4                   case 0xa0:       /*2、5、8、A、F*/
 426   4                      jjz=2;break;
 427   4                   case 0xc0:      /*3、6、9、B、D*/
C51 COMPILER V7.06   LPRTPOS1                                                              01/08/2007 10:43:11 PAGE 8   

 428   4                      jjz=3;break;
 429   4                   default :
 430   4                   jjz=0;break;  
 431   4                   } 
 432   3          }
 433   2       }
 434   1       
 435   1       return(jjz);  
 436   1           
 437   1      }
 438          
 439          UINT8 kbscan(void)
 440          {
 441   1         UINT8 jz,row,lin;
 442   1        row=kbscanR();
 443   1       lin=kbscanL();
 444   1        jz=keytab[lin][row]; 
 445   1        if (jz!=0xff) { flag=1;return(jz);}
 446   1        else return(0xff);
 447   1        
 448   1      }
 449          
 450          /*padprogram*/
 451          void errshow(void)
 452          {
 453   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 454   1      p37=0;P2=P2&0xe0;vp15=0;P0=0x73;vp21=1;p37=1;delay(1);
 455   1      
 456   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff; 
 457   1      p37=0;P2=P2&0xe0;vp15=0;P0=0xf5;vp22=1;p37=1;delay(1); 
 458   1      
 459   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 460   1      p37=0;P2=P2&0xe0;vp15=0;P0=0xf5;vp23=1;p37=1;delay(1);
 461   1      
 462   1      }
 463          /*显示suc子程序*/
 464          void setpassok(void)
 465          {
 466   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 467   1      p37=0;P2=P2&0xe0;vp15=0;P0=0x76;vp21=1;p37=1;delay(1); 
 468   1      
 469   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 470   1      p37=0;P2=P2&0xe0;vp15=0;P0=0xa7;vp22=1;p37=1;delay(1); 
 471   1      
 472   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 473   1      p37=0;P2=P2&0xe0;vp15=0;P0=0x63;vp23=1;p37=1;delay(1); 
 474   1      
 475   1      }
 476          
 477          
 478          /*时钟设置*/
 479          
 480          /*时钟设置显示子程序2006-09-28*/
 481          void clockshow(UINT8 clockbj,clockH,clockL)
 482          {
 483   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 484   1      p37=0;P2=P2&0xe0;vp15=0;P0=clockbj;p37=1;vp20=1;delay(1); 
 485   1      
 486   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 487   1      p37=0;P2=P2&0xe0;vp15=0;P0=0x10;vp21=1;p37=1;delay(1); 
 488   1      
 489   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
C51 COMPILER V7.06   LPRTPOS1                                                              01/08/2007 10:43:11 PAGE 9   

 490   1      p37=0;P2=P2&0xe0;vp15=0;P0=clockH;vp22=1;p37=1;delay(1); 
 491   1      
 492   1      
 493   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 494   1      p37=0;P2=P2&0xe0;vp15=0;P0=clockL;vp23=1;p37=1;delay(1); 
 495   1      
 496   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 497   1      p37=0;P2=P2&0xe0;vp15=0;P0=0xf4;vp15=1;p37=1;delay(1); 
 498   1      
 499   1      p37=0;P2=P2&0xe0;vp15=0;P0=0;p37=1;vp15=1;P2=0xff;
 500   1      p37=0;P2=P2&0xe0;vp15=0;P0=0xf5;vp24=1;p37=1;delay(1); 
 501   1      
 502   1      
 503   1      }
 504          
 505          
 506          /*设置时钟子程序  0--year  1--month  2--day  3--week 4-- hour  5--min  
 507          
 508          按BCD码格式存放的日期    2006-09-28*/
 509          void  setclock(void)
 510          {
 511   1       UINT8 rq[6],ncount,ecount;
 512   1       bit errbj;
 513   1       UINT8 i,pjz,scount;
 514   1       UINT8 rqbj,rqH,rqL;
 515   1       UINT16  yrq;
 516   1         
 517   1            P0=0;P2=P2&0xf6;P2=P2|0x09;
 518   1            scount=ncount=0;pjz=0xff;rqbj=0x00;rqH=rqL=26;
 519   1           for (i=0;i<6;i++) {rq[i]=0x00;}
 520   1                          
 521   1                  while (scount==0)  
 522   1                  {
 523   2                   clockshow(led[rqbj],led[rqH],led[rqL]);
 524   2                  if ((flag==0)&&(lcbj==0))
 525   2                  {
 526   3                   pjz=kbscan();
 527   3                      if ((lcbj==0)&&(pjz!=0xff))
 528   3                      {
 529   4                          while(flag==1)
 530   4                          {
 531   5                             P1=0x9f;
 532   5                             P2=P2&0x1f;
 533   5                         if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
 534   5                          }
 535   4                      }            
 536   3                  }
 537   2                else {
 538   3                 P1=0x9f;
 539   3                 P2=P2&0x1f;
 540   3                 if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
 541   3                  }    
 542   2                          
 543   2                   if ((pjz<0x0a)&&(flag==0))
 544   2                    {         
 545   3                    if (ncount==0) {rqH=pjz;}
 546   3                    if (ncount==1) {rqL=pjz;}
 547   3                     ncount++;
 548   3                     pjz=0xff;
 549   3                    }
 550   2                 if (ncount>=2)  ncount=0;
 551   2                   if (pjz==0x0b)
C51 COMPILER V7.06   LPRTPOS1                                                              01/08/2007 10:43:11 PAGE 10  

 552   2                    {  
 553   3                      ncount=0; errbj=0;pjz=0xff;
 554   3                      
 555   3                         rq[0]=(rqH<<4)|rqL;
 556   3                        if ((rq[0]<0x06)||(rq[0]>0x99)) {errbj=1;ecount++;}
 557   3                                                                   
 558   3                        if (errbj==0)                  
 559   3                           {
 560   4                             scount++;ncount=0;rqbj=0x01;
 561   4                             }
 562   3                          else 
 563   3                          {
 564   4                          for (i=0;i<100;i++) errshow();
 565   4                            P0=0;P2=P2&0xf6;P2=P2|0x09;      
 566   4                           delay(200);
 567   4                          for (i=0;i<100;i++) errshow();
 568   4                            P0=0;P2=P2&0xf6;P2=P2|0x09;      
 569   4                           delay(200);
 570   4                          for (i=0;i<100;i++) errshow();     
 571   4                            if (ecount>2) break;                  
 572   4                          }  
 573   3                                             
 574   3                     }       
 575   2                  if (pjz==0x0e) {pjz=0xff;break; }     
 576   2                  }
 577   1                    
 578   1                  ncount=0;  pjz=0xff;
 579   1                  rqH=rqL=26;ecount=0;
 580   1      
 581   1                  while (scount==1)  
 582   1                  {
 583   2                   clockshow(led[rqbj],led[rqH],led[rqL]);
 584   2                  if ((flag==0)&&(lcbj==0))
 585   2                  {
 586   3                   pjz=kbscan();
 587   3                      if ((lcbj==0)&&(pjz!=0xff))
 588   3                      {
 589   4                          while(flag==1)
 590   4                          {
 591   5                             P1=0x9f;
 592   5                             P2=P2&0x1f;
 593   5                         if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
 594   5      
 595   5                          }
 596   4                      }     
 597   3                   
 598   3                  }
 599   2                else {
 600   3                 P1=0x9f;
 601   3                 P2=P2&0x1f;
 602   3                 if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
 603   3                  }    
 604   2                          
 605   2                   if ((pjz<0x0a)&&(flag==0))
 606   2                    {         
 607   3                    if (ncount==0) {rqH=pjz;}
 608   3                    if (ncount==1) {rqL=pjz;}
 609   3                     ncount++;
 610   3                     pjz=0xff;
 611   3                    }
 612   2                 if (ncount>=2)  ncount=0;
 613   2                   if (pjz==0x0b)
C51 COMPILER V7.06   LPRTPOS1                                                              01/08/2007 10:43:11 PAGE 11  

 614   2                    {  
 615   3                      ncount=0; errbj=0;pjz=0xff;
 616   3                      
 617   3                         rq[1]=(rqH<<4)|rqL;
 618   3                        if ((rq[1]>0x12)||(rq[1]<0x01)) {errbj=1;ecount++;}
 619   3                                                                   
 620   3                        if (errbj==0)                  
 621   3                           {
 622   4                             scount++;ncount=0;rqbj=scount;
 623   4                             }
 624   3                          else 
 625   3                          {
 626   4                          for (i=0;i<100;i++) errshow();
 627   4                            P0=0;P2=P2&0xf6;P2=P2|0x09;      
 628   4                           delay(200);
 629   4                          for (i=0;i<100;i++) errshow();
 630   4                            P0=0;P2=P2&0xf6;P2=P2|0x09;      
 631   4                           delay(200);

⌨️ 快捷键说明

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