• 大小: 694KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-27
  • 语言: 其他
  • 标签: RC522  

资源简介

根据RC522例程修改,实测可用,写卡端程序将新卡扇区1的默认密码更改,写入数据块1的数据,使该卡为我系统认可;读卡端对卡的扇区1密码进行验证并对比数据块1的内容,验证完成则认可为系统卡,否则返回错误代码。 整个程序简洁易懂,均添加了注释,适合初学者下载研究,稍作修改即可应用到自己的开发中。

资源截图

代码片段和文件信息

/****************************************Copyright (c)**************************************************
M1卡使用情况:
1.卡号对应不同人员
2.块号1存放该人员可进入的区域编号,从第一字节表示区域编号为1,

3.如果通过,则红灯亮,否则,不亮。
4.每次刷卡,RC522上传卡号以及块号1内容到上位机           
********************************************************************************************************/

#include “STC89C52RC.h“        
//#include “eeprom.h“
#include “mfrc522.h“ 
uchar code data1[16] ={0x120x340x560x780xED0xCB0xA90x870x120x340x560x780x010xFE0x010xFE};
//uchar code data2[16] ={0x000x000x000x000x000x000x000x000x000x000x000x000x000x000x000x00};
//M1卡的某一块写为如下格式,则该块为钱包,可接收扣款和充值命令
//4字节金额(低字节在前)+4字节金额取反+4字节金额+1字节块地址+1字节块地址取反+1字节块地址+1字节块地址取反 
//uchar code money[4]      = {1000};
uchar code DefaultKey[6] = {0xFF 0xFF 0xFF 0xFF 0xFF 0xFF}; //初始密码
uchar code KeyA[6] = {0xab0xba0xcf0xde0x6a0x7a}; //更改后的KeyA
uchar code KeyB[6] = {0xfe0x9f0x120x240x330x65}; //更改后的KeyB
//uchar code administer_key[6]={000000};//管理员卡密码
uchar code this=0x01;
uchar code bianhao[16]={0x010x000x010x000x000x000x000x000x000x000x000x000x000x000x000x00};
//*********全局变量定义*********************************//

static uchar xdata Rec_Buffer[REC_BUFFER_SIZE]; //串口接收缓冲区
static uchar Recvd_Count;   //串口已接收数据的个数
unsigned char g_ucTempbuf1[4];  //返回卡号
unsigned char g_ucTempbuf2[16]; //返回块中16位数据                     

bit  time_flag=0;//1秒时间标志位
bit  mode     =0;//模式选择标志位,0为定时计费模式,1为流量计费模式
static uint gather_money=0;//汇总金额变量,需要充分考虑停电问题????????????????????



/*****************************************************************************
*原型:void time0_init(void)
*功能:定时器0初始化
*input:无
*ouput:无
用于定时计费
******************************************************************************/
void time0_init(void)
{

    if(mode==0)  
    {
  TMOD  = TMOD|0x01;
  TH0   = 0x10;
  TL0   = 0x00;//4096,定时15次就是1S,11.0592M
}
if(mode==1) 
{
     TMOD  = TMOD|0x05;//计外部脉冲
  TH0   = 0xff;
  TL0   = 0xfe;//一个脉冲来则溢出
  TR0   =1;
}
//   TR0   =1;
  ET0   =1;   
}
void timer0() interrupt 1
{

  static uchar overflow=0;
  if(mode==0)
  {

TH0   = 0x10;
TL0   = 0x00;//4096,定时15次就是1S,11.0592M
overflow++;
if(overflow>=15)//注意:如果overflow未付初值,此处if(overflow==15),第一次得不到立即响应,改成>=则可以立即响应
{
    overflow=0;
time_flag=1;
LED=~LED;//绿色指示灯闪烁,表示正在计费
}
  }
  if(mode==1) 
  {
     TH0   = 0xff;
  TL0   = 0xfe;//一个脉冲来则溢出
  time_flag=1;
  }
  

}



//-------------------------------- ------------------------------------------------------------------
// 函数名称: delay
// 入口参数: N
// 函数功能:延时子程序,实现(16*N+24)us的延时 
// 系统采用11.0592MHz的时钟时延时满足要求其它情况需要改动
//--------------------------------------------------------------------------------------------------
void Delay_ms(uint N)       
{
  uint ij;
  for(j=0;j<1000;j++)
  for(i=0;i<=N;i++);

}

void Pass()
{
  beep=0;
  Delay_ms(50);
  beep=1;
 
}
/**************************

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       8724  2016-04-14 01:51  stc89c52rc读取rc522卡号\main.c

     文件      15660  2016-04-14 01:49  stc89c52rc读取rc522卡号\main.LST

     文件      19457  2016-04-14 01:49  stc89c52rc读取rc522卡号\main.OBJ

     文件       7208  2016-04-12 23:48  stc89c52rc读取rc522卡号\MFRC522.H

     文件       6906  2008-12-23 21:09  stc89c52rc读取rc522卡号\MFRC522.H.bak

     文件      47734  2016-04-14 01:49  stc89c52rc读取rc522卡号\Rc522

     文件      17393  2016-04-14 00:25  stc89c52rc读取rc522卡号\RC522.C

     文件       9395  2016-04-14 01:49  stc89c52rc读取rc522卡号\Rc522.hex

     文件         55  2016-04-14 01:49  stc89c52rc读取rc522卡号\Rc522.lnp

     文件      27549  2016-04-14 01:49  stc89c52rc读取rc522卡号\RC522.LST

     文件      42375  2016-04-14 01:49  stc89c52rc读取rc522卡号\Rc522.M51

     文件      35091  2016-04-14 01:49  stc89c52rc读取rc522卡号\RC522.OBJ

     文件      10484  2016-04-14 01:51  stc89c52rc读取rc522卡号\Rc522.plg

     文件      58384  2016-04-14 01:51  stc89c52rc读取rc522卡号\rc522.uvopt

     文件      13390  2016-04-14 00:06  stc89c52rc读取rc522卡号\rc522.uvproj

     文件     732672  2014-09-30 09:17  stc89c52rc读取rc522卡号\sscom42.exe

     文件       5814  2008-12-23 21:11  stc89c52rc读取rc522卡号\STC12C54xx.H

     文件       3986  2015-08-12 15:51  stc89c52rc读取rc522卡号\STC89C52RC.h

     文件      13537  2016-04-14 02:20  stc89c52rc读取rc522卡号\读取S50卡说明.docx

     文件       9255  2016-04-14 02:09  stc89c52rc写S50数据卡程序\main.c

     文件      16218  2016-04-14 02:21  stc89c52rc写S50数据卡程序\main.LST

     文件      20290  2016-04-14 02:21  stc89c52rc写S50数据卡程序\main.OBJ

     文件       7208  2016-04-12 23:48  stc89c52rc写S50数据卡程序\MFRC522.H

     文件      48389  2016-04-14 02:21  stc89c52rc写S50数据卡程序\Rc522

     文件      17393  2016-04-14 00:25  stc89c52rc写S50数据卡程序\RC522.C

     文件       9581  2016-04-14 02:21  stc89c52rc写S50数据卡程序\Rc522.hex

     文件         55  2016-04-14 02:21  stc89c52rc写S50数据卡程序\Rc522.lnp

     文件      27549  2016-04-14 02:21  stc89c52rc写S50数据卡程序\RC522.LST

     文件      42561  2016-04-14 02:21  stc89c52rc写S50数据卡程序\Rc522.M51

     文件      35091  2016-04-14 02:21  stc89c52rc写S50数据卡程序\RC522.OBJ

............此处省略12个文件信息

评论

共有 条评论