资源简介
基于51的rc522程序 可用1602液晶屏显示卡号
代码片段和文件信息
#include “include.h“
const INT8U DefaultKeyABuf[] = { 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF };
INT8U CardRevBuf[16] = { 0 };
INT8U const CardKeyABlockBuf[16] = {
0x00 0x00 0x00 0x00 0x00 0x00
0xff0x070x800x69
0x00 0x00 0x00 0x00 0x00 0x00
};
INT8U CtrlMode = CTRL_BOARD_MODE;
INT8U OptMode = OPT_INC_MODE;
INT8U bPass = 1; bWarn = 0;
INT8U LedOnType = LED_LONG;
void pass( void )
{
LED_ON;
BEEP_ON;
delay_ms(2000);
BEEP_OFF;
LED_OFF;
}
void warn(void)
{
INT8U i;
LED_OFF;
for( i = 0; i < 3; i++ )
{
LED_ON;
BEEP_ON;
delay_ms(200);
BEEP_OFF;
LED_OFF;
delay_ms(200);
}
}
void cal_keyA( INT8U *DestBuf )
{
const INT8U KeyABuf[] = { 0x20 0x12 0x10 0x01 0x00 0x00 };
memcpy( DestBuf KeyABuf 6 );
}
void send_rebck( psUartData psUartDataRevSend )
{
INT8U * pTmp;
INT8U LenCheck;
INT8U i;
Len = psUartDataRevSend->UartCmdLen + psUartDataRevSend->UartDataLen + 2;
pTmp = ( INT8U * )psUartDataRevSend;
send_byte( 0xFC );
Check = 0xFC;
for( i = 0; i < Len; i++ )
{
send_byte( *pTmp );
Check ^= *pTmp++;
}
send_byte( Check );
}
void uart_over( void )
{
UartCount = 0;
UartStart = FALSE;
UartComp = FALSE;
}
INT8U check_com( psUartData psUartDataRevSend )
{
psUartDataRevSend->UartDataBuf[0] = 0xAA;
return TRUE;
}
INT8U req_card_sn( psUartData psUartDataRevSend )
{
if( PcdRequest( PICC_REQIDL &CardRevBuf[0] ) != MI_OK )//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节
{
if( PcdRequest( PICC_REQIDL &CardRevBuf[0] ) != MI_OK )//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节
{
psUartDataRevSend->UartErrCode = ERROR_NOCARD;
memset( psUartDataRevSend->UartDataBuf 0x00 psUartDataRevSend->UartDataLen );
bWarn = 1;
return FALSE;
}
}
if( PcdAnticoll( &CardRevBuf[2] ) != MI_OK ) //防冲撞,返回卡的序列号 4字节
{
psUartDataRevSend->UartErrCode = ERROR_ATCLL;
memset( psUartDataRevSend->UartDataBuf 0x00 psUartDataRevSend->UartDataLen );
bWarn = 1;
return FALSE;
}
memcpy( psUartDataRevSend->UartDataBuf &CardRevBuf[2] 4 );
bPass = 1;
return TRUE;
}
INT8U updata_key( psUartData psUartDataRevSend )
{
INT8U CardKeyABuf[6];
INT8U KeyBlockAddr;
psUartDataRevSend->UartDataLen = 7;
KeyBlockAddr = psUartDataRevSend->UartDataBuf[0];
if( KeyBlockAddr % 4 != 3 )
{
psUartDataRevSend->UartErrCode = ERROR_BLOCK_ADDR;
memset( &psUartDataRevSend->UartDataBuf[1] 0x00 6 );
bWarn = 1;
return FALSE;
}
if( PcdRequest( PICC_REQIDL &CardRevBuf[0] ) != MI_OK )//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节
{
if( PcdRequest( PICC_REQIDL &CardRevBuf[0] ) != MI_OK )//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节
{
psUartDataRevSend->UartErrCode = ERROR_NOCARD;
memset( &psUartDataRevSend->UartDataBuf[1] 0x00 6 );
bWarn = 1;
return FALSE;
}
}
if( PcdAnticoll( &CardRevBuf[2] ) != MI_OK ) //防冲撞,返回卡的序列号 4字节
{
psUartDataRevSend->UartErrCode = ERROR_ATCLL;
mems
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2013-10-20 19:23 STC11_RC522_完整液晶串口__20121112\
目录 0 2013-10-20 19:23 STC11_RC522_完整液晶串口__20121112\code\
文件 16877 2013-08-01 15:32 STC11_RC522_完整液晶串口__20121112\code\ctrl.c
文件 1118 2013-09-22 18:21 STC11_RC522_完整液晶串口__20121112\code\ctrl.h
文件 2526 2012-06-08 14:23 STC11_RC522_完整液晶串口__20121112\code\flash.c
文件 368 2012-06-08 14:22 STC11_RC522_完整液晶串口__20121112\code\flash.h
文件 281 2013-09-26 15:19 STC11_RC522_完整液晶串口__20121112\code\include.h
文件 588 2012-11-04 22:16 STC11_RC522_完整液晶串口__20121112\code\key.c
文件 485 2013-09-22 18:23 STC11_RC522_完整液晶串口__20121112\code\key.h
文件 2601 2013-07-30 20:02 STC11_RC522_完整液晶串口__20121112\code\lcd_1602.c
文件 293 2013-09-22 18:22 STC11_RC522_完整液晶串口__20121112\code\lcd_1602.h
文件 965 2013-09-22 21:48 STC11_RC522_完整液晶串口__20121112\code\main.c
文件 914 2013-09-21 09:56 STC11_RC522_完整液晶串口__20121112\code\main.h
文件 18649 2012-11-04 23:54 STC11_RC522_完整液晶串口__20121112\code\rc522.c
文件 6007 2013-09-22 18:57 STC11_RC522_完整液晶串口__20121112\code\rc522.h
文件 64 2012-09-17 23:02 STC11_RC522_完整液晶串口__20121112\code\stc.h
文件 28889 2010-07-27 17:31 STC11_RC522_完整液晶串口__20121112\code\stc11.h
文件 698 2012-11-04 21:56 STC11_RC522_完整液晶串口__20121112\code\timer.c
文件 280 2012-07-16 06:13 STC11_RC522_完整液晶串口__20121112\code\timer.h
文件 1577 2012-09-20 22:35 STC11_RC522_完整液晶串口__20121112\code\uart.c
文件 410 2013-07-30 20:53 STC11_RC522_完整液晶串口__20121112\code\uart.h
目录 0 2013-10-23 22:02 STC11_RC522_完整液晶串口__20121112\prj\
文件 5414 2012-09-26 09:42 STC11_RC522_完整液晶串口__20121112\prj\1602.lst
文件 20137 2012-09-26 09:42 STC11_RC522_完整液晶串口__20121112\prj\1602.obj
文件 85 2012-09-26 09:42 STC11_RC522_完整液晶串口__20121112\prj\1602.__i
文件 37486 2013-10-21 22:01 STC11_RC522_完整液晶串口__20121112\prj\ctrl.lst
文件 56319 2013-10-21 22:01 STC11_RC522_完整液晶串口__20121112\prj\ctrl.obj
文件 7888 2012-09-17 23:02 STC11_RC522_完整液晶串口__20121112\prj\flash.lst
文件 82 2012-09-17 23:02 STC11_RC522_完整液晶串口__20121112\prj\flash.__i
文件 2211 2013-10-21 22:01 STC11_RC522_完整液晶串口__20121112\prj\key.lst
文件 20662 2013-10-21 22:01 STC11_RC522_完整液晶串口__20121112\prj\key.obj
............此处省略28个文件信息
- 上一篇:Verilog HDL8位ALU
- 下一篇:树莓派根据温度自动控制风扇降温
评论
共有 条评论