摘要:門禁系統(tǒng)可有效管理門的開啟關(guān)閉對出入人員進行監(jiān)控管理?;诘拈T禁系統(tǒng)通過對射頻卡的識別,保證那些持有相應(yīng)證件的人員能自由進出,阻止外來人員或無法提供證件的人員進入。
Hi,大家好,這里是丹成學(xué)長,今天向大家介紹一個 如何使用RFID技術(shù)構(gòu)建一個單片機門禁系統(tǒng)
基于RFID的門禁系統(tǒng)
大家可用于 課程設(shè)計 或 畢業(yè)設(shè)計
技術(shù)解答、畢設(shè)幫助、開題指導(dǎo)print("Q 746876041")
本篇博客,學(xué)長先向大家介紹射頻識別技術(shù)的概念、 分類及工作原。然后介紹 本次使用的射頻芯片 MFRC522。
RFID 系統(tǒng)設(shè)計可分為硬件部分和軟件部分。
硬件部分以 MFRC522 射頻識別模塊為核心, 結(jié)合主控模塊 STC89C52 設(shè)計系統(tǒng)的外圍硬件電路, 實現(xiàn)對射頻卡的控制與 MCU 之間的互通。 軟件部分采用 C 語言進行系統(tǒng)的下位機程序的開發(fā), 完成與 IC 卡之間的通信, 實現(xiàn)數(shù)據(jù)交換功能。
門禁安全管理系統(tǒng)是新型現(xiàn)代化安全管理系統(tǒng), 它集自動識別技術(shù)和現(xiàn)代安全管理措施為一體。 門禁系統(tǒng)可有效管理門的開啟關(guān)閉, 對出入人員進行監(jiān)控管理。 基于RFID的門禁系統(tǒng)通過對射頻IC卡的識別, 保證那些持有相應(yīng)證件的人員能自由進出, 阻止外來人員或無法提供證件的人員進入。 還有些門禁是利用生物識別的技術(shù), 通過對人體某些部位(如眼睛、 指紋) 的識別來確認來人是否經(jīng)過授權(quán)。 這種門禁系統(tǒng)相對射頻識別的系統(tǒng)安全系數(shù)有很大提高, 但其成本較高, 在日 常生活中還未廣泛應(yīng)用。
射頻識別(Radio Frequency Identification, RFID) 技術(shù)是從八十年代逐漸走向成熟的一種自 動識別技術(shù), 它 是一項利用 射頻信號通過空間耦合(交變磁場或電磁場)實現(xiàn)無接觸信息傳遞并通過所傳遞的信息達到識別目 的的技術(shù)。
根據(jù)射頻卡讀寫方式的不同可分成可讀寫(RW) 卡、 一次寫入多次讀出(WORM) 卡和只讀(RO) 卡。 RW 卡成本較 WORM 卡和 RO 卡相比要高, 而且寫入數(shù)據(jù)所花費的時間要遠大于讀取數(shù)據(jù)所花費的時間。 用戶可以一次性將信息寫入 WORM 卡, 寫入后數(shù)據(jù)不能改變。 RO 卡存有一個唯一的號碼。 只可讀取, 不能修改, 雖然安全性較高, 但用途有限。
射頻識別「Radio Frequency IDentification,簡稱RFID」技術(shù),又稱為無線射頻識別,是一種通信技術(shù),可通過無線電訊號識別特定目標(biāo)并讀寫相關(guān)數(shù)據(jù),而無需識別系統(tǒng)與特定目標(biāo)之間建立機械或光學(xué)接觸,普遍應(yīng)用于企業(yè)/校園一卡通、公交儲值卡、高速公路收費、停車場、小區(qū)管理等。
RFID 技術(shù)利用無線射頻方式在閱讀器和射頻卡之間進行非接觸雙向數(shù)據(jù)傳輸,以達到目標(biāo)識別和數(shù)據(jù)交換的目的。
這里使用的RFID-RC522模塊采用MFRC522芯片,SPI通訊方式,支持Mifarel S50、S70 、Pro、Desfire等類型的卡,附帶的白卡和鑰匙扣是S50卡,每張卡都有自己的標(biāo)識(UID)。
本系統(tǒng)的主要電路包括: 讀卡器數(shù)據(jù)采集電路、 串行 E 2 PROM 存儲電路、 LCD1602 顯示電路、 串口通訊電路、 報警電路、 門控電路、 鍵盤電路。
器件列表
LCD1602 顯示電路設(shè)計
串口通訊電路設(shè)計
報警電路設(shè)計
在本系統(tǒng)中, 軟件的設(shè)計主要包括: 數(shù)據(jù)采集模塊、 存儲模塊、 顯示模塊、 門控模塊、 報警模塊、 鍵盤模塊和上位機軟件的設(shè)計幾個方面。 本系統(tǒng)的軟件結(jié)構(gòu)框圖如圖 4-1 所示。
系統(tǒng)的軟件總體流程圖如圖
當(dāng)程序運行時, 會一直判斷是否有按鍵被按下, 當(dāng)有按鍵被按下時, 系統(tǒng)會確定鍵值, 關(guān)將鍵值存入到密碼數(shù)組里, 然后將輸入的密碼與本身的密碼做比較, 若相同, 則執(zhí)行開門和顯示正確信息的操作; 若不相同, 則執(zhí)行報警和顯示錯誤信息的操作。
核心代碼:
P1=0x0f;if(P1!=0x0f) compare(P1);for(n=0;n<10;n++)if(input[n]!=password[n]) break;if(n==10){ if(m<10) continue;WriteLcdCom(0x01); //清屏WriteLcdCom(0x80); //第一行數(shù)據(jù)指針地址for(s=0;s<16;s++) WriteLcdDat(str2[s]);LEDG=0;BUZ=0;delay_10ms(20);LEDG=1;BUZ=1;WriteLcdCom(0x01);input[0]=" "; }else if((n<10)&&(P1==0xbd)){ WriteLcdCom(0x01); //清屏WriteLcdCom(0x80); //第一行數(shù)據(jù)指針地址for(s=0;s<16;s++)WriteLcdDat(str4[s]);LEDR=0;for(s=0;s<5;s++){ BUZ=0;delay_10ms(20);BUZ=1;delay_10ms(20); }LEDR=1; }
執(zhí)行程序之前, 首先要設(shè)置串口波特率等相關(guān)串口參數(shù), 然后上位機通過串口向下位機發(fā)送命令, 并進入串口中斷。 下位機根據(jù)接收 SBUF 的值做相應(yīng)的處理。
核心程序
uchar uart_process(void){uchar cmd;uchar cStatus;cmd = g_cReceBuf[1];switch(cmd){case 0x20: // 尋卡, 防沖突, 選擇卡返回卡系列號(4 bytes)cStatus =IicSendHY502(g_cReceBuf); // 發(fā)送尋卡命令cStatus =IicReadHY502(cp); // 讀取卡號并存入到 cPif((cStatus==SUCCESS)&&(cp[1]==CARD_SN)){memcpy(&g_cReceBuf[0],&cp[2],4);eeprom();}}//將讀取到的卡序列號與 E 2 PROM 里存儲的進行比較return cStatus;}開始上位機發(fā)送讀卡命令YYNN有感應(yīng)卡 ?驗證感應(yīng)卡權(quán)限權(quán)限滿足?開門, 顯示正確信息報警, 顯示錯誤信息延時后, 自動關(guān)門結(jié)束
顯示子程序的主要功能是對當(dāng)前的門控狀態(tài)進行顯示, 顯示函數(shù)首先判斷是寫命令操作還是寫數(shù)據(jù)操作, 若是寫命令操作, 則根據(jù)命令進行相應(yīng)的操作, 如清屏、 設(shè)置顯示模式等; 若是寫數(shù)據(jù)操作, 則在顯示器上顯示相應(yīng)數(shù)據(jù)。
核心程序
void LcdShowError(){ WriteLcdCom(0x38); //顯示模式設(shè)置WriteLcdCom(0x0c); //開顯示, 無光標(biāo), 光標(biāo)不閃爍WriteLcdCom(0x06); //讀寫字符后地址指針加一設(shè)置WriteLcdCom(0x80); //第一行數(shù)據(jù)指針地址for(k=0;k<16;k++){WriteLcdDat(str3[k]);delay(20); }WriteLcdCom(0xc0); //第二行數(shù)據(jù)指針地址for(k=0;k<16;k++){ WriteLcdDat(str4[k]);delay(20);}WriteLcdCom(0x01); }void WriteLcdCom(unsigned char c){ LCDRW =00;LCDRS=0; //切換到寫命令P0=c;LCDE=1;LCDE=0;for(a=0;a<20;a++);}void WriteLcdDat(unsigned char d){ LCDRW =00;LCDRS=1; //切換到寫數(shù)據(jù)P0=d;LCDE=1;LCDE=0;for(a=0;a<20;a++);}
本設(shè)計中數(shù)據(jù)的存儲芯片選用的是 AT24C04, 該芯片是串行的 E 2 PROM,支持 I 2 C 總線數(shù)據(jù)傳送協(xié)議。
核心程序
void eeprom(){write_byte(0,0x1e);write_byte(1,0xda); write_byte(2,0x62); write_byte(3,0xb6);write_byte(4,0x25); write_byte(5,0xee); write_byte(6,0xde);write_byte(7,0xb6); write_byte(8,0x05); write_byte(9,0xc8);write_byte(10,0x43);write_byte(11,0xb8);write_byte(12,0x3a);write_byte(13,0x04);write_byte(14,0x5d);write_byte(15,0xb6);}bit shout(uchar write_data)// 從 MCU 移出數(shù)據(jù)到 AT24C04{uchar i; bit ack_bit;for(i = 0; i < 8; i++) // 循環(huán)移入 8 個位{SDA1 = (bit)(write_data & 0x80);_nop_();SCL1 = 1;delayNOP();SCL1 = 0;write_data <<= 1; }SDA1 = 1; // 讀取應(yīng)答delayNOP();SCL1 = 1;delayNOP();ack_bit = SDA1;SCL1 = 0;return ack_bit; // 返回 AT24C04 應(yīng)答位}void write_byte(uchar addr, uchar write_data) // 在 指 定 地 址 addr 處寫入數(shù)據(jù) write_data{ start();shout(OP_WRITE);shout(addr);shout(write_data);stop();delay_10ms(1); }
我們還可以把系統(tǒng)裝到盒子里
單片機畢設(shè)項目大全:
https://blog.csdn.net/huawei123444/article/details/119822845
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/123449.html
摘要:本文在充分理解考勤系統(tǒng)原則和目標(biāo)的基礎(chǔ)上,采用單片機對考勤進行硬件設(shè)計并采用面向?qū)ο蟮乃枷脒M行上位機管理系統(tǒng)的設(shè)計。該芯片共內(nèi)置個中文漢字,個字符的碼字符庫及點陣顯示。單片機指紋考勤系統(tǒng)參數(shù)設(shè)定流程如圖所示。 ...
摘要:信息的安全性可控性已成為錄音系統(tǒng)的重要研究內(nèi)容。系統(tǒng)設(shè)計系統(tǒng)架構(gòu)通過單片機與語音功能集成芯片,以及液晶芯片進行設(shè)計,由單片機控制來實現(xiàn)語音的錄制存儲以及播放清除等功能。 ...
摘要:基于單片機的智能小車控制就是其中的一個體現(xiàn)。本設(shè)計實現(xiàn)了一種基于單片機的自動避障智能模型車系統(tǒng),通過紅外傳感器采集路況信息,通過對檢測信息的分析,自動控制轉(zhuǎn)向電機轉(zhuǎn)向,改變行駛路徑,繞過障礙物,從而實現(xiàn)車穩(wěn)定避障。 ...
摘要:老年智能手環(huán)主要致力于深入到整個救治老年人環(huán)節(jié)中,促進幾個關(guān)鍵人群的及時反應(yīng)智能互聯(lián)信息互通。是一款突出個性與人性的智能化產(chǎn)物。 文章目錄 1 簡介1 項目背景意...
摘要:設(shè)計簡介本設(shè)計是基于單片機的藍牙控制窗簾電路系統(tǒng),主要實現(xiàn)以下功能可通過顯示溫濕度光照強度窗簾狀態(tài)和模式可通過按鍵調(diào)整光照強度最小值可通過藍牙連接手機進行遠程控制可通過獲取溫濕度可通過光敏電阻獲取光照強度。 設(shè)計簡介: 本設(shè)計是基于單片機的藍牙控制窗簾電路系統(tǒng),主要實現(xiàn)以下功能: 可通過LC...
閱讀 1480·2021-11-16 11:44
閱讀 3298·2021-09-29 09:43
閱讀 630·2019-08-30 10:52
閱讀 951·2019-08-29 11:01
閱讀 3265·2019-08-26 11:47
閱讀 2899·2019-08-23 12:18
閱讀 1371·2019-08-22 17:04
閱讀 2056·2019-08-21 17:04