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

📄 lprtpos1.c

📁 原创一个简单打小票POS机源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
	            {
	               P1=0x9f;
   		       P2=P2&0x1f;
		   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
	            }
	        }     	     
	    }
	  else {
	   P1=0x9f;
	   P2=P2&0x1f;
	   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
	    }    
	            
             if ((pjz<0x0a)&&(flag==0))
              {         
              if (ncount==0) {rqH=pjz;}
              if (ncount==1) {rqL=pjz;}
               ncount++;
               pjz=0xff;
              }
           if (ncount>=2)  ncount=0;
             if (pjz==0x0b)
              {  
                ncount=0; errbj=0;pjz=0xff;
                
                   rq[0]=(rqH<<4)|rqL;
                  if ((rq[0]<0x06)||(rq[0]>0x99)) {errbj=1;ecount++;}
                                                             
                  if (errbj==0)                  
                     {
                       scount++;ncount=0;rqbj=0x01;
                       }
                    else 
                    {
	            for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
         	    for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
		    for (i=0;i<100;i++) errshow();     
		      if (ecount>2) break;                  
                    }  
                                       
               }       
            if (pjz==0x0e) {pjz=0xff;break; }     
	    }
	      
	    ncount=0;  pjz=0xff;
            rqH=rqL=26;ecount=0;

	    while (scount==1)  
	    {
	     clockshow(led[rqbj],led[rqH],led[rqL]);
            if ((flag==0)&&(lcbj==0))
  	    {
	     pjz=kbscan();
	        if ((lcbj==0)&&(pjz!=0xff))
	        {
	            while(flag==1)
	            {
	               P1=0x9f;
   		       P2=P2&0x1f;
		   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}

	            }
	        }     
	     
	    }
	  else {
	   P1=0x9f;
	   P2=P2&0x1f;
	   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
	    }    
	            
             if ((pjz<0x0a)&&(flag==0))
              {         
              if (ncount==0) {rqH=pjz;}
              if (ncount==1) {rqL=pjz;}
               ncount++;
               pjz=0xff;
              }
           if (ncount>=2)  ncount=0;
             if (pjz==0x0b)
              {  
                ncount=0; errbj=0;pjz=0xff;
                
                   rq[1]=(rqH<<4)|rqL;
                  if ((rq[1]>0x12)||(rq[1]<0x01)) {errbj=1;ecount++;}
                                                             
                  if (errbj==0)                  
                     {
                       scount++;ncount=0;rqbj=scount;
                       }
                    else 
                    {
	            for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
         	    for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
		    for (i=0;i<100;i++) errshow();     
		      if (ecount>2) break;                  
                    }  
                                       
                }       
            if (pjz==0x0e) {pjz=0xff;break; }     

	    }


	    ncount=0;  pjz=0xff;
            rqH=rqL=26;ecount=0;
	    while (scount==2)  
	    {
	     clockshow(led[rqbj],led[rqH],led[rqL]);
            if ((flag==0)&&(lcbj==0))
  	    {
	     pjz=kbscan();
	        if ((lcbj==0)&&(pjz!=0xff))
	        {
	            while(flag==1)
	            {
	               P1=0x9f;
   		       P2=P2&0x1f;
		   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}

	            }
	        }     
	     
	    }
	  else {
	   P1=0x9f;
	   P2=P2&0x1f;
	   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
	    }    
	            
             if ((pjz<0x0a)&&(flag==0))
              {         
              if (ncount==0) {rqH=pjz;}
              if (ncount==1) {rqL=pjz;}
               ncount++;
               pjz=0xff;
              }
           if (ncount>=2)  ncount=0;
             if (pjz==0x0b)
              {  
                ncount=0; errbj=0;pjz=0xff;
                
                   rq[2]=(rqH<<4)|rqL;
                   if (rq[1]==0x02)
                   {/*thy*/
                     yrq=0x2000+rq[0];
                     if ((yrq %4)==0)   {if (rq[2]>0x29) {errbj=1;ecount++;}}
                        else if ((yrq%4)!=0) { if (rq[2]>0x28) {errbj=1;ecount++;}}

                    }
                  else if ((rq[1]==0x04)||(rq[1]==0x06)||(rq[1]==0x09)||(rq[1]==0x11))
                 {if (rq[2]>0x30) {errbj=1;ecount++;}}
                                                             
                  else if ((rq[1]==0x01)||(rq[1]==0x03)||(rq[1]==0x05)||(rq[1]==0x07)||(rq[1]==0x08)||(rq[1]==0x10)||(rq[1]==0x12))
                 {if (rq[2]>0x31) {errbj=1;ecount++;}}
                  if (errbj==0)                  
                     {
                       scount++;ncount=0;rqbj=scount;
                       }
                    else 
                    {
	            for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
         	    for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
		    for (i=0;i<100;i++) errshow();     
		      if (ecount>2) break;                  
                    }  
                                       
                }       
            if (pjz==0x0e) {pjz=0xff;break; }     

	    }


	    ncount=0;  pjz=0xff;
            rqH=0;rqL=26;ecount=0;

	    while (scount==3)  
	    {
	     clockshow(led[rqbj],led[rqH],led[rqL]);
            if ((flag==0)&&(lcbj==0))
  	    {
	     pjz=kbscan();
	        if ((lcbj==0)&&(pjz!=0xff))
	        {
	            while(flag==1)
	            {
	               P1=0x9f;
   		       P2=P2&0x1f;
		   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}

	            }
	        }     
	     
	    }
	  else {
	   P1=0x9f;
	   P2=P2&0x1f;
	   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
	    }    
	            
             if ((pjz<0x0a)&&(flag==0))
              {         
               rqL=pjz;
               pjz=0xff;
              }
             if (pjz==0x0b)
              {  
                ncount=0; errbj=0;pjz=0xff;
                
                   rq[3]=rqL;
                  if (rq[3]>0x07) {errbj=1;ecount++;}
                                                             
                  if (errbj==0)                  
                     {
                       scount++;ncount=0;rqbj=scount;
                       }
                    else 
                    {
	            for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
         	    for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
		    for (i=0;i<100;i++) errshow();     
		      if (ecount>2) break;                  
                    }  
                                       
                }       
            if (pjz==0x0e) {pjz=0xff;break; }     

	    }



	    ncount=0;  pjz=0xff;
            rqH=rqL=26;ecount=0;

	    while (scount==4)  
	    {
	     clockshow(led[rqbj],led[rqH],led[rqL]);
            if ((flag==0)&&(lcbj==0))
  	    {
	     pjz=kbscan();
	        if ((lcbj==0)&&(pjz!=0xff))
	        {
	            while(flag==1)
	            {
	               P1=0x9f;
   		       P2=P2&0x1f;
		   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}

	            }
	        }     
	     
	    }
	  else {
	   P1=0x9f;
	   P2=P2&0x1f;
	   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
	    }    
	            
             if ((pjz<0x0a)&&(flag==0))
              {         
              if (ncount==0) {rqH=pjz;}
              if (ncount==1) {rqL=pjz;}
               ncount++;
               pjz=0xff;
              }
           if (ncount>=2)  ncount=0;
             if (pjz==0x0b)
              {  
                ncount=0; errbj=0;pjz=0xff;
                
                   rq[4]=(rqH<<4)|rqL;
                  if (rq[4]>0x23) {errbj=1;ecount++;}
                                                             
                  if (errbj==0)                  
                     {
                       scount++;ncount=0;rqbj=scount;
                       }
                    else 
                    {
	            for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
         	    for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
		    for (i=0;i<100;i++) errshow();     
		      if (ecount>2) break;                  
                    }  
                                       
                }       
            if (pjz==0x0e) {pjz=0xff;break; }     

	    }



	    ncount=0;  pjz=0xff;
            rqH=rqL=26;ecount=0;

	    while (scount==5)  
	    {
	     clockshow(led[rqbj],led[rqH],led[rqL]);
            if ((flag==0)&&(lcbj==0))
  	    {
	     pjz=kbscan();
	        if ((lcbj==0)&&(pjz!=0xff))
	        {
	            while(flag==1)
	            {
	               P1=0x9f;
   		       P2=P2&0x1f;
		   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}

	            }
	        }     
	     
	    }
	  else {
	   P1=0x9f;
	   P2=P2&0x1f;
	   if  ((P1&0x9f)==0x9f) {flag=0; lcbj=0;}
	    }    
	            
             if ((pjz<0x0a)&&(flag==0))
              {         
              if (ncount==0) {rqH=pjz;}
              if (ncount==1) {rqL=pjz;}
               ncount++;
               pjz=0xff;
              }
           if (ncount>=2)  ncount=0;
             if (pjz==0x0b)
              {  
                ncount=0; errbj=0;pjz=0xff;
                
                   rq[5]=(rqH<<4)|rqL;
                  if (rq[5]>0x59) {errbj=1;ecount++;}
                                                             
                  if (errbj==0)                  
                     {
                      // scount++;ncount=0;rqbj=scount;
                     /*向时钟芯片中写入暂不写入  thy*/
                      // year=(rq[0]>>4)*10+(rq[0]&0x0f);month=(rq[1]>>4)*10+(rq[1]&0x0f);day=(rq[2]>>4)*10+(rq[2]&0x0f);
                       time[4]=rq[3];
					   time[6]=rq[0];time[5]=rq[1];time[3]=rq[2];
                      // time[2]=(rq[4]>>4)*10+(rq[4]&0x0f);time[1]=(rq[5]>>4)*10+(rq[5]&0x0f);
                      time[2]=rq[4];time[1]=rq[5];
                      //  rq[4]=hour;rq[5]=min;
                       set_time(time);
                           for (i=0;i<200;i++)  setpassok();
			  P0=0;P2=P2&0xf6;P2=P2|0x09;      
			     delay(200);
			for (i=0;i<200;i++)  setpassok();
		           P0=0;P2=P2&0xf6;P2=P2|0x09;      
                           delay(200);
                        for (i=0;i<200;i++)  setpassok();
                        break;


                       }
                    else 
                    {
	            for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
         	    for (i=0;i<100;i++) errshow();
		      P0=0;P2=P2&0xf6;P2=P2|0x09;      
		     delay(200);
		    for (i=0;i<100;i++) errshow();     
		      if (ecount>2) break;                  
                    }  
                                       
                }       
            if (pjz==0x0e) {pjz=0xff;break; }  
                          
    }

}


