基于单片机的IC卡门禁系统-毕业设计

上传人:仙*** 文档编号:218210772 上传时间:2023-06-18 格式:DOC 页数:60 大小:809.54KB
收藏 版权申诉 举报 下载
基于单片机的IC卡门禁系统-毕业设计_第1页
第1页 / 共60页
基于单片机的IC卡门禁系统-毕业设计_第2页
第2页 / 共60页
基于单片机的IC卡门禁系统-毕业设计_第3页
第3页 / 共60页
资源描述:

《基于单片机的IC卡门禁系统-毕业设计》由会员分享,可在线阅读,更多相关《基于单片机的IC卡门禁系统-毕业设计(60页珍藏版)》请在装配图网上搜索。

1、 2013届本科生毕业设计题 目: 基于单片机IC卡门禁系统的设计与实现 院(系): 机械与电子信息工程学院 专业年级: 2013级电信专升本 姓 名: 陈 诚 学 号: 2013080102 指导教师: 唐永刚 教授 2015年 03月20日Title: microcontroller-based temperature control system fountainsDepartment: College of the system of energy saving and safetyMajor: Electronic and Information Engineering Author

2、: Chen cheng Student ID: 2013080102 Instructor: Tang Yonggang Professor March 20th,2015摘要 随着科学技术的进步,IC卡门禁系统在日常生活中的应用越来越普及。比如公司、写字楼出入口门禁制系统采取以感应卡来取代用钥匙开门的方式。使用者用一张卡可以打开多把门锁, 对门锁的开启也可以有一定的时间限制。如果卡丢失了,不必更换门锁,只需将其从控制主机中注销。出入口门禁控制系统是通过对出入口的准入情况进行控制、管理和记录的设备,对何人何时在何地进行详细跟踪,以实现中心对出入口的24小时控制、监视及管理等。 本系统以89C

3、51系列单片机STC89C52为控制核心,利用非接触式高频Mifare IC卡模块读取用户手中的IC卡信息,识别成功后与系统存储的IC卡库数据进行比对校验,如果IC卡数据库中有IC卡则证明IC卡合法,单片机通过控制继电器控制电子锁门禁开启和关闭。同时系统采用4X4矩阵键盘作为输入,LCD1602液晶作为人机交互显示,让系统具备更大的实用价值。关键词:STC89C52;4X4键盘;IC卡;LCD1602;MifareAbstract With the progress of science and technology, access control systems used in daily

4、life is more and more popular. The gate entrance control system to replace open a door with a key way to induction card. A user with a card can open the lock on the door lock, the opening can also have a certain time limit. If the card is lost, do not have to change the locks, the cancellation of it

5、s control from the host. The gate entrance control system through control, equipment management and records of the admittance of entrance to whom, when and where to detailed tracking, to achieve the center on the entrance 24 hours control, monitoring and management. This system uses 89C51 Series MCU

6、 STC89C52 as the control core, the use of contactless IC card information of high frequency Mifare IC card module to read the users hands, ratio of IC are checking data recognition after successful and storage system, if there is evidence that the IC card IC card IC card database legal, chip by cont

7、rolling the relay control electronic lock opening and closing. At the same time the system uses the 4X4 matrix keyboard as input, LCD1602 liquid crystal display as human-computer interaction, can complete the IC card information through the keyboard to add, delete and other tasks, to make the system

8、 more practical value.Key words: STC89C52;4X4 keybord;IC card;LCD1602;Mifare目 录1 系统总体方案设计31.1 系统设计原理31.2 硬件方案的选择31.2.1 主控制芯片的选择31.2.2 显示模块的选择41.2.3 电源电路的比较与选择41.2.4 键盘输入电路的选泽51.2.5 电子锁门禁驱动电路的选择51.2.6 数据存储芯片的选泽62 系统的硬件设计72.1 单片机最小系统设计72.1.1 STC89C52单片机介绍7 2.2 IC卡原理及驱动电路设计92.2.1 Mifare射频卡技术参数92.2.2 IC

9、卡内部结构介绍92.2.3 IC卡读写过程112.2.4 单片机与IC卡读卡模块接口电路设计112.3 键盘电路设计112.3.1 键盘识别原理112.3.2 键盘电路及键盘按键定义122.4 电子锁门禁继电器驱动电路设计122.4.1 继电器介绍122.4.2 继电器驱动电路设计132.5 LCD1602液晶显示电路设计132.5.1 LCD1602液晶介绍132.5.2 单片机与LCD1602液晶接口介绍143 系统的软件设计153.1 系统总程序设计153.2 IC卡读写子程序设计163.3 键盘扫描程序的设计173.4 LCD1602液晶显示子程序183.5 电子锁门禁开关子程序设计1

10、93.6 报警子程序设计204 系统的焊接与调试214.1 系统硬件焊接与调试214.2 系统软件调试21结语23参考文献25附录一 电路图26附录二、程序源代码261 系统总体方案设计1.1 系统设计原理 本系统是基于STC89C52单片机设计的IC卡门禁系统。系统由两个部分构成:硬件电路部分和软件部分。硬件部分主要是电路板的设计与制作,软件部分主要是各个模块的驱动及总程序调试与实现。 硬件电路主要由:51单片机最小系统、射频IC卡模块、LCD1602液晶显示模块、报警提示模块、4X4键盘模块、电子锁继电器模块、电源模块等构成。设计硬件电路结构如下图所示。电源模块LCD1602液晶显示模块I

11、C卡读卡模块单片机STC89C52蜂鸣器/LED报警提示模块4X4键盘模块电子锁门禁继电器驱动模块时钟电路图1.1 系统总体框图1.2 硬件方案的选择 1.2.1 主控制芯片的选择 方案一:采用ARM9微处理器作为控制器。 ARM9引系列处理器是英国ARM公司设计的主流嵌入式处理器 ARM9内核是0.9MIPS/MHz的三级流水线和冯诺伊曼结构; ARM9内核是5级流水线,提供1.1MIPS/MHz的哈佛结构。 ARM7没有MMU,ARM720T是MMU的 ,ARM9主要包括ARM9TDMI和ARM9E-S等系列ARM9是有MMU的,ARM940T只有Memory protection uni

12、t.不是一个完整的MMU。ARM7是典型的微处理器,体积小、处理能力强、功耗低,但价格昂贵,会照成产品成本增加。 方案二:采用STC89C52单片机作为为控制 STC89C52单片机是对目前所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash技术的发展,8031单片机取得了长足的进展,成为目前应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前很多公司都有51系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种

13、。需要注意的是52系列的单片机一般不具备自编程能力。51成本低廉,使用方便,适合与本系统的温度检测与控制。 综上分析,我们采用了第二个方案,即采用STC89C52单片机作为主控制芯片。1.2.2 显示模块的选择 方案一:采用数码管显示。 数码管显示具有亮度高、显示简单简洁、成本低廉,可靠性高、响应速度快等有点。但如果采用想要显示要想让能见度较远并且醒目的同时又要显示汉字、图片等丰富的信息,则需要的液晶屏就要足够大成本也就很高。电路复杂需器件也高。 方案二:采用LCD1602液晶显示. LCD128X64 是一种具有4 位/8 位并行、2 线或3 线串行多种接口方式,内部含有国标一级、二级简体

14、中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192 个16*16 点汉字,和128 个16*8 点ASCII 字符 集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。 LCD1602液晶器件与数码管显示模块相比,在硬件电路结构或显示程序都要简洁得多,且该器件的价格始终,批量价格更低。而且显示平稳、省电、美观,更容易实现题目要求,对后续的功能兼容性高。软件操作简单,可操作性强。 综上分析,我们采用了第二个方案。1.2.3 电源电路的比较与选择 方案一:采用USB供电 电脑的电源是通过电脑适配器将220V AC 转换成了12V DC直流,电脑U

15、SB接口可以提供稳定的5V直流电压。完全能够满足5V单片机系统的供电需要,并且电源稳定、即插即用,功耗低使用非常方便。 方案二:自制直流稳压电源模块。将插线板电源经过变压、整流、滤波、稳压后输出。为系统提供稳定可靠的电源。自制电源会增加硬件成本,同时高压转抵押也带来不稳定等因素,因此不采用此方法。 由于USB供电具有即插即用的特点,方便实用,因此我们选择第一个方案。1.2.4 键盘输入电路的选泽 方案一:采用独立按键电路输入 独立按键结构简单使用它方便,只需要单片机IO口和地跨接即可,当按下按键时候单片机IO口电压被拉低,单片机就可以检测到此电压的变化,一次来判断是否有按键按下。但缺点是占用较

