网站大量收购独家精品文档,联系QQ:2885784924

基于单片机的IC卡读写.docVIP

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. . 基于单片机的IC卡读写系统 实验目的: 1.学会并掌握可keil软件的使用; 2.学会并掌握protues软件的使用; 3.实现基于单片机的IC卡读写; 4.通过实验巩固单片机相关知识和检验自身动手能力 实验要求: 掌握单片机相关知识,利用单片机控制和射频模块组合来读写IC卡,并实现软硬件的仿真模拟。lC卡读卡器以MCS-51系列单片机作为核心构成,主要用于家庭和机构门锁的开关,具有安全稳定的特点,在识别,删除,添加,自动开锁时,用于对IC卡进行读写操作。 实验设备和仪器: 1.89c51单片机最小系统 2.射频模块RC522,智能IC卡以及其他附加电路 实验内容: 本次实验设计是由小组五个成员共同完成基于单片机的IC卡读写系统并完成实物搭建和撰写实验报告。 方案一:实验步骤: 1.利用protues画电路图,电路图如图1所示: 图1:方案一电路图 2.模拟刷卡后显示,如图二: 图2:方案一实现图 3.根据电路图编写C语言代码: 代码如下: #include reg52.h #include main.h #include mfrc522.h #include string.h #include LCD1602.h #include DS1302.h #define uchar unsigned char #define uint unsigned int sbit Speak = P2^7;//蜂鸣器 sbit RED = P3^4; //红色指示灯 sbit GREEN = P3^3;//绿色指示灯 sbit Relay = P3^2; //继电器 sbit KEY1 = P1^3;//小时加按键 sbit KEY2 = P1^4; //小时减按键 sbit KEY3 = P1^5; //分钟加按键 sbit KEY4 = P1^6; //分钟减按键 sbit KEY5 = P1^7; //添加删除卡 sbit KEY = P2^6; //开门 unsigned char idata RevBuffer[30]; unsigned char Card_Num; void iccardcode(); //系统初始化 void InitializeSystem()//IC卡初始化 { PcdReset(); //IC卡初始化 PcdAntennaOff(); //IC卡初始化 PcdAntennaOn(); //IC卡初始化 M500PcdConfigISOType( A );//IC卡初始化 } unsigned char idata UID[4],Temp[4];//读取卡号数组 unsigned char Table[3];//显示数组 unsigned char Num; unsigned char Count,Countf,Count1,Count2,Count3,Count4,Count5,C_flag;//卡序号 void Auto_Reader(void) //自动寻卡 { if(PcdRequest(0x52,Temp)==0) //找到卡 { if(PcdAnticoll(UID)==0) { Speak=0;delay_10ms(20);Speak=1;//蜂鸣器提示 Table[0]=UID[0]/100+0x30; //卡号显示 Table[1]=UID[0]/10%10+0x30; //卡号显示 Table[2]=UID[0]%10+0x30; //卡号显示 LCD1602_Disp_ZF(0x80+0x40,Num: ,16); //卡号显示 LCD1602_Disp_ZF(0x84+0x40,Table,3); //卡号显示 Count = UID[0]; //判断卡是不是有效 if((Count==Count1)||(Count==Count2)||(Count==Count3)||(Count==Count4)||(Count==Count5)) { LCD1602_Disp_ZF(0x88+0x40,Welcome,7); //卡有效 GREEN = 0;Relay=0;delay_10ms(200);Relay=1;GREEN = 1; //绿灯亮,打开继电器 C_flag=1; } else { LCD1602_Disp_ZF(0x88+0x40,Error

文档评论(0)

ygxt89 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档