亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? demo_232.c

?? 非接觸式IC卡編程樣例232-C3
?? C
字號:
#include <reg52.h>
#include <absacc.h>
#include "170cmd.h"

#define ALL            0x01
#define IDLE           0x00
#define KEYB           0x04
#define KEYA           0x00
#define KEYSET0        0x00
#define KEYSET1        0x01
#define KEYSET2        0x02
#define HF             0x40

#define D1WREN     0x02        
                               /*   對"數(shù)據(jù)塊"2,3可寫   */
#define D1RDEN     0x01        
                               /*   對"數(shù)據(jù)塊"2,3可讀   */
#define D2WREN     0x20        
                               /*   對"數(shù)據(jù)塊"10,11可寫 */
#define D2RDEN     0x10        
                               /*   對"數(shù)據(jù)塊"10,11可讀 */
#define KEYWREN    0x08        
                               /*   對密碼可寫            */
#define VALUEWREN  0x04        
                               /*    對16位"電子錢包"可寫*/


#define RS232     1
#define LDSTD     0

#define REDLED    1              
#define GREENLED  2              
#define BELL      4              

#define LDCLK     P31
#define LDSDA     P30
#define MAXTIME   10    


unsigned char bdata ldchar;
sbit ldbit=ldchar^7;
unsigned char ld_flags;
unsigned char idata write_buff[32];
unsigned char iscom;


/********************************************************
*
*  常規(guī)子程序
*
********************************************************/

void delay_10us()
{
   unsigned char i;
   i=0;
   i=0;
   i=i+i;
}

void delay_50us(unsigned int us)
{
   unsigned char i;
   if(!us) return;
   do
   {
      i++;
	  i--;
	  delay_10us();
	  delay_10us();
	  delay_10us();
	  delay_10us();
   }
   while(--us);
}

void delayms(unsigned int ms)
{
   unsigned char i;
   if(!ms) return;
   do
   {
      i=70;
	  i+=1;
	  i+=1;
	  i+=1;
	  i+=1;
	  i+=1;
	  i-=1;
	  i-=1;
	  i-=1;
	  i-=1;
	  i-=1;
      do
	  {
         delay_10us();
	  }
      while(--i);
   }
   while(--ms);
}

/******************************************/
     /*       串口子程序          */
/******************************************/

void com_init()
{

    TMOD |= 0x20 ;              // set T/C mode 2, Baud set needed
    
    PCON |= 0x80 ;              // set SMOD=1, That mean baud K=2
    TH1   = 0xff ;              // set baudrate=57.6kbps
    
	TL1   = 0x00 ;
    SCON  = 0x50 ;              // set asci mode 1 and Receive Enable
    TR1   = 1    ;              // permit T1 timer, TCON register
    TI=0;
    RI=0;
}

unsigned char com_key()
{
    unsigned int i=0x100;
	do
    {
        if(RI) return 0x01;
    }
    while(--i);
	return 0x00;
}

unsigned char com_handkey()
{
    unsigned int i=0x4000;
	do
    {
        if(RI) return 0x01;
    }
    while(--i);
	return 0x00;
}


void com_send_char(unsigned char s_char)
{
    SBUF=s_char;                     // write a char to SBUF register
    while (!TI) ;                    // check until TI = 1
    TI=0;                            // reset TI
}

char com_get_char()
{
    char c;
    c=SBUF;                          // put the received char to buffer
    RI=0;                            // reset RI
    return (c) ;
}

char com_first_handed(void)
{
   com_send_char(0x23);
   if(!com_key())               return 0x01;
   if(com_get_char()!=0x45)     return 0x20;
   return 0x00;
}

char com_second_handed(void)
{
   if(!com_handkey())               return 0x01;
   if(com_get_char()!=0x67)     return 0x10;
   com_send_char(0x89);
   return 0x00;
}

unsigned char Mf_sendcmd(unsigned char cmd,unsigned char length)
{
   unsigned char i;
   unsigned char pc_cmd,pc_len,pc_jy;
   unsigned char temp_char;
   if(com_first_handed())       return 0xa1;

   pc_jy=0;
   com_send_char(cmd);
   pc_jy^=cmd;

   com_send_char(length);
   pc_jy^=length;

   for(i=0;i<length;i++)
   {
	   temp_char=write_buff[i];
	   com_send_char(temp_char);
	   pc_jy^=temp_char;
   }

   com_send_char(pc_jy);

   if(com_second_handed())      return 0xa2;

   pc_jy=0;
   if(!com_key())               return 0xa3;
   pc_cmd=com_get_char();
   pc_jy^=pc_cmd;

   if(!com_key())               return 0xa3;
   pc_len=com_get_char();
   pc_jy^=pc_len;

   for(i=0;i<pc_len;i++)
   {
       if(!com_key())           return 0xa3;
       temp_char=com_get_char();
       pc_jy^=temp_char;
       write_buff[i]=temp_char;
   }

   if(!com_key())               return 0xa3;
   if(com_get_char()!=pc_jy)    return 0xa4;
   return pc_cmd;
}


