IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> IC门禁系统 -> 正文阅读

[嵌入式]IC门禁系统

前述:
QQ:961209458
V X:F9986858
承接毕业设计。

1.概述

(1)本设计采用STC89C52作为主控芯片,专用读卡器模块用来读射频卡的信息,当有卡进入到读卡器读卡的范围内时就会读取到相应的卡序列号,并根据得到的卡序列号做出相应的操作。若正确则开门,若不正确则报警并显示错误信息。
(2)本设计实现了自动、准确的识别卡序列号,对门禁系统起着重要的作用EEPROM采用AT24C04芯片,掉电后可以存储密码,从而保证了系统的安全性。人机交互通道部分采用了4×4矩阵键盘输入以及LCD12864标准字符型液晶显示。针对于用按键输入密码,根据密码的正确与否来进行相应的操作,管理员可以自行设定和修改密码;输出系统部分包括驱动开锁电路和报警电路;其中,在本系统设计中,驱动开锁电路用发光二极管表示,而报警电路则使用蜂鸣器。

2.硬件设计

本次设计的硬件电路是由STC89C52 单片机为控制核心,射频卡信息由MFRC522模块读出,通过MCU在LCD12864上显示,通过按键完成密码验证和修改密码的功能,并根据输入密码的对错,执行相应继电器的动作和蜂鸣器的状态,整个门禁系统框图如图所示。
在这里插入图片描述
(1) RFID射频模块电路
a.射频识别识别系统原理
典型RFID系统由应答器(Tag)、读写器(Read and Write Device)以及计算机系统等组成。

读写器由无线收发模块、天线、控制模块及接口电路等组成
应答器也称电子标签,它具有可存储读写信息及对信息进行加密的能力,是射频识别系统主要的核心
计算机系统是以单片机或微处理器为数据处理核心,主要是对读取到电子标签进行相关的信息管理。
在阅读器的感应范围之外,电子标签无源无法工作,只有在阅读器感应范围之内,电子标签才是有源的。应答器工作所需的能量,是通过读写器的耦合单元传输给应答器的。应答器如果是无源系统,即应答器内不含电池,则应答器工作的能量是由读写器发出的射频脉冲提供[8]。应答器如果是有源系统,即应答器内含有电池,则应答器工作能量和工作寿命有电池决定。RFID射频系统结构图如图:
在这里插入图片描述
实用RFID系统为无源系统,即射频卡能量由读写器发出的射频脉冲信号提供。无源系统的通信优劣取决于读写器发出的脉冲信号能否被射频卡完整接受。当射频卡进入读卡器接受范围后,如果接收到读卡器发出的射频信号,就能凭借产生的感应电流所获得的能量发送出存储在卡片中的信息,通过读卡器的处理,将信息送至信息管理系统进行有关数据处理。

硬件电路

在这里插入图片描述
在这里插入图片描述

部分核心代码

#include <reg52.h>
#include <user.h>
#include <stdio.h>
#include <lcd.h>
sbit key1 = P2^0;
sbit key2 = P2^1;
sbit key3 = P2^2;
sbit key4 = P2^3;
sbit beep = P1^0;
sbit lock = P1^1;

#define  u16 unsigned int
#define  u8 unsigned char

void key();
u8 IC_judge();
void LCD_Display(char *p);

//u8 name ;
u8 IC_val[10][5] ={{0x6d,0xdb,0xaa,0x09,0xc4}, //管理员
					 {0x0a,0xaa,0xed,0xbd,0x21},//user1
					 {0xCA,0x76,0xfe,0xbe,0x2d}};//user2
char IC_name;
unsigned long int IC_time;	
char i;IC_j;									
u8 ZT_ZONG=0;///
bit DEL = 0; 
								
