资源简介

本代码实现了MFRC522与89C52的通信,删除了一些不必要的部分,整合了网上的代码,添加了具体的注释和意义,可读性更大,能够帮助初学者快速的掌握MFRC522和89C52的通信协议,实现射频打开的功能,本例程可采用1602和12864实时观察输出效果。

资源截图

代码片段和文件信息

#include
#include
#include
unsigned char UID[5]Temp[4];
unsigned char code DefaultKey[6] = {0xFF 0xFF 0xFF 0xFF0xFF0xFF};
unsigned char datain[16] = {0x320x300x310x350x340x300x360x300x340x300x360x380x360x360x360x36};
unsigned char dataout[16];
unsigned char status;
void feeb(){ //寻卡成功响应函数
ff=0;
delay_10ms(1);
ff=1;
delay_10ms(1);
}
void show(void)
{
unsigned char i;
init_1602();
for(i=0;i<16;i++)
{
write_data(dataout[i]);}
}

void Auto_Reader(void){
while(1){
    if(PcdRequest(0x52Temp)==MI_OK){  //
      xun=0;
  if(PcdAnticoll(UID)==MI_OK){   //
           fang=0;
   if(PcdSelect(UID)==MI_OK){
    xuan=0;
    if(PcdAuthState(0x606DefaultKeyUID)==MI_OK)
    {
     yan=0;
if(PcdRead(6dataout)==MI_OK){
if(status==MI_OK) {read=0;}
if(PcdHalt()==MI_OK)
xiu=0;
break;}}}}          
      }else P1=0xff;
    }
}

void InitializeSystem(){
    ES=0;   //关中断
  SCON = 0x50;                        // REN=1允许串行接受状态,串口工作模式1
  //10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可变

  TMOD = 0x21;                        // 定时器1工作于方式2,1weiyugongzuofangshi1 8位自动重载模式 用于产生波特率
          TH1=TL1=0xFD;                       // 波特率9600 (本次测试采用晶振为11.0592)
          
          PCON &= 0x7f;                       // 波特率不倍增
          TR1 = 1;   //定时器1开始工作,产生波特率
  //发送标志位置0
  TI=0;   //接收标志位置0
  RI=0;

      ES=1;
    PcdReset();
    PcdAntennaOff(); 
    PcdAntennaOn();  
M500PcdConfigISOType( ‘A‘ );
}

void isr_UART(void) interrupt 4 using 1{
    unsigned char i;
if(TI){
TI=0;
for(i=0;i<16;i++){
SBUF=dataout[i];
while(!TI);
TI=0;
}
REN=1;
}
}
void main( ){   
    InitializeSystem( );
Auto_Reader();
show();
send(dataout);
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-05-07 14:42  89C52_RC522 - 读卡\
     文件        2013  2017-05-07 14:42  89C52_RC522 - 读卡\MAIN.c
     文件        1288  2017-05-01 10:28  89C52_RC522 - 读卡\MAIN.H
     文件        5058  2017-05-07 14:42  89C52_RC522 - 读卡\MAIN.LST
     文件       13906  2017-05-07 14:42  89C52_RC522 - 读卡\MAIN.OBJ
     文件        5666  2017-05-01 12:44  89C52_RC522 - 读卡\MFRC522.H
     文件       43619  2017-05-07 14:42  89C52_RC522 - 读卡\RC522
     文件       16703  2017-05-01 12:44  89C52_RC522 - 读卡\RC522.C
     文件        7167  2017-05-07 14:42  89C52_RC522 - 读卡\RC522.hex
     文件          55  2017-05-07 14:42  89C52_RC522 - 读卡\RC522.lnp
     文件       27420  2017-05-07 14:42  89C52_RC522 - 读卡\RC522.LST
     文件       36369  2017-05-07 14:42  89C52_RC522 - 读卡\RC522.M51
     文件       36345  2017-05-07 14:42  89C52_RC522 - 读卡\RC522.OBJ
     文件        2554  2017-05-01 17:24  89C52_RC522 - 读卡\RC522.Opt
     文件        2216  2017-04-29 17:51  89C52_RC522 - 读卡\RC522.Uv2
     文件        2519  2017-05-01 14:01  89C52_RC522 - 读卡\RC522_Opt.Bak
     文件        2289  2016-01-06 00:12  89C52_RC522 - 读卡\RC522_Uv2.Bak
     文件        6376  2005-03-22 15:22  89C52_RC522 - 读卡\STARTUP.A51
     文件       14061  2014-01-31 11:51  89C52_RC522 - 读卡\STARTUP.LST
     文件         749  2014-01-31 11:51  89C52_RC522 - 读卡\STARTUP.OBJ

评论

共有 条评论