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

📄 yibiao_ash.c

📁 这是我在我们公司做的C51加油单片机程序
💻 C
📖 第 1 页 / 共 5 页
字号:
                          {
                                dog();
                                key=getkey();
                                if (key=='l')
                                {
                                        ck_flag=0;
                                        out_card();
                                        goto j3;
                                }
                                xs_time();
                                if (search_result==0)
                                {
                                        clear();
                                        xs_hhz(0,0,CKSHK);
                                        xs_hhz(4,0,QTK);
                                        /*生成黑卡加油记录*/
                                        graymac2[0]=0x00;
                                        graymac2[1]=0x01;
                                        graymac2[2]=0;
                                        graymac2[3]=0;
                                        dey=9;
                                        trade_record(dey);
                                        /*生成黑卡加油记录*/
                                        while(1)
                                        {
                                                key=getkey();
                                                if (key=='t')
                                                {
                                                        ck_flag=0;
                                                        out_card();
                                                        goto j3;
                                                 }
                                                 xs_time();
                                         }
                                 }
                                 if (search_result==1)
                                         break;
                             }
                             else
                             {
                                nlist[0]=use_pse_inf[10];
                                nlist[1]=use_pse_inf[11];
                                nlist[2]=use_pse_inf[12];
                                nlist[3]=use_pse_inf[13];
                                nlist[4]=use_pse_inf[14];
                                nlist[5]=use_pse_inf[15];
                                nlist[6]=use_pse_inf[16];
                                nlist[7]=use_pse_inf[17];
                                nlist[8]=use_pse_inf[18];
                                nlist[9]=use_pse_inf[19];
                                //tidyCpoy(2);
                                //copy(2);
                                i=seeAbout(2);
                                if (i==1) goto hkcz;
                                //tidyCpoy(3);
                                //copy(3);
                                i=seeAbout(3);
                                if (i==1) goto tjck;
                                //tidyCpoy(1);
                                //copy(1);
                                i=seeAbout(1);
                                if (i==0) goto tjck;
                                if (i==1)
                                {
hkcz:
                                        clear();
                                        xs_hhz(0,0,CKSHK);
                                        xs_hhz(4,0,QTK);
                                        /*生成黑卡加油记录*/
                                        graymac2[0]=0x00;
                                        graymac2[1]=0x01;
                                        graymac2[2]=0;
                                        graymac2[3]=0;
                                        dey=9;
                                        dey=dey|0x40;
                                        trade_record(dey);
                                        /*生成黑卡加油记录*/
                                        while(1)
                                        {
                                                key=getkey();
                                                if (key=='t')
                                                {
                                                        ck_flag=0;
                                                        out_card();
                                                        goto j3;
                                                 }
                                                 xs_time();
                                         }
                                 }

                             }
                        /**/
tjck:
                       if (ash_card())
                          goto j3;
                       ck_flag=1;/*插卡*/
                       clear();
                       if (yhkjycz())
                       {
                             out_card();
                             ck_flag=0;
                             clear();
                             xs_hhz(0,24,JYWC);
                             xs_hhz(4,24,QGQ);
                             /*员工卡加油操作完成*/
                             while((XBYTE[0xc010]&0x08)==0x00)
                             {
                                if (P35==0)
                                   break;
                                xs_time();
                             };
                             goto j3;
                       }
                       else
                          goto j3;
                  }
               }
        }
        if (key=='x')/*处理加油机下班*/
        {
j5:
              clear();
              xs_hhz(2,32,XB);
              while(1)
              {
                      dog();
                      key=getkey();
                      if (key=='l')
                         goto j2;
                      if (key=='k')
                         break;
              }
              clear();
              xs_hhz(0,0,QSRYGMM);
              //flash[0]=ygmm[0];
              //flash[1]=ygmm[1];
              //ygmm[0]=sbmm[0];
             // ygmm[1]=sbmm[1];
              i=password(0);
              if (i==2)/*返回退卡*/
              {
                   ck_flag=0;
                   out_card();
                 //  ygmm[0]=flash[0];
                 //  ygmm[1]=flash[1];
                   goto j3;
              }
              if (i==1) /*密码正确*/
              {
                   ck_flag=0;
                   out_card();
                   XBR=1;
                   /*生成下班交易记录*/
                   dey=6;
                   if (NET==1)
                      dey=dey|0x40;
                   trade_record(dey);
                   /*生成下班交易记录*/
                   goto start;
              }
              if (i==0)/*密码错误*/
              {
                   ck_flag=0;
                   out_card();
                   goto j3;
              }
        }
        if  (key=='.')
        {
                while(1)
                {
                        key=getkey();
                        if (key!=0xff)
                        if (key=='k')
                        {
                                if ((klx==1)||(klx==2))
                                     goto j5;
                                if (ygh!=use_001b_file[1])
                                {
                                       clear();
                                       xs_hhz(0,16,FSBYGK);
                                       an_key_back();
                                       goto j9;
                                 }
                                 goto j5;
                        }
                        else
                           goto j2;
                }
        }
        xs_time();
   }


}
/*主程序结束*/


