📄 diss_s.c
字号:
case 2:
if(PassWord1())break;;
DailyCollect();
fiscal();
break;
case 3:
base_info();
break;
case 4:
cls();
DisHzLinYm(" 1.发票海量检测",Col1);
DisHzLinYm(" 2.硬件检测",Col2);
DisHzLinYm(" 3.日累计模拟测试",Col3);
GetKey();
switch(keyc)
{
case 1:
if(PassWord(2))break;
AutoInvoiceCHK();
break;
case 2:
check();
break;
case 3:
sys_time.year=9;
sys_time.month=0x12;
sys_time.date=0x30;
Writetime1();
cls();
DisHzLinYm(" 日累计模拟生成中...",Col2);
DailyCollect();
break;
}
break;
case 5:
DisHzLinYm("1.票号查询2.开票日期查询",Col1);
DisHzLinYm("3.时间段日交易查询",Col2);
DisHzLinYm("4.时间段报税查询",Col3);
DisHzLinYm("5.时间段查发票卷查询",Col4);
GetKey();
switch(keyc)
{
case 1:
InvoiceDisCHKandPrn(1);
break;
case 2:
InvoiceDisCHKandPrn(2);
break;
case 3:
DailyCHK();
break;
case 4:
DeclareCHK();
break;
case 5:
InvVolCHK();
break;
}
break;
case 6:
if(PassWord(2))break;
if(InvoiceStatus())break;
DailyCollect();
fiscal_tui();
break;
case 7:
if(PassWord(2))break;
if(InvoiceStatus())break;
DailyCollect();
fiscal_fei();
break;
case 8:
fiscalcheck();
break;
}
}while(1);
}
uchar PassWord1(void)
{
uchar xdata temp[10];
uchar j;
cls();
DisHzLinYm("请输入密码:",Col3);
for(j=0;j<10;j++)
{
GetKey();
if(keyc==0x1b)return 1;
if(keyc==KEY_CR)break;
if(keyc==KEY_DEL)
{
temp[j-1]=0;
DisAsc(&PrnVAsc,Col3,14+j);
j=j-2;
}
else
{
temp[j]=keyc;
DisAsc(&ASC_Xing,Col3,15+j);
}
}
if(memcmp(temp,GLZpassword,10)!=0)return 1;
return 0;
}
void ClsLin(uchar col)
{
uchar i;
for(i=1;i<25;i++)DisAsc(&PrnVAsc,col,i);
}
void PTeamInit(uchar *p_dm,uchar col)
{
uchar i;
for(i=0;i<24;i++) p_team[i]=p_dm;
for(i=Row9;i<=23;i++) DisAsc(&PrnVAsc,col,i);//old is Row7
DisAsc(&D00,col,Row24);
}
void DisAscPush(uchar *p_dm,uchar col,uchar end_row)
{
uchar i;
for(i=end_row-1;i<23;i++)
{
p_team[i]=p_team[i+1];
DisAsc(p_team[i],col,i+1);
}
p_team[23]=p_dm;
DisAsc(p_team[23],col,24);
}
void DisAscPop(uchar col,uchar end_row)
{
uchar i;
for(i=23;i>end_row;i--)
{
p_team[i]=p_team[i-1];
DisAsc(p_team[i],col,i);
}
}
uchar * Readtime1(void)
{
uchar time_buff[4];
upsd_i2c_rcv (0xd0,0,7);
sys_time.second=i2c_rcv_buf[0]&0x7f;
sys_time.minute=i2c_rcv_buf[1]&0x7f;
sys_time.hour=i2c_rcv_buf[2]&0x3f;
sys_time.date=i2c_rcv_buf[4]&0x3f;
sys_time.month=i2c_rcv_buf[5]&0x1f;
sys_time.day=i2c_rcv_buf[3]&7;
sys_time.year=i2c_rcv_buf[6];
time_buff[0]=32;
time_buff[1]=sys_time.year;
time_buff[2]=sys_time.month;
time_buff[3]=sys_time.date;
return time_buff;
}
void Writetime1(void)
{
i2c_xmit_buf[6]=sys_time.year;
i2c_xmit_buf[5]=sys_time.month;
i2c_xmit_buf[4]=sys_time.date;
i2c_xmit_buf[2]=sys_time.hour;
i2c_xmit_buf[1]=sys_time.minute;
i2c_xmit_buf[0]=0x80;
upsd_i2c_xmit (0xd0,0,7);
DL30MS();
i2c_xmit_buf[0]=0x59;
upsd_i2c_xmit (0xd0,0,1);
}
void DisHzYm(uchar *p_dm,uchar col,uchar row)
{
uint data iHzYm;
iHzYm=(*(p_dm)-0xa1-15)*94;
p_dm++;
iHzYm=iHzYm+ *(p_dm)-0xa1;
p_xb=(iHzYm%2048)*32;
if(p_xb<32768){A15=0;p_xb+=32768;}
else A15=1;
UPSD_xreg.DIRECTION_B=7;
UPSD_xreg.DATAOUT_B=iHzYm/2048+4;
DisHz(p_xb,col,row);
}
void DisHzLinYm(uchar *p_hzline,uchar col)
{
uchar data num,rchar;
ClsLin(col);
num=1;
while (num<25)
{
if(*(p_hzline))
{
rchar=*(p_hzline);
if (rchar>0xa0) //显示汉字
{
DisHzYm(p_hzline, col,num);//
//DisHzYm(p_hzline, col,num/2+1);
num+=2;
p_hzline+=2;
}
else //显示数与字符
{
//DisAsc(&PrnVAsc+(rchar-32)*0x10,col,num+1);
DisAsc(&PrnVAsc+(rchar-' ')*0x10,col,num);
num++;
p_hzline++;
}
}
else
break;
}
}
float CalDataInput(uchar col)
{
uchar data i,j,b_dot_puted=0;
float data ggg;
for(i=0;i<10;i++) databuf[i]=0;databuf[0]=48;
DisAsc(&D00,col,Row24);
//if((keyc=='+')||(keyc=='-')||(keyc=='*')||(keyc=='/'))DisAsc(&D00,col,Row24);
if((keyc=='+')||(keyc==KEY_PRN)||(keyc=='o')||(keyc=='p'))DisAsc(&D00,col,Row24);
else PTeamInit(&PrnVAsc,col);
j=0;
i=0;
do
{
CalInput:
GetKey();
switch(keyc)
{
if(j>=9) break;
case KEY_0:
if(timeinput)
{
DisAscPush(&D00,col,Row13);
databuf[j+i]=0x30;
break;
}
if((j==0))
{
databuf[0]=48;
goto CalInput;
}
DisAscPush(&D00,col,Row13);
databuf[j+i]=0x30;
break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
DisAscPush(&D00+16*keyc,col,Row13);
databuf[j+i]=0x30+keyc;
break;
case KEY_DOT:
{
if((j==0)&&(!b_dot_puted))
{
DisAscPush(&D00,col,Row13);
DisAscPush(&ASC_DOT,col,Row13);
databuf[0]=0x30;
databuf[1]=KEY_DOT;
b_dot_puted=1;
i=1;
break;
}
if(b_dot_puted) break;
DisAscPush(&ASC_DOT,col,Row13);
databuf[j]=KEY_DOT;
b_dot_puted=1;
break;
}
case KEY_DEL:
if((j==0))
{
databuf[0]=48;
DisAsc(&D00,col,Row24);
goto CalInput;
}
else
{
if(databuf[j+i-1]=='.'){b_dot_puted=0;databuf[j+i-1]=0x0;i=0;}
else databuf[j+i-1]=0x0;
j-=2;
DisAscPop(col,Row13);
DisAsc(&PrnVAsc,col,Row24);
}
break;
case KEY_ESC:
{
for(i=Row7;i<=24;i++) DisHz(&PrnVAsc,col,i);
DisAsc(&D00,col,Row24);
for(i=0;i<10;i++)databuf[i]=0;
databuf[0]=48;
j=0;
PTeamInit(&PrnVAsc,col);
break;
}
case KEY_CR:
if(cal)goto CalInput;
break;
case 'l'://'=':
if(cal)
{
sscanf(databuf,"%f",&ggg);
//ggg=Scanf1();
return ggg;
}
case '+':
case KEY_PRN://'-':
case 'p'://'*':
case 'o'://'/':
if(cal)
{
PTeamInit(&PrnVAsc,col);
//ggg=Scanf1();
sscanf(databuf,"%f",&ggg);
return ggg;
}
else goto CalInput;
default: goto CalInput;
}
j++;
if(j>=10)j--;
}while(((keyc!=KEY_CR))&&(keyc!=KEY_ESC));
//ggg=Scanf1();
sscanf(databuf,"%f",&ggg);
return ggg;
}
void cls(void)// 清屏
{
ClsLin(Col1);
ClsLin(Col2);
ClsLin(Col3);
ClsLin(Col4);
}
void DisCs1On()
{
uchar xdata *p_chip;
p_chip=&CS1STATE_R; /*on液晶显示*/
while(0xff==*p_chip);
p_chip=&CS1COM_W;
*p_chip=0x3f;
*p_chip=0xc0;
}
void DisCs2On()
{
uchar xdata *p_chip;
p_chip=&CS2STATE_R; /*on液晶显示*/
while(0xff==*p_chip);
p_chip=&CS2COM_W;
*p_chip=0x3f;
*p_chip=0xc0;
}
void DisCs3On()
{
uchar xdata *p_chip;
p_chip=&CS3STATE_R; /*on液晶显示*/
while(0xff==*p_chip);
p_chip=&CS3COM_W;
*p_chip=0x3f;
*p_chip=0xc0;
}
void DisCs1Off()
{
uchar xdata *p_chip;
p_chip=&CS1STATE_R; /*off液晶显示*/
while(0xff==*p_chip);
p_chip=&CS1COM_W;
*p_chip=0x3e;
}
void DisCs2Off()
{
uchar xdata *p_chip;
p_chip=&CS2STATE_R; /*off液晶显示*/
while(0xff==*p_chip);
p_chip=&CS2COM_W;
*p_chip=0x3e;
}
void DisCs3Off()
{
uchar xdata *p_chip;
p_chip=&CS3STATE_R; /*off液晶显示*/
while(0xff==*p_chip);
p_chip=&CS3COM_W;
*p_chip=0x3e;
}
void fnLCMInit(void)
{
DisCs1Off();
DisCs2Off();
DisCs3Off();
DisCs1On();
DisCs2On();
DisCs3On();
DisCs1Off();
DisCs2Off();
DisCs3Off();
DisCs1On();
DisCs2On();
DisCs3On();
}
//DisAsc 16*8
void DisAsc(uchar *p_dm,uchar col,uchar row)
{
uchar xdata *p_chip;
uchar data i,j;
if(row>=1&&row<=8)
{
for(j=1;j<=2;j++)
{
p_chip=&CS1STATE_R;
while(0xff==*p_chip);
p_chip=&CS1COM_W;
*p_chip=col; //write LINE_adr b8,ba,bc,be
p_chip=&CS1STATE_R;
while(0xff==*p_chip);
p_chip=&CS1COM_W;
switch(row)
{
case 1: *p_chip=0x40;break; // row_start_adr/hz
case 2: *p_chip=0x48;break;
case 3: *p_chip=0x50;break;
case 4: *p_chip=0x58;break;
case 5: *p_chip=0x60;break; // row_start_adr/hz
case 6: *p_chip=0x68;break;
case 7: *p_chip=0x70;break;
case 8: *p_chip=0x78;break;
}
for(i=0;i<=7;i++)
{
p_chip=&CS1DATA_W;
*p_chip=*(p_dm++);
p_chip=&CS1STATE_R;
while(0xff==*p_chip);
}
col++;
}
}
if(row>=9&&row<=16)
{
for(j=1;j<=2;j++)
{
p_chip=&CS2STATE_R;
while(0xff==*p_chip);
p_chip=&CS2COM_W;
*p_chip=col; //write LINE_adr b8,ba,bc,be
p_chip=&CS2STATE_R;
while(0xff==*p_chip);
p_chip=&CS2COM_W;
switch(row)
{
case 9: *p_chip=0x40;break; // row_start_adr/hz
case 10: *p_chip=0x48;break;
case 11: *p_chip=0x50;break;
case 12: *p_chip=0x58;break;
case 13: *p_chip=0x60;break; // row_start_adr/hz
case 14: *p_chip=0x68;break;
case 15: *p_chip=0x70;break;
case 16: *p_chip=0x78;break;
}
for(i=0;i<=7;i++)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -