当前位置:首页 > 基于单片机的刷卡饮水机设计终稿 - 图文
西安思源学院本科毕业论文
“Write” 写指令允许用户写数据到MIFARE卡片上(完整的16个Byte的数据块)。
4.3.3 读/写卡程序流程图
读/写卡过程主要由以下几步组成:
(1)复位应答:当一个非接触式读卡器卡处于读/写设备工作范围内时,程序控制读写器向卡片发出REQUEST all 命令。卡片的ATR 将启动,将卡片Block0中的卡片类型共2个字节传送给读写器, 建立卡片和读写器的第一步通信联络。如果不进行位选择操作,读卡器对卡片的其他操作将不会进行;
(2) 防重叠操作:当有许多张IC卡处于天线的工作范围内时,RC522将读取第一张卡片的系列号,由于每一张MIFARE卡片都具有其唯一的序列号,决不会相同,因此MF-RC522根据卡片的序列号一次只对一张卡操作。操作中MF-RC522将得到MIFARE卡片的返回值和卡片上的系列号;
(3) 认证操作:经过上述步骤, 在确认选择了一张卡片之后,MF-RC522 在对卡进行读写操作时,必须对卡片上内置的密码进行认证,认证成功,则允许进一步的操作;
(4) 读写操作:在经过上述几个步骤之后就可以具体地对卡片进行相应的读、写、增值、减值、存储和传送等操作。读/写卡程序流程图如下图4-2所示。
28
西安思源学院本科毕业论文
开始 初始化寄存器 调用防冲突子程序 选择卡片 认证操作 否 认证通过? 是 读块 写块 加值 否错误处理 是减值 终止 结束
图4-3 读/写卡程序流程图
4.4 系统外围基本电路程序的设计 4.4.1 显示程序设计
显示模块的设计为LED数码管显示,且为动态显示的方法,为了稳定,需要采用扫描模式,即在某一时刻只选通显示器的某一位,并发出相应的部分代码,在另一个时间来选择另一位,再一次发出对应的代码[15]。为了保证显示效果,不牺牲单片机的速度和准确的显示,每位显示时间间隔设置为2ms,使用一个定时器来实现它们之间的时间延迟,初始化定时器每2ms产生一个中断,是标志位a的值加1,这样各个位之间的显示时间间隔就为2ms。其流程图如图4-4所示。
29
西安思源学院本科毕业论文
开始 初始化 是 a=1? 否 a=2? 否 a=3? 是显示数码管1 是 否是显示数码管2 否是 显示数码管3 否是 a=4? a=0 显示数码管4
图4-4 显示部分程序流程图
4.4.2 键盘程序设计
这个设计只有两个按钮,所以选择独立键盘,键盘程序设计比较简单,程序主要包括识别和识别系统的相应动作。
在识别的过程中主要问题的关键是消除抖动,我用的软件消抖,软件消抖是在检测到开关状态后,延时一段时间再进行检测,若两次检测到的开关状态相同则认为有效,延时时间应大于抖动时间。具体操作如下:当检测到有键按下,执行10ms的延时子程序,然后确认是否保持关闭状态,如果他们保持关闭状态,证实了一个真实的按钮按下,进行相应的处理工作。当按钮被释放时,一直在测试按钮是否保持关闭状态电平,如果继续,继续检测,直到到断开状态电平后返回。键盘扫描子程序流程图如图4-6。
30
西安思源学院本科毕业论文
开始 否 有键闭合? 是 软件延时10ms 否 否否有键闭合吗? 是 是按键处理程序 否 否闭合键释放? 是 返回 是
图4-6 按键扫描程序流程图
31
共分享92篇相关文档