查看: 555|回复: 0

MSP430通过RC522实现门禁卡功能(RFID)

[复制链接]

该用户从未签到

发表于 2020-11-24 20:03:25 | 显示全部楼层 |阅读模式
分享到:
16.jpg

  1.                                                                        //
  2. //===========================================================================//
  3. /********************************************************************
  4. //MSP430F149单片机 + RC522 +M1
  5. //实现门禁卡功能
  6. //刷卡实现LCD灯亮  +  12864LCD屏幕显示相应内容
  7. //调试环境:IAR + MSP430F149 +RC522
  8. //作者:孙登波 119104010574
  9. //时间:2019.09.10
  10. ********************************************************************/
  11. #include "msp430x14x.h"
  12. #include "PIN_DEF.H"
  13. #include "RC522.H"
  14. #include "UART0_Func.c"
  15. #include "ctype.h"
  16. #include "BoardConfig.h"
  17. #include "lcd.h"
  18. #include "led8run.h"

  19. unsigned char UID[5],Temp[4]                                       ;
  20. unsigned char RF_Buffer[18]                                        ;
  21. unsigned char Password_Buffer[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}   ; // Mifare One 缺省密码
  22. char          MBRX[30]                                             ;
  23. char          MBKeyTP[30]                                          ;
  24. char          Event                                                ;
  25. unsigned char DISP_MODE,i                                            ; // 编辑控件显示模式
  26. unsigned char des_on       = 0                                     ; // DES加密标志
  27. void Key_TP_Task(void)                                             ;

  28. //***************************************************************************//
  29. //                                                                           //
  30. //                 初始化主时钟: MCLK = XT1×(FLL_FACTOR+1)                  //
  31. //                                                                           //
  32. //***************************************************************************//
  33. void Init_CLK(void)
  34. {
  35.   unsigned int qq;
  36.   WDTCTL     = WDTPW + WDTHOLD                                     ; // 关看门狗
  37.   BCSCTL1 &= ~XT2OFF;           //打开XT2高速晶体振荡器  
  38.   do
  39.   {
  40.     IFG1 &= ~OFIFG;           //Clear oscFault flag清除振荡器失效标志
  41.     for(qq=0xff;qq>0;qq--);
  42.   }while((IFG1&OFIFG));       //oscFault flag still set

  43.   BCSCTL2 |= SELM_2;          //MCLK=XT2
  44.   //BCSCTL2 |= DIVM_0;        //控制MCLK不分频,默认

  45.   BCSCTL2 |= SELS;            //SMCLK=XT2
  46.   //BCSCTL2 |= DIVS_0;        //控制SMCLK不分频,默认
  47. }

  48. void Delay(unsigned int time)
  49. {
  50.   unsigned int i,k                             ;
  51.   for(i=0;i<255;i++)
  52.     for(k=0;k<time;k++)
  53.       _NOP()                                   ;   
  54. }

  55. void Init_Port(void)
  56. {
  57.   P4DIR   =   RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT                     ;
  58.   P2DIR |= BIT0+RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT;
  59.   P1DIR   =   RF_LPCTL + RF_SS   + RF_SCLK  + RF_DATA_OUT                     ;
  60. }

  61. void main( void )
  62. {
  63.   unsigned char status;
  64.   WDTCTL     = WDTPW + WDTHOLD                                     ; // 关看门狗
  65.   BoardConfig(0xf0);
  66.   Init_Port();
  67.   InitUART();
  68.   _EINT()                                            ;
  69. loop:lcd_welcome();
  70.   PcdReset();//复位RC522
  71.   PcdAntennaOn();//开启天线发射
  72.   while(1)
  73.   {
  74.     status = PcdRequest(PICC_REQIDL, Temp); ////寻卡,输出为卡类型
  75.     if (status == MI_OK)
  76.       status = PcdAnticoll(UID); //防冲撞处理,输出卡片序列号,4字节
  77.     if (status == MI_OK)
  78.       status = PcdSelect(UID); //选择卡片,输入卡片序列号,4字节
  79.     if (status == MI_OK)
  80.       status = PcdAuthState(PICC_AUTHENT1A, 1, Password_Buffer, UID); //在进行读写操作之前需要先进行认
  81.     if (status == MI_OK)
  82.     {
  83.       led_run();
  84.       lcd_success();
  85.       Delay(2500);
  86.       goto loop;
  87.     }

  88.   }
  89.   }
复制代码

[size=0.83em]

360截图20191008221211743.jpg (60.47 KB, 下载次数: 0)

下载附件  [url=]保存到相册[/url]

[color=rgb(153, 153, 153) !important]2019-10-8 22:13 上传




//实现门禁卡功能
//刷卡实现LCD灯亮 + 12864LCD屏幕显示相应内容
屏幕效果如下:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条



手机版|小黑屋|与非网

GMT+8, 2024-5-16 03:13 , Processed in 0.112065 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.