LCD采用的是不带字库的点阵图形LCD模块FG12864E。为了使读卡器可以应用在诸如图书馆图书管理等需要汉字显示的场合,采用串行存储器W25X80自行设计了GB2312汉字库和其他图片库。串行存储器以其体积小、密度高、功耗低、价位低、操作简单而备受青睐。Winbond公司生产的W25X80为8Mb串行存储器,分为4096页,每页为256字节的存储单元,且带有256字节的缓冲区,SPI接口方式。使用Flash自行设计汉字库不仅操作十分简单,并且可以灵活地适用于多个设计方案。
3读卡器软件设计
在软件设计中STC11F32和MFRC500之间的模拟通信是最关键的一步,因为只有打通了底层通信的关键环节,STC11F32才能进一步通过控制MFRC500实现读、写卡的基本操作。为了实现这一步,首先要弄清楚MFRC500的读写时序。本设计采用的是独立读/写选通、复用地址总线的方式,在此方式下MFRC500的读写时序如图2所示。
根据该时序图可以写出STC11F32单片机从MFRC500读、写一个字节的C语言实现代码。
(1)从一个地址读出一个数据
STC11F32主要通过调用这两个最基本的函数来实现对MFRC500进行复杂的读写控制的。采用模拟总线通信方式的最大好处是,用C语言写的代码很容易移植到不支持总线扩展的各种单片机上,增强了软件模块的可复用性和可移植性。打通了底层通信的关键环节之后,就可以编写调试各个软件模块。软件总体流程如图3所示。
系统上电后,首先要初始化STCllF32的I/O引脚和串行口。I/O设置主要是把STC11F32的特殊引脚(如EA、ALE、PSEN等)定义为通用I/O,以便与MFRC500进行模拟通信。之后进行MFRCS00的复位,要延时足够长的时间以使MFRC500得到可靠的复位。在复位过程中,MFRC500的一些寄存器位由硬件预置;复位成功以后,还需要对MFRC500的各个寄存器进行必要的配置。
在LCD初始化完成后,LCD上将显示系统的相关提示信息,然后等待用户从串口或按键输入的命令,根据用户输入的命令进行相应的操作,并把执行操作的结果再返回给用户,同时在LCD上显示出来。
结语
本文采用宏晶科技的高速、低价位单片机STC11F32和Philips公司的MFRC500芯片设计出了非接触式的射频读卡器;按照ISO/IEC14443的标准,完成了系统硬件和软件的设计工作。经实际使用证明,该读卡器工作稳定、抗干扰能力强、性价比高、操作灵活,具有很强的市场竞争力。
相关专题: