找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2520|回复: 0
打印 上一主题 下一主题
收起左侧

EM4100 125k低频RFID门禁系统 单片机程序设计

[复制链接]
跳转到指定楼层
楼主
中 文 名:EM4100卡存储容量:64bit工作频率:125KHZ读写距离:2-15cm产品名称:EM4100/EM4102卡芯片类型:μEM瑞士微电 EM4100/EM4102擦写寿命:读不限,只读外形尺寸:ISO标准卡/厚卡封装材料:PVC、ABS典型应用:身份识别、考勤系统、门禁系统、财物标识等详细资料:进口瑞士微电子EM4100/4102无线射频芯片,采用先进的芯片封装工艺,可作为非接触卡片应用的优良解决方案。同时提供优惠的印刷服务和适合应用环境的异形卡。可广泛用于身份识别,考勤系统,门禁系统,过程控制

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

【数据格式】

EM4100存储64bits只读数据,其数据格式如下:
EM4100卡与RFID读卡器的交互过程中,按照以上数据格式循环传输,连续9个1表示一次传输的开始,每组5位中最后一位(P0~P9)是偶校验(每组5位中1的个数为偶数个),在进行数据校验的同时,确保了不会出现连续9个1与传输开始标志冲突。PC0~PC3位列校验位,S0位停止位。

以下为一次传输的数据情况,该卡的生厂商标志位为0x06,卡号为0x001259E3,但是为了便于人们理解,往往将卡号转换和进行一定变化后印刷在卡面上。例如上述卡,首先将低6位的“0x1259E3”转换成十进制“1202659”,再拆分成“0x12”和“0x59E3”分别转换成3位和5位的十进制数“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. //--定义全局变量数组--//
  8. unsigned char cdata[]="ID Card number:";
  9. unsigned char pwdata[]={0x30,0x30,0x32,0x34,0x33,0x46,0x30,0x37};  //00 24 3F 07四个字节卡号对应ASCII码
  10. unsigned char ldata[]="00243F07";

  11. unsigned char rdata[12];    //存放接收字节
  12. unsigned int time;


  13. //--位定义--//
  14. //sbit Beep=P2^7;             //蜂鸣器引脚定义
  15. sbit LED1=P2^0;            //LED引脚定义
  16. sbit LED8=P2^7;            //LED引脚定义


  17. //主函数//
  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++)   //连续接收12个字节
  28.                 {

  29.                         while(!RI);     //等待接收结束
  30.                         rdata[i]=SBUF;  //转存接收数据
  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. }
复制代码

Keil代码下载:
低频读卡器.zip (41.68 KB, 下载次数: 55)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表