16、多的IO口资源。本系统需要按键数目较多,因此此方法不可行。 方案二:采用4*4矩阵键盘模块。 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是不合理的。 综上,本系统设计的门禁系统,需要输入密码至少需要0-9 确认、退出等功能按键,因

17、此举证键盘是最好的选择,故选择方案2。1.2.5 电子锁门禁驱动电路的选择 方案一:采用S8550三极管、继电器驱动。 S8550是一种常用的普通三极管。 它是一种低电压,大电流,小信号的PNP型硅三极管。三极管驱动具有电路结构简单,成本低廉等特点。 继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。 本系统采用S885

18、0三极管增大驱动电流以驱动继电器开关,进而来控制电子锁部件。 方案二:采用L298N驱动芯片。 L298N 是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,功率部分的供电电压范围是2.5-48v,逻辑部分5v供电,接受5vTTL电平。LN298内部继承大功率H桥路。具有稳定性高、使用简单,驱动力大等特点。 光耦合器亦称光电隔离器或光电耦合器,简称光耦。它是以光为媒介来传输电信号的器件,通常把发光器(红外线发光二极管LED)与受光器(光敏半导体管)封装在同一管壳内。当输入端加电信号时发光器发出光线,受光器接受光线之后就产生光电流,从输出端流出,从而实现了“电光电”转换 由于L298N芯

19、片器件成本较高,会大大加大开发成本,同时光耦元件适用于高速低电压的开关场合,因此本方案不可取。 综上分析,我们采用了第二个方案。1.2.6 数据存储芯片的选泽 方案一:采用单片机自带的EEPROM存储数据。 STC89C52单片机片内自带了2K的EEPROM闪存。改闪存可以反复擦除和读写很多次,使用起来方便快捷、而且不增加成本。 方案二:采用AT24C02存储芯片。 AT24C02是TI公司退出的典型的基于IIC总线协议的DIP8封装的偏外存储芯片。其内部是一个2K位串行CMOS E2PROM, 内部含有256个8位字节。AT24C02支持I2C,总线数据传送协议I2C,总线协议规定任何将数据

20、传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。但此芯片价格昂贵,需要增加外部电路和硬件成本,因此不可取。 综上分析,我们采用了第一个方案。2 系统的硬件设计 整个系统硬件电路由:单片机最小系统、4X4键盘模块、LCD1602液晶显示模块、IC卡读卡模块、电子锁门禁继电器驱动模块、数据存储模块等组成。系统硬件电路设计如下:2.1 单片机最小系统设计2.1.1 STC89C52单片机介绍 STC89C52是STC公司生产的一种低功耗、高性能C

21、MOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静

22、态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。2.1.2 52最小系统电路设计 52单片机最小系统一般有:52单片机、电源模块、复位电路、时钟电路构成。 (1)复位电路设计 单片机的复位分为上电自动复位和按钮手动复位两种。 上电复位电路:由22uf电解电容和10K电阻构成。原理是上电瞬间,电容充电电流最大,电容相当于短路,RST端为高电平,自动复位;电容两端的电压达到电源电压时,电容充

23、电电流为零,电容相当于开路,RST端为低电平,程序正常运行。 按键手动复位电路:电路由按键、10K电阻、1K电阻、22uf构成。原理是首先经过上电复位,当按下按键时,RST直接与VCC相连,为高电平形成复位,同时电解电容被短路放电;按键松开时,VCC对电容充电,充电电流在电阻上,RST依然为高电平,仍然是复位,充电完成后,电容相当于开路,RST为低电平,正常工作。 这里我们采用按键复位来实现,电路图如下。图2.1 复位电路(2)时钟电路设计 时钟电路用于产生单片机所需要的时钟信号,单片机在时钟信号的控制下各部件之间同步协调工作。根据产生的方式不同,分为内部和外部两种时钟电路。 在51芯片内部有

