智能ic卡读写的课程设计
接触式IC卡读写设计
【实验要求】 1、 对 IC 卡进行读/写操作。先向 IC 卡中写入初始值,再从 IC 卡中将写入的数据读出,并 保存到 RAM 中。 查看 RAM 中的数据, 看与原始数据是否一致, 验证 IC 卡进行读/写操作功能。 2、 将学号存入 IC 卡中,读出 IC 卡信息并送数码管显示。如果读出错误,指示灯点亮。 【实验设计思路】 将学号后六位 010835 写入卡中,然后读取期中的数据,再通过查共阴极七段码表,使其按 顺序显示在数码管上。 【实验硬件连线及其说明】 接触式 IC 卡读写
/*宏定义*/
#define
_Nop()
_nop_()
/*定义空指令*/
/* 常,变量定义区 */ /*端口位定义*/ sbit SDA=P1^6; sbit SCL=P1^7; /*状态标志*/ bit ack;
/*模拟 I2C 数据传送位*/ /*模拟 I2C 时钟控制位*/
/*应答标志位*/
输出确认
IC 卡单元原理图 【实验程序】 #include "Reg51.h"
IC 卡接线图
#include "IIC_C51.c" unsigned char data WData[]={0,1,0,8,3,5}; unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char code address[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char m,i; void Delay(unsigned int count) { unsigned int i; for(i=0; i<count; i++); } void main() { bit temp; unsigned char *ptr; ptr = (unsigned char *)0x50; // 指向内部 RAM 30H 处 Init_I2c(); // 初始化 IIC 总线 ISendStr(0xA0,0,WData,6); // 将 WData 中的数据写入卡内 Delay(300); temp = IRcvStr(0xA0,0,ptr,6); // 从卡内读出数据并存入指定 RAM 中 m=0; while(1){ for(m=0;m<6;m++) { i=WData[m]; P0=address[m]; P2=table[i]; Delay(100); } } } /*********************************************************************** * 文件名:IIC_C51.C * 此程序是 I2C 操作平台(主方式的软件平台)的底层的 C 子程序,如发送数据 * 及接收数据,应答位发送,并提供了几个直接面对器件的操作函数 * * 注意:函数是采用软件延时的方法产生 SCL 脉冲,固对高晶振频率要作 * 一定的修改....(本例是 1us 机器周期,即晶振频率要小于 12MHZ)(11.0592MHz) ***********************************************************************/ #include <Reg51.h> #include <intrins.h> #define #define uchar unsigned char uint unsigned int /*头文件的包含*/
IC卡读写电路的设计及编程
IC卡读写电路的设计及编程摘要接触式IC卡具有结构简单、成本低廉等优点,因此在我们的生活中还有着非常广泛的应用。
本系统就以德国SIMENS(西门子)公司设计的逻辑加密存储卡SLE4442作为主要研究对象,然后围绕其应用中的周边电路及设备进行讨论。
从硬件和软件两个方面来对系统分别进行设计,最后再对系统的软硬件进行优化,以实现软硬件的完美结合。
完成其功能要求。
首先,本文对IC卡的由来、发展历史、现状以及未来的发展方向进行了简要的介绍。
其次,本文叙述了单片机系统的基本组成以及其工作原理,并介绍了由单片机构成的系统的优点。
再次,讨论了接触式IC卡读写电路实现的基本方法,分析了它的工作原理,并且给出了其实现的具体电路以及IC卡读写电路的软件设计方法。
最后,在附录中,本文还将给出一些必要的系统设计资料,供参考之用。
关键词:IC卡,单片机,射频卡,读写器The IC card reads and writes design and programming of the circuitAuthor : Ma YinshengTutor : Zhang YuxiangAbstractThe contact-type IC card has advantage of simple structure, and the cost is cheap, so there is very extensive application in our life. This system encrypts the storage card SLE4442 as the main research object with the logic that Germany SIMENS Company designs, then organize discussion around peripheral circuit and apparatus in its application. Design the system respectively from hardware and software two respects, optimize the software and hardware of the system afterwards, in order to realize the perfect combination of the software and hardware. Finish its function's requiring.First of all, this text has introduced the brief one to the origin, developing history, current situation and future developing direction of the IC card.Secondly, this text has narrated basic composition of the one-chip computer system and its operation principle, have introduced the advantage of the system become by the single organization.Moreover, it is discussed that the contact-type IC card reads and writes the basic tool that the circuit realizes, has analyzed its operation principle, and concrete circuit and IC card providing its realization read and write the software design method of the circuit.Finally, in the appendix, this text will also provide some essential systems and design the materials, for reference.Key words: IC card, One-chip computer, The radio frequency IC card, Reading and writing device目录1 绪论 (1)1.1 课题背景介绍 (1)1.2 课题研究状况 (1)1.3 课题研究方法 (2)2 设计方案论证 (3)2.1 设计方案论述 (3)2.1.1 由微机实现的IC卡读写电路 (3)2.1.2 由单片机实现的IC卡读写电路 (4)2.2 元器件介绍 (5)2.2.1 AT89S51介绍 (5)2.2.2 SLE4442介绍 (6)2.3 设计方案确定 (9)3 系统硬件设计 (10)3.1 IC卡读写电路介绍 (10)3.1.1 IC卡读写电路的分类 (10)3.1.2 IC卡读写电路的组成 (12)3.2 IC卡读写电路设计 (14)3.2.1 IC卡接口及供电电路设计 (14)3.2.2 单片机处理与控制单元设计 (16)3.2.3 键盘显示电路设计 (17)4 系统软件设计 (19)4.1 IC卡接口电路程序设计 (19)4.1.1 IC卡的插入识别程序设计 (19)4.1.2 IC卡上下电控制程序设计 (20)4.2 IC卡的读写控制程序设计 (22)4.2.1 IC卡的数据读出程序设计 (22)4.2.2 IC卡的数据写入程序设计 (25)4.3 外围辅助电路程序设计 (26)4.3.1 键盘电路程序设计 (26)4.3.2 显示电路程序设计 (27)结论 (29)致谢 (30)参考文献 (31)附录IC卡读写电路硬件电路图 (32)1 绪论1.1 课题背景介绍在当今社会,各种各样的IC卡已经成为了人们生活中不可缺少的一部分,从早期的IC电话卡到现在已经应用非常广泛的手机IC(SIM)卡,而这些IC卡的广泛应用,离不开各种各样的IC卡读写设备的支持,IC卡读写电路的作用就是完成IC卡与应用设备之间的信息的交换。
IC卡身份识别课程设计
目录绪论 (2)1、IC卡技术概论 (3)1.1、概述 (3)1.2、身份识别技术概述 (4)2、指纹识别技术 ........... 错误!未定义书签。
2.1、指纹识别技术概述 .. 错误!未定义书签。
2.2、指纹识别技术应用 (5)3、设计 (5)3.1、系统结构及工作过程 (5)3.2、芯片电路原理 (7)3.3、数据结构与通信方式错误!未定义书签。
3.4、芯片版图设计 (9)4、应用 (9)4.1、智能大厦管理系统 .. 错误!未定义书签。
4.2、门禁系统 .......... 错误!未定义书签。
5、心得体会................ 错误!未定义书签。
6、元器件清单.............. 错误!未定义书签。
绪论IC卡(Integrated Circuit Card,集成电路卡),有些国家和地区也称智能卡、智慧卡、微电路卡或微芯片卡等。
它是将一个微电子芯片嵌入符合ISO 7816标准的卡基中,做成卡片形式。
IC卡读写器是IC 卡与应用系统间的桥梁,在ISO国际标准中称之为接口设备IFD。
IFD内CPU通过一个接口电路与IC卡相连并进行通信。
IC卡接口电路是IC卡读写器中至关重要的部分,根据实际应用系统的不同,可选择并行通信、半双工串行通信和I2C通信等不同的IC卡读写芯片。
非接触式IC卡又称射频卡。
IC卡是继磁卡之后出现的又一种新型信息工具。
IC卡是指集成电路卡,一般用的公交车卡就是IC卡的一种,一般常见的IC卡采用射频技术与IC卡的读卡器进行通讯。
IC卡与磁卡是有区别的,IC卡是通过卡里的集成电路存储信息,而磁卡是通过卡内的磁力记录信息。
IC 卡的成本一般比磁卡高,但保密性更好。
非接触式IC 卡又称射频卡,成功地解决了无源(卡中无电源)和免接触这一难题,是电子器件领域的一大突破。
主要用于公交、轮渡、地铁的自动收费系统,也应用在门禁管理、身份证明和电子钱包。
本文介绍了非接触式指纹IC卡身份认证系统的设计与开发,详细分析了系统的原理,相关算法的设计和软硬件的实现。
IC卡读写器设计单片机课程设计报告
南京工程学院课程设计课程名称单片机原理及应用B 课题名称IC卡读写器设计院(系、部、中心)通信工程学院专业通信工程班级姓名学号起止日期设计地点微机原理与单片机实验室指导老师岳俊生水恒华单片机原理及应用B摘要IC卡在现代生活中应用非常广泛,IC卡读写器的设计方法有多种,其中,利用单片机外接芯片实现的IC卡读写器具有编程灵活,便于IC卡读写器功能的扩充,运算存储方便等优点。
本文主要介绍用单片机外接24C16EEPROM的方法,利用键盘对24C16进行模拟充值的方法。
本设计由单片机P89V51RD2芯片、24C16EEPROM和LCD液晶显示为核心,辅以必要的电路,构成了一个IC卡读写器,使用起来很方便此IC卡读写器严格按照要求设计,最终达到预期的效果,并且添加了进行挂失,修改密码,低值报警,透支报警等相关功能。
关键词IC卡读写器/单片机 /C51编程The Principle and Applicationof Single Chip MicrocomputerABSTRACTIC card is widely used in modern life。
There are a variety of IC card reader design methods, which use an external chip microcontroller IC card reader with programming flexibility, ease of expansion IC card reader function, operation and easy storage。
This paper describes a method 24C16EEPROM external MCU, using the keyboard to simulate 24C16 recharge methods.Designed by the MCU chip P89V51RD2, 24C16EEPROM and LCD display as the core, supplemented by the necessary circuitry, constitute an IC card reader, easy to use。
基于单片机的IC卡读写
基于单片机的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 intsbit 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==Cou nt4)||(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 ",7);//卡无效RED = 0;delay_10ms(500);RED = 1; //红灯亮C_flag=2;}delay_10ms(200);LCD1602_Disp_ZF(0x80+0x40,"Please Swipecard",16);//显示初始界面}}}uchar DS1302_Table[7]={0}; //读取时间值void Display_LCD2(uchar Dis_Hour,uchar Dis_Min,uchar Dis_Sec)//显示时间值{uchar Dis_Table[8]="11:22:33";Dis_Table[0] = Dis_Hour/10+0x30;Dis_Table[1] = Dis_Hour%10+0x30;Dis_Table[3] = Dis_Min/10+0x30;Dis_Table[4] = Dis_Min%10+0x30;Dis_Table[6] = Dis_Sec/10+0x30;Dis_Table[7] = Dis_Sec%10+0x30;LCD1602_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, 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_Table[0]=year;DS1302_Table[1]=month;DS1302_Table[2]=day;DS1302_Table[3]=week;DS1302_Table[4]=hour;DS1302_Table[5]=min;DS1302_Table[6]=sec;Display_LCD2(DS1302_Table[4],DS1302_Table[5],DS1302_Table[6]);//显示时间值}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(0x80+0x40,"Please Swipecard",16);//LCD1602_Disp_ZF(0x80+0x40,"Num:",4);//ISP_ERASE(0x2c00); //注意:字节编程时必须要先要擦除整个扇区//for(i=0;i<255;i++)// ISP_PROGRAM(0x2c00+i, 0x00);while (1){//////////////////////////if(!KEY){Speak=0;delay_10ms(20);Speak=1;//蜂鸣器提示LCD1602_Disp_ZF(0x88+0x40,"Welcome",7); //卡有效GREEN = 0;Relay=0;delay_10ms(200);Relay=1;GREEN = 1; //绿灯亮,打开继电器delay_10ms(200);LCD1602_Disp_ZF(0x80+0x40,"Please Swipecard",16);//显示初始界面}Run_DS1302(); //时间显示//delay_10ms(200);if(!KEY1) //调节小时加{delay_10ms(50);if(!KEY1) //调节小时加{DS1302_Table[4]++; //调节小时加Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0); //调节小时加}}if(!KEY2) //调节小时减{delay_10ms(50);if(!KEY2) //调节小时减{ //调节小时减DS1302_Table[4]--; //调节小时减Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0);//调节小时减}}//////////////////////////////////if(!KEY3) //调节分钟加{delay_10ms(50); //调节分钟加if(!KEY3){DS1302_Table[5]++; //调节分钟加Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0); //调节分钟加}}if(!KEY4) //调节分钟减{delay_10ms(50); //调节分钟减if(!KEY4) //调节分钟减{DS1302_Table[5]--; //调节分钟减Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0); //调节分钟减}}if(!KEY5) //添加删除卡{delay_10ms(50);if(!KEY5) //添加删除卡{if(C_flag==2) //添加卡{//0123456789abcdefLCD1602_Disp_ZF(0x80+0x40," Register Card! ",16);Countf++;if(Countf==6)Countf=1;if(Countf==1) Count1 = Count;//记忆卡号if(Countf==2) Count2 = Count; //记忆卡号if(Countf==3) Count3 = Count; //记忆卡号if(Countf==4) Count4 = Count; //记忆卡号if(Countf==5) Count5 = Count;//记忆卡号}if(C_flag==1)//删除卡{//0123456789abcdefLCD1602_Disp_ZF(0x80+0x40," Clean Card! ",16);if(Count==Count1)Count1=0;//删除卡号if(Count==Count2)Count2=0; //删除卡号if(Count==Count3)Count3=0; //删除卡号if(Count==Count4)Count4=0; //删除卡号if(Count==Count5)Count5=0; //删除卡号}Speak=0;delay_10ms(200);Speak=1;LCD1602_Disp_ZF(0x80+0x40,"Please Swipecard",16);C_flag =0;while(!KEY5);}}//////////////////////}}void iccardcode(){unsigned char cmd;unsigned char status;cmd = RevBuffer[0];switch(cmd){case 1: // Halt the card //终止卡的操作status= PcdHalt();;RevBuffer[0]=1;RevBuffer[1]=status;break;case 2: // Request,Anticoll,Select,return CardType(2 bytes)+CardSerialNo(4 bytes)// 寻卡,防冲突,选择卡返回卡类型(2 bytes)+ 卡系列号(4 bytes)status= PcdRequest(RevBuffer[1],&RevBuffer[2]);if(status!=0){status= PcdRequest(RevBuffer[1],&RevBuffer[2]);if(status!=0){RevBuffer[0]=1;RevBuffer[1]=status;break;}}RevBuffer[0]=3;RevBuffer[1]=status;break;case 3: // 防冲突读卡的系列号MLastSelectedSnrstatus = PcdAnticoll(&RevBuffer[2]);if(status!=0){RevBuffer[0]=1;RevBuffer[1]=status;break;}//memcpy(MLastSelectedSnr,&RevBuffer[2],4);RevBuffer[0]=5;RevBuffer[1]=status;break;case 4: // 选择卡 Select Card//status=PcdSelect(MLastSelectedSnr);if(status!=MI_OK){RevBuffer[0]=1;RevBuffer[1]=status;break;}RevBuffer[0]=3;RevBuffer[1]=status;break;case 5: // Key loading into the MF RC500's EEPROM//status = PcdAuthState(RevBuffer[1], RevBuffer[3], DefaultKey, MLastSelectedSnr);// 校验卡密码RevBuffer[0]=1;RevBuffer[1]=status;break;case 6:RevBuffer[0]=1;RevBuffer[1]=status;break;case 7:RevBuffer[0]=1;RevBuffer[1]=status;break;case 8: // Read the mifare card// 读卡status=PcdRead(RevBuffer[1],&RevBuffer[2]);if(status==0){RevBuffer[0]=17;}else{RevBuffer[0]=1;}RevBuffer[1]=status;break;case 9: // Write the mifare card// 写卡下载密码status=PcdWrite(RevBuffer[1],&RevBuffer[2]);RevBuffer[0]=1;RevBuffer[1]=status;break;case 10:PcdValue(RevBuffer[1],RevBuffer[2],&RevBuffer[3]);RevBuffer[0]=1;RevBuffer[1]=status;break;case 12: // 参数设置PcdBakValue(RevBuffer[1], RevBuffer[2]);RevBuffer[0]=1; //contactRevBuffer[1]=0;break;}}4.实物验证结果如图4所示:图4:实物验证结果实物验证可以实现IC卡的读写,由于每个开发板不同,相比仿真程序,对实物验证程序进行了略微的修改,最小系统的LCD1602口不能使用使用外接杜邦线,为了稳定最终选择重新字节焊接板子,最终能达到要求。
基于51单片机的智能IC卡读写器设计
基于51单片机的智能IC卡读写器设计本IC卡读写器是以51单片机为核心展开设计。
该单片机是一种低功耗,高性能的8为CMOS型单片机,片内带有可读存储器,片上的PEROM允许在线对程序存储器重新编程。
它具有如下主要的能特点:1、工作电压范围4.2—5V2、256*8位内部RAM3、32条可编程IO口线4、3个可工作于4重模式的16位定时计数器5、6个中断源两个中断优先级6、具有四种工作模式的全双工串行口,可编程串行中断7、低功耗的待机工作模式和掉电工作模式。
IC卡座引脚在8个引脚中,VCC的工作电压为2.5到5V低电压供电。
SCL与SDA是IC卡上与逻辑控制有关的引出端线。
其中,SCL为串行时钟,所有的地址数据及读写控制命令等信号均从SDA端输入输出。
引脚T.P为微动开关的两个触点,此开关在无IC卡状态,处于断开状态,有卡插入时,IC卡插座上得微动开关闭合。
因此,此开关往往是用来判断是否插入IC卡的传感器件。
IC卡座引脚分布(1)单片机的信号通过小功率三极管9012控制系统的5V电源切入IC卡座,如果IC卡上电,则发光二极管被点亮,起读写指示作用。
每次对IC卡读写完成后,便及时下电,以减少插拔时带电的可能性。
(2)为了保证任意拔插IC卡时,IC卡处于断电状态,本读写器将IC卡的拔卡处理设计成由最高级中断程序来实现,且采用边沿触发方式。
同时,利用IC卡座的IC卡微动检测开关及时检测拔卡动作。
为了避免机械触点开关在动合过程中抖动而引起中断重入,甚至引起系统死机。
IC卡工作的基本原理是:射频读写器向IC卡发一组固定频率的电磁波,卡片内有一个LC串联谐振电路,其频率与读写器发射的频率相同,这样在电磁波激励下,LC谐振电路产生共振,从而使电容内有了电荷;在这个电荷的另一端,接有一个单向导通的电子泵,将电容内的电荷送到另一个电容内存储,当所积累的电荷达到2V时,此电容可作为电源为其它电路提供工作电压,将卡内数据发射出去或接受读写器的数据。
智能ic卡读写的课程设计
图2-2单片机芯片引脚
XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2来自反向振荡放大器的输出。P1口8位双向I/O口。引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流(IIL),这是因内部上拉的缘故。P3口引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/O引脚。P3.6在内部已与片内比较器输出相连,不能作为通用I/O。
2011级1班
指导教师
刘强
职称
讲师
发题日期
2013年3月15日
完成日期
2013年5月26日
设计题目
基于单片机的智能IC卡读写系统
设计目的:
考查学生对知识的掌握程度,训练和加强学生综合应用所学课程的知识,完成单片机应用系统的设计和开发,掌握单片机应用系统的硬件电路设计调试、程序的设计调试和软硬件统调的方法。
现在,射频识别技术作为一种新兴的自动识别技术,也将在中国很快地普及。典型的射频识别应用系统由非接触式IC卡、非接触式IC卡读写器和应用系统组成,其中非接触式IC卡读写器是连接非接触式IC卡和应用系统的桥梁,是射频识别应用系统中的关键部件。而且现在的发展趋势要求射频识别系统要有更高的安全性,因此设计一款安全有效的读写器有着重要的商业价值意义。
[3]赵文博,刘文涛.单片机语言C51程序设计[M].北京:人民邮电出版社,
2005,10.
[4]
[5]
指导教
师签字
系主任审核签字
基于单片机的智能IC卡读写系统
内容摘要:随着社会的进步和现代化程度的不断提高,人类所拥有的信息种类和数量都在成倍地增长,每天都要处理许多与个人有关的信息,而这些信息管理十分不便。因此,在实际生活中IC卡的应用范围非常广泛,它有助于解决问题。IC卡读写器是IC卡和计算机之间的传输媒介,它与计算机之间通过串行口相连,本文主要应用89C2051单片机为核心对Mifare卡进行读写控制。非接触式IC卡是IC卡领域的一项新兴要求:
智能卡技术IC卡与RFID标签第三版课程设计 (2)
智能卡技术IC卡与RFID标签第三版课程设计一、课程设计简介本课程设计是基于智能卡技术IC卡与RFID标签进行开发与设计的。
本课程设计旨在让学生通过实践操作,深入了解智能卡技术IC卡与RFID标签的原理和运用,提高学生综合应用优化设计与管理能力。
二、课程设计思路2.1 课程教学目标本课程设计主要是帮助学生掌握智能卡技术IC卡与RFID标签操作及应用,掌握智能卡制卡、读写操作、存储等基本原理,以及RFID标签的应用场景、识别距离、标签类型等基本知识。
2.2 课程设计内容本课程设计主要分为以下几个方面:1.智能卡技术IC卡的原理与应用:介绍智能卡技术的发展历史、IC卡的原理和应用场景,以及IC卡读写操作等基本知识。
2.智能卡制卡技术:介绍智能卡制卡技术的发展过程、基本原理和操作流程,学习智能卡的制卡技术。
3.RFID标签的原理与应用:介绍RFID标签的基本原理、应用场景以及识别距离、标签类型等基本知识。
4.RFID标签的读写操作:学习RFID标签的读写操作,掌握RFID标签的编程技巧和应用技术。
5.智能卡与RFID标签的优化应用:通过实践操作,熟练掌握智能卡与RFID标签的优化应用技术。
三、课程设计实施方案3.1 实施步骤本课程设计主要实施步骤如下:1.制定课程设计计划,明确教学目标和具体实施方案;2.学生进行智能卡技术IC卡和RFID标签的基础理论学习,在教师指导下完成基本的实践操作;3.学生根据课程设计任务完成个人或小组实践项目;4.学生进行课程设计成果展示和实验报告撰写。
3.2 实施条件1.实验室设施齐全,包括智能卡读写器、RFID标签读写器等必要设备;2.教师需要具有扎实的智能卡技术和RFID标签应用知识,并具有一定的实践操作经验;3.学生需要具有一定的计算机基础知识,能够使用编程工具、调试硬件等基本操作。
四、课程设计目标评估本课程设计主要从以下方面进行评估:1.学生实践操作水平:通过学生实验成果和实验报告对学生的实践操作水平进行评估;2.学生综合应用能力:学生完成个人或小组实践项目,能够实现智能卡技术IC卡和RFID标签相应的应用功能;3.学生自主学习能力:学生需要在指导下进行实践操作,同时也需要独立查阅相关资料完成任务。
基于.单片机的IC卡读写
基于单片机的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 intsbit 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==Cou nt4)||(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 ",7);//卡无效RED = 0;delay_10ms(500);RED = 1; //红灯亮C_flag=2;}delay_10ms(200);LCD1602_Disp_ZF(0x80+0x40,"Please Swipecard",16);//显示初始界面}}}uchar DS1302_Table[7]={0}; //读取时间值void Display_LCD2(uchar Dis_Hour,uchar Dis_Min,uchar Dis_Sec)//显示时间值{uchar Dis_Table[8]="11:22:33";Dis_Table[0] = Dis_Hour/10+0x30;Dis_Table[1] = Dis_Hour%10+0x30;Dis_Table[3] = Dis_Min/10+0x30;Dis_Table[4] = Dis_Min%10+0x30;Dis_Table[6] = Dis_Sec/10+0x30;Dis_Table[7] = Dis_Sec%10+0x30;LCD1602_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, 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_Table[0]=year;DS1302_Table[1]=month;DS1302_Table[2]=day;DS1302_Table[3]=week;DS1302_Table[4]=hour;DS1302_Table[5]=min;DS1302_Table[6]=sec;Display_LCD2(DS1302_Table[4],DS1302_Table[5],DS1302_Table[6]);//显示时间值}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(0x80+0x40,"Please Swipecard",16);//LCD1602_Disp_ZF(0x80+0x40,"Num:",4);//ISP_ERASE(0x2c00); //注意:字节编程时必须要先要擦除整个扇区//for(i=0;i<255;i++)// ISP_PROGRAM(0x2c00+i, 0x00);while (1){//////////////////////////if(!KEY){Speak=0;delay_10ms(20);Speak=1;//蜂鸣器提示LCD1602_Disp_ZF(0x88+0x40,"Welcome",7); //卡有效GREEN = 0;Relay=0;delay_10ms(200);Relay=1;GREEN = 1; //绿灯亮.打开继电器delay_10ms(200);LCD1602_Disp_ZF(0x80+0x40,"Please Swipecard",16);//显示初始界面}Run_DS1302(); //时间显示//delay_10ms(200);if(!KEY1) //调节小时加{delay_10ms(50);if(!KEY1) //调节小时加{DS1302_Table[4]++; //调节小时加Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0); //调节小时加}}if(!KEY2) //调节小时减{delay_10ms(50);if(!KEY2) //调节小时减{ //调节小时减DS1302_Table[4]--; //调节小时减Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0);//调节小时减}}//////////////////////////////////if(!KEY3) //调节分钟加{delay_10ms(50); //调节分钟加if(!KEY3){DS1302_Table[5]++; //调节分钟加Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0); //调节分钟加}}if(!KEY4) //调节分钟减{delay_10ms(50); //调节分钟减if(!KEY4) //调节分钟减{DS1302_Table[5]--; //调节分钟减Write_DS1302Init(0,0,0,0,DS1302_Table[4],DS1302_Table[5],0); //调节分钟减}}if(!KEY5) //添加删除卡{delay_10ms(50);if(!KEY5) //添加删除卡{if(C_flag==2) //添加卡{//0123456789abcdefLCD1602_Disp_ZF(0x80+0x40," Register Card! ",16);Countf++;if(Countf==6)Countf=1;if(Countf==1) Count1 = Count;//记忆卡号if(Countf==2) Count2 = Count; //记忆卡号if(Countf==3) Count3 = Count; //记忆卡号if(Countf==4) Count4 = Count; //记忆卡号if(Countf==5) Count5 = Count;//记忆卡号}if(C_flag==1)//删除卡{//0123456789abcdefLCD1602_Disp_ZF(0x80+0x40," Clean Card! ",16);if(Count==Count1)Count1=0;//删除卡号if(Count==Count2)Count2=0; //删除卡号if(Count==Count3)Count3=0; //删除卡号if(Count==Count4)Count4=0; //删除卡号if(Count==Count5)Count5=0; //删除卡号}Speak=0;delay_10ms(200);Speak=1;LCD1602_Disp_ZF(0x80+0x40,"Please Swipecard",16);C_flag =0;while(!KEY5);}}//////////////////////}}void iccardcode(){unsigned char cmd;unsigned char status;cmd = RevBuffer[0];switch(cmd){case 1: // Halt the card //终止卡的操作status= PcdHalt();;RevBuffer[0]=1;RevBuffer[1]=status;break;case 2: // Request,Anticoll,Select,return CardType(2 bytes)+CardSerialNo(4 bytes)// 寻卡.防冲突.选择卡返回卡类型(2 bytes)+ 卡系列号(4 bytes)status= PcdRequest(RevBuffer[1],&RevBuffer[2]);if(status!=0){status= PcdRequest(RevBuffer[1],&RevBuffer[2]);if(status!=0){RevBuffer[0]=1;break;}}RevBuffer[0]=3;RevBuffer[1]=status;break;case 3: // 防冲突读卡的系列号MLastSelectedSnrstatus = PcdAnticoll(&RevBuffer[2]);if(status!=0){RevBuffer[0]=1;RevBuffer[1]=status;break;}//memcpy(MLastSelectedSnr,&RevBuffer[2],4);RevBuffer[0]=5;RevBuffer[1]=status;break;case 4: // 选择卡 Select Card//status=PcdSelect(MLastSelectedSnr);if(status!=MI_OK){RevBuffer[0]=1;RevBuffer[1]=status;break;}RevBuffer[0]=3;RevBuffer[1]=status;break;case 5: // Key loading into the MF RC500's EEPROM//status = PcdAuthState(RevBuffer[1], RevBuffer[3], DefaultKey, MLastSelectedSnr);// 校验卡密码RevBuffer[0]=1;RevBuffer[1]=status;break;case 6:RevBuffer[0]=1;RevBuffer[1]=status;break;case 7:RevBuffer[0]=1;break;case 8: // Read the mifare card// 读卡status=PcdRead(RevBuffer[1],&RevBuffer[2]);if(status==0){RevBuffer[0]=17;}else{RevBuffer[0]=1;}RevBuffer[1]=status;break;case 9: // Write the mifare card// 写卡下载密码status=PcdWrite(RevBuffer[1],&RevBuffer[2]);RevBuffer[0]=1;RevBuffer[1]=status;break;case 10:PcdValue(RevBuffer[1],RevBuffer[2],&RevBuffer[3]);RevBuffer[0]=1;RevBuffer[1]=status;break;case 12: // 参数设置PcdBakValue(RevBuffer[1], RevBuffer[2]);RevBuffer[0]=1; //contactRevBuffer[1]=0;break;}}4.实物验证结果如图4所示:图4:实物验证结果实物验证可以实现IC卡的读写.由于每个开发板不同.相比仿真程序.对实物验证程序进行了略微的修改.最小系统的LCD1602口不能使用使用外接杜邦线.为了稳定最终选择重新字节焊接板子.最终能达到要求。
基于51单片机的IC卡读写系统设计说明书
毕业论文声明本人郑重声明:1.此毕业论文是本人在指导教师指导下独立进行研究取得的成果。
除了特别加以标注地方外,本文不包含他人或其它机构已经发表或撰写过的研究成果。
对本文研究做出重要贡献的个人与集体均已在文中作了明确标明。
本人完全意识到本声明的法律结果由本人承担。
2.本人完全了解学校、学院有关保留、使用学位论文的规定,同意学校与学院保留并向国家有关部门或机构送交此论文的复印件和电子版,允许此文被查阅和借阅。
本人授权大学学院可以将此文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本文。
3.若在大学学院毕业论文审查小组复审中,发现本文有抄袭,一切后果均由本人承担,与毕业论文指导老师无关。
4.本人所呈交的毕业论文,是在指导老师的指导下独立进行研究所取得的成果。
论文中凡引用他人已经发布或未发表的成果、数据、观点等,均已明确注明出处。
论文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究成果做出重要贡献的个人和集体,均已在论文中已明确的方式标明。
学位论文作者(签名):年月关于毕业论文使用授权的声明本人在指导老师的指导下所完成的论文及相关的资料(包括图纸、实验记录、原始数据、实物照片、图片、录音带、设计手稿等),知识产权归属华北电力大学。
本人完全了解大学有关保存,使用毕业论文的规定。
同意学校保存或向国家有关部门或机构送交论文的纸质版或电子版,允许论文被查阅或借阅。
本人授权大学可以将本毕业论文的全部或部分内容编入有关数据库进行检索,可以采用任何复制手段保存或编汇本毕业论文。
如果发表相关成果,一定征得指导教师同意,且第一署名单位为大学。
本人毕业后使用毕业论文或与该论文直接相关的学术论文或成果时,第一署名单位仍然为大学。
本人完全了解大学关于收集、保存、使用学位论文的规定,同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存或汇编本学位论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版,允许论文被查阅和借阅。
单片机课程设计报告IC卡读写器设计
南京工程学院课程设计课程名称单片机原理及应用B课题名称IC卡读写器设计院(系、部、中心)通信工程学院专业通信工程班级姓名学号起止日期设计地点微机原理与单片机实验室指导老师岳俊生水恒华单片机原理及应用B摘要IC卡在现代生活中应用非常广泛,IC卡读写器的设计方法有多种,其中,利用单片机外接芯片实现的IC卡读写器具有编程灵活,便于IC卡读写器功能的扩充,运算存储方便等优点。
本文主要介绍用单片机外接24C16EEPROM的方法,利用键盘对24C16进行模拟充值的方法。
本设计由单片机P89V51RD2芯片、24C16EEPROM和LCD液晶显示为核心,辅以必要的电路,构成了一个IC卡读写器,使用起来很方便此IC卡读写器严格按照要求设计,最终达到预期的效果,并且添加了进行挂失,修改密码,低值报警,透支报警等相关功能。
关键词IC卡读写器/单片机 /C51编程The Principle and Applicationof Single ChipMicrocomputerABSTRACTIC card is widely used in modern life。
There are a variety of IC card reader design methods, which use an external chip microcontroller IC card reader with programming flexibility, ease of expansion IC card reader function, operation and easy storage。
This paper describes a method 24C16EEPROM external MCU, using the keyboard to simulate 24C16 recharge methods.Designed by the MCU chip P89V51RD2, 24C16EEPROM and LCD display as the core, supplemented by the necessary circuitry, constitute an IC card reader, easy to use。
IC卡读写控制设计
IC卡读写控制设计内容提要:随着全球信息化的发展, IC卡在全球的应用越来越广泛。
IC卡是一个正蓬勃发展的边缘产业,一个与我们的生活正越来越密切的产业。
在普及因特网和计算机的大潮涌来时,IC卡扮演着越来越重要的角色。
本论文围绕“IC卡读写控制设计”这一热点课题,阐述了相应的IC卡读写控制的设计方案、开发方法和开发过程,在设计中利用Siemens公司的SLE4442芯片。
2008年乃至今后5年,是我国IC卡应用向纵深发展的时期。
我国IC卡市场格局必将由无序走向有序,市场竞争必将由有限走向无限,IC卡市场将逐步走向成熟,进入微利时代。
在这种形势下,单纯的发卡量和新产品的数量并不能衡量IC卡产业与市场的发展水平,市场发展的程度最终取决于IC卡的应用水平及其带来的社会效益。
从可持续发展的角度讲,加强行业规范,推动IC卡企业由产品和技术型转向应用和服务型,将成为我国IC卡市场发展的重要趋势。
关键词:读卡器 SLE4442卡单片机 PSC I2C总线IC card reader control designAbstract :With the development of global information, IC card application in the world more and more widely. IC card is a positive edge of booming industries, a U.S. life industry is increasingly close. Popularization of the Internet and at the computer when the flood tide, IC card to play an increasingly important role.In this paper, around the "IC card reader control design," the hot topic on the corresponding IC card reader-controlled design, development methodology and development process, the use of Siemens in the design of the company's SLE4442 chip.In 2008 and even the next 5 years, China's IC card applications are to develop in depth period. China's IC card market will move from disorder and orderly market competition from limited to unlimited will, IC card market will gradually mature, time to enter the low-profit. Under such circumstances, a simple card-issuing volume and quantity of new products and should not measure the IC card industry and the market level of development, market development ultimately depend on the extent of the level of application of IC cards and the associated social benefits. From the perspective of sustainable development, the strengthening of industry norms, and promote enterprise by the IC card products and technology-based applications and services shift type, will become China's IC card market in the development of important trends.Keywords:SLE4442 card 51Singlechip PSC I2C bus目录一、引言 (4)(一) IC卡技术及其发展 (4)(二) IC卡的概念 (5)(三) IC卡的主要特点 (5)(四) IC卡的分类 (6)二、 IC卡的安全问题 (8)(一)概述 (8)(二)数据加密 (8)IP置换 (10)F函数 (10)E扩展置换 (11)S替代选择 (11)P置换 (11)DES算法的解密 (12)1.密码安全及存储数据安全 (12)2.数据的完整性 (13)1.IC卡卡座 (18)2.单片机和存储器 (19)3.接口电路和外围设备 (19)六、结论 (21)致谢 (22)参考文献 (54)一、引言(一)IC卡技术及其发展IC卡的最初设想是由日本人提出来的。
IC考勤卡课程设计
IC考勤卡课程设计一、课程目标知识目标:1. 学生理解IC考勤卡的基础知识,掌握其工作原理和应用场景。
2. 学生能够描述IC考勤卡的数据存储、读取和传输过程。
3. 学生了解我国智能卡行业的发展现状及未来趋势。
技能目标:1. 学生能够独立操作IC考勤卡,进行数据读取和写入。
2. 学生通过实践,掌握使用IC考勤卡进行考勤的基本操作流程。
3. 学生能够运用所学知识解决实际问题,设计简单的IC考勤卡应用方案。
情感态度价值观目标:1. 学生培养对智能化产品的兴趣,提高对科技创新的热情。
2. 学生通过学习,认识到科技进步对日常生活的影响,增强社会责任感。
3. 学生在团队协作中,培养沟通、合作意识,提高集体荣誉感。
本课程针对中学生设计,结合信息技术课程特点,以实用性和操作性为核心,注重培养学生的动手能力和实际应用能力。
通过本课程的学习,使学生能够将所学知识与实际生活相结合,提高学生的信息素养,为未来社会的发展做好准备。
二、教学内容1. IC考勤卡概述:介绍IC考勤卡的定义、分类、发展历程及其在生活中的应用。
相关教材章节:第一章 智能卡概述2. IC考勤卡工作原理:讲解IC考勤卡的数据存储、读取、写入和传输原理。
相关教材章节:第二章 智能卡工作原理3. IC考勤卡的操作流程:详细讲解如何使用IC考勤卡进行考勤,包括硬件设备连接、软件操作等。
相关教材章节:第三章 智能卡应用实例4. 实践操作:组织学生进行IC考勤卡操作实践,巩固所学知识,提高动手能力。
相关教材章节:第四章 实践操作5. 应用案例分析:分析IC考勤卡在实际应用中的典型案例,让学生了解其在不同场景的应用。
相关教材章节:第五章 智能卡行业应用案例6. 行业发展趋势:介绍我国IC考勤卡及智能卡行业的发展现状和未来趋势。
相关教材章节:第六章 智能卡行业发展趋势教学内容按照以上六个方面进行组织,注重理论与实践相结合,使学生能够在掌握基本知识的基础上,深入了解IC考勤卡的应用和发展。
IC卡读写器设计单片机课程设计报告
南京工程学院课程设计课程名称单片机原理及应用B课题名称IC卡读写器设计院(系、部、中心)通信工程学院专业通信工程班级姓名学号起止日期设计地点微机原理与单片机实验室指导老师岳俊生水恒华单片机原理及应用B摘要IC卡在现代生活中应用非常广泛,IC卡读写器地设计方法有多种,其中,利用单片机外接芯片实现地IC卡读写器具有编程灵活,便于IC卡读写器功能地扩充,运算存储方便等优点.本文主要介绍用单片机外接24C16EEPROM地方法,利用键盘对24C16进行模拟充值地方法.本设计由单片机P89V51RD2芯片、24C16EEPROM和LCD液晶显示为核心,辅以必要地电路,构成了一个IC卡读写器,使用起来很方便此IC卡读写器严格按照要求设计,最终达到预期地效果,并且添加了进行挂失,修改密码,低值报警,透支报警等相关功能.关键词IC卡读写器/单片机 /C51编程The Principle and Applicationof Single ChipMicrocomputerABSTRACTIC card is widely used in modern life.There are a variety of IC card reader design methods, which use an external chip microcontroller IC card reader with programming flexibility, ease of expansion IC card reader function, operation and easy storage.This paper describes a method 24C16EEPROM external MCU, using the keyboard to simulate 24C16 recharge methods.Designed by the MCU chip P89V51RD2, 24C16EEPROM and LCD display as the core, supplemented by the necessary circuitry, constitute an IC card reader, easy to use. This IC card reader in strict accordance with the requirements of the design, and ultimately achieve the desired effect, and add report the loss, change passwords, low alarm, alarm and other related functions overdraft.KeywordsIC card reader /P89V51RD2 single-chip computer /C51 programming目录一、课程设计目地 (1)二、基本思路 (1)三、实验方案 (1)四、实验开发环境及元器件 (1)1 、开发工具及开发环境简介 (1)1.1 单片机 (1)1.2 Proteus (1)1.3 KEIL (2)2、P89V51RD2 (2)3、24C16EEPROM (2)4.、LCD1602 (2)(1)简介 (3)(2)管脚功能 (3)(3)16进制ASCII码表 (3)(4)特性 (4)五、系统分析与设计 (4)1、系统框图 (4)2、软件设计 (4)(1)软件程序内容 (4)(2)软件设计流程图 (5)(3)程设计步骤 (8)(4)电路连线图 (9)六、具体程序设计及步骤 (9)1、头文件: (9)2、各个.C文件: (11)3、程序调试及结果: (26)⑴调试步骤 (26)⑵实验现象 (26)七、课程设计体会 (26)八、参考文献 (28)一、课程设计目地本课程设计是在《单片机原理及应用B》课程主要内容学习之后,通过一个单片机应用系统地设计和调试,训练学生综合运用本课程知识,独立解决工程实际问题地能力;使学生加深对单片机结构、工作原理地理解,提高学生综合应用知识地能力、分析解决问题地能力和单片机应用系统地设计技能;同时培养学生查阅科技资料和撰写科技报告地能力.二、基本思路通过此次课程设计掌握I2C总线地基本特点和通信协议,掌握24xx系列EEPROM地基本特点及总线控制协议,掌握单片机IO端口模拟I2C时序控制程序地编写方法.单片机通过P1.0和P1.1分别连接24C16地SDA和SCL,编写单片机通过IO端口模拟I2C时序控制24C16读写地程序.通过键盘对24C16EEPROM进行模拟充值,通过LED/LCD实时显示卡内实际金额.三、实验方案在进行头文件配置完之后,建立一个while(1),死循环,在这个死循环中不断检测键盘输入,检测到键盘输入后,根据键盘地值,执行相应地子函数.并通过1602LCD显示出来相应地过程.四、实验开发环境及元器件1 、开发工具及开发环境简介1.1 单片机单片微型计算机简称单片机,是典型地嵌入式微控制器(Microcontroller Unit),常用英文字母地缩写MCU表示单片机,它最早是被用在工业控制领域.单片机由芯片内仅有CPU地专用处理器发展而来.最早地设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂地而对体积要求严格地控制设备当中.INTEL地Z80是最早按照这种思想设计出地处理器,从此以后,单片机和专用处理器地发展便分道扬镳.1.2 ProteusProteus软件是Labcenter Electronics公司地一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB地设计,而ISIS模块用来完成电路原理图地布图与仿真.Proteus地软件仿真基于VSM技术,它与其他软件最大地不同也是最大地优势就在于它能仿真大量地单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等.通过Proteus软件地使用我们能够轻易地获得一个功能齐全、实用方便地单片机实验室.1.3 KEIL单片机开发中除必要地硬件外,同样离不开软件,我们写地汇编语言源程序要变为CPU可以执行地机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编地方法了.机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机地汇编软件有早期地A51,随着单片机开发技术地不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机地开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机地软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出.Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大地仿真调试器等在内地完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起.运行Keil软件需要Pentium或以上地CPU,16MB或更多RAM、20M以上空闲地硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统.掌握这一软件地使用对于使用51系列单片机地爱好者来说是十分必要地,如果你使用C语言编程,那么Keil几乎就是你地不二之选(目前在国内你只能买到该软件、而你买地仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用地集成环境、强大地软件仿真调试工具也会令你事半功倍.Keil C51生成地目标代码效率非常之高,多数语句生成地汇编代码很紧凑,容易理解.在开发大型软件时更能体现高级语言地优势2、P89V51RD2P89V51RD2是Philips公司生产地一款80C51微控制器,包含64KB Flash和1024字节地数据RAM.P89V51RD2地典型特性是它地X2方式选项.利用该特性,设计者可使应用程序以传统地80C51时钟频率(每个机器周期包含12个时钟)或X2 方式(每个机器周期包含6个时钟)地时钟频率运行,选择X2方式可在相同时钟频率下获得2倍地吞吐量.从该特性获益地另一种方法是将时钟频率减半来保持特性不变,这样可以极大地降低EMI.Flash程序存储器支持并行和串行在系统编程(ISP),ISP允许在软件控制下对成品中地器件进行重复编程.应用固件地产生/更新能力实现了ISP地大范围应用. 5V地工作电压,操作频率为0~40MHz.3、24C16EEPROMEEPROM(带电可擦写可编程只读存储器)是用户可更改地只读存储器(ROM),其可通过高于普通电压地作用来擦除和重编程(重写).不像EPROM芯片,EEPROM不需从计算机中取出即可修改.在一个EEPROM中,当计算机在使用地时候可频繁地反复编程,因此EEPROM地寿命是一个很重要地设计考虑参数.EEPROM是一种特殊形式地闪存,其应用通常是个人电脑中地电压来擦写和重编程.4.、LCD1602(1)简介1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等地点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符.每位之间有一个点距地间隔每行之间也有间隔起到了字符间距和行间距地作用,正因为如此所以他不能显示图形.1602LCD是指显示地内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字).(2)管脚功能1602采用标准地16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K地电位器调整对比度).第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器.第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作.第6脚:E(或EN)端为使能(enable)端.第7~14脚:D0~D7为8位双向数据端.第15~16脚:空脚或背灯电源.15脚背光正极,16脚背光负极.(3)16进制ASCII码表字符集1602液晶模块内部地字符发生存储器(CGROM)已经存储了160个不同地点阵字符图形,这些字符有:阿拉伯数字、英文字母地大小写、常用地符号、和日文假名等,每一个字符都有一个固定地代码,比如大写地英文字母“A”地代码是01000001B (41H ),显示时模块把地址41H 中地点阵字符图形显示出来,我们就能看到字母“A”.在单片机编程中还可以用字符型常量或变量赋值,如'A’.因为CGROM 储存地字符代码与我们PC 中地字符代码是基本一致地,因此我们在向DDRAM 写C51字符代码程序时甚至可以直接用P1=‘A’这样地方法.PC 在编译时就把'A'先转换为41H 代码了.(4)特性3.3V 或5V 工作电压,对比度可调内含复位电路提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM内建有192个5X7点阵地字型地字符发生器CGROM8个可由用户自定义地5X7地字符发生器CGRAM五、系统分析与设计1、系统框图2、软件设计(1)软件程序内容本设计地软件程序包括主程序、充值子程序、消费子程序、挂失子程序、修改密码程序和报警子程序等等.另外,还设计了LCD显示子程序.(2)软件设计流程图主程序框图充值子程序消费子程序挂失子程序解锁子程序修改密码子程序(3)程设计步骤①进行头文件配置,设置相应地端口名②采用死循环,通过查询方式检测是否有键按下③根据键盘地值执行相应地子程序④在执行过程中控制LCD显示相应地内容⑤在子程序执行完后返回主程序⑥在子程序中进行相应地数值运算⑦挂失和修改密码地子程序将改变存储在存储器中地密码值,使之从主程序中跳出来,待重新启用成功购在回到主循环中(4)电路连线图六、具体程序设计及步骤1、头文件:at24co2.h#ifndef __AT24C02__#define __AT24C02__#include "main.h"#include<reg52.h>sbit SCL=P1^7。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
因此,RFID技术已在世界各地得到广泛的应用,以美国、日本和欧洲的发达的国对该技术应用研究已经达到相当高的水平,而我国处于起步状态,大多采用了引进的技术成果。所以研究该技术己成为我国当今社会发展的必然趋势。另外,RFID技术是一个崭新的技术应用领域,它不仅涵盖了微波技术与电磁学理论,而且包括通信原理及半导体集成电路技术,是一个多学科综合的新兴学科。因此对RFID技术的认识和应用研究具有深远的理论意义。
3
确定设计方案、绘制原理图和PCB图
2013.3.26~4.26
4
实物制作、编制程序
2013.4.27~5.15
5
论文的编写及修改
2013.5.16~5.26
课程设计参考文献:
[1]谢维成.单片机原理与应用及C51程序设计.北京:清华大学出版社,2007.4
[2]沈红卫.基于单片机的智能系统设计与实现.电子工业出版社,2009.6
具体任务及要求:
1、信息识别采用非接触式IC卡,读卡器采用MFRC522;
2、可通过LED显示器显示刷卡次数;
3、能通过RS232方式读写IC卡;
4、控制器选择51单片机;
课程设计进度安排:
序号
内容安排
时间
1
选择适合自己的课题
2013.3.15~3.18ห้องสมุดไป่ตู้
2
查找资料,收集资料、筛选资料和分析资料
2013.3.18~3.25
四川师范大学成都学院电路与电子技术课程设计
基于单片机的智能IC卡读写系统—设计与实现
学生姓名
张炜炜
学号
2011101007
所在学院
通信工程学院
专业名称
通信工程
班级
2011级一班
指导教师
刘强
成绩
四川师范大学成都学院
二○一三年五月
课程设计任务书
学生姓名
张炜炜
学生学号
2011101007
学生专业
通信工程
学生班级
表2-2P3口第二功能
单片机存储器分类及配置:MCS—51单片机存储器的分类从物理结构上可分为:片内、片外程序存储器(8031和8032没有片内程序存储器)与片内、片外数据存储器4个部分;从寻址空间分布可分为:程序存储器、内部数据存储器和外部数据存储器3大部分;从功能上可分为:程序存储器、内部数据存储器、特殊功能寄存器、位地址空间和外部数据存储器5大部分。
First introduced in the introduction to the topic of significance and functions outlined.
Secondlythe text inside describes the system hardware work principle,and introduce the Mifare internal structure and chip figure, discussthe function and working process of these degree graduation project station applied each hardware interface technology and each interface module. I
Keywords:Read and write a controlsingle slice machineIC card
基于单片机的的智能IC卡读写系统
前言
射频识别kJ(RFrDRadioFrequency Identification)技术是二十世纪九十年代兴起的一种天线的、非接触方式的自动识别技术,是近几年发展起来的前沿科技项目。该技术主要是利用射频信号通过空间耦合(电感或电磁耦合)实现无接触信息传递并通过所传递的信息达到识别目的。射频识别技术的显著优点在于非接触性,因此完成识别工作时无需人工干预,能够实现识别自动化且不易损坏;可识别高速运动物体并可同时识别多个射频标签,操作快捷方便;射频标签不怕油渍、灰尘污染等恶劣的环境,且可以穿透非金属物体进行识别,抗干扰能力。RFID技术与互联网、通讯等技术相结合,可实现全球范围内物品跟踪与信息共享。研究RFID技术,发展RFID产业对提升社会信息化水平、促进经济可持续发展、提高人民生活质量、增强公共安全与国防安全等方面产生深远影响,具有战略性的重大意义。
This system edits collected materials the language to proceed with single the basic language of a C the software designs, the instruction carries out the speed quick, write simply. .
2011级1班
指导教师
刘强
职称
讲师
发题日期
2013年3月15日
完成日期
2013年5月26日
设计题目
基于单片机的智能IC卡读写系统
设计目的:
考查学生对知识的掌握程度,训练和加强学生综合应用所学课程的知识,完成单片机应用系统的设计和开发,掌握单片机应用系统的硬件电路设计调试、程序的设计调试和软硬件统调的方法。
复位状态:MCS—51单片机复位后,程序计数器PC和特殊功能寄存器复位的状态如图2-1所示。复位不影响片内RAM存放的内容,而ALE、PSEN在复位期间将输出高电平。由表可以看出:
(1)(PC)=0000H表示复位后程序的入口地址为0000H;
(2)(PSW)=00H,其中RS1(PSW.4)=0, RS0(PSW.3)=0,表示复位后单片机选择工作寄存器0组;
现在,射频识别技术作为一种新兴的自动识别技术,也将在中国很快地普及。典型的射频识别应用系统由非接触式IC卡、非接触式IC卡读写器和应用系统组成,其中非接触式IC卡读写器是连接非接触式IC卡和应用系统的桥梁,是射频识别应用系统中的关键部件。而且现在的发展趋势要求射频识别系统要有更高的安全性,因此设计一款安全有效的读写器有着重要的商业价值意义。
[3]赵文博,刘文涛.单片机语言C51程序设计[M].北京:人民邮电出版社,
2005,10.
[4]
[5]
指导教
师签字
系主任审核签字
基于单片机的智能IC卡读写系统
内容摘要:随着社会的进步和现代化程度的不断提高,人类所拥有的信息种类和数量都在成倍地增长,每天都要处理许多与个人有关的信息,而这些信息管理十分不便。因此,在实际生活中IC卡的应用范围非常广泛,它有助于解决问题。IC卡读写器是IC卡和计算机之间的传输媒介,它与计算机之间通过串行口相连,本文主要应用89C2051单片机为核心对Mifare卡进行读写控制。非接触式IC卡是IC卡领域的一项新兴技术,它是射频识别技术和IC卡技术相结合的产物。
首先在前言中介绍了课题的开发意义及功能概述。其次在主要描述了系统硬件工作原理,并介绍了IC卡mifare的内部结构及原理图,论述了本次课程设计所应用的各硬件接口技术和各个接口模块的功能及工作过程。本系统是以单片机的基本语言C语言来进行软件设计,方便编写。最后具体描述了各个功能模块的软、硬件调试。本文撰写的主导思想是软、硬件结合,以硬件为基础,来进行各功能模块的编写。
In conclusion concretion descriptionsoft and hardware debug of each functional module.The predominance thought that this text compose is soft, the hardware combines together, regarding hardware as the foundation, proceeds the plait of each function mold piece write.
(3)(SP)=07H表示复位后堆栈在片内RAM的08H单元处建立;
(4)P0口~P3口锁存器为全1状态,说明复位后这些并行接口可以直接作输入口,无须向端口写1;
(5)定时器/计数器、串行口、中断系统等特殊功能寄存器复位后的状态对各功能部件工作状态的影响。
表2-1特殊功能寄存器复位状态
STC89C52结构:STC89C52是一个有20个引脚的芯片,引脚配置如图2-2.与8051内部结构进行对比后可发现,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚,因而芯片尺寸有所减小。AT89C2051芯片的20个引脚功能为:引脚1.VCC电源电压;引脚2.GND接地;引脚3:RST复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。
关键词:读写控制单片机IC卡
The intelligent IC cardread-writesystem based onsingle chip microcomputer
Abstract:Raise continuously along with the progress and modern degree of the society, the information category and quantities that the mankind own all Be becoming doubly a growth, want to handle to be many and personal everyday relevant of information, but these information managements is very inconvenient.The application of the IC card is very extensive in the real life. it contributes to solve problem。IC card's reading and write a machine is the IC card and of the calculator deliver medium, it goes to connect with each other with of the calculator through a string, this text applies a single slice of 89C2051 machine for the core mainly to the Mifare cardses to carry on reading and write a control.The contact type IC card is a newly arisen technique of the IC card realm, it is the outcome that the radio frequency identifies the technique and the IC card technique to combine together.