IC卡公交收费机设计——MIFARE1卡读写软件设计.ppt
上传人:天马****23 上传时间:2024-09-11 格式:PPT 页数:25 大小:147KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

IC卡公交收费机设计——MIFARE1卡读写软件设计.ppt

IC卡公交收费机设计——MIFARE1卡读写软件设计.ppt

预览

免费试读已结束,剩余 15 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

课程目标项目开发——IC卡公交收费系统项目设计之三——软件设计MIFARE1卡的读写操作步骤#include<string.h>#include<intrins.h>#include<stdio.h>#include<MFA.h>#include<mfreg632.h>#include<PcdUtils.h>#include<PcdShare.h>#include<MfErrNo.h>#include<TG12864.h>#include<MAIN.h>#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlongmain(void){ucharblockdata[16];块数据ucharTagType[2];卡类型号TagTypeucharSN[4];卡序列号SNucharsak1;卡容量字节Sizeucharcmd=1;uchari=0;ucharStatus;rc500_init();//RC500INITM500PcdConfig();//configmifareinit();//SYSTEMINITInitLCD()while(1){Status=M500PiccRequest(PICC_REQSTD,&TagType[2]);寻卡,卡应答TagTypeif(Status==MI_OK){Status=M500PiccAnticoll(0,&SN);防冲突,卡应答SN}if(Status==MI_OK){memcpy(card_snr,&SN,4);//storeserialnumberingloblevar}if(Status==MI_OK){Status=M500PiccSelect(&SN,&sak1);选择应用,卡应答Size}if(Status==MI_OK){Status=M500PiccAuthE2(PICC_AUTHENT1A,card_snr,0,3);密码认证}if(Status==MI_OK){Status=M500PiccRead(3,blockdata);读块(读余额)blockdata[5]=blockdata[5]-0x05;修改块数据}if(Status==MI_OK){Status=M500PiccWrite(4,blockdata);写块(扣款)}if(Status==MI_OK){Status=M500PiccHalt();暂停,与REQUESTSTD组合使用,防止重复操作}}}AnswertoRequest(请求应答)操作Witha“requeststd”instructiononlycardswhicharenotsetintoa“HALT-mode”willrespondtothisrequest,oritmaybeexpandedtoallcardsinthefieldwitha“requestall”option.ThefirstoptionisneededtopreventtheMCMfromselectingonecardseveraltimes.初始化与防冲突(AntiCollion)AntiCollision防冲突MIFARE1卡防冲突特性防冲突(AntiCollision)操作选择应用(Select)操作认证(Authentication)操作READ/WRITE操作ValueOperate值操作Increment/Decrement/TransferIncrement/Decrement/TransferHALT操作实训非接触式IC卡读写控制程序设计与调试实训步骤