找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3014|回復: 0
收起左側

EM4100 125k低頻RFID門禁系統(tǒng) 單片機程序設計

[復制鏈接]
ID:1005936 發(fā)表于 2022-2-20 17:48 | 顯示全部樓層 |閱讀模式
中 文 名:EM4100卡存儲容量:64bit工作頻率:125KHZ讀寫距離:2-15cm產品名稱:EM4100/EM4102卡芯片類型:μEM瑞士微電 EM4100/EM4102擦寫壽命:讀不限,只讀外形尺寸:ISO標準卡/厚卡封裝材料:PVC、ABS典型應用:身份識別、考勤系統(tǒng)、門禁系統(tǒng)、財物標識等詳細資料:進口瑞士微電子EM4100/4102無線射頻芯片,采用先進的芯片封裝工藝,可作為非接觸卡片應用的優(yōu)良解決方案。同時提供優(yōu)惠的印刷服務和適合應用環(huán)境的異形卡。可廣泛用于身份識別,考勤系統(tǒng),門禁系統(tǒng),過程控制

EM4100卡命名的原因是該卡的核心芯片是由EM Microelectronic(瑞士微電)公司生產。

【數(shù)據(jù)格式】

EM4100存儲64bits只讀數(shù)據(jù),其數(shù)據(jù)格式如下:
EM4100卡與RFID讀卡器的交互過程中,按照以上數(shù)據(jù)格式循環(huán)傳輸,連續(xù)9個1表示一次傳輸?shù)拈_始,每組5位中最后一位(P0~P9)是偶校驗(每組5位中1的個數(shù)為偶數(shù)個),在進行數(shù)據(jù)校驗的同時,確保了不會出現(xiàn)連續(xù)9個1與傳輸開始標志沖突。PC0~PC3位列校驗位,S0位停止位。

以下為一次傳輸?shù)臄?shù)據(jù)情況,該卡的生廠商標志位為0x06,卡號為0x001259E3,但是為了便于人們理解,往往將卡號轉換和進行一定變化后印刷在卡面上。例如上述卡,首先將低6位的“0x1259E3”轉換成十進制“1202659”,再拆分成“0x12”和“0x59E3”分別轉換成3位和5位的十進制數(shù)“018”和“23011”,因此印刷到卡片上的序列號為:0001202659 018,23011

單片機源程序如下:
  1. #include <REGX52.H>
  2. #include "LCD1602.h"
  3. #include "UART.h"
  4. #include "Buzzer.h"


  5. #define ON  0       //宏定義
  6. #define OFF 1


  7. //--定義全局變量數(shù)組--//
  8. unsigned char cdata[]="ID Card number:";
  9. unsigned char pwdata[]={0x30,0x30,0x32,0x34,0x33,0x46,0x30,0x37};  //00 24 3F 07四個字節(jié)卡號對應ASCII碼
  10. unsigned char ldata[]="00243F07";

  11. unsigned char rdata[12];    //存放接收字節(jié)
  12. unsigned int time;


  13. //--位定義--//
  14. //sbit Beep=P2^7;             //蜂鳴器引腳定義
  15. sbit LED1=P2^0;            //LED引腳定義
  16. sbit LED8=P2^7;            //LED引腳定義


  17. //主函數(shù)//
  18. void main()
  19. {
  20.         unsigned char i;
  21.         LCD_Init();   //初始化LCD液晶屏
  22.         UART_Init();  //初始化串口
  23.         LCD_ShowString(1,1,cdata);       //顯示標題
  24.         P2=0xFF;
  25.         while(1)
  26.         {
  27.                 for(i=0;i<12;i++)   //連續(xù)接收12個字節(jié)
  28.                 {

  29.                         while(!RI);     //等待接收結束
  30.                         rdata[i]=SBUF;  //轉存接收數(shù)據(jù)
  31.                         RI=0;                         //清除標志位

  32.                 }
  33.                 if((pwdata[0]==rdata[1])&&(pwdata[1]==rdata[2])&&(pwdata[2]==rdata[3])&&(pwdata[3]==rdata[4])&&(pwdata[4]==rdata[5])&&(pwdata[5]==rdata[6])&&(pwdata[6]==rdata[7])&&(pwdata[7]==rdata[8]))
  34.                 {                   //對比正確合法卡
  35.                         
  36.             LCD_ShowString(2,1,ldata);       //顯示ID卡號
  37.                         LED1=ON;       //LED燈亮
  38.                         LED8=OFF;
  39.                         Buzzer_Time(300);      //蜂鳴器短鳴
  40.                 }
  41.                 else
  42.                 {
  43.                         LCD_ShowString(2,1,"ERR");       //顯示ID卡號
  44.                         LED8=ON;
  45.                         LED1=OFF;       //綠燈亮
  46.                         Buzzer_Time(1000);      //蜂鳴器短鳴
  47.                 }
  48.         }
  49. }
復制代碼
51hei.png
Keil代碼下載:
低頻讀卡器.zip (41.68 KB, 下載次數(shù): 56)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表