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

📄 yibiao1.c

📁 这是我在我们公司做的C51加油单片机程序
💻 C
📖 第 1 页 / 共 5 页
字号:
         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 + -