久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
STC8A8K單片機(jī)實(shí)現(xiàn)無源RC522模塊讀寫卡程序+資料
[打印本頁]
作者:
叁夢
時間:
2019-9-21 15:48
標(biāo)題:
STC8A8K單片機(jī)實(shí)現(xiàn)無源RC522模塊讀寫卡程序+資料
STC最新的STC系列單片機(jī)可以實(shí)現(xiàn)RFID的讀卡,寫卡,擦除卡的操作,有源碼和上位機(jī)
單片機(jī)源程序如下:
/****************************************Copyright (c)****************************************************
**
**
**
**--------------File Info---------------------------------------------------------------------------------
** File name: main.c
** Last modified Date:
** Last Version:
** Descriptions:
**--------------------------------------------------------------------------------------------------------
** Created by: FiYu
** Created date: 2018-2-1
** Version: 1.0
** Descriptions: 無源RFID MFRC522實(shí)驗(yàn)
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
** Rechecked by:
**********************************************************************************************************/
#include <string.h>
#include "uart.h"
#include "rc522.h"
#include "UartComm.h"
#define READ_CARD 0x10
#define WRITE_CARD 0x11
#define MODIFY_PASSWORD 0x12
#define RECE_CMD FrameReceInfo.buf[1] //命令
#define BLOCK_NUM FrameReceInfo.buf[2] //塊號
/**********************
引腳別名定義
***********************/
sbit LED_B=P0^7; //RGB藍(lán)色LED用IO口P07
xdata uint8 uartReceBuf[20];
xdata uint8 WriteDat[16];
//M1卡的某一塊寫為如下格式,則該塊為錢包,可接收扣款和充值命令
//4字節(jié)金額(低字節(jié)在前)+4字節(jié)金額取反+4字節(jié)金額+1字節(jié)塊地址+1字節(jié)塊地址取反+1字節(jié)塊地址+1字節(jié)塊地址取反
//uint8_t code data2[4] = {0,0,0,0x01};
uint8 CardKey[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
uint8 NewKey[16];
uint8 xdata g_ucTempbuf[20];
void RC522_Init(void)
{
RC522_Reset();
PcdAntennaOff();
//PcdAntennaOn();
M500PcdConfigISOType( 'A' );
}
uint8 CardHanding(void)
{
uint8 status,i;
status = RC522_Request(PICC_REQIDL, g_ucTempbuf);//尋卡,返回卡的類型:2個字節(jié)
if(status != MI_OK) return 0;
if(RECE_CMD == READ_CARD)for(i=0;i<2;i++)U1SendData(g_ucTempbuf[i]); //發(fā)送卡類型,2個字節(jié) 只有接收到讀卡命令才發(fā)送
status = RC522_Anticoll(g_ucTempbuf);//防沖撞,返回卡的序列號:4字節(jié)
if(status != MI_OK) return 0;
if(RECE_CMD == READ_CARD)for(i=0;i<4;i++)U1SendData(g_ucTempbuf[i]); //發(fā)送卡號,4個字節(jié) 只有接收到讀卡命令才發(fā)送
status = PcdSelect(g_ucTempbuf);//選定卡片
if(status != MI_OK) return 0;
switch(RECE_CMD) //解析命令
{
case READ_CARD: // 讀卡
memcpy(CardKey,&FrameReceInfo.buf[3],6); //拷貝密碼
status = PcdAuthState(PICC_AUTHENT1A, BLOCK_NUM, CardKey, g_ucTempbuf);//驗(yàn)證卡片密碼
if(status != MI_OK) return 0;
status = PcdRead(BLOCK_NUM, g_ucTempbuf);//讀塊
if(status != MI_OK) return 0;
for(i=0;i<16;i++)U1SendData(g_ucTempbuf[i]); //發(fā)送讀出的內(nèi)容,16個字節(jié)
PcdHalt();
break;
case WRITE_CARD: //寫卡
memcpy(CardKey,&FrameReceInfo.buf[3],6); //拷貝密碼
memcpy(WriteDat,&FrameReceInfo.buf[9],16); //拷貝待寫入的數(shù)據(jù)
status = PcdAuthState(PICC_AUTHENT1A, BLOCK_NUM, CardKey, g_ucTempbuf);//驗(yàn)證卡片密碼
if(status != MI_OK) return 0;
status = PcdWrite(BLOCK_NUM, WriteDat); //寫塊
if(status != MI_OK) return 0;
PcdHalt();
break;
case MODIFY_PASSWORD: //修改密碼
memcpy(CardKey,&FrameReceInfo.buf[3],6); //拷貝待寫入的數(shù)據(jù)
for(i=0;i<6;i++)NewKey[i] = FrameReceInfo.buf[9+i];//拷貝新密碼
for(i=0;i<6;i++)NewKey[i+10] = FrameReceInfo.buf[9+i];
NewKey[6] = 0xFF;
NewKey[7] = 0x07;
NewKey[8] = 0x80;
NewKey[9] = 0x69;
status=PcdAuthState(PICC_AUTHENT1A,BLOCK_NUM,CardKey,g_ucTempbuf);
if(status!=MI_OK) return 0;
status=PcdWrite(BLOCK_NUM,&NewKey[0]);
if(status!=MI_OK)
return 0;
PcdHalt();
break;
}
return 0;
}
/***************************************************************************
* 描 述 : 主函數(shù)
* 入 參 : 無
* 返回值 : 無
**************************************************************************/
int main()
{
P3M1 &= 0xFE; P3M0 &= 0xFE; //設(shè)置P3.0為準(zhǔn)雙向口
P3M1 &= 0xFD; P3M0 |= 0x02; //設(shè)置P3.1為推挽輸出
Uart1_Init();
RC522_Init();
EA = 1;
while(1)
{
if(UartReceFrame() == UART_FRAME_AVAIL)//串口接收到數(shù)據(jù)?
{
CardHanding();
LED_B = ~LED_B;
}
}
}
復(fù)制代碼
所有資料51hei提供下載:
無源RFID RC522實(shí)驗(yàn).7z
(7.61 MB, 下載次數(shù): 197)
2019-9-21 16:37 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
woojoon1981
時間:
2020-5-8 16:33
下載來看看如何
作者:
魚之躍
時間:
2021-3-15 09:09
真棒 nice
作者:
fancunwu
時間:
2024-3-7 16:23
你反應(yīng) 讀不了卡 不知道啥原因
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产免费又色又爽又黄在线观看
|
久久久.com
|
亚洲视频免费在线观看
|
一区二区在线不卡
|
亚洲精品久久久久久久久久久久久
|
日韩一区二区三区在线
|
国产精品美女久久久av超清
|
亚洲精品一区二三区不卡
|
91欧美精品成人综合在线观看
|
91porn在线
|
亚洲男人网
|
欧美极品少妇xxxxⅹ免费视频
|
欧美日韩高清在线一区
|
成人在线精品视频
|
精品国产乱码久久久久久闺蜜
|
欧美成人一区二区三区片免费
|
拍真实国产伦偷精品
|
国产精品久久久久久久久久久久
|
精品一二三
|
羞羞网站免费
|
成人性生交大片
|
奇米久久
|
国产电影一区二区在线观看
|
中文字幕一区二区三区在线观看
|
久久久91精品国产一区二区三区
|
国产精品欧美一区二区三区不卡
|
日本精品一区二区在线观看
|
亚洲人人
|
欧美日韩精品一区二区三区蜜桃
|
青青草华人在线视频
|
av手机免费在线观看
|
国产一级电影在线
|
亚洲精品久久久久久一区二区
|
成人亚洲
|
国产精品久久久久久久久久尿
|
欧美视频精品
|
国产精品久久久久久久久久免费看
|
亚洲精品美女在线观看
|
午夜激情影院
|
三级av网址
|
久久久久久久久久久久91
|