void debug_ml10()
{
	unsigned char status;
	unsigned char snr[4];
	unsigned char idata dat[4];
	unsigned char value[2];

    unsigned int i;
	unsigned int count;
	unsigned char bcmd,blen;
	unsigned char idata buff[22];

    /*通用測試程序<內(nèi)部用>*/
	count=0;
    i=100;
    bcmd=0x00;
	blen=0x00;
	do
	{
	    for(status=0;status<21;status++)
		{
		    write_buff[status]=buff[status];
		}
		status=Mf_sendcmd(bcmd,blen);
		    
		if(status) count++;
		i--;
	}
	while(i);

    /*裝載密碼A*/
	write_buff[0]=KEYSET0|KEYA;
	write_buff[1]=0x00;
	write_buff[2]=0xff;
	write_buff[3]=0xff;
	write_buff[4]=0xff;
	write_buff[5]=0xff;
	write_buff[6]=0xff;
	write_buff[7]=0xff;
    status=Mf_sendcmd(LOADKEY,8);

    /*裝載密碼B*/
	write_buff[0]=KEYSET0|KEYB;
	write_buff[1]=0x00;
	write_buff[2]=0xff;
	write_buff[3]=0xff;
	write_buff[4]=0xff;
	write_buff[5]=0xff;
	write_buff[6]=0xff;
	write_buff[7]=0xff;
    status=Mf_sendcmd(LOADKEY,8);

	/*設(shè)置密碼認(rèn)證方式*/
    
	    /*用密碼A認(rèn)證*/
	    write_buff[0]=0x00;
        status=Mf_sendcmd(AUTHMODE,1);
  
	    /*用密碼B認(rèn)證*/
	    write_buff[0]=0x01;
        status=Mf_sendcmd(AUTHMODE,1);

    
    /*取卡序列號*/
	status=Mf_sendcmd(GETSNR,0);
    if(status) return;
    for(i=0;i<4;i++)
	{
	    snr[i]=write_buff[i];
	}

	/*讀數(shù)據(jù)塊*/
    write_buff[0]=4;
    for(i=0;i<4;i++)
	{
	    write_buff[1+i]=snr[i];
	}
	status=Mf_sendcmd(READBLOCK,5);
    if(status) return;
    for(i=0;i<4;i++)
	{
	    dat[i]=write_buff[i];
	}

    /*寫數(shù)據(jù)塊*/
    for(i=0;i<4;i++)
	{
	    dat[i]=status+i;
	}

	write_buff[0]=4;
    for(i=0;i<4;i++)
	{
	   write_buff[1+i]=snr[i];
	}
    for(i=0;i<4;i++)
	{
	   write_buff[5+i]=dat[i];
	}
	status=Mf_sendcmd(WRITEBLOCK,9);
	if(status) return;

	/*寫"電子錢包"*/ 
	value[0]=0x00;
	value[1]=0x01; 

    write_buff[0]=4;
    for(i=0;i<4;i++)
	{
	    write_buff[1+i]=snr[i];
	}
    for(i=0;i<2;i++)
	{
	    write_buff[5+i]=value[i];
	}
	status=Mf_sendcmd(WRITEVALUE,7);
    if(status) return;
		
	/*讀"電子錢包"*/
    write_buff[0]=4;
    for(i=0;i<4;i++)
	{
	    write_buff[1+i]=snr[i];
	}
	status=Mf_sendcmd(READVALUE,5);
    if(status) return;
    for(i=0;i<2;i++)
	{
	    value[i]=write_buff[i];
	}

	/*減電子錢包*/
    write_buff[0]=4;
    for(i=0;i<4;i++)
	{
	    write_buff[1+i]=snr[i];
	}
    for(i=0;i<2;i++)
	{
	    write_buff[5+i]=value[i];
	}
	status=Mf_sendcmd(DECREMENTVALUE,7);
    if(status) return;

	write_buff[0]=REDLED|GREENLED|BELL;
	write_buff[1]=10;
	write_buff[2]=2;
	write_buff[3]=2;
	status=Mf_sendcmd(ALARM,4);
    return;
}

void debug_m1()
{
	unsigned char status;
	unsigned char snr[4];
	unsigned char idata dat[16];
	unsigned char value[4];

    unsigned int i;
	unsigned int count;
	unsigned char bcmd,blen;
	unsigned char idata buff[22];

    /*通用測試程序<內(nèi)部用>*/
	count=0;
    i=100;
    bcmd=0x00;
	blen=0x00;
	do
	{
	    for(status=0;status<21;status++)
		{
		    write_buff[status]=buff[status];
		}
		status=Mf_sendcmd(bcmd,blen);
		    
		if(status) count++;
		i--;
	}
	while(i);

	/*裝載密碼*/
       /*扇區(qū)號==0x01*/
	   write_buff[0]=0x01;

	write_buff[1]=0xa0;
	write_buff[2]=0xa1;
	write_buff[3]=0xa2;
	write_buff[4]=0xa3;
	write_buff[5]=0xa4;
	write_buff[6]=0xa5;
    status=Mf_sendcmd(TRANSKEY,7);

    /*取卡序列號*/
	status=Mf_sendcmd(GETSNR,0);
    if(status) return;
    for(i=0;i<4;i++)
	{
	    snr[i]=write_buff[i];
	}

	/*讀數(shù)據(jù)塊*/
    write_buff[0]=4;
    for(i=0;i<4;i++)
	{
	    write_buff[1+i]=snr[i];
	}
	status=Mf_sendcmd(READBLOCK,5);
    if(status) return;
    for(i=0;i<16;i++)
	{
	    dat[i]=write_buff[i];
	}

    /*寫數(shù)據(jù)塊*/
    for(i=0;i<16;i++)
	{
	    dat[i]=status+i;
	}

	write_buff[0]=4;
    for(i=0;i<4;i++)
	{
	    write_buff[1+i]=snr[i];
	}
    for(i=0;i<16;i++)
	{
	    write_buff[5+i]=dat[i];
	}
	status=Mf_sendcmd(WRITEBLOCK,21);
	if(status) return;

    /*寫電子錢包*/ 
    value[0]=0x00;
    value[1]=0x01; 
    value[2]=0x00; 
    value[3]=0x00; 

    write_buff[0]=4;
    for(i=0;i<4;i++)
	{
        write_buff[1+i]=snr[i];
	}
    for(i=0;i<4;i++)
	{
        write_buff[5+i]=value[i];
	}
    status=Mf_sendcmd(WRITEVALUE,9);
    if(status) return;
		
    /*讀"電子錢包"*/
    write_buff[0]=4;
    for(i=0;i<4;i++)
	{
       write_buff[1+i]=snr[i];
	}
    status=Mf_sendcmd(READVALUE,5);
    if(status) return;
    for(i=0;i<4;i++)
	{
        value[i]=write_buff[i];
	}

    /*加"電子錢包"*/
    write_buff[0]=4;
    for(i=0;i<4;i++)
	{
        write_buff[1+i]=snr[i];
	}
    for(i=0;i<4;i++)
	{
        write_buff[5+i]=value[i];
	}
    status=Mf_sendcmd(INCREMENTVALUE,9);
    if(status) return;

    /*減"電子錢包"*/
    write_buff[0]=4;
    for(i=0;i<4;i++)
	{
        write_buff[1+i]=snr[i];
	}
    for(i=0;i<4;i++)
	{
        write_buff[5+i]=value[i];
	}
    status=Mf_sendcmd(DECREMENTVALUE,9);
    if(status) return;

    write_buff[0]=REDLED|GREENLED|BELL;
    write_buff[1]=10;
    write_buff[2]=2;
    write_buff[3]=2;
    status=Mf_sendcmd(ALARM,4);
    return;
}

