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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? m500auc.c

?? mifare 232讀卡源程序用kei uvision打開
?? C
?? 第 1 頁 / 共 2 頁
字號:
        ResetInfo(MInfo);           
        WriteIO(RegChannelRedundancy,0x03);
        nbits = bcnt % 8;  
        if(nbits)
        {
            WriteIO(RegBitFraming,nbits << 4| nbits); 
            nbytes = bcnt / 8 + 1;   
            if (nbits == 7)
            {
                MInfo.cmd = PICC_ANTICOLL1;  
                WriteIO(RegBitFraming,nbits); 
            }
        }  
        else
        {
            nbytes = bcnt / 8;
        }
        SerBuffer[0] = 0x93;
        SerBuffer[1] = 0x20 + ((bcnt/8) << 4) + nbits;
               
        for (i = 0; i < nbytes; i++)  
        {
            SerBuffer[i + 2] = snr_in[i];
        }
        MInfo.nBytesToSend   = 2 + nbytes;   
 
        status = M500PcdCmd(PCD_TRANSCEIVE,SerBuffer,&MInfo);
        if (nbits == 7)
        {
            dummyShift1 = 0x00;
            for (i = 0; i < MInfo.nBytesReceived; i++)
            {
                dummyShift2 = SerBuffer[i];
                SerBuffer[i] = (dummyShift1 >> (i+1)) | (SerBuffer[i] << (7-i));
                dummyShift1 = dummyShift2;
            }
            MInfo.nBitsReceived -= MInfo.nBytesReceived;       
            if ( MInfo.collPos ) MInfo.collPos += 7 - (MInfo.collPos + 6) / 9;
        }
        if ( status == MI_OK || status == MI_COLLERR)    
        {
            if ( MInfo.nBitsReceived != (40 - bcnt) )
            {
                status = MI_BITCOUNTERR; 
            } 
            else 
            {
                byteOffset = 0;
                if( nbits != 0 ) 
                {
                    snr_in[nbytes - 1] = snr_in[nbytes - 1] | SerBuffer[0];
                    byteOffset = 1;
                }

                for ( i =0; i < (4 - nbytes); i++)     
                {
                    snr_in[nbytes + i] = SerBuffer[i + byteOffset];
                }
  
                if (status != MI_COLLERR ) 
                {
                    dummyShift2 = snr_in[0] ^ snr_in[1] ^ snr_in[2] ^ snr_in[3];
                    dummyShift1 = SerBuffer[MInfo.nBytesReceived - 1];
                    if (dummyShift2 != dummyShift1)
                    {
                        status = MI_SERNRERR;
                    } 
                    else   
                    {
                        complete = 1;
                    }
                }
                else                 
                {
                    bcnt = bcnt + MInfo.collPos - nbits;
                    status = MI_OK;
                }
            }
        }
    }
    if (status == MI_OK)
    {
		snr_in[4]=dummyShift1;
        memcpy(snr,snr_in,5);
    }
    else
    {
        memcpy(snr,"00000",5);
    }
    ClearBitMask(RegDecoderControl,0x20); 
   
    return status;  
}

///////////////////////////////////////////////////////////////////////
// Reset Rf Card
///////////////////////////////////////////////////////////////////////
char M500PcdRfReset(unsigned char ms)
{
    char idata status = MI_OK;
	
    if(ms)
    {
        ClearBitMask(RegTxControl,0x03); 
        delay_1ms(2);                
        SetBitMask(RegTxControl,0x03); 
    }
    else
    {
        ClearBitMask(RegTxControl,0x03);  
    }
    return status;
}

#pragma noaregs

///////////////////////////////////////////////////////////////////////
// Delay 50us
///////////////////////////////////////////////////////////////////////
void delay_50us(unsigned char _50us)
{
    while(_50us--)
	{
	    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
	    _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
    }
}

///////////////////////////////////////////////////////////////////////
// Delay 1ms
///////////////////////////////////////////////////////////////////////
void delay_1ms(unsigned char _1ms)
{
#ifndef NO_TIMER2
    RCAP2LH = RCAP2_1ms;
    T2LH    = RCAP2_1ms;

    TR2 = TRUE;
    while (_1ms--)
    {
	    while (!TF2);
	    TF2 = FALSE;
    }
    TR2 = FALSE;
#else
    while (_1ms--)
    {
	    delay_50us(20);
    }
#endif
}

///////////////////////////////////////////////////////////////////////
// Delay 10ms
///////////////////////////////////////////////////////////////////////
void delay_10ms(unsigned int _10ms)
{
#ifndef NO_TIMER2
    RCAP2LH = RCAP2_10ms;
    T2LH    = RCAP2_10ms;
    
    TR2 = TRUE;
    while (_10ms--)
    {
	    while (!TF2);
	    TF2 = FALSE;
    }
    TR2 = FALSE;
#else
    while (_10ms--)
    {
	    delay_50us(19);
	    if (CmdValid)
	        return;
	    delay_50us(20);
	    if (CmdValid)
	        return;
	    delay_50us(20);
	    if (CmdValid)
	        return;
	    delay_50us(20);
	    if (CmdValid)
	        return;
	    delay_50us(20);
	    if (CmdValid )
	        return;
	    delay_50us(20);
	    if (CmdValid)
	        return;
	    delay_50us(20);
	    if (CmdValid)
	        return;
	    delay_50us(20);
	    if (CmdValid)
	        return;
	    delay_50us(20);
	    if (CmdValid)
	        return;
	    delay_50us(19);
	    if (CmdValid)
	        return;
    }
#endif
}

///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
void RC500ISR (void) interrupt 0 using 1    
{
    static unsigned char idata irqBits;
    static unsigned char idata irqMask;            
    static unsigned char idata nbytes;
    static unsigned char idata cnt;
	
    IE0 = 0; 	
    WriteRawIO(0,0x80);
    if (MpIsrInfo && MpIsrOut)
    {
        while( ReadRawIO(RegPrimaryStatus) & 0x08) 
        {
            irqMask = ReadRawIO(RegInterruptEn);
            irqBits = ReadRawIO(RegInterruptRq) & irqMask;
            MpIsrInfo->irqSource |= irqBits; 
            if (irqBits & 0x01)   
            {  
                nbytes = 64 - ReadRawIO(RegFIFOLength);
                if ((MpIsrInfo->nBytesToSend - MpIsrInfo->nBytesSent) <= nbytes)
                {
                    nbytes = MpIsrInfo->nBytesToSend - MpIsrInfo->nBytesSent;
                    WriteRawIO(RegInterruptEn,0x01);
                }   
                for ( cnt = 0;cnt < nbytes;cnt++)
                {
                    WriteRawIO(RegFIFOData,MpIsrOut[MpIsrInfo->nBytesSent]);
                    MpIsrInfo->nBytesSent++;
                }
                WriteRawIO(RegInterruptRq,0x01);  
            }      
            if (irqBits & 0x10)    
            {
                WriteRawIO(RegInterruptRq,0x10);    
                WriteRawIO(RegInterruptEn,0x82);   
                if (MpIsrInfo->cmd == PICC_ANTICOLL1) 	
	            {                                        
                    WriteIO(RegChannelRedundancy,0x02);
                    WriteRawIO(0,0x80);
	            }	
            }
            if (irqBits & 0x0E) 
            {
                nbytes = ReadRawIO(RegFIFOLength);
                for ( cnt = 0; cnt < nbytes; cnt++)               
                {
                    MpIsrOut[MpIsrInfo->nBytesReceived] = ReadRawIO(RegFIFOData);
                    MpIsrInfo->nBytesReceived++;
                }
                WriteRawIO(RegInterruptRq,0x0A & irqBits); 
            }   
            if (irqBits & 0x04) 
            {
                WriteRawIO(RegInterruptEn,0x20); 
                WriteRawIO(RegInterruptRq,0x20); 
                irqBits &= ~0x20; 
                MpIsrInfo->irqSource &= ~0x20;
                WriteRawIO(RegInterruptRq,0x04);
            }
            if (irqBits & 0x20)     
            {
                WriteRawIO(RegInterruptRq,0x20); 
                MpIsrInfo->status = MI_NOTAGERR; 
            }
        }
    }
}

///////////////////////////////////////////////////////////////////////
// 接收和發送中斷
///////////////////////////////////////////////////////////////////////
void isr_UART(void) interrupt 4 using 1
{
    unsigned char len, i;
  	unsigned int j=0;
  	
  	if(RI)
	{		
		len=SBUF;
		RI=0;	
		for(i=0;i<len;i++)
		{
			while(!RI)
			{
				j++;
				if(j>1000)
				{
				    break;
				}
			}
			if(j<1000)
			{
				RevBuffer[i]=SBUF;
				RI=0;
				j=0;
			}
			else
			{
			    break;
			}
		}
		if(i==len)
		{
			REN=0;
			CmdValid=1;
		}
	}
	else if(!RI && TI)
	{
		TI=0;
		len=RevBuffer[0];
		for(i=1;i<len+1;i++)
		{
			SBUF=RevBuffer[i];
			while(!TI);
			TI=0;			
		}
		REN=1;
	}
}

///////////////////////////////////////////////////////////////////////
// MF RC500 Config
///////////////////////////////////////////////////////////////////////
char MfConfig(void)
{
	char status=MI_OK;
	
	M500PcdConfig();
	M500PcdMfOutSelect(2);
	return status;
}

///////////////////////////////////////////////////////////////////////
// 系統初始化
///////////////////////////////////////////////////////////////////////
void init(void)
{
	RC500RST=0;	
	ET2 = 0; 	
	T2CON = 0x04;		
    PCON = 0x80;                
    SCON = 0x70;                 
    TMOD = 0x21;        //TMOD = 0x22;

	TH1   = BAUD_9600;
	TL1   = TH1;
	TR1   = TRUE;             // 波特率發生器

	TH0 = 0x60;
    TL0 = 0x60;
    TR0 = 0;
    
    ET0=0;
	ET1=0;
	EA=1;
	EX0=1;
	IT0 = 1;	
	TR2=0;
 	ES = TRUE;    
	CmdValid=0; 
//	AUXR=0x02; 

	SPEAKER=0; 	LED=0;
	delay_10ms(30);
	SPEAKER=1;
	LED=1;

 	MfConfig();
}

///////////////////////////////////////////////////////////////////////
// IC卡處理函數
///////////////////////////////////////////////////////////////////////
void cmd_execution(void)
{
	unsigned char status;
	unsigned char Connect_Status=00;
   //尋找卡
	RevBuffer[1]=0x26;//,26為RegMfOutSele
	status=M500PiccCommonRequest(RevBuffer[1],&RevBuffer[2]);
	if(status==0)
	{    
	   // 防沖突 讀卡的系列號 MLastSelectedSnr
		status = M500PiccCascAnticoll(0,&RevBuffer[2]);
		if(status==0)
		{
		 LED=0;
         SPEAKER=0;
		 RevBuffer[0]=7;
		 RevBuffer[1]=0xFE;
		 RevBuffer[7]=0x7F;
		 CALL_isr_UART();	     //觸發串口中斷
		 M500PiccHalt();       //終止IC卡操
		 delay_10ms(30);
		 SPEAKER=1;	
		 LED=1;	
	     delay_10ms(30);

	}
  }   
}

///////////////////////////////////////////////////////////////////////
// 主函數
///////////////////////////////////////////////////////////////////////

void main(void)
{
  init(); 
  while(1)
  {
  cmd_execution();         // 進入IC卡處理程序	
  } 
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品欧美一二99| 亚洲色图19p| 欧美美女直播网站| 日本电影欧美片| 99国产精品久久久久久久久久| 久久精品久久精品| 人人超碰91尤物精品国产| 久久国产乱子精品免费女| 精品无码三级在线观看视频| 精品一区二区免费看| 蜜桃视频在线一区| 国产精品99久| bt7086福利一区国产| 91麻豆精东视频| 色婷婷综合久久| 欧美一区二区三区爱爱| 精品蜜桃在线看| 国产精品久久免费看| 一区二区三区日韩欧美精品| 石原莉奈在线亚洲三区| 精品一区在线看| 99免费精品视频| 欧美日本韩国一区二区三区视频 | 久久久久久亚洲综合| 久久久99久久| 亚洲精品高清在线| 蜜臂av日日欢夜夜爽一区| 成人国产精品免费观看动漫| 欧美性视频一区二区三区| 日韩午夜激情视频| 久久人人97超碰com| 国产精品久久久久久久久搜平片| 亚洲福利电影网| 福利一区在线观看| 欧美日韩高清在线| 欧美激情一区在线| 日本中文在线一区| 99re8在线精品视频免费播放| 欧美日韩1区2区| 亚洲欧美在线视频观看| 美女在线视频一区| 99re免费视频精品全部| 精品国产制服丝袜高跟| 一区二区三区四区不卡在线| 国产精品一区三区| 欧美一区午夜精品| 亚洲乱码中文字幕综合| 国产不卡免费视频| 精品免费国产二区三区| 丝袜美腿一区二区三区| 91美女在线看| 中文字幕av一区二区三区高| 蜜桃视频在线一区| 欧美精品 日韩| 一区二区三区在线免费视频| 成人毛片在线观看| 久久久久久久久免费| 免费亚洲电影在线| 欧美男人的天堂一二区| 一级日本不卡的影视| 成人动漫中文字幕| 国产女人水真多18毛片18精品视频| 日韩有码一区二区三区| 欧美色综合天天久久综合精品| 国产精品毛片久久久久久| 国产乱国产乱300精品| 日韩欧美电影在线| 日本不卡视频在线观看| 91精品综合久久久久久| 亚洲第一在线综合网站| 欧美日本视频在线| 日日骚欧美日韩| 欧美日韩综合在线免费观看| 亚洲综合另类小说| 欧美亚洲尤物久久| 亚洲国产精品自拍| 欧美日韩免费观看一区二区三区| 亚洲精品国产视频| 欧美三级中文字| 日韩高清国产一区在线| 日韩午夜电影av| 国内精品视频666| 国产精品网友自拍| 91色|porny| 亚洲一区av在线| 欧美日免费三级在线| 日韩高清欧美激情| 久久青草欧美一区二区三区| 国产成人av影院| 18欧美乱大交hd1984| 欧洲视频一区二区| 天天操天天干天天综合网| 欧美一区二区三区四区五区| 极品少妇一区二区三区精品视频 | 日本精品免费观看高清观看| 亚洲国产精品一区二区久久 | 国产欧美一区二区三区网站 | 国产在线国偷精品免费看| 久久精品一区二区三区四区| 成人高清视频免费观看| 性久久久久久久久| 国产亚洲精品久| 欧美色大人视频| 福利一区二区在线观看| 亚洲高清免费一级二级三级| 欧美大片在线观看一区二区| av网站一区二区三区| 亚洲不卡av一区二区三区| 久久青草欧美一区二区三区| 一本色道久久综合亚洲aⅴ蜜桃 | 欧美精品一区二区三区一线天视频| 国产成人免费9x9x人网站视频| 一区二区日韩电影| 久久久久久久综合狠狠综合| 欧美在线观看视频在线| 国产精品白丝jk白祙喷水网站| 亚洲成av人片一区二区梦乃| 久久这里只精品最新地址| 91久久精品国产91性色tv| 国产综合一区二区| 午夜精品影院在线观看| 国产精品全国免费观看高清| 日韩一二三区视频| 91久久免费观看| 不卡一区二区中文字幕| 九九在线精品视频| 亚洲高清免费视频| 夜夜夜精品看看| 国产精品久久久久久久久快鸭| 日韩欧美国产小视频| 欧美日韩在线播放三区四区| 99精品热视频| 国产91精品入口| 国产精品一区二区三区99 | 国产农村妇女毛片精品久久麻豆| 欧美日韩视频一区二区| 成人看片黄a免费看在线| 国产精一区二区三区| 麻豆国产欧美一区二区三区| 日本成人在线看| 欧美aaaaaa午夜精品| 亚洲国产精品嫩草影院| 亚洲精品日日夜夜| 中文字幕亚洲精品在线观看| 国产精品丝袜黑色高跟| 中文字幕精品—区二区四季| 久久女同精品一区二区| 亚洲精品在线观看网站| 日韩你懂的在线观看| 日韩一区二区三| 日韩欧美亚洲国产另类| 精品久久国产97色综合| 欧美成人性战久久| 久久久久久久久久久久久夜| 久久精品网站免费观看| 国产欧美精品一区aⅴ影院| 日本一区二区高清| 中文字幕一区二区三区不卡 | 日本午夜精品视频在线观看| 三级成人在线视频| 九九在线精品视频| 国内欧美视频一区二区| 成人app网站| 色哟哟日韩精品| 欧美日韩第一区日日骚| 久久久亚洲精品石原莉奈 | 亚洲精品高清在线| 一区二区三区不卡视频在线观看 | 九九视频精品免费| 国产91丝袜在线播放0| 色综合天天综合网国产成人综合天 | 久久国产综合精品| 国产高清精品久久久久| av中文一区二区三区| 欧美性感一类影片在线播放| 欧美一区二区三区小说| 中文字幕av不卡| 亚洲国产日韩在线一区模特 | 成人av在线网| 欧美日韩一区久久| 精品国产乱码久久久久久闺蜜| 久久综合九色综合97婷婷| √…a在线天堂一区| 午夜精品久久久久久不卡8050| 精品一区二区三区日韩| 一本色道久久综合狠狠躁的推荐| 欧美一区二区三区四区高清| 国产精品网站导航| 蜜桃视频一区二区| 色婷婷久久综合| 国产亚洲精品精华液| 五月激情六月综合| 成人黄色软件下载| 日韩欧美在线影院| 亚洲视频一二三| 国产.欧美.日韩| 欧美一级日韩免费不卡| 亚洲另类色综合网站| 国产在线乱码一区二区三区| 欧美日韩久久不卡|