void main()
{
	Init_Serialport1();
	LcdInit();
	
	LcdWriteCom(0x80);
	LCD_Display("    welcome    ");
	LcdWriteCom(0xc0);//lcd下行
	LCD_Display("  In standby   ");
	while(1)
	{
		key();
		if(ZT_ZONG == 0)
		{
			if(flag == 1)
			{
				if(rec_buf[0] == 0x04 && rec_buf[1]==0x0c)
				{
					if(IC_judge() == 1)
					{
						if(IC_name == 0)
						{
							DEL = 1;
							LcdWriteCom(0xc0);//lcd下行
							LCD_Display(" administrators ");
						}
						else
						{
							LcdWriteCom(0xc0);//lcd下行
							LCD_Display(" USER: ");
							LcdWriteData( IC_name+'0');
							LCD_Display("         ");
							beep = 0;
							lock = 0;
							delay(30000);
							beep = 1;
						}
					}
					else
					{
						LcdWriteCom(0xc0);//lcd下行
						LCD_Display("     eeror      ");
						lock = 1;
						lock = 1;
						delay(30000);
					}
				}
				delay(200);
				flag = 0;
				IC_time = 0;
			}
			IC_time++;
			if(IC_time >=80000) 
			{
				DEL = 0;
				lock = 1;
				LcdWriteCom(0xc0);//lcd下行
				LCD_Display("  In standby   ");
				IC_time = 40000;
			}
		}
		if(ZT_ZONG == 1 && DEL == 1)
		{
			delay(100);
			if(flag == 1)
			{
				if(rec_buf[0] == 0x04 && rec_buf[1]==0x0c)
				{
					if(IC_judge() == 0) 
					{
						for(i=9;i>=0;i--)// 
						{
							if(IC_val[i][0] == 0x00 && IC_val[i][1] == 0x00)
							{ IC_j = i; }
						}
						for(i=0;i<5;i++)
						{
							IC_val[IC_j][i] = rec_buf[7+i];
						}
						LcdWriteCom(0xc0);//lcd下行
						LCD_Display("add successfully");
						delay(50000);
					}
					else
					{
						LcdWriteCom(0xc0);//lcd下行
						LCD_Display("The card exists ");//卡已经存在
					}
				}
			}
		}
		
		if(ZT_ZONG == 2)
		{
			if(key3 == 0)
			{
				while(key3 == 0);
				IC_name++;
				if(IC_name>9){IC_name = 9;}
				LcdWriteCom(0xc0);//lcd下行
				LCD_Display(" Select user: ");
				LcdWriteData(IC_name + '0');
				LcdWriteData(' ');
			}
			if(key4 == 0)
			{
				while(key4 == 0);
				IC_name--;
				if(IC_name<1){IC_name = 1;}
				LcdWriteCom(0xc0);//lcd下行
				LCD_Display(" Select user: ");
				LcdWriteData( IC_name + '0');
				LcdWriteData(' ');
			}
		}
	}
}


u8 IC_judge()
{
	u8 sign=0;
	char j=0;
	for(j=0;j<10;j++)
	{
		if(rec_buf[7]==IC_val[j][0] && 
		   rec_buf[8]==IC_val[j][1] && 
		   rec_buf[9]==IC_val[j][2] )
		{
			   
			if(rec_buf[10]==IC_val[j][3] && rec_buf[11]==IC_val[j][4])
			{
				sign = 1;
				IC_name = j;
			}
		}
	}
	return sign;
}

void LCD_Display(char *p)
{
	while(*p != '\0')
	{
		LcdWriteData(*p++);
	}		
}


void key()
{
	if(key1 == 0 && ZT_ZONG==0 && DEL==1)
	{
		while(key1 == 0);
		ZT_ZONG = 1;
		LcdWriteCom(0x80);
		LCD_Display("    ADD USER    ");
		LcdWriteCom(0xc0);//lcd下行
		LCD_Display("Put in the card ");
	}
	if(key1 == 0 && ZT_ZONG==1)
	{
		DEL = 0;
		while(key1 == 0);
		ZT_ZONG = 0;
		LcdWriteCom(0x80);
		LCD_Display("    welcome    ");
		LcdWriteCom(0xc0);//lcd下行
		LCD_Display("  In standby   ");
	}
	
	
	if(key2 == 0 && ZT_ZONG==0 && DEL==1)
	{
		while(key2 == 0);
		ZT_ZONG = 2;
		IC_name = 1;
		LcdWriteCom(0x80);
		LCD_Display("     Delete     ");
		LcdWriteCom(0xc0);//lcd下行
		LCD_Display(" Select user: ");
		LcdWriteData(IC_name + '0');
		LcdWriteData(' ');
	}
	if(key2 == 0 && ZT_ZONG==2)
	{
		while(key2 == 0);
		for(i=0;i<5;i++)
		{
			IC_val[IC_name][i] = 0x00;
		}
		ZT_ZONG = 0;
	LcdWriteCom(0x80);
	LCD_Display("    welcome    ");
	LcdWriteCom(0xc0);//lcd下行
	LCD_Display("  In standby   ");
	}
	
}


  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-13 09:25:42  更:2021-09-13 09:27:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/30 2:02:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码