24、一个用于构成振荡器的高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,在引脚XTAL1和XTAL2上输出3V左右的正弦波,这就是单片机的振荡电路,如图3.5所示。图2.2 系统时钟电路 通常,电容C1和C2取30pf左右,主要作用是帮助振荡器起振,晶体的振荡频率范围是1.212MHz。晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。在通常应用情况下,STC89C52使用振荡频率为6MHz或12MHz。在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应

25、当引入唯一的公用外部脉冲信号作为各单片机的振荡脉冲。这是,外部的脉冲信号时经过XTAL2引脚注入,其连接如图3.5所示,由于XTAL2端逻辑电平不是TTL的,故需要外接一个上拉电阻,外接信号应为时钟频率低于12MHz的方波信号。2.2 IC卡原理及驱动电路设计2.2.1 Mifare射频卡技术参数 (1)容量为8K位(bits)=1K字节(bytes)EEPROM (2)分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位 (3)每个扇区有独立的一组密码及访问控制 (4)每张卡有唯一序列号,为32位 (5)具有防冲突机制,支持多卡操作 (6)无电源,自带天线,内含加密控制逻辑和通讯逻

26、辑电路 (7)数据保存期为10年,可改写10万次,读无限次 (8)工作温度:-2050(湿度为90%) (9)工作频率:13.56MHZ (10)通信速率:106 KBPS (11)读写距离:10 cm以内(与读写器有关)2.2.2 IC卡内部结构介绍 M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为063,存贮结构如下图所示: 扇区0 块0 数据块0块1数据块1块2数据块2块3密码A 存取控制 密码B控制块3 扇区1块0数据块4块1数据块5块2数据块6块3密码A 存取控制 密码B控制块7 扇区15 0数据块60 1数据块61

27、2数据块62 3密码A 存取控制 密码B控制块63图2.3 IC卡存储结构图 (2)第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。 (3)每个扇区的块0、块1、块2为数据块,可用于存贮数据。 数据块可作两种应用: 用作一般的数据保存,可以进行读、写操作。 用作数据值,可以进行初始化值、加值、减值、读值操作。 (4)每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下:A0 A1 A2 A3 A4 A5 FF 07 80 69 B0 B1 B2 B3 B4 B5 密码A(6字节) 存取控制(4字节) 密码B(6字节) (5)每个扇区的密码和存取控制都是

28、独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下: 块0: C10 C20 C30 块1: C11 C21 C31 块2: C12 C22 C32 块3: C13 C23 C33 三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如 进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制位在存取控制字节中的位置,以块0为例: 对块0的控制: bit 7 6 5 4 3 2 1 0字节6C20_b

29、C10_b字节7C10C30_b字节8C30C20字节9 存取控制(4字节,其中字节9为备用字节)结构如下所示: bit 7 6 5 4 3 2 1 0字节6C23_bC22_bC21_bC20_bC13_bC12_bC11_bC10_b字节7C13C12C11C10C33_bC32_bC31_bC30_b字节8C33C32C31C30C23C22C21C20字节9 2.2.3 IC卡读写过程 非接触式IC卡的读写过程:通常由非接触式IC卡与读写器之间通过无线电波来完成读写操作。非接触型IC卡本身是无源体, 当读写器对卡进行读写操作时, 读写器发出的信号由两部分叠加组成:一部分是电源信号,该信

30、号由卡接收后, 与其本身的L/C产生谐振, 产生一个瞬间能量来供给芯片工作。另一部分则是结合数据信号,指挥芯片完成数据、修改、存储等, 并返回给读写器。由非接触式IC卡所形成的读写系统, 无论是硬件结构, 还是操作过程都得到了很大的简化,同时借助于先进的管理软件,可脱机的操作方式, 都使数据读写过程更为简单。2.2.4 单片机与IC卡读卡模块接口电路设计 本系统单片机和IC卡读卡器模块通过5个IO口相连,驱动程序通过SPI总线模式实现IC卡的读写操作。IC卡读卡器与单片机接口电路如下图, 图2.4IC卡底座接口图图中编号1-8为射频刷卡模块的引脚图,分别是RST、CS SI SCK SO接口,

31、模块插接到这个底座上,就会对应和单片机的P10、P11 P12 P13 P14 相接。2.3 键盘电路设计2.3.1 键盘识别原理 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式,如图1所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显。 矩阵键盘的扫描通常采用:行扫描法。行扫描法又称为逐行(或列)扫描查询法,是一种最常用的按键识别方法,介绍过程如下。 (1)判断键盘中有无键按下 将全部行线置低电平,然后检测列线的状态

