资源简介
根据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个文件信息
相关资源
- 正点原子Mini开发板的RC522刷卡程序触
- 基于51单片机的刷卡签到系统
- stm32实现对RC522读写块
- MF RC522 开发板资料及源程序
- 内含RC522与51单片机硬件设计与程序,
- MFRC522射频卡,RFID,非接触式IC卡,感
- protel99se 设计的 RC522非接触读卡器硬件
- 51单片机rc522 射频的程序和与PCB电路图
- RC522全套开发资料,包含pcb原理图,程
- RFID_RC522战舰程序
- stm32 f103RCT6用正点原子Mini板可用的R
- stm32rc522
- STM32的RC522程序
- RFID-RC522+STC89C52+串口通信+新手教程+中
- F103-指南者 RC522程序改版
- RC522实现钱包功能
- stm32驱动rc522程序
- 调试OK的stm8+rc522原理图和源代码
- 基于51单片机控制RC522的设计
- STC单片机控制MFRC522的完整资料,包括
- MFRC522原理图和程序
- STM32+RC522--demo.rar
- RC522饮水机.zip
- STM32战舰版RC522使用例程
- STM32 RFID RC522 模拟SPI 读写卡程序
- stm32读取磁卡ID程序源码
- rc522之51单片机1602显示以及上位机
- 基于STM32的RC522上位机读写射频卡程序
- 基于HAL库STM32+RC522读写卡程序 调试完
- rc522开发资料51读写卡参考例程及上位
评论
共有 条评论