找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 933|回復(fù): 0
收起左側(cè)

51單片機(jī)射頻密碼鎖設(shè)計(jì)

[復(fù)制鏈接]
ID:190577 發(fā)表于 2022-8-26 15:09 | 顯示全部樓層 |閱讀模式
我們來介紹下本設(shè)計(jì)的過程:1、最終的實(shí)物圖片

2、設(shè)計(jì)原理圖



3、系統(tǒng)的功能
單片機(jī)IC門禁GSM報警系統(tǒng)采用51單片機(jī)+按鍵+IC讀寫模塊+繼電器+LCD1602液晶+LED燈+GSM模塊+蜂鳴器設(shè)計(jì)而成。
1、本設(shè)計(jì)默認(rèn)采用STC89C52單片。
2、本設(shè)計(jì)具有普通密碼鎖開鎖功能并且加入了射頻卡開鎖功能,二者兼容,功能強(qiáng)大。
3、可以添加或者刪除IC卡的記憶功能,讓使用者更加的靈活自如。
4、具有指示燈和蜂鳴器雙重提示功能,綠燈表示進(jìn)入,紅燈表示禁止進(jìn)入。
5、繼電器模擬電子鎖,閉合狀態(tài)即是開鎖狀態(tài),反之則關(guān)鎖狀態(tài)。
6、密碼鎖功能下可以修改密碼。
7、當(dāng)密碼輸入錯誤三次時,蜂鳴器報警并且鎖死鍵盤15S,向主人發(fā)送報警短信。
4、主要代碼:
#include <intrins.h>
#include "reg52.h"
#include "main.h"
#include "mfrc522.h"
#include <string.h>
#define MAXRLEN 18                        
/////////////////////////////////////////////////////////////////////
//功    能:尋卡
//參數(shù)說明: req_code[IN]:尋卡方式
//                0x52 = 尋感應(yīng)區(qū)內(nèi)所有符合14443A標(biāo)準(zhǔn)的卡
//                0x26 = 尋未進(jìn)入休眠狀態(tài)的卡
//          pTagType[OUT]:卡片類型代碼
//                0x4400 = Mifare_UltraLight
//                0x0400 = Mifare_One(S50)
//                0x0200 = Mifare_One(S70)
//                0x0800 = Mifare_Pro(X)
//                0x4403 = Mifare_DESFire
//返    回: 成功返回MI_OK
/////////////////////////////////////////////////////////////////////
char PcdRequest(unsigned char req_code,unsigned char *pTagType)
{
   char status;  
   unsigned int  unLen;
   unsigned char ucComMF522Buf[MAXRLEN];
//  unsigned char xTest ;
   ClearBitMask(Status2Reg,0x08);
   WriteRawRC(BitFramingReg,0x07);
//  xTest = ReadRawRC(BitFramingReg);
//  if(xTest == 0x07 )
//   { LED_GREEN  =0 ;}
// else {LED_GREEN =1 ;while(1){}}
   SetBitMask(TxControlReg,0x03);
   ucComMF522Buf[0] = req_code;
   status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen);
//     if(status  == MI_OK )
//   { LED_GREEN  =0 ;}
//   else {LED_GREEN =1 ;}
   if ((status == MI_OK) && (unLen == 0x10))
   {   
       *pTagType     = ucComMF522Buf[0];
       *(pTagType+1) = ucComMF522Buf[1];
   }
   else
   {   status = MI_ERR;   }
   return status;
}
/////////////////////////////////////////////////////////////////////
//功    能:防沖撞
//參數(shù)說明: pSnr[OUT]:卡片序列號,4字節(jié)
//返    回: 成功返回MI_OK
/////////////////////////////////////////////////////////////////////  
char PcdAnticoll(unsigned char *pSnr)
{
    char status;
    unsigned char i,snr_check=0;
    unsigned int  unLen;
    unsigned char ucComMF522Buf[MAXRLEN];
    ClearBitMask(Status2Reg,0x08);
    WriteRawRC(BitFramingReg,0x00);
    ClearBitMask(CollReg,0x80);
    ucComMF522Buf[0] = PICC_ANTICOLL1;
    ucComMF522Buf[1] = 0x20;
    status = PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen);
    if (status == MI_OK)
    {
實(shí)物截圖.png
原理圖截圖 (2).png
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表