基于单片机的IC卡读写.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于单片机的IC卡读写.doc》由会员分享,可在线阅读,更多相关《基于单片机的IC卡读写.doc(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、- -基于单片机的IC卡读写系统实验目的:1.学会并掌握可keil软件的使用;2.学会并掌握protues软件的使用;3.实现基于单片机的IC卡读写;4.通过实验稳固单片机相关知识和检验自身动手能力实验要求:掌握单片机相关知识,利用单片机控制和射频模块组合来读写IC卡,并实现软硬件的仿真模拟。lC卡读卡器以MCS-51系列单片机作为核心构成,主要用于家庭和机构门锁的开关,具有平安稳定的特点,在识别,删除,添加,自动开锁时,用于对IC卡进展读写操作。实验设备和仪器:1.89c51单片机最小系统2.射频模块RC522,智能IC卡以及其他附加电路实验容:本次实验设计是由小组五个成员共同完成基于单片机
2、的IC卡读写系统并完成实物搭建和撰写实验报告。方案一:实验步骤:1.利用protues画电路图,电路图如图1所示:图1:方案一电路图2.模拟刷卡后显示,如图二:图2:方案一实现图3.根据电路图编写C语言代码:代码如下:#include reg52.h#include main.h#include mfrc522.h#include #include LCD1602.h#include DS1302.h#define uchar unsigned char#define uint unsigned intsbit Speak = P27;/蜂鸣器sbit RED = P34; /红色指示灯sbi
3、t GREEN = P33;/绿色指示灯sbit Relay = P32; /继电器sbit KEY1 = P13;/小时加按键sbit KEY2 = P14; /小时减按键sbit KEY3 = P15; /分钟加按键sbit KEY4 = P16; /分钟减按键sbit KEY5 = P17; /添加删除卡sbit KEY = P26; /开门unsigned char idata RevBuffer30;unsigned char Card_Num; void iccardcode();/系统初始化void InitializeSystem()/IC卡初始化 PcdReset(); /I
4、C卡初始化 PcdAntennaOff(); /IC卡初始化 PcdAntennaOn(); /IC卡初始化 M500PcdConfigISOType( A );/IC卡初始化unsigned char idata UID4,Temp4;/读取卡号数组unsigned char Table3;/显示数组unsigned char Num;unsigned char Count,Countf,Count1,Count2,Count3,Count4,Count5,C_flag;/卡序号void Auto_Reader(void) /自动寻卡 if(PcdRequest(0x52,Temp)=0)
5、/找到卡 if(PcdAnticoll(UID)=0) Speak=0;delay_10ms(20);Speak=1;/蜂鸣器提示Table0=UID0/100+0x30; /卡号显示Table1=UID0/10%10+0x30; /卡号显示Table2=UID0%10+0x30; /卡号显示LCD1602_Disp_ZF(0x80+0x40,Num: ,16); /卡号显示LCD1602_Disp_ZF(0x84+0x40,Table,3); /卡号显示Count = UID0; /判断卡是不是有效if(Count=Count1)|(Count=Count2)|(Count=Count3)|
6、(Count=Count4)|(Count=Count5)LCD1602_Disp_ZF(0x88+0x40,Wele,7); /卡有效GREEN = 0;Relay=0;delay_10ms(200);Relay=1;GREEN = 1; /绿灯亮,翻开继电器C_flag=1;elseLCD1602_Disp_ZF(0x88+0x40,Error ,7);/卡无效RED = 0;delay_10ms(500);RED = 1; /红灯亮C_flag=2;delay_10ms(200); LCD1602_Disp_ZF(0x80+0x40,Please Swipecard,16);/显示初始界
7、面uchar DS1302_Table7=0;/读取时间值void Display_LCD2(uchar Dis_Hour,uchar Dis_Min,uchar Dis_Sec)/显示时间值uchar Dis_Table8=11:22:33;Dis_Table0 = Dis_Hour/10+0x30;Dis_Table1 = Dis_Hour%10+0x30;Dis_Table3 = Dis_Min/10+0x30;Dis_Table4 = Dis_Min%10+0x30;Dis_Table6 = Dis_Sec/10+0x30;Dis_Table7 = Dis_Sec%10+0x30;LC
8、D1602_Disp_ZF(0x85,Dis_Table,8);/显示时间值void Run_DS1302(void)uchar sec, min, hour, day, month, week, year;v_W1302(0x8f, 0);sec = bcdtodec(uc_R1302(0x81); /读出DS1302中的秒v_W1302(0x8f, 0);min = bcdtodec(uc_R1302(0x83); /读出DS1302中的分v_W1302(0x8f, 0);hour = bcdtodec(uc_R1302(0x85); /读出DS1302中的小时v_W1302(0x8f,
9、0);day = bcdtodec(uc_R1302(0x87); /读出DS1302中的日v_W1302(0x8f, 0);month = bcdtodec(uc_R1302(0x89); /读出DS1302中的月v_W1302(0x8f, 0);week = bcdtodec(uc_R1302(0x8b); /读出DS1302中的星期v_W1302(0x8f, 0);year = bcdtodec(uc_R1302(0x8d); /读出DS1302中的年 DS1302_Table0=year; DS1302_Table1=month; DS1302_Table2=day; DS1302_T
10、able3=week; DS1302_Table4=hour; DS1302_Table5=min; DS1302_Table6=sec;Display_LCD2(DS1302_Table4,DS1302_Table5,DS1302_Table6);/显示时间值void main(void) InitializeSystem();LCD1602_init();/Money_1=x24c02_read(0X01);/x24c02_write(0X03,Money_3);LCD1602_Disp_ZF(0x80,Time:,5); /0123456789abcdefLCD1602_Disp_ZF(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 IC 读写
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内