void write_control(unsigned char con)
{
        RW=0;
        RS=0;
        E=con;
}
void write_data(unsigned char d)
{
        RW=0;
        RS=1;
     	E=d;
}

void init_xs()
{
	unsigned char page;
       de30ms();
       de30ms();
       de30ms();
       de30ms();
       de30ms();
       de30ms();
       xscs1();
        write_control(0x3f);
        write_control(0xc0);
       xscs2();
        write_control(0x3f);
        write_control(0xc0);

        for(page=0;page<8;page++)
	{
		clr_hang(page);
	}

}
void clear()
{
	unsigned char page;

	for(page=0;page<6;page++)
	{
		clr_hang(page);
	}

}
unsigned char getkey()
{
	unsigned char temp,i=0;
        static bit keyf=1;
        key_dlu();
        key_dlu();
        //ES=0;
        for(i=0;i<21;i++)
	{
                if (i==0)
                   KEY_SDA=0;
                else
                    KEY_SDA=1;
                KEY_CLK=1;
		dlu();
		KEY_CLK=0;
		dlu();

                temp=XBYTE[0xc010];
                temp=temp&0x01;
                if (temp==0)
                {
                         // comm_status=0;
                         // ES=1;
                           if (keyf==1)
                            switch (i)
                           {
                                case 1:{keyf=0;sound();return 8;}
                                case 2:{keyf=0;sound();return 7;}
                                case 3:{keyf=0;sound();return 6;}
                                case 4:{keyf=0;sound();return 5;}
                                case 5:{keyf=0;sound();return 4;}
                                case 6:{keyf=0;sound();return 3;}
                                case 7:{keyf=0;sound();return 2;}
                                case 8:{keyf=0;sound();return 1;}
                                case 9:{keyf=0;sound();return 'k';}
                                case 10:{keyf=0;sound();return 'l';}
                                case 11:{keyf=0;sound();return '.';}
                                case 12:{keyf=0;sound();return 0;}
                                case 13:{keyf=0;sound();return 'j';}
                                case 14:{keyf=0;sound();return 'g';}
                                case 15:{keyf=0;sound();return 'e';}
                                case 16:{keyf=0;sound();return 9;}
                                case 17:{keyf=0;sound();return 't';}
                                case 18:{keyf=0;sound();return 'x';}
                                case 19:{keyf=0;sound();return 's';}
                           }
                           else
                             return 0xff;
                }
	}
       keyf=1;
       //comm_status=0;
       //ES=1;
       return 0xff;
}
void clr_hang(unsigned char hang)
{
	unsigned char lie;

        xscs1();
	write_control(0xb8+hang);
	for(lie=0;lie<64;lie++)
	{
		write_control(0x40+lie);
		write_data(0);
	}
        xscs2();
        write_control(0xb8+hang);
	for(lie=0;lie<64;lie++)
	{
		write_control(0x40+lie);
		write_data(0);
	}

}
void xs_zi(unsigned char hh,unsigned char ll,unsigned int p)
{
	unsigned char idata i;
        unsigned char idata buf;
        unsigned int idata temp;
        unsigned char idata disp_suf[32];
        temp=dw_zk(p);
        for(i=0;i<32;i++)
        {
            ZK_CS=0;
            zk_save=0;
           // dlu();
            buf=XBYTE[temp+i];
            //dlu();
            ZK_CS=1;
            zk_save=1;
            disp_suf[i]=buf;
            dlu();
        }
        ZK_CS=1;
        dlu();
        dlu();
        dlu();
        xscs1();
	for(i=0;i<16;i++)
	{
		if ((ll+i)>63)
		{
			xscs2();
			write_control(0xb8+hh);
			write_control(0x40+ll+i-64);
		}
		else
		{
			xscs1();
			write_control(0xb8+hh);
			write_control(0x40+ll+i);
		}
		write_data(disp_suf[i]);
		//p++;
	}

	for(i=0;i<16;i++)
	{
		if ((ll+i)>63)
		{
			xscs2();
			write_control(0xb8+hh+1);
			write_control(0x40+ll+i-64);
		}
		else
		{
			xscs1();
			write_control(0xb8+hh+1);
			write_control(0x40+ll+i);
		}
		write_data(disp_suf[i+16]);
	//	p++;
	}


}
void xscs1()
{
        CS1=1;
        CS2=0;
}
void xscs2()
{
        CS1=0;
        CS2=1;
}



void xs_hhz(unsigned char hh,unsigned char ll, unsigned int *p)
{
        unsigned char i;
        for(i=0;*(p+i)!=0;i++)
                if (*(p+i)!=0xffff)
                   xs_zi(hh,ll+i*16,*(p+i));
}
void astobcd(unsigned char n)
{
      char l,temp;
      if (n==1) return;
      for(l=keybuf_p;l<6;l++)
      keybuf[l]=0x00;
      for(l=0;l<n;l+=2)
      {
            temp=keybuf[l]<<4;
            temp=temp|keybuf[l+1];
            keybuf[l/2]=temp;
      }
}
bit strcomp(unsigned char *p1,unsigned char *p2,unsigned char num)
{
        unsigned char i;
        for(i=0;i<num;i++)
        {
                if ((*(p1+i))!=(*(p2+i)))
                   return 0;
        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -