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

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

?? rc500.c

?? RC500的全部操作,讀卡
?? C
?? 第 1 頁 / 共 3 頁
字號:
    WriteIO(RegChannelRedundancy,0x0F); 
    ClearBitMask(RegControl,0x08);    
    ResetInfo(MInfo);   
    SerBuffer[0] = 0x93;
    SerBuffer[1] = 0x70;        
   
    memcpy(SerBuffer + 2,snr,4);
    SerBuffer[6] = SerBuffer[2] ^ SerBuffer[3] ^ SerBuffer[4] ^ SerBuffer[5];
    MInfo.nBytesToSend   = 7;
    status = M500PcdCmd(PCD_TRANSCEIVE,SerBuffer,&MInfo);

    *sak = 0;   
    if (status == MI_OK)  
    {
        if (MInfo.nBitsReceived != 8)   
        {
            status = MI_BITCOUNTERR;
        }
        else
        {
	        *sak = SerBuffer[0];
        }	
    }
    return status;
}

///////////////////////////////////////////////////////////////////////
// Key loading into the MF RC500's EEPROM
// 校驗卡密碼(E2)
///////////////////////////////////////////////////////////////////////
/*char M500PiccAuthE2( unsigned char auth_mode,unsigned char *snr,      
                     unsigned char keynr,unsigned char block)     
                                              
{
    char idata status = MI_OK;
    unsigned int e2addr = 0x80 + keynr * 0x18;
    //unsigned char *e2addrbuf = (unsigned char*)&e2addr;
    unsigned char *e2addrbuf;
    
    e2addrbuf = (unsigned char *)&e2addr;
    if (auth_mode == PICC_AUTHENT1B)
    {
        e2addr += 12; 
    }
    FlushFIFO();    
    ResetInfo(MInfo);

    memcpy(SerBuffer,e2addrbuf,2); 
    SerBuffer[2] = SerBuffer[0];      
    SerBuffer[0] = SerBuffer[1]; 
    SerBuffer[1] = SerBuffer[2];
    MInfo.nBytesToSend   = 2;
    if ((status=M500PcdCmd(PCD_LOADKEYE2,SerBuffer,&MInfo)) == MI_OK)
    {  
        status = M500PiccAuthState(auth_mode,snr,block);  //11.9
    }
    return status;
}*/

///////////////////////////////////////////////////////////////////////
// Authentication key coding
///////////////////////////////////////////////////////////////////////
/*char M500HostCodeKey(  unsigned char *uncoded, unsigned char *coded)   
{
    char idata status = MI_OK;
    unsigned char idata cnt = 0;
    unsigned char idata ln  = 0;     
    unsigned char idata hn  = 0;      
    for (cnt = 0; cnt < 6; cnt++)
    {
        ln = uncoded[cnt] & 0x0F;
        hn = uncoded[cnt] >> 4;
        coded[cnt * 2 + 1] = (~ln << 4) | ln;
        coded[cnt * 2 ] = (~hn << 4) | hn;
    }
    return MI_OK;
}*/

///////////////////////////////////////////////////////////////////
// Authentication with direct key loading from the uC
// 直接校驗密碼
//////////////////////////////////////////////////////////////////
/*char M500PiccAuthKey(  unsigned char auth_mode,
                       unsigned char *snr,       
                       unsigned char *keys,      
                       unsigned char block)      
{
    char idata status = MI_OK;
    //PcdSetTmo(2);
    FlushFIFO();   
    ResetInfo(MInfo);
    memcpy(SerBuffer,keys,12);                 
    MInfo.nBytesToSend = 12;
    if ((status=M500PcdCmd(PCD_LOADKEY,SerBuffer,&MInfo)) == MI_OK)
    {      
        status = M500PiccAuthState(auth_mode,snr,block); 
    }
    return status;
}*/

///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
/*char M500PiccAuthState( unsigned char auth_mode,unsigned char *snr,unsigned char block)
{
    char idata status = MI_OK;
    unsigned char idata i = 0;
   
    status = ReadIO(RegErrorFlag);                                     
    if (status != MI_OK)
    {
        if (status & 0x40)           
        {
            status = MI_KEYERR;
        }
        else
        {
            status = MI_AUTHERR;    
        }
    }
    else
    {
        SerBuffer[0] = auth_mode;    

        SerBuffer[1] = block;  
        memcpy(SerBuffer + 2,snr,4); 
        ResetInfo(MInfo);
        MInfo.nBytesToSend = 6;
        if ((status = M500PcdCmd(PCD_AUTHENT1,SerBuffer,&MInfo)) == MI_OK)
        {
            if (ReadIO(RegSecondaryStatus) & 0x07) 
            {
                status = MI_BITCOUNTERR;
            }
            else
            {
                ResetInfo(MInfo);
                MInfo.nBytesToSend = 0;
                if ((status = M500PcdCmd(PCD_AUTHENT2,
                                     SerBuffer,
                                     &MInfo)) == MI_OK) 
                {
                    if ( ReadIO(RegControl) & 0x08 ) 
                    {
                        status = MI_OK;
                    }
                    else
                    {
                        status = MI_AUTHERR;
                    }
                }
            }
        }
    }
    return status;
}*/

////////////////////////////////////////////////////////////////
// Read the mifare card
// 讀卡
////////////////////////////////////////////////////////////////
/*char M500PiccRead(unsigned char addr,unsigned char *_data)
{
    char idata status = MI_OK;
    char idata tmp    = 0;

    FlushFIFO();    

    M500PcdSetTmo(3);  
    WriteIO(RegChannelRedundancy,0x0F);
    ResetInfo(MInfo);   
    SerBuffer[0] = PICC_READ;   
    SerBuffer[1] = addr;
    MInfo.nBytesToSend   = 2;   
    status = M500PcdCmd(PCD_TRANSCEIVE,SerBuffer,&MInfo);

    if (status != MI_OK)
    {
        if (status != MI_NOTAGERR ) 
        {
            if (MInfo.nBitsReceived == 4)  
            {
                SerBuffer[0] &= 0x0f;  
                if ((SerBuffer[0] & 0x0a) == 0)
                {
                    status = MI_NOTAUTHERR;
                }
                else
                {
                    status = MI_CODEERR;
                }
            }
        }
        memcpy(_data,"0000000000000000",16); 
    }
    else                // Response Processing
    {
        if (MInfo.nBytesReceived != 16)
        {
            status = MI_BYTECOUNTERR;
            memcpy(_data,"0000000000000000",16);
        }
        else
        {
            memcpy(_data,SerBuffer,16);
        }
    }
    M500PcdSetTmo(1);             
    return status; 
}*/

////////////////////////////////////////////////////////////////
// Write the mifare card
// 寫卡  下載密碼
////////////////////////////////////////////////////////////////
/*char M500PiccWrite( unsigned char addr,unsigned char *_data)
{
    char idata status = MI_OK;
    
    ResetInfo(MInfo);   
    SerBuffer[0] = PICC_WRITE; 
    SerBuffer[1] = addr;            
    MInfo.nBytesToSend   = 2;
    status = M500PcdCmd(PCD_TRANSCEIVE,SerBuffer,&MInfo);

    if (status != MI_NOTAGERR)   
    {
        if (MInfo.nBitsReceived != 4)  
        {
            status = MI_BITCOUNTERR;
        }
        else                     
        {
            SerBuffer[0] &= 0x0f; 
            if ((SerBuffer[0] & 0x0a) == 0)
            {
                status = MI_NOTAUTHERR;                   
            }
            else
            {
                if (SerBuffer[0] == 0x0a)
                {
                    status = MI_OK;
                }
                else 
                {
                    status = MI_CODEERR;
                }
            }
        }
    }

    if ( status == MI_OK)
    {
        M500PcdSetTmo(3);    

        ResetInfo(MInfo);   
        memcpy(SerBuffer,_data,16);
        MInfo.nBytesToSend   = 16;
        status = M500PcdCmd(PCD_TRANSCEIVE,SerBuffer,&MInfo);
        
        if (status & 0x80)   
        {
            status = MI_NOTAGERR;
        }
        else
        {
            if (MInfo.nBitsReceived != 4) 
            {
                status = MI_BITCOUNTERR;
            }
            else                  
            {
                SerBuffer[0] &= 0x0f; 
                if ((SerBuffer[0] & 0x0a) == 0)
                {
                    status = MI_WRITEERR;
                }
                else
                {
                    if (SerBuffer[0] == 0x0a)
                    {
                        status = MI_OK;
                    }
                    else 
                    {
                        status = MI_CODEERR;
                    }
                }     
            }
        }        
        M500PcdSetTmo(1);  
    }
    return status;
}*/

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

///////////////////////////////////////////////////////////////////////
// MF RC500 Config
///////////////////////////////////////////////////////////////////////
char MfConfig(void)
{
	char status=MI_OK;
	
	EX0=1;
	IT0 = 1;	

	M500PcdConfig();
	M500PcdMfOutSelect(2);
	return status;
}

///////////////////////////////////////////////////////////////////////
//外中斷0
//RC500中斷請求
///////////////////////////////////////////////////////////////////////
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);		//選擇寄存器頁0
    if (MpIsrInfo && MpIsrOut)
    {
		//PrimaryStatus 寄存器,讀取接收器、發送器和FIFO 緩沖區狀態標志
        while( ReadRawIO(RegPrimaryStatus) & 0x08)	//test IRQ 
        {
            irqMask = ReadRawIO(RegInterruptEn);	//使能和禁止中斷請求通過的控制位
            irqBits = ReadRawIO(RegInterruptRq) & irqMask;	//中斷請求標志
            MpIsrInfo->irqSource |= irqBits; 
            if (irqBits & 0x01)   
            {  
                nbytes = 64 - ReadRawIO(RegFIFOLength);		//FIFO 中的緩沖字節數
                if ((MpIsrInfo->nBytesToSend - MpIsrInfo->nBytesSent) <= nbytes)
                {
                    nbytes = MpIsrInfo->nBytesToSend - MpIsrInfo->nBytesSent;
                    WriteRawIO(RegInterruptEn,0x01);	//允許將LoAlert中斷請求傳遞給腳IRQ
                }   
                for ( cnt = 0;cnt < nbytes;cnt++)
                {
                    WriteRawIO(RegFIFOData,MpIsrOut[MpIsrInfo->nBytesSent]);	//FIFO 緩沖區
                    MpIsrInfo->nBytesSent++;
                }
                WriteRawIO(RegInterruptRq,0x01);  	//中斷請求標志
            }      
            if (irqBits & 0x10)    
            {
                WriteRawIO(RegInterruptRq,0x10);    
                WriteRawIO(RegInterruptEn,0x82);   
                if (MpIsrInfo->cmd == PICC_ANTICOLL1) 	
	            {                                        
                    WriteIO(RegChannelRedundancy,0x02);	//選擇RF 信道上數據完整性檢測的類型和模式
                    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; 
            }
        }
    }
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
大白屁股一区二区视频| 日韩欧美一区二区不卡| 亚洲一区二区美女| 精品国产免费一区二区三区四区 | 欧美日本在线一区| 麻豆精品久久精品色综合| 中文字幕不卡一区| 欧美一区二区三区视频在线| 一区二区在线看| 日本一区二区电影| 欧美一区二区成人| 91免费版pro下载短视频| 国产中文字幕一区| 日韩精品亚洲专区| 亚洲综合一区二区三区| 国产日韩欧美a| 555www色欧美视频| 欧美日韩一级黄| 在线免费观看日本一区| 国产寡妇亲子伦一区二区| 男女男精品视频网| 亚洲国产日韩精品| 亚洲一区二区三区四区五区中文| 中文字幕av不卡| 中文字幕亚洲一区二区va在线| 欧美国产日韩在线观看| 久久精品欧美一区二区三区麻豆| 日韩一二三区不卡| 久久久蜜臀国产一区二区| 日韩精品资源二区在线| 26uuu精品一区二区三区四区在线| 在线观看欧美黄色| 精品视频在线免费看| 欧美精品在线观看播放| 欧美男同性恋视频网站| 91精品久久久久久久91蜜桃| 欧美一区二区三区人| 2024国产精品| 一区二区三区美女| 久久成人免费日本黄色| 成人综合激情网| 欧美日本在线视频| 中文字幕中文乱码欧美一区二区| 亚洲精品第1页| 国产一区二区伦理片| heyzo一本久久综合| 91精品欧美一区二区三区综合在| 国产欧美日韩精品一区| 亚洲综合色丁香婷婷六月图片| 免费不卡在线观看| 91黄色免费看| 国产精品久久久久久一区二区三区| 首页国产丝袜综合| 色网站国产精品| 欧美经典一区二区| 男人的天堂久久精品| 91福利国产成人精品照片| xf在线a精品一区二区视频网站| 亚洲蜜桃精久久久久久久| 国产乱码一区二区三区| 欧美大片一区二区三区| 亚洲国产视频网站| 欧美日韩一区二区三区视频| 国产精品毛片高清在线完整版| 精品午夜一区二区三区在线观看 | 色哟哟国产精品| 亚洲欧美一区二区视频| 91美女福利视频| 一区二区三区中文字幕在线观看| 99久久婷婷国产综合精品电影| 国产女主播在线一区二区| 国产91在线|亚洲| 亚洲国产精品成人综合色在线婷婷| 国产成人在线影院 | 日韩精品一区二区三区视频播放| 日精品一区二区三区| 日韩欧美一区在线| 成人在线视频一区| 亚洲综合丁香婷婷六月香| 欧美剧在线免费观看网站| 精品一区二区精品| 亚洲免费成人av| 欧美成人综合网站| 99国产精品99久久久久久| 午夜精品一区在线观看| 欧美不卡一区二区三区四区| 国产成人一区在线| 中文字幕一区二区三区精华液 | 国内精品第一页| 91精品久久久久久久91蜜桃| 国产精品一区二区在线观看网站| 久久久亚洲精品一区二区三区| 久久99日本精品| 亚洲欧美乱综合| 国产亚洲欧美一区在线观看| 欧美欧美欧美欧美首页| 丁香另类激情小说| 免费观看在线综合色| 一区二区三区日韩在线观看| 精品国产一区二区三区不卡| 91麻豆免费在线观看| 成人美女视频在线观看| 国产一区二区在线影院| 久久99精品久久久久久动态图| 夜夜精品视频一区二区 | 成人在线一区二区三区| 国产精品一区一区| 国产乱码精品一区二区三区av | 国产最新精品免费| 久久激情五月激情| 93久久精品日日躁夜夜躁欧美| 韩国成人在线视频| 国产乱子轮精品视频| 国产一区 二区| 成人久久久精品乱码一区二区三区| 国产一区二区三区电影在线观看| 精品在线观看视频| 国产黄色成人av| 成人免费看视频| 在线观看日韩高清av| 制服丝袜日韩国产| 国产亚洲成av人在线观看导航| 国产精品婷婷午夜在线观看| 日韩理论电影院| 天天综合网天天综合色| 国产综合成人久久大片91| 成人中文字幕在线| 91精品在线免费观看| 国产精品女同一区二区三区| 亚洲成人av一区二区| 国内成人免费视频| 色伊人久久综合中文字幕| 91精品国产麻豆| 亚洲欧洲性图库| 国产高清精品在线| 717成人午夜免费福利电影| 久久久精品人体av艺术| 性做久久久久久| 97久久精品人人做人人爽| 日韩免费看的电影| 日本伊人精品一区二区三区观看方式| 成人精品gif动图一区| 欧美精品一区二区三区蜜臀| 午夜激情久久久| 欧美精品久久99| 一区二区在线观看视频| 99re热这里只有精品免费视频| 国产午夜精品久久久久久免费视| 日本不卡一区二区三区| 欧美一区二区免费| 日韩中文字幕麻豆| 色婷婷亚洲精品| 亚洲精品一二三四区| 欧美中文字幕一区二区三区 | 97成人超碰视| 亚洲制服丝袜一区| 欧美精选在线播放| 国产综合色产在线精品| 日韩欧美成人一区| 国内精品久久久久影院色| 久久亚洲精精品中文字幕早川悠里 | 欧美日韩一区二区三区免费看 | 精品国产乱码久久久久久久久| 韩国精品免费视频| 日韩一区有码在线| 欧美日韩黄色一区二区| 麻豆国产精品777777在线| 日韩欧美aaaaaa| 99精品偷自拍| 捆绑调教美女网站视频一区| 日韩精品中文字幕在线不卡尤物| 国产精品一区二区三区99| 亚洲日本电影在线| 日韩西西人体444www| 波多野洁衣一区| 久久99国产精品尤物| 夜夜嗨av一区二区三区四季av| 欧美一区午夜精品| 一本一道波多野结衣一区二区| 麻豆精品国产传媒mv男同| 国产精品国产馆在线真实露脸| 91精品国产综合久久福利软件 | 午夜精品久久一牛影视| 国产亚洲精品精华液| 日韩精品一区二区三区四区视频 | 99re视频这里只有精品| 国产精品羞羞答答xxdd| 日本怡春院一区二区| 亚洲综合在线第一页| 自拍视频在线观看一区二区| 久久久99久久| 欧美国产精品久久| 欧美国产一区二区在线观看 | 欧美国产成人在线| 久久在线观看免费| 2021久久国产精品不只是精品| 欧美老人xxxx18| 日韩欧美黄色影院| 精品国产乱码久久久久久老虎| 日韩一区二区三区在线|