32、。只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平线与4根行线相交叉的4个按键之中。若所有列线均为高电平,则键盘中无键按下。 (2)判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。2.3.2 键盘电路及键盘按键设计 本系统中4X4矩阵键盘通过8个IO口与单片机相接,电路中我们用到了P1口。每个按键通过程序识别唯一的编号,然后在程序中对按键的键值进行在定义,让

33、按键具备新的功能。矩阵键盘电路及按键定义表如下:图2.5 键盘电路图0123456789确认退出设置+-密码清除 I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。2.4 电子锁门禁继电器驱动电路设计2.4.1 继电器介绍 继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、通讯、自动控制、机电一体化及电力电子设备中,是最重要的控制元件之一。 继电器一般都有能反映一定输入变量(如电流、电压、功率、阻抗、频率、温度、压力、速度

34、、光等)的感应机构(输入部分);有能对被控电路实现“通”、“断”控制的执行机构(输出部分);在继电器的输入部分和输出部分之间,还有对输入量进行耦合隔离,功能处理和对输出部分进行驱动的中间机构。2.4.2 继电器驱动电路设计 本系统设计的电子锁门禁系统,采用了一只PNP三极管S8550来驱动电路,其目的是增大驱动电流,因为继电器线圈驱动需要较大的电流才能启动,而单片机IO输出的电流非常微弱,达不到驱动的要求。 当单片机IO口输出低电平时S8550三极管导通,继电器线圈产生电磁感应将开关吸合,就接通了电子锁电源,电子锁就可以开了。当IO口给高电平时,线圈没有电流,继电器断开。图2.6 继电器驱动电

35、路图2.5 LCD1602液晶显示电路设计2.5.1 LCD1602液晶介绍 字符型液晶显示是一种专门用于显示字母、数字、符号等点阵式LCD,本设计采用的是LCD1602型液晶显示器,其外形尺寸为803614,单5V供电,由左到右共16个引脚,其实物如图 602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图3.13所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” 。2.5

36、.2 单片机与LCD1602液晶接口电路介绍 LCD1602液晶显示模块可以和单片机STC89C52直接接口,DB0DB7与单片机的P0.0P0.7连接以便数据的传送与接收,4管脚、5管脚、6管脚分别与STC89C51单片机的P2.7口、P2.6口、P2.5口连接,电路如下图所示:图2.7 液晶接口电路图3 系统的软件设计3.1 系统总程序设计 系统上电后首先进行初始化,完成液晶、键盘等初始化任务。然后进入死循环,单片机控制IC卡模块时时扫描判断是否有IC靠近,当靠近时,启动IC卡读取程序,识别IC卡卡片信息后,与AT24C02芯片内存储的IC卡数据库信息进行比对,如果校验成功则控制门禁开,反

37、之则不开门禁。整个过程LCD1602液晶显示操作过程及数据信息。 系统主流程图如下。 图3.1 系统主程序流程图3.2 IC卡读写子程序设计 IC卡读写卡的过程一般包含如下几个步骤: (1)复位应答(Answer to request) 射频卡的通讯协议和通讯波特率是定义好的,当有卡片进入读写器的操作范围时,读写器以特定的协议与它通讯,从而确定该卡是否为M1射频卡,即验证卡片的卡型。 (2)防冲突机制 (Anticollision Loop) 当有多张卡进入读写器操作范围时,防冲突机制会从其中选择一张进行操作,未选中的则处于空闲模式等待下一次选卡,该过程会返回被选卡的序列号。 (3)选择卡片(

38、Select Tag) 选择被选中的卡的序列号,并同时返回卡的容量代码。 (4)三次互相确认(3 Pass Authentication) 选定要处理的卡片之后,读写器就确定要访问的扇区号,并对该扇区密码进行密码校验,在三次相互认证之后就可以通过加密流进行通讯。(在选择另一扇区时,则必须进行另一扇区密码校验。) IC卡读写流程图如下图:3.2 IC卡读写操作流程图3.3 键盘扫描程序的设计 每个按键有它的行值和列值口,行值和列值的组合就是识别这个按键的编码。矩阵的行线和列线分别通过两并行接口和CPU通信。键盘处理程序的任务是:确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合

