非接触式智能IC卡读写模块应用指导书Word格式文档下载.docx

上传人:b****8 文档编号:22137567 上传时间:2023-02-02 格式:DOCX 页数:33 大小:19KB
下载 相关 举报
非接触式智能IC卡读写模块应用指导书Word格式文档下载.docx_第1页
第1页 / 共33页
非接触式智能IC卡读写模块应用指导书Word格式文档下载.docx_第2页
第2页 / 共33页
非接触式智能IC卡读写模块应用指导书Word格式文档下载.docx_第3页
第3页 / 共33页
非接触式智能IC卡读写模块应用指导书Word格式文档下载.docx_第4页
第4页 / 共33页
非接触式智能IC卡读写模块应用指导书Word格式文档下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

非接触式智能IC卡读写模块应用指导书Word格式文档下载.docx

《非接触式智能IC卡读写模块应用指导书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《非接触式智能IC卡读写模块应用指导书Word格式文档下载.docx(33页珍藏版)》请在冰豆网上搜索。

非接触式智能IC卡读写模块应用指导书Word格式文档下载.docx

#definemifs_transfer_en1

#definemifs_value_en1

#definemifs_valuedebit_en1

#definemifs_load_key_en1

#definemifs_reset_en0

#definemifs_close_en0

#definemifs_config_en1

#definemifs_get_info_en1

#definemifs_check_write_en1

#definemifs_set_control_bit_en1

#definemifs_clr_control_bit_en1

#definemifs_buzzer_en1

#definemifs_read_E2_en1

#definemifs_write_E2_en1

#definemifs_write_reg_en1

#definemifs_read_reg_en1

//PICCCommand

#defineIDLE0x00

#defineALL0x01

#defineANTICOLL10x93//anticollisionlevel1

#defineANTICOLL20x95//anticollisionlevel2

#defineANTICOLL30x97//anticollisionlevel3

#defineKEYA0x00

#defineKEYB0x04

#definePICC_DECREMENT0xC0

#definePICC_INCREMENT0xC1

#definePICC_RESTORE0xC2

EXTERNucharidataspi_buffer[26];

//definespi_buffer

#defineSEQNR0

#defineCOMMAND1

#defineSTATUS1

#defineLENGTH2

#defineMODE3

#defineBCNT3

#defineADR3

#defineSERNR3

#defineSIZE3

#defineTIME3

#defineTAGTYPE3

#defineINFO3

#defineDATA3

#defineSECNR4

#defineDATABYTES4

#defineVALUE4

#defineNKEY5

#defineAUTHMODE7

#defineADRCHKWR8

#defineDATACHKWR9

 

EXTERNucharspi_init(void);

EXTERNucharmifs_request(uchar_Mode,ucharidata*_TagType);

EXTERNucharmifs_anticoll(uchar_Bcnt,ucharidata*_SNR);

EXTERNucharmifs_anticoll2(uchar_Encoll,uchar_Bcnt,ucharidata*_SNR);

EXTERNucharmifs_cascanticoll(uchar_Select_code,uchar_Bcnt,uchar*_SNR);

EXTERNucharmifs_select(ucharidata*_SNR,ucharidata*_Size);

EXTERNucharmifs_cascselect(uchar_Select_code,uchar*_SNR,uchar*_Sak);

EXTERNucharmifs_authentication(uchar_Mode,uchar_SecNr);

EXTERNucharmifs_authentication2(uchar_Mode,uchar_SecNr,uchar_KeyNr);

EXTERNucharmifs_authKey(uchar_Mode,uchar_SecNr,uchar*_Key);

EXTERNucharmifs_halt(void);

EXTERNucharmifs_read(uchar_Adr,ucharidata*_Data);

EXTERNucharmifs_write(uchar_Adr,ucharidata*_Data);

EXTERNucharmifs_ULwrite(uchar_Adr,uchar*_Data);

EXTERNucharmifs_increment(uchar_Adr,longidata*_Value);

EXTERNucharmifs_decrement(uchar_Adr,longidata*_Value);

EXTERNucharmifs_restore(uchar_Adr);

EXTERNucharmifs_transfer(uchar_Adr);

EXTERNucharmifs_value(uchar_Mode,uchar_Adr,longidata*_Value,uchar_Trans_Adr);

EXTERNucharmifs_valuedebit(uchar_Mode,uchar_Adr,longidata*_Value);

EXTERNucharmifs_load_key(uchar_Mode,uchar_SecNr,uchar*_Nkey);

EXTERNucharmifs_reset(uchar_Msec);

EXTERNucharmifs_close(void);

EXTERNucharmifs_config(void);

EXTERNucharmifs_get_info(ucharidata*_Info);

EXTERNucharmifs_check_write(ucharidata*_SNR,uchar_Authmode,uchar_Adr,ucharidata*_Data);

EXTERNucharmifs_set_control_bit();

EXTERNucharmifs_clr_control_bit();

EXTERNucharmifs_buzzer(uchar_Frquence,uchar_10ms);

EXTERNucharmifs_read_E2(uchar_Adr,uchar_Length,ucharidata*_Data);

EXTERNucharmifs_write_E2(uchar_Adr,uchar_Length,ucharidata*_Data);

EXTERNucharmifs_write_reg(uchar_Reg,uchar_Value);

EXTERNucharmifs_read_reg(uchar_Reg,uchar*_Value);

//mifareerror

#defineMI_OK0

#defineMI_NOTAGERR1

#defineMI_CRCERR2

#defineMI_EMPTY3

#defineMI_AUTHERR4

#defineMI_PARITYERR5

#defineMI_CODEERR6

#defineMI_SERNRERR8

#defineMI_NOTAUTHERR10

#defineMI_BITCOUNTERR11

#defineMI_BYTECOUNTERR12

#defineMI_TRANSERR14

#defineMI_WRITEERR15

#defineMI_INCRERR16

#defineMI_DECRERR17

#defineMI_READERR18

#defineMI_QUIT30

//spiError

#defineSPI_OK0

#defineSPI_ERR255

//checkwriteError

#defineMIS_CHK_OK0

#defineMIS_CHK_FAILED1

#defineMIS_CHK_COMPERR2

#undefEXTERN

4.2zlg500.c文件程序清单

#include"

main.h"

#include<

string.h>

mface_3.h"

#define__SRC

zlg500.h"

#undef__SRC

bitbdatanewdata=0;

voidspi_int(void)interrupt0using1

{

spi_rcv(spi_buffer);

newdata=1;

}

ucharzlg500cmd(ucharlength)

{ucharspi_wdg=10;

uchari,BCC_sum;

spi_buffer[length]=spi_buffer[0];

for(i=1;

i<

length;

i++)

{

spi_buffer[length]^=spi_buffer[i];

}

spi_buffer[length]=~spi_buffer[length];

TH0=0x2c;

//Fosc=11059200,50mstimerinterrupt

TL0=0xb0;

if(spi_send(spi_buffer,length+1)!

=SPI_OK)

returnSPI_ERR;

ET0=0;

TF0=0;

TR0=1;

SPI_REN();

while(newdata==0&

&

spi_wdg!

=0)

if(TF0==1)

{

TH0=0x2c;

TF0=0;

spi_wdg--;

}

TR0=0;

SPI_RDIS();

if(newdata==0)returnSPI_ERR;

newdata=0;

BCC_sum=spi_buffer[0];

(spi_buffer[LENGTH]+3);

BCC_sum^=spi_buffer[i];

if(BCC_sum==~spi_buffer[spi_buffer[LENGTH]+3])

returnSPI_OK;

elsereturnMI_CRCERR;

#ifmifs_request_en

ucharmifs_request(uchar_Mode,ucharidata*_TagType)

{

spi_buffer[SEQNR]=0;

spi_buffer[COMMAND]=0x41;

spi_buffer[LENGTH]=0x01;

spi_buffer[MODE]=_Mode;

if(zlg500cmd(4)!

if(spi_buffer[STATUS]==MI_OK)

_TagType[0]=spi_buffer[TAGTYPE];

_TagType[1]=spi_buffer[TAGTYPE+1];

returnspi_buffer[STATUS];

#ifmifs_anticoll_en

ucharmifs_anticoll(uchar_Bcnt,ucharidata*_SNR)

spi_buffer[COMMAND]=0x42;

spi_buffer[MODE]=_Bcnt;

memcpy(_SNR,&

spi_buffer[SERNR],4);

#ifmifs_anticoll2_en

ucharmifs_anticoll2(uchar_Encoll,uchar_Bcnt,ucharidata*_SNR)

spi_buffer[COMMAND]=0x71;

spi_buffer[LENGTH]=0x02;

spi_buffer[DATA]=_Encoll;

spi_buffer[DATA+1]=_Bcnt;

if(zlg500cmd(5)!

spi_buffer[DATA],4);

#ifmifs_select_en

ucharmifs_select(ucharidata*_SNR,ucharidata*_Size)

spi_buffer[COMMAND]=0x43;

spi_buffer[LENGTH]=0x04;

memcpy(&

spi_buffer[SERNR],_SNR,4);

if(zlg500cmd(7)!

*_Size=spi_buffer[SIZE];

#ifmifs_authentication_en

ucharmifs_authentication(uchar_Mode,uchar_SecNr)

spi_buffer[COMMAND]=0x44;

spi_buffer[SECNR]=_SecNr;

#ifmifs_authentication2_en

ucharmifs_authentication2(uchar_Mode,uchar_SecNr,uchar_KeyNr)

spi_buffer[COMMAND]=0x72;

spi_buffer[LENGTH]=0x03;

if(_SecNr<

=32)

spi_buffer[SECNR]=_SecNr;

else

spi_buffer[SECNR]=32+((_SecNr-32)<

<

2);

//为了支持S70卡

spi_buffer[DATA+2]=_KeyNr;

if(zlg500cmd(6)!

#ifmifs_authKey_en

ucharmifs_authKey(uchar_Mode,uchar_SecNr,uchar*_Key)

spi_buffer[COMMAND]=0x73;

spi_buffer[LENGTH]=0x08;

spi_buffer[DATA]=_Mode;

spi_buffer[DATA+2],_Key,6);

if(zlg500cmd(11)!

#ifmifs_halt_en

ucharmifs_halt(void)

spi_buffer[COMMAND]=0x45;

spi_buffer[LENGTH]=0x00;

if(zlg500cmd(3)!

#ifmifs_read_en

ucharmifs_read(uchar_Adr,ucharidata*_Data)

spi_buffer[COMMAND]=0x46;

spi_buffer[ADR]=_Adr;

memcpy(_Data,&

spi_buffer[DATABYTES-1],16);

#ifmifs_write_en

ucharmifs_write(uchar_Adr,ucharidata*_Data)

spi_buffer[COMMAND]=0x47;

spi_buffer[LENGTH]=17;

spi_buffer[DATABYTES],_Data,16);

if(zlg500cmd(20)!

#ifmifs_increment_en

ucharmifs_increment(uchar_Adr,longidata*_Value)

{uchar*temp=(uchar*)_Value;

spi_buffer[COMMAND]=0x48;

spi_buffer[LENGTH]=5;

spi_buffer[VALUE]=*(temp+3);

spi_buffer[VALUE+1]=*(temp+2);

spi_buffer[VALUE+2]=*(temp+1);

spi_buffer[VALUE+3]=*temp;

if(zlg500cmd(8)!

#ifmifs_decrement_en

ucharmifs_decrement(uchar_Adr,longidata*_Value)

uchar*temp=(uchar*)_Value;

spi_buffer[COMMAND]=0x49;

#ifmifs_restore_en

ucharmifs_restore(uchar_Adr)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 唐诗宋词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1