将EM-18 RFID与8051微控制器连接并显示RFID卡号

发布者:fnfeecjknquc最新更新时间:2024-01-09 来源: elecfans关键字:RFID 手机看文章 扫描二维码
随时随地手机看文章

射频识别 (RFID)使用射频来读取存储在 RFID 卡或标签中的信息。在这个项目中,我们将连接EM-18 RFID阅读器与8051微控制器,并在16* 2 LCD显示屏上显示RFID卡号。这种无线射频识别用于许多系统,如基于RFID的考勤系统,安全系统,投票机等。


所需组件:


8051微控制器

EM-18 无线射频识别读写器

16*2液晶显示屏

射频识别卡/标签

电位计

跳线

电路图:

8051 微控制器:

8051微控制器是一款8位微控制器,具有128字节的片上RAM,4K字节的片上ROM,两个定时器,一个串行端口和四个8位端口。8052微控制器是微控制器的扩展。下表显示了8051名家庭成员的比较。


特征80518052
只读存储器(以字节为单位)4K8K
内存(字节)128256
定时器23
I/O 引脚3232
串行端口11
中断源68


16x2 液晶显示器

16 * 2 LCD是嵌入式应用中广泛使用的显示器。以下是有关16 * 2液晶显示器的引脚和工作的简要说明。LCD内部有两个非常重要的寄存器。它们是数据寄存器和命令寄存器。命令寄存器用于发送清晰显示、光标在家乡等命令,数据寄存器用于发送要在16*2 LCD上显示的数据。下表显示了16 * 2 LCD的引脚说明。


象征I/O描述
1VSS-
2Vdd-+5V电源
3V形-用于控制对比度的电源
4RSRS=0 为命令寄存器 ,
RS=1 用于数据寄存器
5乌尔曼R/W=0 表示写入,R/W=1 表示读取
6EI/O使
7D0I/O8位数据总线
8D1I/O8位数据总线
9D2I/O8位数据总线
10D3I/O8位数据总线
11D4I/O8位数据总线
12D5I/O8位数据总线
13D6I/O8位数据总线
14D7I/O8位数据总线
15一个-+5V背光
16K-


下表显示了常用的液晶屏命令代码。


代码(十六进制)描述
01清晰的显示屏
06递增光标(右移)
0安显示关闭,光标打开
0C显示打开,光标关闭
0F显示于 ,光标闪烁
80强制光标从 1 开始圣线
C0强制光标到开头 2德·线
382行和5 * 7矩阵


EM-18 无线射频识别读写器:

EM-18 RFID阅读器的工作频率为125 KHz,并配有片上天线,可采用5V电源供电。它提供串行输出以及 weigand 输出。范围约为8-12厘米。串行通信参数为9600bps,8个数据位,1个停止位。其应用包括身份验证、电子收费公路定价、公共交通电子票务、考勤系统等。在此处查看所有 RFID 项目。

EM-18 RFID阅读器提供的输出为12位ASCII格式。在 12 位数字中,前 10 位数字是卡号,后两位数字是卡号的异或结果。最后两位数字用于错误检查。

poYBAGN3TGqAMaX1AACz1vZfDRs749.jpg


pYYBAGN3TGyAEyw-AAAqmzyP_x8907.jpg

例如,从读卡器读取的卡号是0200107D0D62,那么卡上的卡号将如下所示。

02 – 序言

00107D0D = 十进制1080589。

62 是 (02 XOR 00 XOR 10 XOR 7D XOR 0D) 的 XOR 值。

因此,卡上的数字是0001080589。

工作和代码说明:

poYBAGN3THGAOKyIAAE2_P4oeo4212.jpg

该项目的完整C 程序和演示视频在本项目结束时给出。代码被分成有意义的小块,并在下面解释。

对于与8051微控制器的16 * 2 LCD接口,我们必须定义16 * 2 LCD连接到8051微控制器的引脚。16*2 LCD 的 RS 引脚连接到 P3.7,16*2 LCD 的 RW 引脚连接到 P3.6,16*2 LCD 的 E 引脚连接到 P3.5。数据引脚连接到 8051 微控制器的端口 1。

sbit rs=P3^7;
sbit rw=P3^6;
sbit en=P3^5;
接下来,我们必须定义一些在程序中使用的函数。延迟功能用于创建指定的时间延迟。Cmdwrt功能用于向16 * 2 LCD显示器发送命令。Datawrt功能用于将数据发送到16 * 2 LCD显示器。Rxdata功能用于从串口接收数据。

void delay(unsigned int) ;
void cmdwrt(unsigned char);
void datawrt(unsigned char);
char rxdata(void);
在代码的这一部分中,我们将配置8051微控制器进行串行通信。

TMOD寄存器加载了定时器1模式2(自动重新加载)的0x20。SCON 寄存器加载了 8 个数据位、1 个停止位和接收启用的0x50。TH1寄存器加载了波特率为每秒9600位的0xfd。TR1=1 用于启动计时器。

TMOD= 0x20;
SCON=0x50;
TH1=0xfd;
TR1=1;
在代码的这一部分,我们将命令发送到 16*2 lcd。清除显示、递增光标、强制光标到开头 1 等命令圣线在一段时间后一一发送到16 * 2液晶显示器。

for(i=0;i<5;i++) 
{
cmdwrt (cmd[i]);
delay (1);
}
在代码的这一部分,我们通过8051微控制器的串行接口接收EM-18 RFID阅读器的输出并存储在变量中。计数用于跟踪接收的字节数。一旦收到所有12字节的数据,接下来我们必须将其显示在16 * 2 LCD显示屏上。这个过程永远重复,以便读取不同的卡片。

while(1)
{
count=0;
cmdwrt(0xC2);
while(count<12) 
{
input[count]=rxdata();
count++;
}
for(i=0;i<12;i++)
{
datawrt(input[i]);
delay(1);
}
delay(100);
}
在代码的这一部分中,我们将命令发送到 16*2 LCD 显示器。该命令将复制到 8051 微控制器的端口 1。对于命令写入,RS 设置为低电平。对于写入操作,RW 设置为低电平。在使能 (E) 引脚上施加高到低脉冲以启动命令写入操作。

void cmdwrt (unsigned char x)
{
P1=x;
rs=0;
rw=0;
en=1;
delay(1);
en=0;
}

在代码的这一部分,我们将数据发送到16 * 2 LCD显示器。数据被复制到 8051 微控制器的端口 1。RS 设置为高,用于命令写入。对于写入操作,RW 设置为低电平。在使能(E)引脚上施加高到低脉冲以启动数据写入操作。

void datawrt (unsigned char y)
{
P1=y;
rs=1;
rw=0;
en=1;
delay(1);
en=0;

在代码的这一部分,我们将数据发送到16 * 2 LCD显示器。数据被复制到 8051 微控制器的端口 1。RS 设置为高,用于命令写入。对于写入操作,RW 设置为低电平。在使能(E)引脚上施加高到低脉冲以启动数据写入操作。

void datawrt (unsigned char y) { P1=y; rs=1; rw=0; en=1; delay(1); en=0; }

*this program is for interfacing RFID reader with 8051 microcontroller and to display card number on 16*2 lcd display*/



#include



sbit rs=P3^7; //Register Select(RS) pin of 16*2 lcd

sbit rw=P3^6; //Read/Write(RW) pin of 16*2 lcd

sbit en=P3^5; //Enable(E) pin of 16*2 lcd



char count = 0; // count = 0

char input[12]; // character array of size 12

char ch;



void delay(unsigned int) ; //function for creating delay

void cmdwrt(unsigned char); //function for sending commands to 16*2 lcd display

void datawrt(unsigned char); //function for sending data to 16*2 lcd display

char rxdata(void); //function for receiving a character through serial port of 8051

microcontroller



void main(void)

{

unsigned char cmd[]={0x38,0x01,0x06,0x0c,0x80}; //16*2 lcd initialization commands

unsigned char msg[]={"RFID card Number"};

unsigned char i;

TMOD=0x20; //timer 1 , mode 2 , auto reload

SCON=0x50; //8bit data , 1 stop bit , REN enabled

TH1=0xfd; //timer value for 9600 bits per second(bps)

TR1=1; //start the timer



for(i=0;i<5;i++) //send commands to 16*2 lcd display one command at a time

{

cmdwrt(cmd[i]); //function call to send commands to 16*2 lcd display

delay(1);

}



for(i=0;i<16;i++) //send data to 16*2 lcd display one character at a time

{

datawrt(msg[i]); //function call to display message on 16*2 lcd display

delay(1);

}



while(1)

{

count=0;

cmdwrt(0xC2);

while(count<12) //repeat for 12 times

{

input[count]=rxdata(); //receive serial data and store it.

count++;

}



for(i=0;i<12;i++) //send data to 16*2 lcd display one character at a time

{

datawrt(input[i]); //function call to display rfid card number on 16*2 lcd display

delay(1);

}



delay(100);

}

}



void cmdwrt (unsigned char x)

{

P1=x; //send the command to Port 1 on which 16*2 lcd is connected

rs=0; //make RS = 0 for command

rw=0; //make RW = 0 for write operation

en=1; //send a HIGH to LOW pulse on Enable(E) pin to start commandwrite operation

delay(1);

en=0;

}



void datawrt (unsigned char y)

{

P1=y; //send the data to Port 1 on which 16*2 lcd is connected

rs=1; //make RS = 1 for command

rw=0; //make RW = 0 for write operation

en=1; //send a HIGH to LOW pulse on Enable(E) pin to start datawrite operation

delay(1);

en=0;

}



char rxdata()

{

while(RI==0); //wait till RI becomes HIGH

RI=0; //make RI low

ch=SBUF; //copy received data

return ch; //return the received data to main function.

}



void delay(unsigned int z)

{

unsigned int p,q;

for(p=0;p
{

for(q=0;q<1375;q++); //repeat for 1375 times

}

}


关键字:RFID 引用地址:将EM-18 RFID与8051微控制器连接并显示RFID卡号

上一篇:采用C8051F020微控制器控制CF卡存储及设计研究
下一篇:基于C8051F023单片机的OLED显示实现设计

推荐阅读最新更新时间:2024-11-12 22:56

瑞立英方科技RFID人员资产管理系统方案(一)
人员与资产综合管理系统是采用当今最前沿的RFID技术,开发设计的一套楼宇智能化管理系统,集合了国内识别技术、传输技术、软件技术等先进的产品和技术,可以实现人员管理、资产管理、日常管理等功能的综合性管理系统。    1、项目概述   (1) 项目需求   通过与客户的沟通,我们对项目的初步理解如下:某部队大院由于为了加强安全管理,提高效率,客户提出建设一套RFID 人员与资产管理系统。系统要求能够能够实现人员与资产的双重管理,对人员和资产的进出进行监控。   (2) RFID技术   RFID 是射频识别技术英文(Radio Frequency Identification)的缩写,射频识别技术是20 世纪90 年代开始兴
[模拟电子]
瑞立英方科技<font color='red'>RFID</font>人员资产管理系统方案(一)
一种基于C8051F350的无线同步数据采集方法
  歼击机的操纵性,如杆/舵的操纵力、位移等要符合技术要求,符合飞行员的使用习惯,才能使飞行员安全舒适地驾驶歼击机,在整个飞行中较好地完成飞行任务。歼击机操纵杆/舵操纵力一位移性能评估是歼击机产品质量检测的主要项目之一,它根据歼击机操纵杆/舵操纵力一位移性能指标的要求,检测出其力和位移是否在规定的标准范围内。本系统主要完成对歼击机操纵杆/舵操纵力和位移的同步数据采集,并通过无线的方法将采集到的力、位移数据传输给评估系统,为评估系统提供绘制力一位移曲线所需的准确测量数据。   1 系统整体设计   歼击机操纵杆/舵操纵力一位移性能检测评估系统由采集系统和评估系统两部分构成。采集系统主要包括传感器、信号调理电路、微控制器和无线模块。系
[单片机]
一种基于C<font color='red'>8051</font>F350的无线同步数据采集方法
基于C8051F020的示波器监控程序设计
  设计采用高性能单片机C8051F020为控制芯片,监控示波器面板上40个按键、3个编码开关及4个电位器的状态。分别介绍了键盘、编码开关和电位器的工作原理,以及其与单片机连接的硬件电路及软件编程的实现。按键部分采用一键多义的键盘程序设计方法,给出了键码匹配子程序流程图。   监控程序负责系统中全部硬件和软件资源的分配、调度工作,它提供用户接口,使用户获得友好的工作环境,是系统设计中一个重要组成部分。   1 C8051F020单片机概述   伴随着电子技术快速的发展,越来越多的人加入电子开发的大军。在学习电子技术和研发项目的过程中,避免不了要使用一些仪器,例如万用表、示波器等等,然而对于一些非专业的爱好者,拥有一台数字示波器是比
[测试测量]
基于C<font color='red'>8051</font>F020的示波器监控程序设计
8051微控制器简介
现在的电脑所使用的CPU大多都是AMD和INTEL的。CPU(中央处理单元)的优劣常常被我们作为评价一个电脑性能的重要指标。可能为了追求性能,大多数人选择了Intel的产品。最近关注了“中兴”被美国商务部做出了长达7年之久的禁售令事件。从这件事反映出了我国在基层技术上的落后,我们没有自主的操作系统,我们没有自己的芯片产业。我们在核心技术上受制于人。但是纵观全球,在上述行业几乎是美国一家独大。包括我正在写这篇文章时使用的操作系统是Windows8,而CPU是Intel的酷睿i5,独立显卡(GPU)是NVIDIA的。跑题了,回到8051微控制器。 1976年,Intel推出了8748,这是MCS—48系列的第一款产品。它包含了一个
[单片机]
8051单片机供水系统水位控制的硬件电路设计
供水系统水位控制原理 下图是水塔水位控制原理图。图中虚线表示允许水位变化的上下限。在正常情况下,应保持水位在虚线范围之内,为此,在水塔的不同高度安装固定不动的三根金属棒,以感知水位变化情况。其中A棒处于下限水位以下,C棒处于上限水位,B棒在下限水位处。A棒接+5V电源,B棒、C棒各通过一个电阻与模拟地相连。 水塔由电机带动水泵供水,单片机控制电机转动以达到对水位控制的目的。供水时,水位上升,当达到上限时,由于水的导电作用,B棒、C棒连通+5V电源,因此,b、c两端均为高电平“1”状态。这时,应停止电机和水泵的工作,不再给水塔供水。 当水位降到下限时,B棒、C棒都不能与A棒导通,因此,b、c两端均为“0”状态。这时,应启动电机,
[单片机]
<font color='red'>8051</font><font color='red'>单片机</font>供水系统水位控制的硬件电路设计
基于S3C2440A芯片实现RFID读写器系统的设计
随着现代信息技术和超大规模集成电路的发展,RFID技术在服务领域、货物销售与后勤分配、商业部门、生产企业和材料流通领域得到了越来越广泛的应用。射频识别技术的基本原理是利用射频信号和空间耦合(电感耦合或电磁耦合)或雷达反射的传输特性,实现对被识别物体的自动识别。 RFID系统不局限于视线,识别距离远。射频识别卡具有可读写能力,可携带大量数据,可工作在潮湿、干燥等恶劣环境下,同时具有难以伪造和智能性较高等优点。与此同时,不同的射频标签编码规则、不同的空中接口协议、大量而复杂的RFID数据如何处理等问题严重阻碍了RFID技术发挥其巨大作用。基于这种现状,本文结合防碰撞算法提出了嵌入式平台下的RFID读写器设计方案。 1 、RFI
[单片机]
基于S3C2440A芯片实现<font color='red'>RFID</font>读写器系统的设计
频谱分析仪的RFID和NFC是怎样应用的
RFID系统、特别是带有反向散射无源终端的RFID系统,给测试和诊断带来了独特的挑战。定时测量是尤其要注意的一个问题,因为它可能要求系统阅读器,非常迅速地、无差错地从多个终端中读取ID数据。 大多数RFID系统采用瞬变时分双工(TDD)方案,其中询问器和终端依次在同一条信道上通信。为使用串行TDD复用方案在非常短的时期内读取多个ID终端,标准要求非常精确的定时。因此,数据交换上的定时测量带来了独特的RFID挑战。瞬变RFID信号通常包含频谱效率低下的调制,其采用专用PCM符号编码和解码。调试接收这些异常信号的零差询问器或终端要求特殊的信号分析仪功能。传统上,扫频分析仪、矢量信号分析仪和示波器一直用于无线数据链路开发。这些限制使
[测试测量]
频谱分析仪的<font color='red'>RFID</font>和NFC是怎样应用的
C8051F340系统时钟配置
//C8051F340包含一个可编程内部高频振荡器,该振荡器在系统内复位后默认为系统时钟。该高频振荡器为12MHz。 //使能外部振荡器后,至少要等待1ms,再来判断外部晶体振荡器是否稳定工作。 //使能时钟乘法器后需要等待5us,再来初始化时钟乘法器,之后来判断时钟乘法器是否稳定工作。 使用外部晶振的时,【P0MDIN &= 0x3F;】语句一定要在ClockInit()函数调用之前执行。 原因:C8051F340的IO口默认都是数字输出。 【P0MDIN &= 0x3F;】语句含义:P0.6(XTAL1),P0.7(XTAL2)配置为模拟输入。 //函数名: ClockInit() //描述 : 系统时钟和USB时钟初始化
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved