资源描述
物理与电子学院单片机课程设计题目:基于单片机的IC门禁卡的设计论文作者:论文合作者专 业:班 级:指导教师:完成日期:目 录摘要1、引言2、1602液晶显示器2.1、液晶显示器2.2、液晶显示简介2.3、1602LCD的基本参数及引脚功能2.4、1602LCD的指令说明及时序2.5、1602LCD的RAM地址映射及标准字库表2.6、1602LCD的一般初始化(复位)过程2.7、硬件原理图2.8、程序流程图2.9、软件代码3、RC522 RFID 读卡模块4、DS13025、硬件设计5.1、非接触式IC卡门禁系统的构成5.2、非接触式IC卡的特点5.3、非接触式IC卡的功能组成5.4、射频接口电路5.5、数字电路部分6、软件设计6.1、编程语言的选择6.2、主程序设计6.3、MF RC522应用子程序设计7、 PCB图8、 原理图9、 元器件清单10、 实物图11、结束语12、参考文献基于单片机的IC门禁卡的设计摘 要:本论文介绍了一种基于非接触式IC卡的门禁管理系统,非接触式IC卡是IC卡领域的一项新兴技术,它是射频识别技术和IC卡技术相结合的产物。论文介绍了该门禁系统的硬件组成、软件组成。可为人事、保安等管理部门提供安全、实用、方便的管理。论文又详细地阐述了射频识别技术,非接触式IC卡读卡器的硬件和软件设计。本论文系统分析了非接触式IC卡门禁技术的发展状况和非接触式IC卡技术在门禁系统中使用的优点,重点对射频技术原理和射频卡在门禁系统中的应用进行研究,分析比较了门禁系统的几种方案,结合本系统的要求特点加以改进。关键词:非接触式IC卡 液晶显示 射频技术1、引言随着以人为本的社会生活意识的提高,越来越多的住户对小区的安全防范意识也不断的增强,实现小区管理的智能化势在必行。该系统无需铺设通讯线路,相对而言成本低、可靠性高、便于维护,尤其利于现有老社区、旧办公楼的智能化改造。门禁系统已成为发达国家和地区最主要的保安系统之一,和传统的保安设备不同。门禁系统已由早期单纯的门道及钥匙管理,发展为一套完整的出入管理系统,并且通过采用先进的网络技术,使整套系统的操作和自身资源的使用不再受时间和地域的限制。非接触式IC卡门禁管理系统读卡器是以非接触IC卡射频识别技术为核心,使用户使用方便和管理方便为目的,具有高安全性、高可靠性的管理系统。非接触式IC卡门禁管理系统已广泛地应用于楼宇自动化、重要区域的通行等。2、 1602液晶显示器2.1 液晶显示器在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。2.2 液晶显示简介液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。液晶显示器各种图形的显示原理:线段的显示点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。字符的显示用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直到32B显示完就可以LCD上得到一个完整汉字。2.3 1602LCD的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图2-1所示:图2-1 1602LCD尺寸图1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm引脚功能说明1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表2-2所示:表2-2:引脚接口说明表第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。2.4 1602LCD的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如表2-3所示:表2-3:控制命令表1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。与HD44780相兼容的芯片时序表如下:表2-4:基本操作时序表读写操作时序如图2-5和2-6所示:图2-5 读操作时序图2-6 写操作时序2.5 1602LCD的RAM地址映射及标准字库表液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2-7是1602的内部显示地址。图2-7 1602LCD内部显示地址例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图2-8所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”图2-8 字符代码与图形对应图2.6 1602LCD的一般初始化(复位)过程延时15mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)延时5mS写指令38H(不检测忙信号)以后每次写指令、读/写数据操作均需要检测忙信号写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置2.7 硬件原理图1602液晶显示模块可以和单片机AT89C51直接接口,电路如图10-60所示。图10-60 硬件原理图2.8 程序流程图图10-61 软件流程图2.9 软件代码#include #include sbit rs= P20;sbit rw = P21;sbit ep = P22;unsigned char code dis1 = ;unsigned char code dis2 = 0772-2686915;void delay(unsigned char ms)unsigned char i;while(ms-)for(i = 0; iVcc1+0.2V时,由Vcc2向DS1302供电,当Vcc20;i-)/循环8次移位SCLK=0;temp=addr;DIO=(bit)(temp&0 x01);/每次传输低字节addr=1;/右移一位SCLK=1;/发送数据for(i=8;i0;i-)SCLK=0;temp=dat;DIO=(bit)(temp&0 x01);dat=1;SCLK=1;CE=0;/数据读取子程序unsignedcharRead1302(unsignedcharaddr)unsignedchari,temp,dat1,dat2;CE=0;SCLK=0;CE=1;/发送地址for(i=8;i0;i-)/循环8次移位SCLK=0;temp=addr;DIO=(bit)(temp&0 x01);/每次传输低字节addr=1;/右移一位SCLK=1;/读取数据for(i=8;i0;i-)ACC_7=DIO;SCLK=1;ACC=1;SCLK=0;CE=0;dat1=ACC;dat2=dat1/16;/数据进制转换dat1=dat1%16;/十六进制转十进制dat1=dat1+dat2*10;return(dat1);/初始化DS1302voidInitial(void)Write1302(WRITE_PROTECT,0X00);/禁止写保护Write1302(WRITE_SECOND,0 x56);/秒位初始化Write1302(WRITE_MINUTE,0 x34);/分钟初始化Write1302(WRITE_HOUR,0 x12);/小时初始化Write1302(WRITE_PROTECT,0 x80);/允许写保护4.6硬件原理图4.7程序流程图5、硬件设计采用Philips公司的非接触式IC卡Mifare 1卡,以M1卡作为用户卡,以用户卡的序列号SN(全球唯一) 为依据控制门的开启。硬件电路主要由MIFARE卡读写模块ZLG500A及天线、中央控制、数据传输、主控制器AT89C52、键盘、显示器、门禁记录与授权卡号存储器、时钟电路以及电磁门锁等部分组成,其硬件框图如图2所示:5.1、非接触式IC卡门禁系统的构成非接触式IC卡门禁系统由非接触式IC卡、读卡器和PC管理机组成,此外还包括外部门禁设备。(1)读卡器:是门禁系统的主要设备,直接与PC机通过RS522串行口相连,只要有非接触式IC卡进入读卡器天线射频能量范围,读卡器便通过射频信号与IC卡通信,认证密码,读取卡中的数据,并将其存入计算机中。(2)非接触式IC卡:相当于开门钥匙,它是通过磁力线圈产生感应电流向读卡器发射卡内信息,完成读卡工作的。(3)PC管理机:门禁系统有不同的构成方案,一种是读卡器不带存储器,PC机直接与读卡器相连,读卡信息实时地传送给PC机。另一种是读卡器独立工作,内部用较大的存储器存放读卡数据,采用采集器采集读卡器中的数据,再传送到PC管理机上。在本设计中采用的是第一种方案。(4)门禁设备:门禁设备由读卡器中单片机的I/O口根据刷卡情况发出控制信号控制,密码认证通过开门,否则不开门。在读卡器上用喇叭来仿真。5.2、非接触式IC卡的特点非接触式IC卡系统由非接触式IC卡和非接触式IC卡读卡器构成。非接触式IC卡与接触式IC卡相比,有以下特点:可靠性高、寿命长操作快捷便利动态处理成本较高安全性高5.3、非接触式IC卡的功能组成本论文采用的非接触式IC卡是Philips公司的MIFARE 1卡。非接触式IC卡的功能组成如图4所示: 图4 非接触式IC卡的功能组成图5.4、射频接口电路在射频接口电路中,波形转换模块接收读卡器上的1356MHZ的无线电调制频率,一方面送调制解调模块,另一方面进行波形转换,将正弦波转换为方波,然后对其整流滤波,由电压调节模块对电压进行进一步的处理,包括稳压等,最终输出供给卡片上的各电路。在身份识别单元的设计中,只有确定了RFID卡,才能设计读卡器等其余硬件。所以首先应根据系统的要求来选定RFID卡。系统的主要参数要求如下:工作频率:1356MHz通信频率:106K波特率防冲突:同一时间可处理多张卡读写距离:在100mm(与天线形状有关)能方便、快速传递数据半双工通信方式数据处理完整且安全典型处理时间小于200ms通过前面分析,目前我国国内市场上Philips公司的Mifare 1卡及其芯片产品占有绝对的优势,结合本门禁系统的要求,考虑到产品的技术性能要求成熟可靠,安全保密性高,尽量选择符合国际标准。最后确定选用Philips公司的性价比高的Mifarel卡,读写芯片MF RC522,其特性完全符合本系统的各项要求。5.5、数字电路部分ATR请求模块:当一张卡片处在读卡器天线的工作范围之内时,程序员控制读卡器向卡片发出REQUEST all(或REQUEST std)命令后,卡片的ATR模块将启动,将卡片中的卡片类型号共2个字节传送给读卡器,建立卡片与读卡器的第一步通信联络。如果不进行第一步的ATR工作,读卡器对卡片的其他操作(读、写等操作)将不会进行。AntiCollision防重叠模块:防(卡片)重叠功能,如果有多张卡片处在读卡器的天线的工作范围之内时,AntiCollision模块的防重叠功能将被启动工作。在程序员控制下的读卡器将会首先与每一张卡片进行通信,取得每一张卡片的系列号。由于每一张卡片都有其唯一的序列号,因此读卡器根据卡片的序列号来识别已选的卡片,读卡器中MFRC500芯片的AntiCollision防重叠功能配合卡片上的防重叠功能模块,由程序员来控制读卡器,根据卡片的序列号来选定一张卡片。被选中的卡片将直接与读卡器进行数据交换,未被选择的卡片处于等待状态,随时准备与读卡器进行通信。选择模块:主要用于卡片的选择当卡片与读卡器完成了上述的二个步骤,想要对卡片进步操作时,必须先对卡片进行“选择”操作,以使卡片真正地被选中。被选中的卡片将存储在卡片上的卡片的容量传送给读卡器。当读卡器收到信息后,就可以对卡片进行深一步的操作了。认证模块:在确认了上述的三个步骤,确认已经选择了一张卡片时,程序员对卡片进行读写操作之前,必须对卡片上已经设置的密码进行认证,如果匹配,则允许进一步的读、写操作。卡片上有16个扇区,每个扇区都可分别设置各自的密码,互不干涉。因此每个扇区可独立地应用于一个应用场合。整个卡片可以设计成“一卡通”形式来应用。三遍认证的令牌原理框图如图5所示:(C)(E) 图5 三次相互认证的令牌原理框图6、软件设计6.1、编程语言的选择软件是整个门禁控制系统的灵魂,系统的各项功能的实现有赖于相应软件的编制。而软件编制先要选择合适的编程语言。对AT89C52单片机为核心的嵌入式系统而言,所有的控制都是由单片机程序控制实现。C语言是一种通用的计算机程序设计语言,在国际上十分流行,它既可用来编写计算机的系统程序,也可用来编写一般的应用程序,用它编写的程序,具有较好的可读性可移植性。德国Keil软件公司的C51编译器可以直接对8051单片机的内部特殊功能寄存器IO口进行操作,直接访问片内或片外存储器,还可以进行各种位操作,能够产生简洁、高效率的程序代码,在代码质量上可以与汇编语言相媲美。因此在本读卡器中使用C语言进行程序设计。6.2、主程序设计软件主程序是系统的监控程序,主要完成初始化,控制程序的流向,调用子程序等功能。其工作流程如图6所示。上电复位后,程序开始运行。首先是初始化的工作。包括:单片机I/O口及内部寄存器变量初始化,使整个系统处于一个确定的工作状态。 定时器TO和T1的初值的设置:定时计数器Tl用作串口通信的波特率发生器,波特率为9600bits;定时计数器T0用作定时计数器,定时时间为65ms。 中断请求控制寄存器的设置,包括定时计数器的中断标志、外中断1的触发方式控制位、串行发送接收中断标志、中断的使能。LED显示器工作状态寄存器的设置,包括译码方式选择、亮度调节、扫描位数设定、待机开关。 读卡芯片工作寄存器的设置,包括缓冲区、天线、询卡操作的相关寄存器的设置。然后进入循环状态,依次询问是否需要回铃、呼叫用户、设置管理RFID卡(新卡注册或旧注销)等。YN读卡写卡是写卡 图6 主程序工作流程图 6.3、MF RC522应用子程序设计单片机对Mifare非接触式智能卡的控制是通过MF RC522来实现的,MF RC522是单片机和MIFAR目接触式智能卡之间的通信载体。单片机对MF RC522的控制是以单片机发出MF RC522的指令来达到的,MF RC522收到指令之后执行这些指令。单片机对MFRC522的某一指令操作不是简单的一条指令所能完成的,必须有一个程序的序列来完成,其中有对MF RC522硬件内核寄存器的读、写以及根据读出的硬件内核寄存器的内容进行语言软件上的判断和设置。6.31、AT89C52对MF RC522的初始化写41H到寄存器RxControl2: 译码源来自内部写5BH到寄存器TxControl: 使能TXl和TX2脚,设置调制源来自内部写ADH到寄存器BitPhase: 设置天线的位相值写OOH到寄存器MfOutSelect: 设MFOUT引脚为低电平6.32、AT89C52对MF RC522的操作AT89C52是通过对MF RC522的控制来实现对Mi fare l卡的读写操作,所以在软件上我们首先要设计好AT89C52对MF RC522的控制,主要有以下三方面:(1)设置MF RC522的状态:(2)通过读MF RC522的状态标志来监视MF RC522的工作情况;(3)发送命令,要求MF RC522执行相应的动作。实现上述的控制操作都是通过读写MF RC522的寄存器来实现的:设置MFRC522就是设置寄存器的某些位;监测MF RCS00即读状态寄存器的标志位;执行命令要向命令寄存器写入命令代码以及通过FIFO缓冲寄存器向缓冲区写入令参数。6.33、AT89C52对MF RC522的控制指令AT89C52对MF RC522的控制过程是:AT89C52先通过FIFO缓冲区将指令写到Command寄存器中,而后MF RC522读取这个寄存器,即执行这些指令。MF RC522的指令主要有:Request std,Request atl,Anticollision,Select,Loadkey,Authentication(Auth la,Auth lb),Read,Write,Increment,Decrement,Restore,Transfer,Halt等等。指令的启动只需要将相关的命令代码写到Command寄存器中,执行命令所需要的变量和数据都是通过FIFO缓冲区来传递,读这个寄存器就可以知道正在执行哪条命令。7、PCB图8、 原理图9、元器件清单1.AT89C522.40P底座3.8P IC底座4.8P母座(IC读写卡专用)5.LED*2(红、绿)6.12M晶振7.30P瓷片电容*28.10uf电解电容9.10K电阻10.1K电阻*411.16P液晶底座12.103电位器13.继电器14.9*15万用板15.3V纽扣电池(含底座)16.DS1302芯片17.32.768K晶振18.1602液晶19.按键*620.自锁开关21.DC电源插口22.USB电源线23.导线若干24.蜂鸣器25.8550三极管*226.IC读写模块27.IN4007二极管*310、实物图11、结束语非接触式IC卡具有接触式IC卡、磁卡等其它卡类不可比拟的优势,应用范围广泛,能够在大多数场合代替接触式IC卡的使用。针对不同的应用场合,非接触式IC卡可以使用同一种IC卡,但是读卡器必须针对不同的应用场合单独设计。因此,非接触式IC卡门禁系统正在被世界各地的政府机关、银行、厂矿企业和智能大厦等部门广泛应用,呈现出方兴未艾之势。本论文取得了以下的成果:完成了系统硬件的整体设计。主电路采用AT89C52作为核心芯片。完成了系统软件的设计。系统软件根据与系统硬件之间的协议和系统规划的功能,采用了模块化设计。12、参考文献1刘守义主编 智能卡技术 西安 西安电子科技大学出版社出版 20042 吴晓苏 张中明主编 单片机原理与接口技术 北京 人民邮电出版社出版 20053 王汝琳主编 智能门禁控制系统北京 电子工业出版社出版 20044梁楚樵 基于Mifare非接触式IC卡的射频识别系统研究与实现【学位论文】武汉 武汉理工大学 20055 黄筱霞 IC卡门禁系统的设计北京工商大学学报 20036 刘丽丽 非接触式智能卡系统研究与开发北京 北京化工大学 2004
展开阅读全文