void main()
{
	unsigned char cardtype;
	unsigned char status;
	unsigned char snr[4];
	unsigned char value1[4];
	unsigned char value2[4];

	unsigned int i;
	unsigned int count;

	unsigned char idata dat[16];

	/*****************************/
	unsigned char idata buff[0x20];
    unsigned char bcmd;
	unsigned char blen;
	/*****************************/
	
	com_init();

	while(1)
	{
		delayms(1000);
        if(Mf_sendcmd(GETSNR,0))
		{
		    write_buff[0]=REDLED|GREENLED|BELL;
		    write_buff[1]=40;
		    write_buff[2]=8;
		    write_buff[3]=1;
		    status=Mf_sendcmd(ALARM,4);
		}
		else
		{
		    write_buff[0]=REDLED|GREENLED|BELL;
		    write_buff[1]=20;
		    write_buff[2]=4;
		    write_buff[3]=2;
		    status=Mf_sendcmd(ALARM,4);
		}
	}
	
	while(1)
	{
		/*聯(lián)接*/
		status=Mf_sendcmd(STATUS,0);
		
		/*燈控*/
		write_buff[0]=REDLED|GREENLED|BELL;
		write_buff[1]=20;
		write_buff[2]=20;
		write_buff[3]=2;
		status=Mf_sendcmd(ALARM,4);
	    
		/*取模塊標(biāo)示號*/
		status=Mf_sendcmd(MCMNO,0);
	    
		/*取模塊版本號*/
		status=Mf_sendcmd(MCMVER,0);
        
		/*取卡類型*/
		status=Mf_sendcmd(GETTYPE,0);
        if(status) continue;       /*沒有卡,返回*/
        cardtype=write_buff[0];
		
		if(cardtype==0x04)
		{
            while(1)
			{
			    debug_m1();
			}
		}
		else
		{
            while(1)
			{
			    debug_ml10();
			}
		}
	}

	/******************************************************/
	/*      LD_sendcmd()返回代碼表                        */
	/*  0XA1,0XA2,0XA3,0XA4  為主控程序通信錯(cuò)誤返回代碼   */
	/*  具體意義如下                                      */
	/*  0XA1   第一次握手錯(cuò)                               */
	/*  0XA2   第二次握手錯(cuò)                               */
	/*  0XA3   接受數(shù)據(jù)錯(cuò)                                 */
	/*  0XA4   接受數(shù)據(jù)校驗(yàn)錯(cuò)                             */
	/*                                                    */
	/*  其他錯(cuò)誤代碼是模塊返回的錯(cuò)誤代碼                  */
	/*  具體意義參見《各模塊》錯(cuò)誤代碼返回表              */
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品伦理在线| 久久综合资源网| 亚洲一区成人在线| 欧美日韩久久久一区| 亚洲国产中文字幕在线视频综合| 91精品91久久久中77777| 一区二区三国产精华液| 这里是久久伊人| 激情综合一区二区三区| 精品99一区二区三区| 国产v综合v亚洲欧| 亚洲天堂久久久久久久| 在线观看亚洲a| 奇米影视在线99精品| 国产日韩欧美精品在线| 一本色道久久综合精品竹菊| 五月婷婷综合激情| 久久久久久久久伊人| 色偷偷成人一区二区三区91| 五月综合激情网| 国产三级一区二区| 欧美做爰猛烈大尺度电影无法无天| 三级精品在线观看| 国产精品系列在线| 51精品秘密在线观看| 国产精品系列在线播放| 亚洲自拍偷拍网站| 精品蜜桃在线看| 91麻豆123| 狠狠久久亚洲欧美| 一区二区三区在线观看欧美| 精品日韩在线观看| 色婷婷国产精品综合在线观看| 久久99精品久久久久久动态图 | 日本一区二区三区免费乱视频 | 91麻豆蜜桃一区二区三区| 日韩精品免费专区| 亚洲国产精品激情在线观看| 7777女厕盗摄久久久| 成人免费福利片| 久久国产精品99精品国产| 亚洲人成影院在线观看| 日韩欧美成人一区| 欧美视频一区在线| av网站一区二区三区| 国产一区二区毛片| 亚洲一级二级三级在线免费观看| 国产日韩亚洲欧美综合| 欧美一级二级在线观看| 欧美丝袜第三区| 色诱亚洲精品久久久久久| 国产剧情av麻豆香蕉精品| 七七婷婷婷婷精品国产| 亚洲图片有声小说| 亚洲精品五月天| 国产精品乱码妇女bbbb| 2023国产精品| 日韩精品一区二| 欧美精品v日韩精品v韩国精品v| 91亚洲国产成人精品一区二三| 国产麻豆精品在线观看| 日本不卡一区二区| 日本一区中文字幕| 日本免费新一区视频| 日韩av网站免费在线| 五月综合激情日本mⅴ| 亚洲电影一区二区| 亚洲国产日产av| 亚洲一区二区视频| 亚洲成av人综合在线观看| 亚洲一区二区三区自拍| 亚洲小说欧美激情另类| 亚洲国产精品影院| 天堂一区二区在线| 视频一区视频二区在线观看| 亚洲成人精品一区二区| 亚洲成精国产精品女| 午夜国产精品影院在线观看| 亚洲国产一区视频| 日韩制服丝袜先锋影音| 天天综合天天综合色| 蜜桃久久久久久久| 国产一区二区三区观看| 国产成人精品免费网站| 国产成人精品三级麻豆| 92精品国产成人观看免费| 99v久久综合狠狠综合久久| 99re这里只有精品视频首页| 日本久久一区二区| 欧美剧情电影在线观看完整版免费励志电影 | 国产精品乱人伦| 亚洲美女视频在线| 亚洲国产另类av| 老司机精品视频在线| 国产精品一二三区| 99精品视频在线观看| 欧美性生活大片视频| 91精品欧美福利在线观看| 精品国产成人系列| 国产精品视频免费| 亚洲午夜久久久久久久久电影院| 亚洲国产乱码最新视频| 精久久久久久久久久久| 成人免费毛片嘿嘿连载视频| 在线观看欧美日本| 日韩欧美中文字幕一区| 中文字幕第一页久久| 亚洲一区欧美一区| 久久电影网站中文字幕| 成人免费观看视频| 欧美二区乱c少妇| 国产日韩欧美电影| 香蕉成人啪国产精品视频综合网| 国产一区二区三区免费观看| 色婷婷综合五月| 精品日韩在线观看| 亚洲欧美日韩人成在线播放| 日韩中文字幕区一区有砖一区| 国产不卡高清在线观看视频| 欧美亚男人的天堂| 久久免费美女视频| 性做久久久久久免费观看| 国产成a人无v码亚洲福利| 色94色欧美sute亚洲线路一ni| 2024国产精品| 日韩中文字幕亚洲一区二区va在线 | 国产精品久久免费看| 日韩高清在线一区| 91香蕉视频mp4| 久久综合一区二区| 午夜电影久久久| 色悠久久久久综合欧美99| 精品成人一区二区三区| 亚洲国产成人精品视频| 粉嫩av一区二区三区在线播放| 欧美久久一区二区| 亚洲精品自拍动漫在线| 成人三级在线视频| 日韩欧美一区中文| 亚洲国产精品嫩草影院| 91美女精品福利| 国产精品福利电影一区二区三区四区| 日本不卡高清视频| 欧美日韩一区二区三区在线 | 亚洲综合自拍偷拍| 成人性生交大合| 26uuuu精品一区二区| 开心九九激情九九欧美日韩精美视频电影| 色婷婷精品久久二区二区蜜臂av| 中文字幕高清不卡| 高清av一区二区| 久久中文字幕电影| 九九国产精品视频| 日韩你懂的在线播放| 日韩精品一级二级| 91精品视频网| 日本不卡视频在线观看| 欧美电影一区二区| 亚洲图片有声小说| 欧美伊人久久久久久久久影院| 亚洲激情六月丁香| 色丁香久综合在线久综合在线观看| 国产精品麻豆欧美日韩ww| 成人午夜电影小说| 国产精品久久毛片a| 99久久99久久久精品齐齐| 亚洲欧洲韩国日本视频| 91在线观看美女| 亚洲卡通欧美制服中文| 欧美在线看片a免费观看| 亚洲日本va在线观看| 色婷婷久久综合| 午夜精品久久久| 欧美一区二区网站| 久久精品国产一区二区三| 久久久蜜桃精品| 成人av在线资源| 亚洲免费av高清| 欧美日韩不卡一区| 麻豆成人91精品二区三区| 久久综合九色综合97婷婷| 成人免费观看av| 一区二区三区日韩欧美精品| 欧美人牲a欧美精品| 免费看欧美女人艹b| 国产偷v国产偷v亚洲高清| 不卡的看片网站| 亚洲国产中文字幕在线视频综合| 91精品欧美一区二区三区综合在| 国内精品国产三级国产a久久| 国产亚洲污的网站| 91久久精品网| 男人的天堂久久精品| 欧美激情综合在线| 色999日韩国产欧美一区二区| 免费在线观看一区| 国产精品丝袜久久久久久app| 欧美亚洲一区二区在线观看| 美腿丝袜在线亚洲一区| 国产精品初高中害羞小美女文|