freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的rfid讀寫器的設(shè)計(jì)論文-資料下載頁

2025-06-27 19:22本頁面
  

【正文】 MF522Buf[MAXRLEN]。 ucComMF522Buf[0] = PICC_READ。 ucComMF522Buf[1] = addr。 CalulateCRC(ucComMF522Buf,2,amp。ucComMF522Buf[2])。 status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,amp。unLen)。 if ((status == MI_OK) amp。amp。 (unLen == 0x90)) // { memcpy(pData, ucComMF522Buf, 16)。 } { for (i=0。 i16。 i++) { *(pData+i) = ucComMF522Buf[i]。 } } else { status = MI_ERR。 } return status。}///////////////////////////////////////////////////////////////////////功 能:寫數(shù)據(jù)到M1卡一塊//參數(shù)說明: addr[IN]:塊地址// pData[IN]:寫入的數(shù)據(jù),16字節(jié)//返 回: 成功返回MI_OK///////////////////////////////////////////////////////////////////// char PcdWrite(unsigned char data addr,unsigned char *pData){ char data status。 unsigned int data unLen。 unsigned char data i,ucComMF522Buf[MAXRLEN]。 ucComMF522Buf[0] = PICC_WRITE。 ucComMF522Buf[1] = addr。 CalulateCRC(ucComMF522Buf,2,amp。ucComMF522Buf[2])。 status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,amp。unLen)。 if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] amp。 0x0F) != 0x0A)) { status = MI_ERR。 } if (status == MI_OK) { //memcpy(ucComMF522Buf, pData, 16)。 for (i=0。 i16。 i++) { ucComMF522Buf[i] = *(pData+i)。 } CalulateCRC(ucComMF522Buf,16,amp。ucComMF522Buf[16])。 status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,18,ucComMF522Buf,amp。unLen)。 if ((status != MI_OK) || (unLen != 4) || ((ucComMF522Buf[0] amp。 0x0F) != 0x0A)) { status = MI_ERR。 } } return status。}///////////////////////////////////////////////////////////////////////功 能:命令卡片進(jìn)入休眠狀態(tài)//返 回: 成功返回MI_OK/////////////////////////////////////////////////////////////////////char PcdHalt(void){ char data status。 unsigned int data unLen。 unsigned char data ucComMF522Buf[MAXRLEN]。 ucComMF522Buf[0] = PICC_HALT。 ucComMF522Buf[1] = 0。 CalulateCRC(ucComMF522Buf,2,amp。ucComMF522Buf[2])。 status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,amp。unLen)。 return MI_OK。}///////////////////////////////////////////////////////////////////////用MF522計(jì)算CRC16函數(shù)/////////////////////////////////////////////////////////////////////void CalulateCRC(unsigned char *pIndata,unsigned char data len,unsigned char *pOutData){ unsigned char data i,n。 ClearBitMask(DivIrqReg,0x04)。 WriteRawRC(CommandReg,PCD_IDLE)。 SetBitMask(FIFOLevelReg,0x80)。 for (i=0。 ilen。 i++) { WriteRawRC(FIFODataReg, *(pIndata+i))。 } WriteRawRC(CommandReg, PCD_CALCCRC)。 i = 0xFF。 do { n = ReadRawRC(DivIrqReg)。 i。 } while ((i!=0) amp。amp。 !(namp。0x04))。 pOutData[0] = ReadRawRC(CRCResultRegL)。 pOutData[1] = ReadRawRC(CRCResultRegM)。}///////////////////////////////////////////////////////////////////////功 能:復(fù)位RC522//返 回: 成功返回MI_OK/////////////////////////////////////////////////////////////////////char PcdReset(void){ //PORTD|=(1RC522RST)。 SET_RC522RST。 delay_ns(10)。 //PORTDamp。=~(1RC522RST)。 CLR_RC522RST。 delay_ns(10)。 //PORTD|=(1RC522RST)。 SET_RC522RST。 delay_ns(10)。 WriteRawRC(CommandReg,PCD_RESETPHASE)。 delay_ns(10)。 WriteRawRC(ModeReg,0x3D)。 //和Mifare卡通訊,CRC初始值0x6363 WriteRawRC(TReloadRegL,30)。 WriteRawRC(TReloadRegH,0)。 WriteRawRC(TModeReg,0x8D)。 WriteRawRC(TPrescalerReg,0x3E)。 WriteRawRC(TxAutoReg,0x40)。//必須要 return MI_OK。}////////////////////////////////////////////////////////////////////////設(shè)置RC632的工作方式 //////////////////////////////////////////////////////////////////////char M500PcdConfigISOType(unsigned char data type){ if (type == 39。A39。) //ISO14443_A { ClearBitMask(Status2Reg,0x08)。 WriteRawRC(ModeReg,0x3D)。//3F WriteRawRC(RxSelReg,0x86)。//84 WriteRawRC(RFCfgReg,0x7F)。 //4F WriteRawRC(TReloadRegL,30)。//tmoLength)。// TReloadVal = 39。h6a =tmoLength(dec) WriteRawRC(TReloadRegH,0)。 WriteRawRC(TModeReg,0x8D)。 WriteRawRC(TPrescalerReg,0x3E)。 delay_ns(1000)。 PcdAntennaOn()。 } else{ return 1。 } return MI_OK。}///////////////////////////////////////////////////////////////////////功 能:讀RC632寄存器//參數(shù)說明:Address[IN]:寄存器地址//返 回:讀出的值/////////////////////////////////////////////////////////////////////unsigned char ReadRawRC(unsigned char data Address){ unsigned char data ucAddr。 unsigned char data ucResult=0。 CLR_SPI_CS。 ucAddr = ((Address1)amp。0x7E)|0x80。 SPIWriteByte(ucAddr)。 ucResult=SPIReadByte()。 SET_SPI_CS。 return ucResult。}///////////////////////////////////////////////////////////////////////功 能:寫RC632寄存器//參數(shù)說明:Address[IN]:寄存器地址// value[IN]:寫入的值/////////////////////////////////////////////////////////////////////void WriteRawRC(unsigned char data Address, unsigned char data value){ unsigned char data ucAddr。 CLR_SPI_CS。 ucAddr = ((Address1)amp。0x7E)。 SPIWriteByte(ucAddr)。 SPIWriteByte(value)。 SET_SPI_CS。}///////////////////////////////////////////////////////////////////////功 能:置RC522寄存器位//參數(shù)說明:reg[IN]:寄存器地址// mask[IN]:置位值/////////////////////////////////////////////////////////////////////void SetBitMask(unsigned char data reg,unsigned char data mask) { char data tmp = 0x0。 tmp = ReadRawRC(reg)。 WriteRawRC(reg,tmp | mask)。 // set bit mask}///////////////////////////////////////////////////////////////////////功 能:清RC522寄存器位//參數(shù)說明:reg[IN]:寄存器地址// mask[IN]:清位值/////////////////////////////////////////////////////////////////////vo
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1