📄 lprtpos1.c
字号:
{
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 + -