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