基于射频识别技术的小区智能门禁控制系统 - 图文 下载本文

陕西理工学院毕业设计

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模块

延时 延时 设置工作方式 清屏 延时 延时 开始 结束

功能设置 延时 光标设置 延时 延时 复位 显示开

图 4.4 LCD初始化流程图

/*******************************************************************/ /* LCD初始化设定 */ /*******************************************************************/ void lcd_init() {

write_cmd(0x36);

delay(5);

write_cmd(0x30);

delay(5);

write_cmd(0x0C);

delay(5);

write_cmd(0x01);

delay(5); }

第 18 页 共 61 页

陕西理工学院毕业设计

4.3.3 按键程序设计

输入密码 延时 是否检测到数据 是 否 验证密码是 否正确 LCD 显示

图 4.5密码验证流程图

if(key_count==8)

{

if( table[0]==KEY_BUF[0] && table[1]==KEY_BUF[1] && table[2]==KEY_BUF[2] && table[3]==KEY_BUF[3] && table[4]==KEY_BUF[4] && table[5]==KEY_BUF[5] && table[6]==KEY_BUF[6] &&

table[7]==KEY_BUF[7] ) //密吗正确 {

bPass=1;

relay_ON(); //灯开关 display(2,0,5);

break; }

else //密码错误 {

relay_OFF(); beep1() ; bWarn=1;

display(2,0,6); break;

第 19 页 共 61 页