莲花非接触式IC卡读卡器的程序设计

2013-08-24 10:45:21 诺塔斯智能科技 256

     莲花非接触式IC卡读卡器的软件设计分为三部分,分别为MF RC500的应用子程序的设计主程序设计读卡器其它电路的应用程序设计。我们将这部分内容公开化,让更多的用户知道莲花智能卡读卡器的技术优势和制作工艺。和市面上低价格IC卡读卡器的本质区别。
 
    单片机开发所使用的语言一般为汇编语言。汇编语言的优点是:

    1、代码生成效率高。

    2、程序运行速度快。

     其缺点是:

    1、程序的可读性和可移植性比较差。

    2、汇编语言编 写单片机应用系统程序的周期长,调试和排错比较困难。

      c语言是一种通用的计算机程序设计语言,在国际上十分流行,它既可用来编写计算机的系统程序,也可用 来编写一般的应用程序,用它编写的程序,具有较好的可读性和可移植性。德国Keil软件公司的C51编译器可以直接对8051单片机的内部特殊功能寄存器 I/O口进行操作,直接访问片内或片外存储器,还可以进行各种位操作,能够产生简洁、高效率的程序代码,在代码质量上可以与汇编语言相媲美。因此在本读卡 器中使用C语言进行程序设计。

    非接触式Ic卡读卡器主程序设计

    读卡器对Mifare卡片的操作流程如图所示:

   读卡器对MIFARE卡片的操作流程图

     复位应答操作将通知MF RC500在天线的有效工作范围(距离)内寻找Mifare卡片。如果有Mifare卡片存在,这一操作将分别与每一张Mifare卡片进行通信,读取 MIFARE卡片上的卡片类型号TAGTYPE(两个字节),由MFRC500传递给MCU,进行识别处理。如果有多余一张的Mifare卡片在读卡器天 线的有效工作范围(距离)内,必须执行防重叠操作,返回一张卡片的序列号,作为本次操作的对象。而其它卡片处于等待状态。在成功执行防重叠操作之后,或在 任何时候当程序员想实际地与己知序列号的卡片进行通信时,必须执行选择卡片操作,以建立与所选卡片的通信,同时返回该卡片的size(容量)字节。为了保 证对卡片操作的合法性,在对卡片进行操作之前必须在卡片和读卡器之间进行认证操作。读卡器对任何一张Mifare卡片进行任何操作都要经过上述几个步骤, 之后就可以具体地对卡片进行相应的读、写等操作。

  非接触式IC卡读卡器主程序流程图:

    非接触式IC卡读卡器主程序流程图

  蜂鸣器驱动程序设计 

    蜂呜器发出声音的条件是晶体管不断ON/OFF交互变化,也即是P3.5不断的输出“1”电位及?0’电位,如果P3.5输出一直是“1”或输出一直 是?0电位,则蜂鸣器无法产生声音。程序设计除了要让蜂鸣器能够发出声音之外,还要让蜂鸣器能够连续发出不同音长及音调的声音,使蜂鸣器能够基于不同功能 发出不同的报警信号。