操作被允许进行。卡片上的存储器的每一个块都分别地指定了该块的存取条件。这些存取条件是根据密码而定。用户必须在KEYSTACON寄存器中指定一套密码,即设置KSO,KS1。KEYADDR寄存器中的AB位用于选择KEYA和KEYB。KEYADDR寄存器中的AB设置必须匹配“Authe
ticatio
”命令。4“Read”读指令表44读指令
Read(读指令允许MCU通过MFRC500来读取MIFARE卡片上完整的16个Bytes的
19
f数据块Datablocks。5“Write”写指令表45写指令
“Write”写指令允许用户写数据到MIFARE卡片上完整的16个Byte的数据块。
432读写卡程序流程图
读写卡过程主要由以下几步组成:1复位应答:当一张MIFARE卡片处在读写器的天线的工作范围之内时,程序员控制读写器向卡片发出REQUESTall命令。卡片的ATR将启动,将卡片Block0中的卡片类型共2个字节传送给读写器建立卡片与读写器的第一步通信联络。如果不进行位选择操作,读卡器对卡片的其他操作将不会进行;2防重叠操作:有多张卡处在天线的工作范围之内时,RC500将取得每一张卡片的系列号,由于每一张MIFARE卡片都具有其唯一的序列号,决不会相同,因此MFRC500根据卡片的序列号来保证一次只对一张卡操作。该操作MFRC500得到MIFARE卡片的返回值和卡片的系列号;3选择卡片操作:选择被选中卡的系列号,并同时返回卡的容量代码;4认证操作:经过上述3个步骤在确认已经选择了一张卡片时,MFRC500在对卡进行读写操作之前,必须对卡片上已经设置的密码进行认证,如果匹配,才允许进一步的读写操作;5读写操作:在经过上述几个步骤之后就可以具体地对卡片进行相应的读、写、增值、减值、存储和传送等操作。读写卡程序流程图如下图42所示。
图42读写卡程序流程图
20
f44读卡器外围基本电路程序的设计441显示程序设计
本设计中的显示模块主要由系统时钟和LCD显示组成,系统时钟用来提供时间、日期等信息;LCD用来向用户显示卡片、存储数据等信息;LCD的读写操作、屏幕和光标的操作都是通过指令编程来实现的,通过寄存器的设置和指令编程就可完成,这部分的程序设计比较简单,其流程图如图43所示。
图43显示部分程序流程图显示模块的部分程序如下:
MAIN:MOVSP,60HMAIN1:LCALLACALLCALLCALLCALLLCALLJMPENABLE:MOVSSACLRCLRCLRRSRWE
21
STARTENABLEWRITE1ENABLEWRITEDELAY1MAIN1
;调用初始化;第一行显示第一个字符的位置;调用写指令;第一行表头位置;调用第一行写子程序;第二行位置;调用写指令;第二行表头位置
MOVAr