資源簡介
基于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? {
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
- 下一篇:樹莓派根據溫度自動控制風扇降溫
評論
共有 條評論