/*时钟设置*/
/*STC89CXXX的EEPROM读写*/
void noable(void)
{
ISP_CONTR=0x00;
ISP_CMD=0x00;
ISP_TRIG=0x00;
EA=0;
}

void erase(UINT16 addr)
{
ISP_CONTR=0x81;
ISP_CMD=0x03;
ISP_ADDRH=(UINT8)(addr>>8);
ISP_ADDRL=(UINT8)(addr&0x00ff);
EA=0;
ISP_TRIG=0x46;
ISP_TRIG=0xB9;
EA=1;
noable();

}
void wwr(UINT16 addr,UINT8 dd)
{
ISP_CONTR=0x81;
ISP_CMD=0x02;
ISP_ADDRH=(UINT8)(addr>>8);
ISP_ADDRL=(UINT8)(addr&0x00ff);
ISP_DATA=dd;
EA=0;
ISP_TRIG=0x46;
ISP_TRIG=0xB9;
_nop_();
EA=1;
noable();
}

UINT8 wrd(UINT16 addr)
{
UINT8 xx;
ISP_CONTR=0x81;
ISP_CMD=0x01;
ISP_ADDRH=(UINT8)(addr>>8);
ISP_ADDRL=(UINT8)(addr&0x00ff);
EA=0;
ISP_TRIG=0x46;
ISP_TRIG=0xB9;
_nop_();
xx=ISP_DATA;
EA=1;
noable();
return (xx);        
}