39、或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键,通过软件查表,查出该键的功能。图3.3 矩阵键盘子程序流程图3.4 LCD1602液晶显示子程序 1602液晶是字符型液晶,它的内部自带字符库,它可以写两行的字符,同时每行可以写40个字符。液晶显示程序流程图如下图所示: LCD1602液晶显示程序流程图如图下所示开始LCD初始化LCD写命令LCD判忙设置显示位置写数据判忙结束P0.7=0 ?P0.7=0 ?写完成了?写完成了?是否否否否是是是图3.4 LCD1602液晶显示子程序流程图 从此流程图我们得出:

40、LCD液晶显示屏在写显示程序的时候,我们要先写命令,再设定字符显示和汉字的位置,最后写数据,在每写一次命令或数据都需要判断液晶是否忙。打开液晶显示屏进入初始化状态,开始写命令,首先判断LCD是否忙,如果是P0.7=0,那么进入下一步写命令,如果不是P0.7=0,返回LCD是否忙。3.5 电子锁门禁开关子程序设计 本系统的电子锁门禁开关,单片机只需要输出高低电平即可。当输出高电平时门禁关、低电平门禁开。程序流程如下:图3.5 门禁系统开关子程序流程图3.6 报警子程序设计 本系统的报警提示是通过蜂鸣器和LED来实现的,根据报警电路原理,报警是通过一个IO口来实现的,当IO口输出低电平,蜂鸣叫叫且

41、LED亮;当I/O口输出高电平,蜂鸣器不叫且LED灭。报警提示子程序流程如下:图3.6 蜂鸣器/LED报警子程序流程图4 系统的焊接与调试4.1 系统硬件焊接与调试 根据系统设计方案,本系统的调试可分为两大部分:模拟部分和纯MCU部分。由于在系统设计中采用模块化设计,所以方便了对各电路功能模块的逐级测试。断开两部分的连接点,先调试MCU部分。试着输入一系列脉冲(用适当的电阻接正极,间断性地输入),观察MCU部分能是否能显示;模拟借助示波器观察波形效果如何。单片机软件先在最小系统板上调试,确保工作正常之后,再与硬件系统联调。最后将各模块组合后进行整体测试,使系统的功能得以实现。1.12864液晶

42、不显示或有乱码 确保程序与硬件接法都没有错;这时候你应该检查一下单片机是否工作,看看它是否在工作电压的范围(我当时的问题就出在这里,Vcc接入单片机时经过了一个10K电阻和发光二极管,导致输入单片机的电压很少,单片机没工作,所以不显示);看看端口设置有没有错(12864的驱动等)。 12864液晶乱码问题是由于KEIL没有打补丁照成的。需要打补丁后重新编译程序即可解决。 2. 时钟的调试 根据晶体振荡频率计算出内部定时器的基本参数,通过运行一段时间可通过秒表来校正后,看时间误差的量,以这个量为依据改变程序中的内部定时器基本参数,就可使时钟调准确。3. IC卡识别率较低 IC卡识别率低问题可能有

43、:(1)电源部分没有做滤波处理;(2)IO口没有加上拉电阻导致驱动力减弱。4.键盘反应迟钝。 键盘反应迟钝问题一般是去抖动时间太长照成的,应根据测试,看去抖的最佳时间,适当可以结合示波器观察。4.2 系统软件调试 系统软件调试采用KeilC51编译器进行源程序编译及仿真调试,同时进行硬件电路板的设计制作。将设计的程序通过编程器下载到单片机STC89C52单片机中,再将单片机插入插座里,给制作的实物连通电源。即可完成程序下载。 下载过程中,若出现现在失败,是以因为单片机需要断电上电才能下载。关闭电源从即可。前提是串口要找正确,单片机型号选择要正确。结 语 通过这次课设让我更深一步的了解的stc8

