📄 yibiao1.c
字号:
week=0x05;
day=0x10;
month=0x05;
year=0x02;
settime();*/
IE=0x98; // 开中断,允许串口中断、定时器1中断
RCAP2H=0xff; // 定时器2置初值,作为串口0的波特率发生器,波特率9600
RCAP2L=0xd1;
TH2=0xff;
TL2=0xd1;
T2CON=0x34; // 启动定时器2作为串口0的接收、发送时钟波特率发生器
SCON=0xd0; // 串口0工作在模式3,允许接收
init();
init_xs();/*初始花屏*/
xs_hs();
/*xs_hhz(0,0,XTCSH1);
xs_hhz(2,0,XTCSH2);
huakuang(6,8,0);
cuorse(10);
dl(500);
cuorse(40);
dl(600);
cuorse(90);
dl(500);
cuorse(123);
clear();
xs_hhz(0,0,XTZJ1);
xs_hhz(2,0,XTZJ2);
huakuang(6,8,0);
cuorse(10);
dl(500);
cuorse(40);
dl(600);
cuorse(90);
dl(500);
cuorse(123);
clear();
xs_hhz(0,0,XTLW1);
xs_hhz(2,0,XTLW2);
huakuang(6,8,0);
cuorse(10);
dl(500);
cuorse(40);
dl(600);
cuorse(90);
dl(500);
cuorse(123);*/
clear();
//jycz(123,1,0);
//menu_2();
huakuang(6,8,0);
xs_time();
//change_time();
start:
clear();
pd=0;/*记录密码验证的次数*/
xs_hhz(0,40,JYS);
xs_hhz(2,0,FR);
xs_hhz(4,16,ICK);
//huakuang(3,4,6);
while(1)
{
key=getkey();
if ((XBYTE[0xc010]&0x04)==0x00)
{
card_err_state=use_reset(); /*插卡后,用户卡复位*/
card_err_state=read_use_list(1);/*读第一条记录*/
for(i=0;i<12;i++)
{
use_sel_adf_name[i]=use_list_file[i+4];
}
card_err_state=select_pse();/*选择应用*/
now_time[0]=0x20;
now_time[1]=year;
now_time[2]=month;
now_time[3]=day;
card_time[0]=use_pse_inf[24];
card_time[1]=use_pse_inf[25];
card_time[2]=use_pse_inf[26];
card_time[3]=use_pse_inf[27];
//判断卡是否过期
/* if (!strcomp(now_time,card_time,4))
{
clear();
xs_hhz(0,0,KYGQ);
goto start;
}*/
card_err_state=read_use_001b_file();/*读'27'文件*/
if (use_pse_inf[12]<0x02)
{
clear();
xs_hhz(2,32,FYGK);
while(1)
{
key=getkey();
if (key=='t')
{
out_card();
break;
}
xs_time();
}
goto start;
}
ygh=use_001b_file[1];
ygmm[0]=use_001b_file[2];
ygmm[1]=use_001b_file[3];
break;
}
if (key!=0xff)
{
debug=1;
clear();
xs_hhz(2,20,JYJXB);
}
if (debug==1)
dey++;
if (dey>40)
{
clear();
xs_hhz(0,40,JYS);
xs_hhz(2,0,FR);
xs_hhz(4,16,ICK);
debug=0;
dey=0;
}
xs_time();
}
clear();
xs_hhz(2,30,SBDR);
while(1)
{
key=getkey();
if (key=='s')
goto ok;/*直接按上班键*/
if (key=='t')
{
out_card();
goto start;
}
if (key!=0xff)
if (key=='.')
{
while(1)
{
key=getkey();
if (key=='t')
{
out_card();
goto start;
}
if (key!=0xff)
if (key=='k')
goto ok;
else
{
out_card();
goto start;
}
xs_time();
}
}
else
{
out_card();
goto start;
}
xs_time();
}
ok:
clear();
xs_hhz(0,0,QSRYGMM);
while(1)
{
/*if ((XBYTE[0xc010]&0x04)!=0x00)
goto start;*/
i=password(0);
if (i==2)
{
out_card();
goto start;
}
if (i==1) /*处理员工密码*/
{
clear();
/*处理员工卡密码*/
if (use_001b_file[0]==0)
{
card_err_state=ver_pin1();
}
else
{
xs_hhz(0,0,SRYGKMM);
for(i=0;i<=3;i++)
{
key=pass_card();
if (key==2)
{
out_card();
goto start;
}
card_err_state=ver_pin();
if (card_err_state==0)
break;
else
{
clear();
xs_hhz(0,0,MMCWQCS);
}
}
}
if (card_err_state!=0)
{
xs_hhz(0,0,CHDS1);
xs_hhz(2,0,CHDS2);
out_card();/*弹卡*/
goto start;
}
else
break;
}
else
{
clear();
pd++;
if (pd==3)
{
xs_hhz(0,0,CHDS1);
xs_hhz(2,0,CHDS2);
out_card();/*弹卡*/
goto start;
}
xs_hhz(0,0,MMCWQCS);
}
}
/*密码验证完毕*/
clear();
xs_hhz(0,0,ZAXZBMD);
clear();
xs_hhz(0,1,JYJSB);
xs_hhz(4,0,ARYJJX);
key=0xff;
/*员工上班后操作*/
while(key==0xff)
{
key=getkey();
xs_time();
}
j2:
clear();
xs_hhz(0,0,JYFS1);
xs_hhz(0,64,XJJY);
xs_hhz(2,0,YPYE);
xs_hhz(4,112,yuan);
get_balance();
jezh1();
while(1)
{
key=getkey();
if (key=='k')
{
j1:
i=menu_1();
if (i==0x0f)
goto j2;/*如果按返回键*/
else
if (!ygkjycz(i))/*员工卡支付类型操作*/
goto j1;/*如果按返回键*/
clear();
xs_hhz(0,24,JYWC);
xs_hhz(4,0,ARYJJX);
key=0xff;
/*员工卡加油操作完成*/
while(key==0xff)
{
key=getkey();
xs_time();
}
goto j2;
}
if (key=='t') /*员工卡上班签到后退卡*/
{
out_card();
j3:
clear();
xs_hhz(0,32,HYHG);
xs_hhz(2,16,QCRICK);
while(XBYTE[0xc010]&0x04)
{
xs_time();
}
clear();
card_err_state=use_reset(); /*插卡后,用户卡复位*/
card_err_state=read_use_list(1);/*读第一条记录*/
for(i=0;i<12;i++)
{
use_sel_adf_name[i]=use_list_file[i+4];
}
card_err_state=select_pse();/*选择应用*/
card_err_state=read_use_001b_file();/*读'27'文件*/
if ((use_pse_inf[12]!=0x01)&&(use_pse_inf[12]!=0x04))/*如果插入的是管理卡或其他非法卡,显示"非加油卡"*/
{
xs_hhz(2,32,FJYK);
out_card();
goto j3;/*回到请插入IC卡*/
}
j4:
if (use_pse_inf[12]==0x04)/*插入的是员工卡处理*/
{
clear();
xs_hhz(0,0,YGK);
xs_hhz(2,0,YGH1);
i=use_001b_file[1];
xs_zi(2,127-16,SHUZI[i&0x0f]);
i>>=4;
xs_zi(2,127-32,SHUZI[i&0x0f]);
while(1)
{
key=getkey();
if (key=='x')
goto j5;/*处理下班*/
if (key=='.')
{
while(1)
{
key=getkey();
if (key!=0xff)
if (key=='k')
goto j5;
else
goto j4;
}
}
if (key=='k')
{
clear();
xs_hhz(0,0,JYFS1);
xs_hhz(0,64,XJJY);
xs_hhz(2,0,YPYE);
xs_hhz(4,112,yuan);
get_balance();
jezh1();
while(1)
{
key=getkey();
if (key=='k')
goto j30;
}
}
if (key=='t')
{
out_card();
goto j3;
}
}
j30:
i=menu_1();
if (i==0x0f)
goto j3;/*如果按返回键*/
else
if (!ygkjycz(i))/*员工卡支付类型操作*/
{
// out_card();
goto j4;/*如果按返回键*/
}
clear();
xs_hhz(0,24,JYWC);
xs_hhz(4,0,ARYJJX);
key=0xff;
/*员工卡加油操作完成*/
while(key==0xff)
{
key=getkey();
xs_time();
}
goto j4;
}
/*员工卡处理完毕*/
if (use_pse_inf[12]==0x01)/*插入的是用户卡处理*/
{
clear();
pd=0;
yhmm[0]=use_001b_file[2];
yhmm[1]=use_001b_file[3];
//xs_hhz(0,0,SRYHMM);
j6:
if (use_001b_file[0]==0)
{
card_err_state=ver_pin1();
}
else
{
xs_hhz(0,0,SRYHMM);
for(i=0;i<=3;i++)
{
key=pass_card();
if (key==2)
{
out_card();
goto j3;/*卡以锁主,请解锁*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -