标题:
RC522设计刷卡的51单片机代码
[打印本页]
作者:
VIVIYA
时间:
2018-6-13 17:25
标题:
RC522设计刷卡的51单片机代码
毕业设计刷卡代码
单片机源程序如下:
#include "LCD1602.h"
#include "mfrc522.h"
#include "CardAction.h"
#include "key.h"
#define uchar unsigned char
#define uint unsigned int
sbit Buzzer=P3^5;//蜂鸣器接口定义,低电平响
sbit Jdq=P3^7;//继电器接口定义,低电平吸合
sbit ChangeKey=P3^2;//切换按键
sbit Key=P3^2;//切换按键
uchar ReturnValue=0;//读卡返回值
uchar ModeFlag=0;//模式标志位 0-验证刷卡开门模式 1-注册卡模式 2-注销卡模式
uchar i=0,t=0,In_Code=0;
uchar IN_TAXT[4]="0000";
uchar NOW_CODE[]="123456E"; //mima
uchar num[]="123A456B789CD0EF";
u8 receiveData;
/*******************************************************************************
* 函数名 :UsartInit()
* 函数功能 :设置串口
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void UsartInit()
{
SCON=0X50; //设置为工作方式1
TMOD=0X20; //设置计数器工作方式2
PCON=0X80; //波特率加倍
TH1=0XF3; //计数器初始值设置,注意波特率是4800的
TL1=0XF3;
ES=1; //打开接收中断
EA=1; //打开总中断
TR1=1; //打开计数器
}
void main()
{
Card_Init();//读卡器初始化
LCD_init();//液晶1602初始化
Buzzer=1;//蜂鸣器关闭
Jdq=0;//继电器关闭
KeyState=0;
UsartInit();
while(1)
{
while(ModeFlag==0)//卡验证模式
{
write_string(1,0,"Verif Mode:");//第二行显示"Welcome!"
ReturnValue=0;//验证卡返回值置0
ReturnValue=Vreif_Sy();// 验证卡
if(ReturnValue==4)//ReturnValue==4卡验证成功
{
write_string(2,0,"Welcome!");//第二行显示"Welcome!"
Buzzer=0; //开蜂鸣器
Jdq=1;//开继电器
delay1ms(500);//延时0.5s
Buzzer=1;//关蜂鸣器
delay1ms(1000);//延时1s
write_string(2,0," ");//清第二行显示
// EA=1;
// ES=1;
Jdq=0;//关闭继电器
for(t=0;t<100;t++)
{ SBUF='A';delay1ms(50);}
}
else {SBUF='B'; }
if(ChangeKey==0)//切换按键被按下
{
while(ChangeKey==0);//等待被弹起
LCD_Clear();//清屏幕
ModeFlag=1;//进入注册卡模式
}
if(Key==0)//切换按键被按下
{
while(Key==0);//等待被弹起
write_string(1,0,"CODE Mode:");//第一行显示"Code Mode:"
write_string(2,0," ");
In_Code=1;//进入密码模式
}
}//end for while(ModeFlag==0)
while(ModeFlag==1)//卡注册模式
{
write_string(1,0,"Register Mode:");//第一行显示"Register Mode:"
ReturnValue=0;//ReturnValue重置0
ReturnValue=CardReg();//卡注册
if(ReturnValue==6)//ReturnValue==6卡注册成功
{
write_string(2,0,"Success !");//第二行显示"Success !"
Buzzer=0;
delay1ms(500);
Buzzer=1;
write_string(2,0," ");
}
if(ChangeKey==0)//切换按键被按下
{
while(ChangeKey==0);//等待被弹起
LCD_Clear();
ModeFlag=2;//进入注销卡模式
}
if(Key==0)//切换按键被按下
{
while(Key==0);//等待被弹起
write_string(1,0,"CODE Mode:");//第一行显示"Code Mode:"
write_string(2,0," ");
In_Code=1;//进入密码模式
}
}//end for while(ModeFlag==1)
while(ModeFlag==2)//卡注销模式
{
write_string(1,0,"Reset Mode:");//第一行显示"Reset Mode:"
ReturnValue=0;//ReturnValue重置0
ReturnValue=CardReset();//注销卡
if(ReturnValue==6)//ReturnValue==6卡注销成功
{
write_string(2,0,"Success !");//第二行显示"Success !"
Buzzer=0;
delay1ms(500);
Buzzer=1;
write_string(2,0," ");
}
if(ChangeKey==0)//切换按键被按下
{
while(ChangeKey==0);//等待被弹起
LCD_Clear();
ModeFlag=3;//进入注销卡模式
}
}//end for while(ModeFlag==2)
while(ModeFlag==3)//密码输入模式
{
write_string(1,0,"CODE Mode:");//第一行显示"Code Mode:"
KeyDown();
if(KeyState)
{
KeyState=0;
IN_TAXT[i]=num[KeyValue];
// write_char(2,0,IN_TAXT[i]);//第一行显示"Code Mode:"
// write_char(2,2,NOW_CODE[i]);//第一行显示"Code Mode:"
//
// write_string(2,0,NOW_CODE);//第一行显示"Code Mode:"
//
// write_string(2,6,IN_TAXT);//第一行显示"Code Mode:"
// write_char(2,3,IN_TAXT[i]);//第一行显示"Code Mode:"
i++;
if(i==1)
{
write_string(2,0,"* ");//第一行显示"Code Mode:"
}
if(i==2)
{
write_string(2,0,"** ");//第一行显示"Code Mode:"
}
if(i==3)
{
write_string(2,0,"*** ");//第一行显示"Code Mode:"
}
if(i==4)
{
write_string(2,0,"**** ");//第一行显示"Code Mode:"
}
if(i==5)
{
write_string(2,0,"***** ");//第一行显示"Code Mode:"
}
if(i==6)
{
write_string(2,0,"****** ");//第一行显示"Code Mode:"
}
}
if(i>=7)
{
i=0;
if(NOW_CODE[0]==IN_TAXT[0]&&NOW_CODE[1]==IN_TAXT[1]&&NOW_CODE[2]==IN_TAXT[2]&&NOW_CODE[3]==IN_TAXT[3]&&NOW_CODE[4]==IN_TAXT[4]&&NOW_CODE[5]==IN_TAXT[5]&&NOW_CODE[6]==IN_TAXT[6])//密码正确
{
write_string(2,0,"Success ! ");//第二行显示"Success !"
Buzzer=0;
Jdq=1;//开继电器
delay1ms(1000);
Buzzer=1;
write_string(2,0," ");
In_Code=0;
ModeFlag=0;
Jdq=0;//gaun继电器
for(t=0;t<100;t++)
{ SBUF='A';delay1ms(50);}
}
else { write_string(2,8,"error"); SBUF='B';};
}
if(ChangeKey==0)//切换按键被按下
{
while(ChangeKey==0);//等待被弹起
LCD_Clear();
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
刷卡.zip
(192.82 KB, 下载次数: 85)
2018-6-13 17:25 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
13253386146
时间:
2018-7-27 12:53
楼主,RC522和单片机怎么连线呀
作者:
houjinyue01
时间:
2022-1-3 17:20
RC522源码这里定义了接口
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1