44、9C52的实际用处,也让我感受到单片机在实际中的重要性。本课题的主要任务是开发一个以89C51单片机为核心的IC卡门禁系统。 此课设的过程主要包括了硬件电路设计和软件程序的编写两个部分。从确定毕设题目,到查阅质料确定总体方案设计,总体方案论证,硬件电路的设计,硬件电路的优化,软件的设计,软件的优化,焊制硬件电路板,检验硬件电路,调试软件程序,到最后的软硬件联调,其中的每一个过程都是精心设计、仔细完成的。在项目即将完成之际,也意味着是我们大学即将圆满完成,此时此刻,我的心情无法平静,从开始进入课题到项目的顺利完成,有多少可敬的老师、亲爱的同学和朋友给了我们无尽的帮助,在这里请接受我诚挚的谢意!

45、首先,我要感谢我的指导老师刘老师治学严谨,学识渊博,待人热情,平易近人,使我们在毕业设计的过程中遇到难题时,能够大胆的向老师提出问题,老师也总是及时而又耐心的帮我解答。项目选题后,在项目资料查询、调研、开题、研究设计和论文撰写的每一个环节,都得到了刘老师的悉心指导和帮助。在此我向刘老师表示衷心的感谢! 同时,我还要感谢所有任课老师和系部领导,感谢他们对我们学习上和上活上的关心与支持,他们不仅传授了我丰富的知识,还教会了为人处事的原则,这些都让我在设计的过程中有一个良好的心态,并能让我终身受益。 最后,我再次对所有帮助我们、关心我们和支持我们的老师、家人、同学、朋友致以最崇高的敬意!谢谢大家参考

46、文献1 常斗南. 可编程序控制器原理应用实验M. 北京:机械工业出版社,1998.72 吕汀,石红梅. 变频器技术原理与应用M. 北京:机械工业出版社,2003,263-2683 Xue Shilong Chen Yihui. The Marine Anchor And winchs Frequency-conversion And Speed-modification System Based on PLC Control.IMECE.2003.4何立民单片机技术的现状与未来J中国计算机报19955曹明扬单片机发展动向及市场预测J计算机世界19966宋浩,田丰单片机原理及应用M清华大学出版社

47、7张洪润,易涛单片机应用技术教程M清华大学出版社8刘洋音乐喷泉与变频调速技术J考试周刊2007年第29期9王宗和,童一帆单片机实验与综合训练M高等教育出版社2005.1210蒋燕君基于AT89C2051的步进电机精确控制系统的实现J浙江树人大学学报2006.611Intel Corporation MCS-51 MICROCONTROLLER FAMILY USERS MANULMUSA1994.212 Atmel AT89C51 MICROCONTROLLER FAMILY USERS MANULMUSA1995.4附录一 电路图附录二、程序源代码#include include.h#inc

48、lude key.h#include stc89c5x_eerom.hsbit JDQ=P16;sbit LED=P17;uchar flag1=0;INT8U CardRevBuf16 = 0 ;void init_all(void)EA = 0;init_rc522();init_lcd();EA = 1;void display_no_id( void )DisplayListChar( 0, 0, ID: );DisplayListChar( 0, 1, OFF );void display_id( INT8U * SrcBuf )char DisplayBuf10;char *pDi

49、splayChar;INT8U Tmp, i;pDisplayChar = DisplayBuf;for( i = 0; i 4 ) & 0x0F;if( ( Tmp =0 ) & ( Tmp =0 ) & ( Tmp 59) SS=0; MM+; if(MM59) MM=0;HH+;if(HH23) HH=0; DA+; if(DA30) DA=1; MO+; if(MO12) MO=1; YE+; if(YE99) YE=0; /* - 函数名称:dis_timer() - 隶属模块:time.h - 函数属性:内部 - 参数说明:无返回值,无带入参数 - 返回说明:无 - 功能描述:系统

50、时钟显示界面、设置时钟显示界面 */void dis_timer()/时钟日期显示函数uchar m;/定义一个变量用于闪烁临时计数 m=SS&0x01;/通过m变量的取值来实现变量闪烁 DisplayListChar(0,0,20);/显示固定字符20/*-“年份”显示代码部分-*/ if(counter11=7)/年变量处于设置状态,1秒钟闪烁一次 if(m=0)/如果m=0,就将年显示出来 lcd_goto_xy(2,0);lcd_number(YE/10);lcd_number(YE%10); else /则显示空格字符。 lcd_goto_xy(2,0);lcd_putc( );lcd_putc( ); else /否则年变量不处于修改状态,直接显示年 lcd_goto_xy(2,0);lcd_number(YE/10);lcd_

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!