登录
|
立即注册
|
使用QQ帐号登录
论坛
>
51单片机
发帖
|
单片机+RC522图书馆座位管理系统设计 附程序+电路图
看2895
|
回0
|
收藏
楼主
ID:700519
只看他
2020-3-1 11:05
IC模块
单片机源程序如下:
代码:
#include "include.h"
INT8U CardRevBuf[16] = { 0 };
void init_port( void )
{
P0M1 = 0x00;
P0M0 = 0xff;
P3M1 &= ~0x10;
P3M0 |= 0x10;
P34 = 0;
P35 = 0;
}
void init_all(void)
{
EA = 0;
init_port();
init_rc522();
init_lcd();
EA = 1;
}
void display_no_id( void )
{
DisplayListChar( 0, 0, " ID: " );
}
void display_id( INT8U * SrcBuf )
{
char DisplayBuf[10];
char *pDisplayChar;
INT8U Tmp, i;
pDisplayChar = DisplayBuf;
for( i = 0; i < 4; i++ )
{
Tmp = ( ( *SrcBuf ) >> 4 ) & 0x0F;
if( ( Tmp >=0 ) && ( Tmp <= 9 ) )
{
*pDisplayChar ++ = '0' + Tmp;
}
else
{
*pDisplayChar ++ = 'A' + Tmp - 10;
}
Tmp = ( *SrcBuf ) & 0x0F;
if( ( Tmp >=0 ) && ( Tmp <= 9 ) )
{
*pDisplayChar ++ = '0' + Tmp;
}
else
{
*pDisplayChar ++ = 'A' + Tmp - 10;
}
SrcBuf ++;
}
*pDisplayChar ++ = '\0';
DisplayListChar( 0, 4, DisplayBuf );
}
void ctrl( void )
{
if( PcdRequest( PICC_REQIDL, &CardRevBuf[0] ) != MI_OK )//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节
{
if( PcdRequest( PICC_REQIDL, &CardRevBuf[0] ) != MI_OK )//寻天线区内未进入休眠状态的卡,返回卡片类型 2字节
{
display_no_id();
return;
}
}
if( PcdAnticoll( &CardRevBuf[2] ) != MI_OK ) //防冲撞,返回卡的序列号 4字节
{
display_no_id();
return;
}
if( PcdSelect( &CardRevBuf[2] ) != MI_OK )//选卡
{
display_no_id();
return;
}
display_id( &CardRevBuf[2] );
}
void main(void)
{
init_all();
while(1)
{
ctrl();
}
}
所有资料51hei提供下载:
IC卡模块资料.7z
(11.46 MB)
(下载次数: 47, 2020-3-4 18:43 上传)
下载积分: 黑币 -5
51黑电子论坛
Powered by
Discuz!
X3.1
首页
|
标准版
|
触屏版
|
电脑版