/*STC89CXXX的EEPROM读写*/

 /*day print clear?*/
 void cleaday(void)
{
UINT8 pyear,pmonth,pday,sday,smonth,syear,x1,shour,smin,phour,pmin,yy1,yy2,yy3;
bit pokbj;

yy1=wrd(0x6a00);
yy2=wrd(0x6a01);
yy3=wrd(0x6a02);
/*xreport报表后保存的日期*/
   pmin=wrd(0x5601);
 delay(1);
   phour=wrd(0x5602);
 delay(1);

   pday=wrd(0x5603);
 delay(1);
   pmonth=wrd(0x5605);
 delay(1);
   pyear=wrd(0x5606);
 delay(1);

/*每次日累计后存放的日期*/

   smin=wrd(0x5409);
 delay(1);
   shour=wrd(0x540a);
 delay(1);

   sday=wrd(0x540b);
 delay(1);

   smonth=wrd(0x540d);
 delay(1);
   syear=wrd(0x540e); 
 delay(1);

pokbj=0;/**/
get_time(time);

if ((yy1==yy2==yy3==0) &&(pday!=time[3])) {pokbj=1;}

/*
if (syear==pyear)
{

	if (pmonth>smonth) {pokbj=1;}

	else if (pmonth==smonth)
		{
	       if (pday>sday) {pokbj=1; }
           else if((pday==sday)&&(pday<time[3]))
             {         
                   if (phour<shour) {pokbj=1;}
                  else if((phour==shour)&&(pmin>=smin)) {pokbj=1;}
             }
	
       }
	
}
else if (syear<pyear)
{
pokbj=1;
}
*/
if (pokbj==1)
{
     for (x1=0;x1<8;x1++)
     {
     erase(0x5400+x1*512);delay(2);
     zdmoney[x1]=umoney1[x1]=umoney2[x1]=umoney3[x1]=umoney4[x1]=umoney5[x1]=umoney6[x1]=0;
     }
      for (x1=0;x1<8;x1++) 
      {
        wwr(0x5400+x1,0);
        wwr(0x5800+x1,0);

⌨️ 快捷键说明

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