赞
踩
目录
STC89C52,MFRC-522 RFID射频模块,AT24C02存储电路,5v步进电机,5v转3.3v稳压模块,(1602)12864显示模块, usb接口的5V电源。
采用STC89C52作为主控芯片,MFRC-522模块(5V转3.3模块用于此)用来读射频卡的信息,当有卡进入到读卡器读卡的范围内时就会读取到相应的卡序列号,并根据得到的卡序列号做出相应的操作,或者通过输入密码来进行开门,若正确则开门,若3次不正确则蜂鸣器报警并显示错误信息。通过AT24C02存储密码,掉电后依然可以存储密码,保证系统安全性。如果输入密码正确,通过驱动步进电机来模拟开门。
需要请私信或者Q1-9-9-0-5-7-1-0-9-6,数字电路与逻辑及设计课设大作业完整文件。
- 电机,存储器,射频模块,显示屏,蜂鸣器通过模块化编程
- 函数封装,预留不同的接口及功能
- 通过按键扫描key值来实现属于与功能选择
- 主要通过switch语句实现功能选择
- 标志变量判定当前状态与决定显示屏显示菜单
- while(1)
- {
- PcdReset();//扫描完矩阵键盘后复位RC522
- detectCard();//探测NFC卡
- key = keyScan();
- if(key != 16)
- {
- if(keyboardMode == 0 || keyboardMode == 2 || keyboardMode == 3)//输入开门密码 输入新键盘密码 输入管理员密码
- {
- if(key >=0 && key <= 9)
- {
- //输入密码【0~9】,显示在第二行
- if(password <= (999999 - key) / 10)//最大可设置为9位密码,这里设置为6位密码, 请勿改动
- {
- password = password * 10 + key;
- if(password != 0)
- {
- lcdWriteDate(key + '0');
- }
- }
- }
- else
- {
- //【重输】【主页】【返回】【确定】
- switch(key)
- {
-
- //case 10:
- //打印数据
- //showAt24c02All();
- //break;
-
- case 12:
- //重输
- password = 0;
- lcdCleanLine(3);
- gotoRowCol(3, 1);
- break;
- case 13:
- //返回主页
- keyboardMode = 0;
- detectMode = 0;
- lcdShow_Welcome();
- gotoRowCol(3, 1);
- break;
- case 14:
- //显示菜单
- password = 0;
- detectMode = 0;
- keyboardMode = 1;
- lcdShowMenu_Main();
- break;
- case 15:
- //确定
- if(keyboardMode == 0)
- {
- readPassword();
- if(password / 100000 == passwordInMemory[0] &&
- password % 100000 / 10000 == passwordInMemory[1] &&
- password % 10000 / 1000 == passwordInMemory[2] &&
- password % 1000 / 100 == passwordInMemory[3] &&
- password % 100 / 10 == passwordInMemory[4] &&
- password % 10 == passwordInMemory[5])
- {
- //开门密码正确
- beep(1);//蜂鸣器响一下
- lcdCleanLine(3);
- gotoRowCol(3, 1);
- password = 0;
- passwordWrongCount = 0;//错误次数清零
- openDoor();//电机开门3s后恢复
- }
- else if(password / 100000 == adminPasswordInMemory[0] &&
- password % 100000 / 10000 == adminPasswordInMemory[1] &&
- password % 10000 / 1000 == adminPasswordInMemory[2] &&
- password % 1000 / 100 == adminPasswordInMemory[3] &&
- password % 100 / 10 == adminPasswordInMemory[4] &&
- password % 10 == adminPasswordInMemory[5])
- {
- //管理员密码正确
- keyboardMode = 1;
- password = 0;
- lcdShowMenu_Main();
- }
有需要的可以联系,以前的课程作业,现在不会了,请先看清楚,20!!
需要的东西
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。