




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
20132013 届本科生毕业设计届本科生毕业设计 题 目: 基于单片机 ic 卡门禁系统的设计与实现 院院 ( ( 系系 ) ): : 机械与电子信息工程学院机械与电子信息工程学院 专业年级专业年级: : 20132013 级电信专升本级电信专升本 姓姓 名名: : 陈陈 诚诚 学学 号号: : 20130801022013080102 指导教师指导教师: : 唐永刚唐永刚 教授教授 20152015 年年 0303 月月 2020 日日 title: microcontroller-based temperature control system fountains department: college of the system of energy saving and safety major: electronic and information engineering author: chen cheng student id: 2013080102 instructor: tang yonggang professor march 20th,2015 摘要 随着科学技术的进步,ic 卡门禁系统在日常生活中的应用越来越普及。比如公 司、写字楼出入口门禁制系统采取以感应卡来取代用钥匙开门的方式。使用者用 一张卡可以打开多把门锁, 对门锁的开启也可以有一定的时间限制。如果卡丢失 了,不必更换门锁,只需将其从控制主机中注销。出入口门禁控制系统是通过对 出入口的准入情况进行控制、管理和记录的设备,对何人何时在何地进行详细跟 踪,以实现中心对出入口的 24 小时控制、监视及管理等。 本系统以 89c51 系列单片机 stc89c52 为控制核心,利用非接触式高频 mifare ic 卡模块读取用户手中的 ic 卡信息,识别成功后与系统存储的 ic 卡库数据进行 比对校验,如果 ic 卡数据库中有 ic 卡则证明 ic 卡合法,单片机通过控制继电 器控制电子锁门禁开启和关闭。同时系统采用 4x4 矩阵键盘作为输入,lcd1602 液晶作为人机交互显示,让系统具备更大的实用价值。 关键词:关键词:stc89c52;4x4键盘;ic卡;lcd1602;mifare abstract with the progress of science and technology, access control systems used in daily 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 its 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 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 controlling 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 more practical value. key words: stc89c52;4x4 keybord;ic card;lcd1602;mifare 目 录 1 系统总体方案设计系统总体方案设计3 1.1 系统设计原理3 1.2 硬件方案的选择3 1.2.1 主控制芯片的选择3 1.2.2 显示模块的选择4 1.2.3 电源电路的比较与选择4 1.2.4 键盘输入电路的选泽5 1.2.5 电子锁门禁驱动电路的选择5 1.2.6 数据存储芯片的选泽6 2 2 系统的硬件设计系统的硬件设计7 2.1 单片机最小系统设计7 2.1.1 stc89c52 单片机介绍.7 2.2 ic 卡原理及驱动电路设计.9 2.2.1 mifare 射频卡技术参数9 2.2.2 ic 卡内部结构介绍.9 2.2.3 ic 卡读写过程.11 2.2.4 单片机与 ic 卡读卡模块接口电路设计11 2.3 键盘电路设计11 2.3.1 键盘识别原理11 2.3.2 键盘电路及键盘按键定义12 2.4 电子锁门禁继电器驱动电路设计12 2.4.1 继电器介绍12 2.4.2 继电器驱动电路设计13 2.5 lcd1602 液晶显示电路设计.13 2.5.1 lcd1602 液晶介绍.13 2.5.2 单片机与 lcd1602 液晶接口介绍14 3 3 系统的软件设计系统的软件设计15 3.1 系统总程序设计15 3.2 ic 卡读写子程序设计.16 3.3 键盘扫描程序的设计17 3.4 lcd1602 液晶显示子程序.18 3.5 电子锁门禁开关子程序设计19 3.6 报警子程序设计20 4 4 系统的焊接与调试系统的焊接与调试21 4.1 系统硬件焊接与调试21 4.2 系统软件调试21 结语结语23 参考文献参考文献25 附录一附录一 电路图电路图26 附录二、程序源代码附录二、程序源代码26 1 1 系统总体方案设计 1.1 系统设计原理 本系统是基于 stc89c52 单片机设计的 ic 卡门禁系统。系统由两个部分构成: 硬件电路部分和软件部分。硬件部分主要是电路板的设计与制作,软件部分主 要是各个模块的驱动及总程序调试与实现。 硬件电路主要由:51 单片机最小系统、射频 ic 卡模块、lcd1602 液晶显示 模块、报警提示模块、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 unit.不是一个完整的 mmu。arm7 是典型的微处理器,体积小、处 理能力强、功耗低,但价格昂贵,会照成产品成本增加。 单片机 stc89c52 电源模块 时钟电路 lcd1602 液晶显示模块 4x4 键盘模块 ic 卡读卡模块 蜂鸣器/led 报警提示模块 电子锁门禁继电器驱动模块 2 方案二:采用 stc89c52 单片机作为为控制 stc89c52 单片机是对目前所有兼容 intel 8031 指令系统的单片机的统称。 该系列单片机的始祖是 intel 的 8031 单片机,后来随着 flash 技术的发展, 8031 单片机取得了长足的进展,成为目前应用最广泛的 8 位单片机之一,其代 表型号是 atmel 公司的 at89 系列,它广泛应用于工业测控系统之中。目前很多 公司都有 51 系列的兼容机型推出,在目前乃至今后很长的一段时间内将占有大 量市场。51 单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注 意的是 52 系列的单片机一般不具备自编程能力。51 成本低廉,使用方便,适 合与本系统的温度检测与控制。 综上分析,我们采用了第二个方案,即采用 stc89c52 单片机作为主控制芯片。 1.2.2 显示模块的选择 方案一:采用数码管显示。 数码管显示具有亮度高、显示简单简洁、成本低廉,可靠性高、响应速度快 等有点。但如果采用想要显示要想让能见度较远并且醒目的同时又要显示汉字、 图片等丰富的信息,则需要的液晶屏就要足够大成本也就很高。电路复杂需器 件也高。 方案二:采用 lcd1602 液晶显示. lcd128x64 是一种具有 4 位/8 位并行、2 线或 3 线串行多种接口方式,内 部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率 为 12864, 内置 8192 个 16*16 点汉字,和 128 个 16*8 点 ascii 字符 集. 利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互 图形界面。 lcd1602 液晶器件与数码管显示模块相比,在硬件电路结构或显示程序都要 简洁得多,且该器件的价格始终,批量价格更低。而且显示平稳、省电、美观, 更容易实现题目要求,对后续的功能兼容性高。软件操作简单,可操作性强。 综上分析,我们采用了第二个方案。 1.2.3 电源电路的比较与选择 方案一:采用 usb 供电 电脑的电源是通过电脑适配器将 220v ac 转换成了 12v dc 直流,电脑 usb 3 接口可以提供稳定的 5v 直流电压。完全能够满足 5v 单片机系统的供电需要, 并且电源稳定、即插即用,功耗低使用非常方便。 方案二:自制直流稳压电源模块。将插线板电源经过变压、整流、滤波、稳 压后输出。为系统提供稳定可靠的电源。自制电源会增加硬件成本,同时高压 转抵押也带来不稳定等因素,因此不采用此方法。 由于 usb 供电具有即插即用的特点,方便实用,因此我们选择第一个方案。 1.2.4 键盘输入电路的选泽 方案一:采用独立按键电路输入 独立按键结构简单使用它方便,只需要单片机 io 口和地跨接即可,当按下按 键时候单片机 io 口电压被拉低,单片机就可以检测到此电压的变化,一次来判 断是否有按键按下。但缺点是占用较多的 io 口资源。本系统需要按键数目较多, 因此此方法不可行。 方案二:采用 4*4 矩阵键盘模块。 在键盘中按键数量较多时,为了减少 i/o 口的占用,通常将按键排列成矩阵 形式,如图 1 所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连 通,而是通过一个按键加以连接。这样,一个端口(如 p1 口)就可以构成 4*4=16 个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别 越明显,比如再多加一条线就可以构成 20 键的键盘,而直接用端口线则只能多 出一键(9 键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是 不合理的。 综上,本系统设计的门禁系统,需要输入密码至少需要 0-9 确认、退出等 功能按键,因此举证键盘是最好的选择,故选择方案 2。 1.2.5 电子锁门禁驱动电路的选择 方案一:采用 s8550 三极管、继电器驱动。 s8550 是一种常用的普通三极管。 它是一种低电压,大电流,小信号的 pnp 型硅三极管。三极管驱动具有电路结构简单,成本低廉等特点。 继电器是一种电控制器件,是当输入量(激励量)的变化达到规定要求时, 在电气输出电路中使被控量发生预定的阶跃变化的一种电器。它具有控制系统 (又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用 于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动 4 开关”。故在电路中起着自动调节、安全保护、转换电路等作用。 本系统采用 s8850 三极管增大驱动电流以驱动继电器开关,进而来控制电子 锁部件。 方案二:采用 l298n 驱动芯片。 l298n 是一种双 h 桥电机驱动芯片,其中每个 h 桥可以提供 2a 的电流,功率 部分的供电电压范围是 2.5-48v,逻辑部分 5v 供电,接受 5vttl 电平。ln298 内部继承大功率 h 桥路。具有稳定性高、使用简单,驱动力大等特点。 光耦合器亦称光电隔离器或光电耦合器,简称光耦。它是以光为媒介来传输 电信号的器件,通常把发光器(红外线发光二极管 led)与受光器(光敏半导 体管)封装在同一管壳内。当输入端加电信号时发光器发出光线,受光器接受 光线之后就产生光电流,从输出端流出,从而实现了“电光电”转换 由于 l298n 芯片器件成本较高,会大大加大开发成本,同时光耦元件适用于 高速低电压的开关场合,因此本方案不可取。 综上分析,我们采用了第二个方案。 1.2.6 数据存储芯片的选泽 方案一:采用单片机自带的 eeprom 存储数据。 stc89c52 单片机片内自带了 2k 的 eeprom 闪存。改闪存可以反复擦除和读写 很多次,使用起来方便快捷、而且不增加成本。 方案二:采用 at24c02 存储芯片。 at24c02 是 ti 公司退出的典型的基于 iic 总线协议的 dip8 封装的偏外存储 芯片。其内部是一个 2k 位串行 cmos e2prom, 内部含有 256 个 8 位字节。 at24c02 支持 i2c,总线数据传送协议 i2c,总线协议规定任何将数据传送到总 线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产 生串行时钟和所有起始停止信号的主器件控制的。通过器件地址输入端 a0、a1 和 a2 可以实现将最多 8 个 at24c02 器件连接到总线上。但此芯片价格昂贵,需 要增加外部电路和硬件成本,因此不可取。 综上分析,我们采用了第一个方案。 5 2 系统的硬件设计 整个系统硬件电路由:单片机最小系统、4x4 键盘模块、lcd1602 液晶显示模 块、ic 卡读卡模块、电子锁门禁继电器驱动模块、数据存储模块等组成。系统 硬件电路设计如下: 2.1 单片机最小系统设计 2.1.1 stc89c52 单片机介绍 stc89c52 是 stc 公司生产的一种低功耗、高性能 cmos8 位微控制器,具有 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 静态逻辑操作,支持 2 种软件可选 择节电模式。空闲模式下,cpu 停止工作,允许 ram、定时器/计数器、串口、 中断继续工作。掉电保护方式下,ram 内容被保存,振荡器被冻结,单片机一 切工作停止,直到下一个中断或硬件复位为止。最高运作频率 35mhz,6t/12t 可选。 2.1.2 52 最小系统电路设计 52 单片机最小系统一般有:52 单片机、电源模块、复位电路、时钟电路构成。 (1)复位电路设计 单片机的复位分为上电自动复位和按钮手动复位两种。 上电复位电路:由 22uf 电解电容和 10k 电阻构成。原理是上电瞬间,电容充 电电流最大,电容相当于短路,rst 端为高电平,自动复位;电容两端的电压 达到电源电压时,电容充电电流为零,电容相当于开路,rst 端为低电平,程 6 序正常运行。 按键手动复位电路:电路由按键、10k 电阻、1k 电阻、22uf 构成。原理是首 先经过上电复位,当按下按键时,rst 直接与 vcc 相连,为高电平形成复位, 同时电解电容被短路放电;按键松开时,vcc 对电容充电,充电电流在电阻上, rst 依然为高电平,仍然是复位,充电完成后,电容相当于开路,rst 为低电平, 正常工作。 这里我们采用按键复位来实现,电路图如下。 图 2.1 复位电路 (2)时钟电路设计 时钟电路用于产生单片机所需要的时钟信号,单片机在时钟信号的控制下各 部件之间同步协调工作。根据产生的方式不同,分为内部和外部两种时钟电路。 在 51 芯片内部有一个用于构成振荡器的高增益反相放大器,其输入端为芯片 引脚 xtal1,其输出端为引脚 xtal2。而在芯片的外部,xtal1 和 xtal2 之间跨 接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,在引脚 xtal1 和 xtal2 上输出 3v 左右的正弦波,这就是单片机的振荡电路,如图 3.5 所示。 7 图 2.2 系统时钟电路 通常,电容 c1 和 c2 取 30pf 左右,主要作用是帮助振荡器起振,晶体的振荡 频率范围是 1.212mhz。晶体振荡频率高,则系统的时钟频率也高,单片机运 行速度也就快。在通常应用情况下,stc89c52 使用振荡频率为 6mhz 或 12mhz。 在由多片单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入 唯一的公用外部脉冲信号作为各单片机的振荡脉冲。这是,外部的脉冲信号时 经过 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)无电源,自带天线,内含加密控制逻辑和通讯逻辑电路 (7)数据保存期为 10 年,可改写 10 万次,读无限次 (8)工作温度:-2050(湿度为 90%) (9)工作频率:13.56mhz 8 (10)通信速率:106 kbps (11)读写距离:10 cm 以内(与读写器有关) 2.2.2 ic 卡内部结构介绍 m1 卡分为 16 个扇区,每个扇区由 4 块(块 0、块 1、块 2、块 3)组成, (我们也将 16 个扇区的 64 个块按绝对地址编号为 063,存贮结构如下图所示: 图 2.3 ic 卡存储结构图 (2)第 0 扇区的块 0(即绝对地址 0 块),它用于存放厂商代码,已经固化, 不可更改。 块 0 数据块0 块 1数据块1 块 2数据块2 扇区 0 块 3密码 a 存取控制 密码 b控制块3 块 0数据块4 块 1数据块5 块 2数据块6 扇区 1 块 3密码 a 存取控制 密码 b控制块7 0数据块60 1数据块61 2数据块62 扇区 15 3密码 a 存取控制 密码 b控制块63 9 (3)每个扇区的块 0、块 1、块 2 为数据块,可用于存贮数据。 数据块可作两种应用: 用作一般的数据保存,可以进行读、写操作。 用作数据值,可以进行初始化值、加值、减值、读值操作。 (4)每个扇区的块 3 为控制块,包括了密码 a、存取控制、密码 b。具体结 构如下: 密码 a(6 字节) 存取控制(4 字节) 密码 b(6 字节) (5)每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的 密码及存取控制。存取控制为 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 字节 6 c20_bc10_b 字节 7c10 c30_b 字节 8c30c20 字节 9 存取控制(4 字节,其中字节 9 为备用字节)结构如下所示: bit 7 6 5 4 3 2 1 0 字节 6 c23_bc22_bc21_bc20_bc13_bc12_bc11_bc10_b 字节 7 c13c12c11c10c33_bc32_bc31_bc30_b 字节 8c33c32c31c30c23c22c21c20 字节 9 a0 a1 a2 a3 a4 a5 ff 07 80 69 b0 b1 b2 b3 b4 b5 10 2.2.3 ic 卡读写过程 非接触式 ic 卡的读写过程:通常由非接触式 ic 卡与读写器之间通过无线电 波来完成读写操作。非接触型 ic 卡本身是无源体, 当读写器对卡进行读写操 作时, 读写器发出的信号由两部分叠加组成:一部分是电源信号,该信号由卡 接收后, 与其本身的 l/c 产生谐振, 产生一个瞬间能量来供给芯片工作。另 一部分则是结合数据信号,指挥芯片完成数据、修改、存储等, 并返回给读写 器。由非接触式 ic 卡所形成的读写系统, 无论是硬件结构, 还是操作过程都 得到了很大的简化,同时借助于先进的管理软件,可脱机的操作方式, 都使数 据读写过程更为简单。 2.2.4 单片机与 ic 卡读卡模块接口电路设计 本系统单片机和 ic 卡读卡器模块通过 5 个 io 口相连,驱动程序通过 spi 总 线模式实现 ic 卡的读写操作。ic 卡读卡器与单片机接口电路如下图, 图 2.4ic 卡底座接口图 图中编号 1-8 为射频刷卡模块的引脚图,分别是 rst、cs si sck so 接口, 模块插接到这个底座上,就会对应和单片机的 p10、p11 p12 p13 p14 相接。 2.3 键盘电路设计 2.3.1 键盘识别原理 在键盘中按键数量较多时,为了减少 i/o 口的占用,通常将按键排列成矩阵 形式,如图 1 所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连 通,而是通过一个按键加以连接。这样,一个端口(如 p1 口)就可以构成 4*4=16 个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别 11 越明显。 矩阵键盘的扫描通常采用:行扫描法。行扫描法又称为逐行(或列)扫描查 询法,是一种最常用的按键识别方法,介绍过程如下。 (1)判断键盘中有无键按下 将全部行线置低电平,然后检测列线的状态。 只要有一列的电平为低,则表示键盘中有键被按下,而且闭合的键位于低电平 线与 4 根行线相交叉的 4 个按键之中。若所有列线均为高电平,则键盘中无键 按下。 (2)判断闭合键所在的位置 在确认有键按下后,即可进入确定具体闭合键 的过程。其方法是:依次将行线置为低电平,即在置某根行线为低电平时,其 它线为高电平。在确定某根行线位置为低电平后,再逐行检测各列线的电平状 态。若某列为低,则该列线与置为低电平的行线交叉处的按键就是闭合的按键。 2.3.2 键盘电路及键盘按键设计 本系统中 4x4 矩阵键盘通过 8 个 io 口与单片机相接,电路中我们用到了 p1 口。每个按键通过程序识别唯一的编号,然后在程序中对按键的键值进行在定 义,让按键具备新的功能。矩阵键盘电路及按键定义表如下: 图 2.5 键盘电路图 0123 4567 89确认退出 设置+-密码清除 12 i/o 口作为输出端,而列线所接的 i/o 口则作为输入。这样,当按键没有 按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦 有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否 有键按下了。 2.4 电子锁门禁继电器驱动电路设计 2.4.1 继电器介绍 继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、通讯、自 动控制、机电一体化及电力电子设备中,是最重要的控制元件之一。 继电器一般都有能反映一定输入变量(如电流、电压、功率、阻抗、频率、 温度、压力、速度、光等)的感应机构(输入部分);有能对被控电路实现 “通”、“断”控制的执行机构(输出部分);在继电器的输入部分和输出部 分之间,还有对输入量进行耦合隔离,功能处理和对输出部分进行驱动的中间 机构。 2.4.2 继电器驱动电路设计 本系统设计的电子锁门禁系统,采用了一只 pnp 三极管 s8550 来驱动电路, 其目的是增大驱动电流,因为继电器线圈驱动需要较大的电流才能启动,而单 片机 io 输出的电流非常微弱,达不到驱动的要求。 当单片机 io 口输出低电平时 s8550 三极管导通,继电器线圈产生电磁感应将 开关吸合,就接通了电子锁电源,电子锁就可以开了。当 io 口给高电平时,线 圈没有电流,继电器断开。 13 图 2.6 继电器驱动电路图 2.5 lcd1602 液晶显示电路设计 2.5.1 lcd1602 液晶介绍 字符型液晶显示是一种专门用于显示字母、数字、符号等点阵式 lcd,本 设计采用的是 lcd1602 型液晶显示器,其外形尺寸为 803614,单 5v 供电, 由左到右共 16 个引脚,其实物如图 602 液晶模块内部的字符发生存储器(cgrom)已经存储了 160 个不同的点阵 字符图形,如图 3.13 所示,这些字符有:阿拉伯数字、英文字母的大小写、常 用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文 字母“a”的代码是 01000001b(41h),显示时模块把地址 41h 中的点阵字符 图形显示出来,我们就能看到字母“a” 。 2.5.2 单片机与 lcd1602 液晶接口电路介绍 lcd1602 液晶显示模块可以和单片机 stc89c52 直接接口,db0db7与单片 机的 p0.0p0.7 连接以便数据的传送与接收,4 管脚、5 管脚、6 管脚分别与 stc89c51 单片机的 p2.7 口、p2.6 口、p2.5 口连接,电路如下图所示: 图 2.7 液晶接口电路图 14 3 系统的软件设计 3.1 系统总程序设计 系统上电后首先进行初始化,完成液晶、键盘等初始化任务。然后进入死循 环,单片机控制 ic 卡模块时时扫描判断是否有 ic 靠近,当靠近时,启动 ic 卡 读取程序,识别 ic 卡卡片信息后,与 at24c02 芯片内存储的 ic 卡数据库信息 进行比对,如果校验成功则控制门禁开,反之则不开门禁。整个过程 lcd1602 液晶显示操作过程及数据信息。 系统主流程图如下。 15 图 3.1 系统主程序流程图 3.2 ic 卡读写子程序设计 ic 卡读写卡的过程一般包含如下几个步骤: (1)复位应答(answer to request) 射频卡的通讯协议和通讯波特率是定义好的,当有卡片进入读写器的操作范 围时,读写器以特定的协议与它通讯,从而确定该卡是否为 m1 射频卡,即验证 卡片的卡型。 (2)防冲突机制 (anticollision loop) 当有多张卡进入读写器操作范围时,防冲突机制会从其中选择一张进行操作, 未选中的则处于空闲模式等待下一次选卡,该过程会返回被选卡的序列号。 (3)选择卡片(select tag) 选择被选中的卡的序列号,并同时返回卡的容量代码。 (4)三次互相确认(3 pass authentication) 选定要处理的卡片之后,读写器就确定要访问的扇区号,并对该扇区密码进 行密码校验,在三次相互认证之后就可以通过加密流进行通讯。(在选择另一 16 扇区时,则必须进行另一扇区密码校验。) ic 卡读写流程图如下图: 3.2 ic 卡读写操作流程图 3.3 键盘扫描程序的设计 每个按键有它的行值和列值口,行值和列值的组合就是识别这个按键的编码。 矩阵的行线和列线分别通过两并行接口和 cpu 通信。键盘处理程序的任务是: 确定有无键按下,判断哪一个键按下,键的功能是什么;还要消除按键在闭合 或断开时的抖动。两个并行口中,一个输出扫描码,使按键逐行动态接地,另 一个并行口输入按键状态,由行扫描值和回馈信号共同形成键编码而识别按键, 通过软件查表,查出该键的功能。 17 图 3.3 矩阵键盘子程序流程图 3.3.4 4 lcd1602lcd1602 液晶显示子程序液晶显示子程序 1602 液晶是字符型液晶,它的内部自带字符库,它可以写两行的字符,同时 每行可以写 40 个字符。液晶显示程序流程图如下图所示: lcd1602 液晶显示程序流程图如图下所示 18 图 3.4 lcd1602 液晶显示子程序流程图 从此流程图我们得出:lcd 液晶显示屏在写显示程序的时候,我们要先写命 令,再设定字符显示和汉字的位置,最后写数据,在每写一次命令或数据都需 要判断液晶是否忙。打开液晶显示屏进入初始化状态,开始写命令,首先判断 lcd 是否忙,如果是 p0.7=0,那么进入下一步写命令,如果不是 p0.7=0,返回 lcd 是否忙。 开始 lcd 初始化 lcd 写命令 lcd 判忙 设置显示位置 写数据 判忙 结束 p0.7=0 ? p0.7=0 ? 写完成了? 写完成了? 是 否 否 否 否 是 是 是 19 3.53.5 电子锁门禁开关子程序设计电子锁门禁开关子程序设计 本系统的电子锁门禁开关,单片机只需要输出高低电平即可。当输出高电平 时门禁关、低电平门禁开。程序流程如下: 图 3.5 门禁系统开关子程序流程图 3.63.6 报警子程序设计报警子程序设计 本系统的报警提示是通过蜂鸣器和 led 来实现的,根据报警电路原理,报警 是通过一个 io 口来实现的,当 io 口输出低电平,蜂鸣叫叫且 led 亮;当 i/o 口输出高电平,蜂鸣器不叫且 led 灭。报警提示子程序流程如下: 图 3.6 蜂鸣器/led 报警子程序流程图 20 4 系统的焊接与调试 4.14.1 系统硬件焊接与调试系统硬件焊接与调试 根据系统设计方案,本系统的调试可分为两大部分:模拟部分和纯 mcu 部分。 由于在系统设计中采用模块化设计,所以方便了对各电路功能模块的逐级测试。 断开两部分的连接点,先调试 mcu 部分。试着输入一系列脉冲(用适当的电阻 接正极,间断性地输入),观察 mcu 部分能是否能显示;模拟借助示波器观察 波形效果如何。单片机软件先在最小系统板上调试,确保工作正常之后,再与 硬件系统联调。最后将各模块组合后进行整体测试,使系统的功能得以实现。 1.12864 液晶不显示或有乱码 确保程序与硬件接法都没有错;这时候你应该检查一下单片机是否工作,看 看它是否在工作电压的范围(我当时的问题就出在这里,vcc 接入单片机时经 过了一个 10k 电阻和发光二极管,导致输入单片机的电压很少,单片机没工作, 所以不显示);看看端口设置有没有错(12864 的驱动等)。 12864 液晶乱码问题是由于 keil 没有打补丁照成的。需要打补丁后重新编译 程序即可解决。 2. 时钟的调试 根据晶体振荡频率计算出内部定时器的基本参数,通过运行一段时间可通过 秒表来校正后,看时间误差的量,以这个量为依据改变程序中的内部定时器基本 参数,就可使时钟调准确。 3. ic 卡识别率较低 ic 卡识别率低问题可能有:(1)电源部分没有做滤波处理;(2)io 口没有 加上拉电阻导致驱动力减弱。 4.键盘反应迟钝。 键盘反应迟钝问题一般是去抖动时间太长照成的,应根据测试,看去抖的最 佳时间,适当可以结合示波器观察。 4.24.2 系统软件调试系统软件调试 系统软件调试采用 keilc51 编译器进行源程序编译及仿真调试,同时进行硬 件电路板的设计制作。将设计的程序通过编程器下载到单片机 stc89c52 单片机 中,再将单片机插入插座里,给制作的实物连通电源。即可完成程序下载。 21 下载过程中,若出现现在失败,是以因为单片机需要断电上电才能下载。关 闭电源从即可。前提是串口要找正确,单片机型号选择要正确。 22 结 语 通过这次课设让我更深一步的了解的 stc89c52 的实际用处,也让我感受到单 片机在实际中的重要性。本课题的主要任务是开发一个以 89c51 单片机为核心 的 ic 卡门禁系统。 此课设的过程主要包括了硬件电路设计和软件程序的编写两个部分。从确定 毕设题目,到查阅质料确定总体方案设计,总体方案论证,硬件电路的设计, 硬件电路的优化,软件的设计,软件的优化,焊制硬件电路板,检验硬件电路, 调试软件程序,到最后的软硬件联调,其中的每一个过程都是精心设计、仔细 完成的。在项目即将完成之际,也意味着是我们大学即将圆满完成,此时此刻, 我的心情无法平静,从开始进入课题到项目的顺利完成,有多少可敬的老师、 亲爱的同学和朋友给了我们无尽的帮助,在这里请接受我诚挚的谢意! 首先,我要感谢我的指导老师刘老师治学严谨,学识渊博,待人热情,平易 近人,使我们在毕业设计的过程中遇到难题时,能够大胆的向老师提出问题, 老师也总是及时而又耐心的帮我解答。项目选题后,在项目资料查询、调研、 开题、研究设计和论文撰写的每一个环节,都得到了刘老师的悉心指导和帮助。 在此我向刘老师表示衷心的感谢! 同时,我还要感谢所有任课老师和系部领导,感谢他们对我们学习上和上活 上的关心与支持,他们不仅传授了我丰富的知识,还教会了为人处事的原则, 这些都让我在设计的过程中有一个良好的心态,并能让我终身受益。 最后,我再次对所有帮助我们、关心我们和支持我们的老师、家人、同学、 朋友致以最崇高的敬意!谢谢大家 23 参考文献参考文献 1 常斗南. 可编程序控制器原理应用实验m. 北京:机械工业出 版社,1998.7 2 吕汀,石红梅. 变频器技术原理与应用m. 北京:机械工业出版社, 2003,263-268 3 xue shilong chen yihui. the marine anchor and winchs frequency-conversion and speed-modification system based on plc control.imece.2003. 4何立民单片机技术的现状与未来j中国计算机报1995 5曹明扬单片机发展动向及市场预测j计算机世界1996 6宋浩,田丰单片机原理及应用m清华大学出版社 7张洪润,易涛单片机应用技术教程m清华大学出版社 8刘洋音乐喷泉与变频调速技术j考试周刊2007 年第 29 期 9王宗和,童一帆单片机实验与综合训练m高等教育出版 社2005.12 10蒋燕君基于 at89c2051 的步进电机精确控制系统的实现j浙 江树人大学学报2006.6 11intel corporation mcs-51 microcontroller family users manulmusa1994.2 12 atmel at89c51 microcontroller family users manulmusa1995.4 24 附录一附录一 电路图电路图 25 附录二、程序源代码附录二、程序源代码 #include “include.h“ #include “key.h“ #include “stc89c5x_eerom.h“ sbit 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 *pdisplaychar; int8u tmp, i; pdisplaychar = displaybuf; for( i = 0; i 4 ) if( ( tmp =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 - 函数属性:内部 - 参数说明:无返回值,无带入参数 - 返回说明:无 - 功能描述:系统时钟显示界面、设置时钟显示界面 */ void dis_timer()/时钟日期显示函数 uchar m;/定义一个变量用于闪烁临时计数 29 m=ss/通过 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_number(ye%10); /*-“间隔符”显示代码部分-*/ lcd_putc(/);/间隔符显示 /*-“月份”显示代码部分-*/ if(counter11=6)/月变量处于设置状态,1 秒钟闪烁一次 if(m=0)/如果 m=0,就将月显示出来 lcd_goto_xy(5,0);lcd_number(mo/10);lcd_number(mo%10); else /则显示空格字符。 lcd_goto_xy(5,0);lcd_putc( );lcd_putc( ); else /否则年变量不处于修改状态,直接显示月 lcd_goto_xy(5,0);lcd_number(mo/10);lcd_number(mo%10); /*-“间隔符”显示代码部分-*/ lcd_putc(/);/间隔符显示 /*-“日”显示代码部分-*/ if(counter11=5)/日变量处于设置状态,1 秒钟闪烁
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年副高卫生职称-临床医学检验学-临床医学检验临床免疫(副高)代码:041历年参考题库含答案解析
- 2025年住院医师规培-辽宁-辽宁住院医师规培(医学影像)历年参考题库典型考点含答案解析
- 2025年住院医师规培-甘肃-甘肃住院医师规培(儿科)历年参考题库典型考点含答案解析
- 竹编工艺岗位招聘面试题库
- 科学教师面试实战题库
- 2025年住院医师规培-河北-河北住院医师规培(放射肿瘤科)历年参考题库含答案解析
- 2025年住院医师规培-河北-河北住院医师规培(临床病理科)历年参考题库含答案解析(5套)
- 气管插管护理
- 2025年住院医师规培-江苏-江苏住院医师规培(内科)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-重庆-重庆计算机操作员三级(高级工)历年参考题库典型考点含答案解析
- 外销出口流程培训
- 房屋建筑工程竣工验收技术资料统一用表(2024 版)
- 《企业研发费用税前加计扣除政策解读与应用课件》
- 《马斯克英文介绍》课件
- OptiStruct结构分析与工程应用
- GA/T 1280-2024银行自助设备安全性规范
- 带状疱疹后神经痛的诊治课件
- 火灾地震逃生演练课件
- 广东省深圳市2024-2025学年高一上学期期中考试数学试卷(含答案)
- 第6讲立体几何(2022-2023年高考真题)(原卷版)
- 中医耳针技术
评论
0/150
提交评论