基于51单片机的RFID门禁系统-LCD12864显示

一.硬件方案

本RFID系统设计可分为硬件部分和软件部分。硬件部分以MFRC522射频识别模块为核心,结合主控模块STC89C52设计系统的外围硬件电路,实现对射频卡的控制与MCU之间的互通。软件部分采用C语言进行系统的下位机程序的开发,完成与IC卡之间的通信,实现数据交换功能。
电路主要由51单片机+最小系统+LCD12864液晶显示模块+RFID无线模块+5V转3.3V稳压电路+蜂鸣器模块+AT24C02存储电路+继电器控制电路+按键模块;

二.设计功能

(1)通过按键输入密码,根据密码的正确与否来进行相应的操作;
(2)可使用管理员密码可以自行设定和修改密码;修改的密码自动保存至存储芯片,支持掉电保存;
(3)IC卡感应,匹配成功开锁;匹配三次不成功,蜂鸣器报警;
(4)输入正确的密码后,驱动开锁电路。

三.设计原理图

(1)原理图主要采用AD软件进行设计,如图:
在这里插入图片描述

(2)PCB图如下:
在这里插入图片描述

四.软件设计

(1)LCD初始化

/*******************************************************************/
void lcd_init()
{ LCD_PSB = 1;         //并口方式	,部分液晶不需要write_cmd(0x36);      //扩充指令操作delay(5);write_cmd(0x30);      //基本指令操delay(5);write_cmd(0x0C);      //显示开,关光标delay(5);write_cmd(0x01);      //清除LCD的显示内容delay(5);
}

(2)修改密码

 case 3:		display(1,0,4);      //密码设置display2(3,0,table,8);key_count=0;while(1){  key_value=key_scan();	  if(key_value==12) { states--;return;}if(key_value>=0 && key_value <=9)//有按键输入{		  				    				    table[key_count++]=key_value+'0';display2(3,0,table,8);			}if(key_value==11)//退格{								    table[--key_count]='-';display2(3,0,table,8); 				}if(key_count==8 && key_value == 15) //按下确定键{ for(i=0;i<8;i++)KEY_BUF[i]=table[i];	EEPROM_WRITE(7,KEY_BUF,8);//写入EEPROMbreak;}} 			 break ;

(3)匹配密码

  case 1:		display(1,0,2);    //密码输入display2(3,0,table,8);key_count=0;while(1){  key_value=key_scan();	  if(key_value==12) { states--;return;}if(key_value==13){states++;return;}				 if(key_value>=0 && key_value <=9)//有按键输入{		  				    				    table[key_count++]=key_value+'0';display2(3,0,table,8);			}if(key_value==11)//退格{								    table[--key_count]='-';display2(3,0,table,8); 				}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);relay_OFF();break;				  }else 	 //密码错误{	relay_OFF();beep1()	 ;bWarn=1;display(2,0,6);break;}	  				}}break ;

(3)主程序源码

void main(void)	  //主函数
{	INT8U key;Delay_ms(50); //让硬件稳定init_all();	   //执行初始化函数relay_OFF();   //关继电器LED_BLINK_1(); //led testbeep1();	   //beep test 	display(0,0,0);	 //显示初始化while(1){key=key_scan(); //按键操作if(key==12)  if(states>0) states--;else states=0;	//上一功能if(key==13) if(++states>3) states=3;	//下一功能ctrl_process(); //进入RC522操作}
}	  

资料链接:https://pan.baidu.com/s/1sXGJ3kVkt7C5CQdGZSkXLA?pwd=ra6q

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/35080.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows 根据github上的环境需求,安装一个虚拟环境,安装cuda和torch

比如我们在github上看到一个关于运行环境的需求 Installation xxx系统Python 3.xxx CUDA 9.2PyTorch 1.9.0xxxxxx 最主要的就是cuda和torch&#xff0c;这两个会卡很多环境的安装。 我们重新走一遍环境安装。 首先创建一个虚拟环境 conda create -n 环境名字 python3.xxx…

【算法学习】判断点在多边形内外的算法以及确定内外两点连线与边界的交点

1.前言&#xff1a; 在GIS开发中&#xff0c;经常会遇到确定一个坐标点是否在一块区域的内部这一问题。 如果这个问题不是一个单纯的数学问题&#xff0c;例如&#xff1a;在判断DEM、二维图像像素点、3D点云点等含有自身特征信息的这些点是否在一个区域范围内部的时候&#x…

Kafka Stream 流处理设计概述

Kafka Stream 流处理设计概述 Kafka 流处理是指使用 Kafka 及其生态系统中的组件来处理实时数据流。Kafka Streams 是 Kafka 官方 提供的流处理库,它简化了构建流处理应用程序的过程,并与 Kafka 无缝集成。以下是 Kafka 流处理的设 计原理和相关概念。 1. Kafka 流处理基本…

第9章 EM算法:例题及课后习题

1 概要 1&#xff0e;EM算法是含有隐变量的概率模型极大似然估计或极大后验概率估计的迭代算法。含有隐变量的概率模型的数据表示为 P ( Y , Z ∣ θ ) P(Y,Z|\theta) P(Y,Z∣θ)。这里&#xff0c; Y Y Y是观测变量的数据&#xff0c; Z Z Z是隐变量的数据&#xff0c; θ \t…

浅谈Python中kwargs、动态属性和元类

有些Python的开源库会用到类的动态属性&#xff0c;其中关键字参数是主要实现方式之一。结合使用__init__方法和**kwargs&#xff0c;可以定义一个支持任意属性的类模板。此外&#xff0c;使用元类可以定义一个更加规范的类模版&#xff0c;为类型提供统一管理和规范定义。 这…

XGBoost算法深度解析:原理、实现与应用

摘要 XGBoost&#xff08;eXtreme Gradient Boosting&#xff09;是一种高效的机器学习算法&#xff0c;以其出色的预测性能和计算效率在众多数据科学竞赛和实际应用中取得了巨大成功。本文将深入探讨XGBoost算法的基本原理、实现机制、优化技巧以及在不同领域的应用案例。 1…

SmartEDA革新来袭:融合Multisim与Proteus精髓,引领电子设计新纪元!

在电子设计领域&#xff0c;每一次技术的革新都如同春风化雨&#xff0c;滋润着设计师们的心田。今天&#xff0c;我们迎来了一个划时代的电子设计自动化&#xff08;EDA&#xff09;工具——SmartEDA&#xff0c;它不仅融合了业界知名的Multisim和Proteus的精华&#xff0c;更…

煤矿智能巡检机器人:推动煤矿行业变革的关键力量

目前我国煤炭资源总量达到了2078.85亿吨&#xff0c;已探明储量为1432亿吨&#xff0c;煤矿能源现阶段还是我国重要的基础能源。而煤矿生产作业存在巨大危险&#xff0c;主要包括高温、高压、燃爆和有毒气体等环境因素&#xff0c;同时机械设备运转过程中潜藏着重大风险。这些危…

MySQL中的Bin-log是什么?有什么作用?

Bin-log日志也被称之为二进制日志&#xff0c;作用与Redo-log类似&#xff0c;主要是记录所有对数据库表结构变更和表数据修改的操作&#xff0c;对于select、show这类读操作并不会记录。bin-log是MySQL-Server级别的日志&#xff0c;所有引擎都能用的日志&#xff0c;而redo-l…

DataStructure.包装类简单认识泛型

包装类&简单认识泛型 【本节目标】1 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱 2 什么是泛型3 引出泛型3.1 语法 4 泛型类的使用4.1 语法4.2 示例4.3 类型推导(Type Inference) 5. 裸类型(Raw Type) &#xff08;了解&#xff09;5.1 说明…

第十一章: 粒子系统与后期处理(二)

11.5 使用 EffectComposer 实现后期效果 Three.js 提供了 EffectComposer 来方便地实现后期处理效果。 11.5.1 安装后期处理库 首先&#xff0c;通过 npm 安装 three 的后期处理库&#xff1a; npm install three11.5.2 基本设置 接下来&#xff0c;我们需要在项目中引入 …

MyCAT 2 底层原理

MyCAT 2 底层原理 1. MyCAT 2 架构概述 MyCAT 2 是一款开源的数据库中间件&#xff0c;它通过分库分表、读写分离、动态路由等机制提升数据库系统的性能和扩展性。MyCAT 2 的架构设计灵活&#xff0c;适用于多种数据库类型&#xff0c;包括 MySQL、PostgreSQL 和 SQL Server …

tensorflow学习:错误 InternalError: Dst tensor is not initialized

tensorflow学习&#xff1a;错误 InternalError: Dst tensor is not initialized_dst tensor is not initialized.-CSDN博客https://blog.csdn.net/wanglitao588/article/details/77033659

多元化功能空间,打造影像产业生态圈

国际数字影像产业园的多元化功能空间定位涵盖了从产业实训、研发创新、资产交易、集群发展到孵化服务、大数据支持、产学研合作以及人力资源服务等多个方面&#xff0c;旨在为数字影像产业提供全方位的支持和服务&#xff0c;推动产业的升级和发展。 1、产业实训空间&#xff1…

开发一款直播APP完整指南

直播是一种强大的营销工具&#xff0c;可以让企业与观众进行真实的互动。 根据Grand View Research发布的预测&#xff0c;直播行业规模将从 2021 年的 700 亿美元增长到 2028 年的近 2240 亿美元&#xff0c;七年内增长三倍。 区块链技术和人工智能等技术进步将在未来几年提…

网络协议TCP/IP, HTTP/HTTPS介绍

TCP/IP协议 TCP/IP是一种基于连接的通信协议&#xff0c;它是互联网的基础协议。TCP代表传输控制协议&#xff0c;IP代表Internet协议。虽然这两个协议通常一起提及&#xff0c;但它们实际上是分开的&#xff1a;IP负责在网络中从一台计算机向另一台计算机发送数据包&#xff0…

深度学习21-30

1.池化层作用&#xff08;筛选、过滤、压缩&#xff09; h和w变为原来的1/2&#xff0c;64是特征图个数保持不变。 每个位置把最大的数字取出来 用滑动窗口把最大的数值拿出来&#xff0c;把44变成22 2.卷积神经网络 &#xff08;1&#xff09;conv&#xff1a;卷积进行特征…

圈复杂度.

圈复杂度是衡量代码的重要标准 配置&#xff1a; eslint里面&#xff1a;rules&#xff1a;complexity&#xff1a;[error,10]

【LeetCode】合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 解题思路 水题&#xff0c;主要用于后面的链表的归并排序做了该题 AC代码 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nex…

ChatBI开源实现: 基于SuperSonic的AI+BI的产品设计

产品起源 为什么要做这样的产品&#xff1f;文章《ChatBI开源实现: AIBI的产品设计》中有介绍 为什么要自己做这样的产品&#xff1f;1、低成本试错&#xff1b;2、未来数据生态入口&#xff1b; 为什么要基于Supersonic做&#xff1f; 开源协议友好&#xff1a;可魔改商用 社区…