全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 接口/总线/驱动 >

使用MSP430启动板在LCD上读取和显示RFID号码的方式

时间:2022-11-09 17:26

人气:

作者:admin

标签: MSP430  RFID  阅读器 

导读:在本教程中,我们设计了一个使用 MSP430 和 RFID 阅读器读取 RFID 卡的系统。...

在本教程中,我们设计了一个使用MSP430RFID 阅读器读取 RFID卡的系统。RFID 代表 射频识别。每张卡都有一个唯一的ID,这使其成为许多身份验证应用程序的完美选择,例如在办公室,购物中心和许多其他地方,只允许持有授权卡的人进入。RFID在购物中心用于阻止盗窃的发生,产品将被标记为RFID芯片,如果有人带着RFID芯片离开建筑物,则会自动发出警报,从而停止盗窃。RFID标签设计得像沙粒一样小。RFID认证系统易于设计且成本低廉。如今,一些学校和学院使用RFID作为出勤登记。

所需材料

1. MSP430 启动板

2. EM-18 (无线射频识别读写器模块)

3. 16*2液晶显示器

4. 电位器

5. 面包板

6. 跳线

软件:Energia IDE

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

每张RFID卡中都嵌入了一个唯一的ID,RFID阅读器用于读取RFID卡号。EM-18 RFID阅读器的工作频率为125 KHz,并配有片上天线,可采用5V电源供电。它提供串行输出以及 weigand 输出。范围约为8-12厘米。串行通信参数为9600bps,8个数据位,1个停止位。

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

pYYBAGNrckCAZJhbAACz1vZfDRs313.jpg

pYYBAGNrckGAPrzwAAAqmzyP_x8929.jpg

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

02 – 序言

00107D0D = 十进制1080589。

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

因此,卡上的数字是0001080589。

MSP430 RFID阅读器电路图和工作原理

poYBAGNrckOAGSVzAADTo4I7WNI687.png

我们将使用 MSP430 的硬件 UART,因此,请确保板上的 RXD 和 TXD 跳线处于硬件 UART 模式。然后将EM-18的发射连接到MSP430的RXD(P1.1)。

在进一步讨论之前,我们需要了解串行通信。这里的RFID模块以串行方式将数据发送到控制器。它具有其他通信模式,但为了便于通信,我们选择RS232。模块的RS232引脚连接到MSP430的RXD引脚。

RFID 模块发送的数据如下:

poYBAGNrckWAfDdQAAAsTXBDRMo773.png

现在,为了在RFID阅读器和MSP430之间建立连接,我们需要在MSP430中启用串行通信。MSP430 中的串行通信可以通过使用单个命令来完成。

Serial.begin(9600);

data = Serial.read();

如上图所示,RFID的通信是通过每秒9600比特的波特率完成的。因此,为了使MSP430建立这样的波特率并开始串行通信,我们使用命令“Serial.begin(9600);”。这里 9600 是波特率,是可变的。

现在,一旦设置波特率,MSP就可以接收串行数据了。此数据由命令“data = Serial.read();”获取。通过此命令,串行数据以名为整数的“数据”形式获取。

一旦将卡靠近读卡器,读卡器读取串行数据并将其发送到MSP,MSP将被编程为在LCD中显示该值,因此我们将在LCD上具有卡的ID。

pYYBAGNrckeAJH_OAADbJXfaIZw173.jpg

代码和说明

我们将在Energia IDE中编写代码。它与Arduino IDE相同,易于使用。在这个项目的末尾给出了完整的代码,在这里我们解释了它的几个部分。

首先,包括用于LCD显示的库,并声明字符数组以存储RFID号码。

#include

LiquidCrystal lcd(P2_0, P2_1, P2_2, P2_3, P2_4, P2_5);

char input[12];

在设置功能中,通过定义波特率9600来启用LCD和串行通信。

void setup()

{

lcd.begin(16, 2);

Serial.begin(9600);

...

..

在循环功能中,我们将检查串行数据是否可用。如果可用,将数据存储在 Serial.read() 的输入[计数] 数组中,并使用 while 循环将其逐个显示在 LCD 上。

while(Serial.available() && count < 12)      // Read 12 characters and store them in input array

{

input[count] = Serial.read(); //storing 12 characters one by one

Serial.print(input[count]);

lcd.print(input[count]);

delay(300);

count++;

if (count==12)

{

lcd.print(" ");

count = 0; // once 12 characters are read get to start and wait for second ID

这就是我们使用MSP430启动板在LCD上读取和显示RFID号码的方式。

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信