📄 lprtpos.c
字号:
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[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 pmonth,phour,pmin,pday,shour,smin,sday,smonth,x1;
bit pokbj;
phour=wrd(0x5602);
pmin=wrd(0x5601);
pday=wrd(0x5603);
pmonth=wrd(0x5605);
shour=wrd(0x540a);
smin=wrd(0x5409);
sday=wrd(0x540b);
smonth=wrd(0x540d);
/*
for (x1=0;x1<255;x1++) {clockshow(led[pday],led[pmonth],led[phour]);delay(3);}
delay(20);
for (x1=0;x1<255;x1++) {clockshow(led[pday],led[pmonth],led[phour]);delay(3);}
delay(20);
for (x1=0;x1<255;x1++) {clockshow(led[pday],led[pmonth],led[phour]);delay(3);}
delay(20);
for (x1=0;x1<255;x1++) {clockshow(led[sday],led[smonth],led[shour]);delay(3);}
delay(20);
for (x1=0;x1<255;x1++) {clockshow(led[sday],led[smonth],led[shour]);delay(3);}
delay(20);
for (x1=0;x1<255;x1++) {clockshow(led[sday],led[smonth],led[shour]);delay(3);}
*/
pokbj=0;/*如此判断只要跨月就让其累加*/
if ((pmonth==smonth)&&(pday>sday))
{
pokbj=1;
}
else if ((pmonth==smonth)&&(pday==sday)&&(phour>shour))
{
pokbj=1;
}
else if ((pmonth==smonth)&&(pday==sday)&&(phour==shour)&&(pmin>=smin))
{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);
wwr(0x5a00+x1,0);
wwr(0x5c00+x1,0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -