历史上的今天
返回首页

历史上的今天

今天是:2025年01月22日(星期三)

正在发生

2021年01月22日 | 基于MSP430与RC522的RFID简单应用(1)

2021-01-22 来源:eefocus

1.

在学习了MSP430与RFID相关知识后,使用MSP430集成板与RC522识别模块制作门禁系统和公交卡充值扣费系统
实验器材:MSP430集成板,12864液晶显示屏,RCC522识别模块,M1卡一张,蓝色识别牌牌一个。
在这里插入图片描述
将 RFID 模块与 MSP430F149 最小系统板采用杜邦线连接;
RC522 接口 MSP430F149 接口
SDA(数据接口) P2.7
SCK(时钟接口) P2.6
MOSI(SPI 接口主出从入) P2.5
MISO(SPI 接口主入从出) P2.1
NC(悬空)
GND(地) GND
RST(复位信号) P2.3
3.3V(电源) 3.3V

注意:下载程序时候
(此时跳线帽连接方式为:
TCK and RTS RESET and DTR
P11 and RXD P22 and TXD)
串口通信时候
(此时跳线帽连接方式为:
TXD0 and RXD RXD0 and TXD)

(如果 MSPFET 提示以下错误对应解决方法为:
Init failed. Could not open port.——————检查是否打开单片机的开关、USB
接口是否连接松动和 COM 口是否设置正确。
Erase failed. Synchronization error. ——————检查跳线帽是否连接正确、跳
线帽是否松动,最后选择更换跳线帽,可能跳线帽损坏 )

掌握IAR开发软件的操作与使用
在这里插入图片描述
简单的识别卡及串口通信功能实现
程序源码
main.c文件
寻卡—防冲撞—选择卡片—密码认证—读卡”这一函数调用过程。

//===========================================================================//


#include "msp430x14x.h"

#include "PIN_DEF.H"

#include "RC522.H"

#include "UART0_Func.c"

#include "ctype.h" 

#include "BoardConfig.h"

#include "Config.h"


unsigned char writeData[16]={1, 2, 3, 4, 0};

unsigned char str[16];

unsigned char UID[4],Temp[4]                                       ;

unsigned char RF_Buffer[18]                                        ;

unsigned char Password_Buffer[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}   ; // Mifare One 缺省密码


char          MBRX[30]                                             ;

char          MBKeyTP[30]                                          ;

char          Event                                                ;

unsigned char DISP_MODE,i                                            ; // 编辑控件显示模式

unsigned char des_on       = 0                                     ; // DES加密标志

void Key_TP_Task(void)                                             ;


void Port_Init()

{

  LED8DIR = 0xff;                  //设置IO口方向为输出

  LED8 = 0x00;                     //初始设置为00

}

//***************************************************************************//

//                                                                           //

//                 初始化主时钟: MCLK = XT1×(FLL_FACTOR+1)                  //

//                                                                           //

//***************************************************************************//

void Init_CLK(void)

{

  unsigned int qq;

  WDTCTL     = WDTPW + WDTHOLD                                     ; // 关看门狗

  BCSCTL1 &= ~XT2OFF;           //打开XT2高速晶体振荡器  

  do

  {

    IFG1 &= ~OFIFG;           //Clear oscFault flag清除振荡器失效标志

    for(qq=0xff;qq>0;qq--);

  }while((IFG1&OFIFG));       //oscFault flag still set

  

  BCSCTL2 |= SELM_2;          //MCLK=XT2

  //BCSCTL2 |= DIVM_0;        //控制MCLK不分频,默认

  

  BCSCTL2 |= SELS;            //SMCLK=XT2

  //BCSCTL2 |= DIVS_0;        //控制SMCLK不分频,默认

}


void Delay(unsigned int time)

{

  unsigned int i,k                             ;

  for(i=0;i<255;i++)

    for(k=0;k      _NOP()                                   ;   

}


void Auto_Reader(void)

{

  while(1)

  {

    if(PcdRequest(0x52,Temp)==MI_OK)//MI_OK=0  寻卡  0x52 = 寻感应区内所有符合14443A标准的卡  Temp返回卡片的类型

    {

      if(Temp[0]==0x04&&Temp[1]==0x00)  

          PutString("MFOne-S50");//卡片的类型为MFOne-S50   目前手上买的为此型号

        else if(Temp[0]==0x02&&Temp[1]==0x00)

          PutString("MFOne-S70");

        else if(Temp[0]==0x44&&Temp[1]==0x00)

          PutString("MF-UltraLight");

        else if(Temp[0]==0x08&&Temp[1]==0x00)

          PutString("MF-Pro");

        else if(Temp[0]==0x44&&Temp[1]==0x03)

          PutString("MF Desire");

        else

          PutString("Unknown");

      if(PcdAnticoll(UID)==MI_OK)//获得卡片序列号UID

      { 

        PutString0("Card Id is:");

        tochar(UID[0]);

        tochar(UID[1]);

        tochar(UID[2]);

        tochar(UID[3]);

        while (!(IFG1 & UTXIFG0));

        TXBUF0 = 'n';                              //发送换行指令

                        

        RED_LED_ON                                            ;

        Delay(200)                                           ;

        RED_LED_OFF                                           ;

        Delay(200)                                           ;

      }

    }

  else GRE_LED_OFF                                            ;

  } 

}


void Find_Card(void)

{

    if(PcdRequest(0x52,Temp)==MI_OK)

    {

      if(Temp[0]==0x04&&Temp[1]==0x00)  

          PutString("MFOne-S50");

        else if(Temp[0]==0x02&&Temp[1]==0x00)

          PutString("MFOne-S70");

        else if(Temp[0]==0x44&&Temp[1]==0x00)

          PutString("MF-UltraLight");

        else if(Temp[0]==0x08&&Temp[1]==0x00)

          PutString("MF-Pro");

        else if(Temp[0]==0x44&&Temp[1]==0x03)

          PutString("MF Desire");

        else

          PutString("Unknown");

        PutString("SUCCESS!");

    }

    else PutString("Faile!");                                             

}


void Init_Port(void)

{

  P4DIR   =   RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT                     ;

  P2DIR |= BIT0+RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT;

  P1DIR   =   RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT                     ;

}

/*******************************************

函数名称:HandleConfigMenu

功    能:处理PC的配置函数

参    数:inputvalue--接收到的来自PC机的字符

返回值  :无

********************************************/

void HandleConfigMenu(uchar inputvalue)

{

    switch(toupper(inputvalue)) 

    {

    case 'A':

              Auto_Reader();

              break;

    case 'F':

              Find_Card();

              break;

    default:

              DisplayConfigMenu();  

    }

}



void main( void )

{

  WDTCTL     = WDTPW + WDTHOLD                                     ; // 关看门狗

推荐阅读

史海拾趣

华润华晶公司的发展小趣事

由于篇幅限制,我无法直接提供5个完整的、各至少500字的华润华晶公司在电子行业中的发展故事。不过,我可以概述5个与华润华晶公司相关的重要事件或发展阶段,每个概述尽量保持其事实的准确性和简洁性。

  1. 华润集团并购华晶,开启新篇章

2002年,华润集团与无锡华晶电子有限公司(前身为华晶集团公司)达成并购协议。这一举措标志着华润集团正式进军半导体行业,也为华润华晶的未来发展奠定了坚实基础。通过此次并购,华润集团不仅获得了华晶在半导体领域的先进技术和丰富经验,还进一步扩大了其在电子行业的影响力。

  1. 技术创新与产业升级

自成立以来,华润华晶一直致力于技术创新和产业升级。公司不断引进国内外先进的生产设备和技术,提升产品性能和质量。同时,华润华晶还加大了对研发的投入,积极推动新产品的研发和应用。这些努力使得华润华晶在微电子行业中的竞争力不断提升,成为行业的佼佼者。

  1. 质量管理体系建设

为了确保产品质量和提升客户满意度,华润华晶高度重视质量管理体系的建设。公司通过了DNV挪威船级社TS16949质量管理体系认证,并严格按照该体系的要求进行生产和管理。此外,华润华晶还建立了完善的质量检测和控制体系,确保每一批产品都符合相关标准和客户要求。

  1. 市场拓展与品牌建设

在市场拓展方面,华润华晶积极开拓国内外市场,与众多知名企业建立了长期稳定的合作关系。同时,公司还加强了品牌建设和推广力度,提高了品牌知名度和美誉度。这些努力使得华润华晶在电子行业中树立了良好的企业形象和品牌形象。

  1. 应对挑战与未来发展

面对日益激烈的市场竞争和技术变革的挑战,华润华晶始终保持着清醒的头脑和坚定的信心。公司不断调整战略方向和市场定位,加强与其他企业和机构的合作与交流。同时,华润华晶还积极探索新的业务领域和发展模式,为未来的发展奠定了坚实的基础。

以上五个概述简要描述了华润华晶在电子行业中的部分重要事件和发展阶段。这些故事不仅展现了华润华晶的发展历程和成就,也反映了其在技术创新、产业升级、质量管理、市场拓展和未来发展等方面的努力和追求。

ALLIED [Allied Electronics]公司的发展小趣事

Allied Electronics,总部位于美国德克萨斯州的一家分销公司,专注于为各种行业提供电子元件和电子产品。以下是关于Allied Electronics发展的五个相关故事:

  1. 成立和初期发展: Allied Electronics成立于1928年,最初以销售家庭无线电零件和配件为主要业务。随着无线电和电子行业的发展,公司逐渐扩大了产品范围,开始提供更广泛的电子元件和设备,以满足不断增长的市场需求。

  2. 与RS Components的合并: 2000年,Allied Electronics与英国的RS Components公司合并,成为全球领先的电子元件分销商之一。这一合并加强了两家公司在全球市场的地位,并且拓展了它们的产品线和客户群。

  3. 公司战略调整: 随着数字化技术的快速发展,Allied Electronics逐渐调整了业务战略,加大了对电子元件和器件的供应,并拓展了工业自动化、物联网和电子制造等领域的业务。通过与各种行业的合作伙伴建立紧密的关系,公司不断提升了产品质量和服务水平。

  4. 技术创新和数字化转型: Allied Electronics致力于技术创新和数字化转型,通过建立先进的电子商务平台和在线资源中心,为客户提供更便捷的采购体验。同时,公司还加强了与供应商的合作关系,引入了更多的创新产品,满足不同客户的需求。

  5. 持续发展和全球扩张: 作为全球领先的电子元件分销商之一,Allied Electronics不断加大在全球范围内的市场扩张力度,开设了多个销售办事处和物流中心,以更好地服务于全球客户。同时,公司还积极参与行业展会和活动,加强了与全球电子行业的合作与交流,推动了公司的持续发展和壮大。

Defense Logistics Agency公司的发展小趣事

面对日益复杂的军事需求和快速发展的技术环境,DLA积极推进技术创新和数字化转型。通过引入云计算、大数据、人工智能等先进技术,DLA实现了对全球供应链的实时监控和智能调度,大大提高了后勤保障的效率和准确性。同时,DLA还加强了对新型军事装备的研发和保障能力,确保美军在现代化战争中保持领先地位。

西安航天民芯公司的发展小趣事

除了商业产品的研发外,西安航天民芯还积极承担国家重大科研项目。公司参与了我国工业强基高性能工业DSP芯片等多项国产化项目的研发工作,为提升国家产业核心竞争力做出了贡献。这些项目的成功实施,进一步提升了西安航天民芯在行业内的影响力和地位。

博巨兴公司的发展小趣事

博巨兴公司始终秉持开放合作的理念,积极与高校和研究机构展开产学研合作。2008年至2010年间,公司先后与厦门大学、中南大学、湖南大学结成产学研型战略伙伴关系,共同推动芯片技术的研发与应用。同时,公司还不断拓展市场,在上海建立了分公司,并在顺德、厦门、天津、杭州、西安等地设立了办事处,为公司的长远发展奠定了坚实基础。

这些故事虽然基于虚构,但反映了博巨兴公司在电子行业发展中不断探索、创新、合作与拓展的历程。通过这些努力,博巨兴公司逐渐在芯片代理和研发领域取得了显著成绩,为电子行业的发展做出了积极贡献。

台湾致强(FORT)公司的发展小趣事

致强科技深知员工是企业持续发展的关键。因此,公司自成立以来便注重企业文化的建设,积极营造和谐、关爱的工作氛围。公司管理层倡导“尊重人性”的理念,不仅为员工提供具有竞争力的薪酬福利,还通过EAP(员工协助计划)等方式关注员工的心理健康和生活需求。EAP项目的实施不仅帮助员工缓解了工作压力,还从多方面提升了员工的归属感和幸福感,为公司的长期发展奠定了坚实的人才基础。

问答坊 | AI 解惑

波形发生器只出正弦波不知道是键盘还是那得错误

#include #include #include #define  dac0832 XBYTE[0x7fff] #define uchar unsigned char uchar code to_sin[256] uchar b=0,c=0,d=0,e=0,i,k,tl,th; int bw=10;//bw为频率百位变量 int t,f,m,choice=1,zk=50;// t为时间变 ...…

查看全部问答>

matlab第三课--矩阵的大小

和这个相关的有三个函数 [size=78%][size=65%]nsize指令 [size=78%][size=65%]nlength指令 [size=78%][size=65%]nfind指令 …

查看全部问答>

Tsu/Tco 意义解释

Tsu/Tco 在Quartus II 的报告中含义: 片内的Tsu/Tco 是指前级触发器的Tco 和后级触发器的Tsu, 一般来说都是几百ps 级别的. 可以通过“List Paths”命令查看。这里的Tsu/Tco 主要由器件工艺决定, 工作时在受到温度,电压的影响略有变化.(如下图所 ...…

查看全部问答>

EVC编译错误 总共102个错误 我列举了一些出来

C:\\Program Files\\Windows CE Tools\\wce400\\STANDARDSDK\\Include\\x86\\prsht.h(261) : error C2146: syntax error : missing \';\' before identifier \'hdr\' C:\\Program Files\\Windows CE Tools\\wce400\\STANDARDSDK\\Include\\x86\\pr ...…

查看全部问答>

[分享]详细介绍802.11标准的最新进展

[分享]详细介绍802.11标准的最新进展近一两年已有广泛应用的无线局域网(WLAN)是一种低成本德无线接入技术,作为GPRS或 cdma2000的补充技术,或新的家庭联网方式,它使越来越多的设备供应商涉足此领域。目前应用得比较成功得WLAN技术是802.11,此 ...…

查看全部问答>

问下9N90C是什么元件?

 问下9N90C是什么元件?…

查看全部问答>

【MSP430共享】MSP430单片机实现微波成像系统的扫描控制与数据采集

引言----在无源微波遥感中,微波辐射计是一种获取场景微波特征的重要手段。微波辐射计通常是一部超外差接收机,通过接收被测场景在一定频带内的电磁辐射,转换为输出的低频信号,来表征被测场景的地物信息。利用微波辐射计来探测、接收被测目标、背 ...…

查看全部问答>

LM3S I2C驱动ZLG7290键盘控制芯片的源程序

哪位大侠写过LM3S I2C驱动ZLG7290键盘控制芯片的程序,发给我看看吧,谢谢啦!…

查看全部问答>

手把手教你做Android手机遥控车

       手把手教你做Android手机遥控车     安卓手机遥控小车,顾名思义就是用安卓手机来控制小车前后左右运动。给大家展示一个既可触摸按键控制又可重力感应控制的Android手机软件和DIY小车,废话少说,上图: Andr ...…

查看全部问答>

给个破解的altium desinger的下载地址!~!!~

给个altium desinger;我自己下的不带破解的,搞了好久就是破解不了!~!~!~…

查看全部问答>