RFID课程设计(2)

2020-02-21 12:37

武汉理工大学华夏学院

[5]陈冲,徐志,何明华. 一种新的RFID防碰撞算法的研究[J]. 福州大学学报(自然科学版), 2009,(03) .

[6]周永明. 一种改进的查询树射频识别防冲突新算法[J]. 广东轻工职业技术学院学报, 2006,(02) .

[7]李辉,刘国栋,胡小云,高丽芳,沈烨,郑映钦. 电子标签技术在出口鳗鱼产品监管中的应用研究[J]. 中国国境卫生检疫杂志, 2007,(06) .

[8]蔡志刚. 集装箱无线射频识别技术应用研究[J]. 港口装卸, 2005,(05) .

九、 程序附录

void InitRc522(void) {

PcdReset();

PcdAntennaOff(); PcdAntennaOn();

M500PcdConfigISOType( 'A' ); }

void InitAll(void) {

SET_MAIN_CLOCK_SOURCE(CRYSTAL); initUART(); InitRc522();

INT_GLOBAL_ENABLE(INT_OFF); //开启总中断 //init_time1();

INT_GLOBAL_ENABLE(INT_ON); //开启总中断 bWarn=0; bPass=0; SysTime=0; KeyTime=0; WaitTimes=0; KeyNum=0; KuaiN=0;

oprationcard=0; uart_count=0; uart_comp=0; bSendID=0; Pass(); }

void ctrlprocess(void) {

unsigned char ii; char status; uart_count=0;//

6

//设置主时钟为32M晶振 武汉理工大学华夏学院

PcdReset(); halWait(200); halWait(200);

status=PcdRequest(PICC_REQIDL,&RevBuffer[0]);//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节

if(status!=MI_OK) {

return; }

status=PcdAnticoll(&RevBuffer[2]);//防冲撞,返回卡的序列号 4字节 if(status!=MI_OK) {

return; }

memcpy(MLastSelectedSnr,&RevBuffer[2],4); status=PcdSelect(MLastSelectedSnr);//选卡 if(status!=MI_OK) {

return; }

if(oprationcard==READCARD)//读卡 {

oprationcard=0;

status=PcdAuthState(PICC_AUTHENT1A,KuaiN,PassWd,MLastSelectedSnr);// if(status!=MI_OK) {

bWarn=1; return; }

status=PcdRead(KuaiN,Read_Data); if(status!=MI_OK) {

bWarn=1; return; }

for(ii=0;ii<16;ii++) {

sendchar1(MLastSelectedSnr[ii]); }

bPass=1;

sprintf(s,(char

*)\tedSnr[3]);

7

武汉理工大学华夏学院

GUI_ClearScreen(); //LCD清屏

GUI_PutString5_7(25, 2, \ // 显示字符串 GUI_PutString5_7(8, 18, \ // 显示字符串

GUI_PutString5_7(8,40,(char *)s); //显示结果 LCM_Refresh(); PcdHalt(); }

else if(oprationcard==WRITECARD)//写卡 //if(oprationcard==WRITECARD)//写卡 {

oprationcard=0;

status=PcdAuthState(PICC_AUTHENT1A,KuaiN,PassWd,MLastSelectedSnr);// if(status!=MI_OK) {

bWarn=1; return; }

status=PcdWrite(KuaiN,&WriteData[0]); if(status!=MI_OK) {

bWarn=1; return; } bPass=1; PcdHalt(); } }

void ctrl_uart(void) {

uchar ii;

for(ii=0;ii<6;ii++) {

RevBuffer[ii+2]=0xff; }

// RevBuffer[8]=0x03; switch(RevBuffer[1]) {

case 0xa1://读数据

oprationcard=READCARD; for(ii=0;ii<6;ii++) {

PassWd[ii]=RevBuffer[ii+2]; }

8

武汉理工大学华夏学院

KuaiN=RevBuffer[8]; break;

case 0xa2://写数据

oprationcard=WRITECARD; for(ii=0;ii<6;ii++) {

PassWd[ii]=RevBuffer[ii+2]; }

KuaiN=RevBuffer[8]; for(ii=0;ii<4;ii++) {

WriteData[ii]=MLastSelectedSnr[ii]; }

setdatamode=0; break;

default: break; }

uart_comp=0; uart_count=0; }

void main(void) {

InitAll();

GUI_Init(); // GUI初始化 GUI_SetColor(1,0); // 显示色为亮点,背景色为暗点 GUI_PutString5_7(16, 2, \ // 显示字符串 GUI_PutString5_7(6, 20, \ // 显示字符串 LCM_Refresh(); //RevBuffer[8]=0x00; //RevBuffer[0]=0x02; //RevBuffer[1]=0xa0; while(1) {

uart_comp=1; if(uart_comp) {

ctrl_uart(); }

halWait(20); ctrlprocess(); switch(Key_Flag) {

case 1:

9

武汉理工大学华夏学院

Key_Flag=0;

RFIDDataSetting =0;

zgConfigPANIDSetting = 4; setmode= 1;

GUI_ClearScreen(); // 清屏 GUI_PutString5_7(25, 2, \ // 显示字符串 GUI_PutString5_7(5, 20, \显示字符串 GUI_PutString5_7(5,40,\ LCM_Refresh();

// 将显示缓冲区中的数据刷新到SO12864FPD-14ASBE(3S)上显示 break; case 2:

Key_Flag=0;

if((writemode==1)&&(setmode==0)){

RFIDDataSetting=MLastSelectedSnr[writebuffer]; RFIDDataSetting += 1;

if(RFIDDataSetting>128)RFIDDataSetting=0; MLastSelectedSnr[writebuffer]=RFIDDataSetting; if((writebuffer/4)==0){ sprintf(s,(char

*)\tedSnr[3]);

GUI_PutString5_7(8,16,(char *)s); //显示结果 LCM_Refresh();} }

if(setmode){ }

if(modeselect) {

modeselect=0; setdatamode=1; writemode=0; setmode=0;

RevBuffer[0]=0x09; RevBuffer[1]=0xa1;

GUI_ClearScreen(); //LCD清屏 GUI_PutString5_7(4, 20, \ // 显示字符串 LCM_Refresh(); }

break; case 3:

Key_Flag=0; if(setmode){}

10


RFID课程设计(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:四年级趣味数学课外知识篇 每天20分钟拓展训练 第十五讲 列方程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: