陕西理工学院毕业设计
4.3 系统软件模块化设计
本文将系统大致分为如下几个模块:主函数、控制模块、矩阵键盘模块、RC522模块、蜂鸣器模块、LCD12864模块等。
初始化 是 删除按键按下 否 进入门禁模式 否 否 是 模拟开门 返回 图 4.2 系统流程图
显示非法卡 是 开始 注册按键按下 否 进入注册卡模式 完成注册卡 进入删除卡模式 完成删除卡式 是否有刷卡 是 是否合法 4.3.1 射频控制模块
(1)MFRC522复位操作
在上单之后一定要对MFRC522进行复位操作,MFRC522是高电平复位有效地,可以由STC89C52的I/O口直接复位,要注意的是:
<1>必须在STC89C51成功复位150ms以后,再对MFRC522进行复位; <2>复位高电平持续200us以上;
<3>若复位成功,MFRC522内部的Command寄存器的值为0,如果不为0,必须重新复位。
(2)初始化MFRC522内部寄存器
在复位成功后,再对MFRC522的内部寄存器进行初始化,只有正确初始化之后,MFRC522才能正常工作。
第 16 页 共 61 页
陕西理工学院毕业设计
开机复位 初始化MFRC522 请求操作 否 有碰撞? 有 反碰撞操作 选择卡 是 通过验证? 否 卡的数据操作
图 4.3 射频模块的工作流图
///////////////////////////////////////////////////////////////////// //功 能:复位RC522
///////////////////////////////////////////////////////////////////// char PcdReset(void) {
SET_RC522RST; delay_ns(10); CLR_RC522RST; delay_ns(10); SET_RC522RST; delay_ns(10);
WriteRawRC(CommandReg,PCD_RESETPHASE); delay_ns(10);
WriteRawRC(ModeReg,0x3D);
WriteRawRC(TReloadRegL,30); WriteRawRC(TReloadRegH,0); WriteRawRC(TModeReg,0x8D);
WriteRawRC(TPrescalerReg,0x3E); WriteRawRC(TxAutoReg,0x40); return MI_OK; }
第 17 页 共 61 页
陕西理工学院毕业设计
4.3.2 LCD12864模块
延时 延时 设置工作方式 清屏 延时 延时 开始 结束