第一范文网 - 专业文章范例文档资料分享平台

基于射频识别技术的小区智能门禁控制系统 - 图文

来源:用户分享 时间:2025/5/29 7:37:01 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

陕西理工学院毕业设计

SPIData <<= 1; } }

///////////////////////////////////////////////////////////////////// //功 能:读RC632寄存器

//参数说明:Address[IN]:寄存器地址 //返 回:读出的值

///////////////////////////////////////////////////////////////////// unsigned char ReadRawRC(unsigned char Address) {

unsigned char ucAddr; unsigned char ucResult=0; CLR_SPI_CS;

ucAddr = ((Address<<1)&0x7E)|0x80; SPIWriteByte(ucAddr); ucResult=SPIReadByte(); SET_SPI_CS;

return ucResult; }

///////////////////////////////////////////////////////////////////// //功 能:写RC632寄存器

//参数说明:Address[IN]:寄存器地址 // value[IN]:写入的值

///////////////////////////////////////////////////////////////////// void WriteRawRC(unsigned char Address, unsigned char value) {

unsigned char ucAddr;

CLR_SPI_CS;

ucAddr = ((Address<<1)&0x7E); SPIWriteByte(ucAddr); SPIWriteByte(value); SET_SPI_CS; }

///////////////////////////////////////////////////////////////////// //功 能:清RC522寄存器位 //参数说明:reg[IN]:寄存器地址 // mask[IN]:清位值

///////////////////////////////////////////////////////////////////// void ClearBitMask(unsigned char reg,unsigned char mask) {

char tmp = 0x00;

tmp = ReadRawRC(reg);

第 40 页 共 61 页

陕西理工学院毕业设计

WriteRawRC(reg, tmp & ~mask); // clear bit mask }

///////////////////////////////////////////////////////////////////// //功 能:置RC522寄存器位 //参数说明:reg[IN]:寄存器地址 // mask[IN]:置位值

///////////////////////////////////////////////////////////////////// void SetBitMask(unsigned char reg,unsigned char mask) {

char tmp = 0x00;

tmp = ReadRawRC(reg);

WriteRawRC(reg,tmp | mask); // set bit mask }

///////////////////////////////////////////////////////////////////// //用MF522计算CRC16函数

/////////////////////////////////////////////////////////////////////

void CalulateCRC(unsigned char *pIndata,unsigned char len,unsigned char *pOutData) {

unsigned char i,n;

ClearBitMask(DivIrqReg,0x04); WriteRawRC(CommandReg,PCD_IDLE); SetBitMask(FIFOLevelReg,0x80); for (i=0; i

{ WriteRawRC(FIFODataReg, *(pIndata+i)); } WriteRawRC(CommandReg, PCD_CALCCRC); i = 0xFF; do {

n = ReadRawRC(DivIrqReg); i--; }

while ((i!=0) && !(n&0x04));

pOutData[0] = ReadRawRC(CRCResultRegL); pOutData[1] = ReadRawRC(CRCResultRegM); }

///////////////////////////////////////////////////////////////////// //功 能:通过RC522和ISO14443卡通讯 //参数说明:Command[IN]:RC522命令字

// pInData[IN]:通过RC522发送到卡片的数据 // InLenByte[IN]:发送数据的字节长度 // pOutData[OUT]:接收到的卡片返回数据 // *pOutLenBit[OUT]:返回数据的位长度

/////////////////////////////////////////////////////////////////////

第 41 页 共 61 页

陕西理工学院毕业设计

char PcdComMF522(unsigned char Command, unsigned char *pInData, unsigned char InLenByte, unsigned char *pOutData, unsigned int *pOutLenBit) {

char status = MI_ERR;

unsigned char irqEn = 0x00; unsigned char waitFor = 0x00; unsigned char lastBits; unsigned char n; unsigned int i; switch (Command) {

case PCD_AUTHENT: irqEn = 0x12; waitFor = 0x10; break;

case PCD_TRANSCEIVE: irqEn = 0x77; waitFor = 0x30; break; default: break; }

WriteRawRC(ComIEnReg,irqEn|0x80); ClearBitMask(ComIrqReg,0x80); WriteRawRC(CommandReg,PCD_IDLE); SetBitMask(FIFOLevelReg,0x80);

for (i=0; i

WriteRawRC(FIFODataReg, pInData[i]); }

WriteRawRC(CommandReg, Command);

if (Command == PCD_TRANSCEIVE) {

SetBitMask(BitFramingReg,0x80); }

//i = 600;//根据时钟频率调整,操作M1卡最大等待时间25ms i = 2000; do

第 42 页 共 61 页

陕西理工学院毕业设计

{

n = ReadRawRC(ComIrqReg); i--; }

while ((i!=0) && !(n&0x01) && !(n&waitFor)); ClearBitMask(BitFramingReg,0x80);

if (i!=0) {

if(!(ReadRawRC(ErrorReg)&0x1B)) {

status = MI_OK;

if (n & irqEn & 0x01)

{ status = MI_NOTAGERR; } if (Command == PCD_TRANSCEIVE) {

n = ReadRawRC(FIFOLevelReg);

lastBits = ReadRawRC(ControlReg) & 0x07; if (lastBits) {

*pOutLenBit = (n-1)*8 + lastBits; } else {

*pOutLenBit = n*8; }

if (n == 0) {

n = 1; }

if (n > MAXRLEN) {

n = MAXRLEN; }

for (i=0; i

pOutData[i] = ReadRawRC(FIFODataReg); } } } else {

status = MI_ERR; }

第 43 页 共 61 页

基于射频识别技术的小区智能门禁控制系统 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c0p3rk7u2i700kc5204u903ypi6bk1500j3w_12.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top