收藏 分享(赏)

基于51单片机的电子密码锁---毕业论文.doc

上传人:weiwoduzun 文档编号:2751816 上传时间:2018-09-26 格式:DOC 页数:31 大小:899KB
下载 相关 举报
基于51单片机的电子密码锁---毕业论文.doc_第1页
第1页 / 共31页
基于51单片机的电子密码锁---毕业论文.doc_第2页
第2页 / 共31页
基于51单片机的电子密码锁---毕业论文.doc_第3页
第3页 / 共31页
基于51单片机的电子密码锁---毕业论文.doc_第4页
第4页 / 共31页
基于51单片机的电子密码锁---毕业论文.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、 毕 业 设 计(论 文)设计(论文) 题目: 基于单片机的电子密码锁仿真设计 学生姓名: 指导教师: 二级学院: 专 业: 班 级: 学 号: 提交日期: 2012 年 5 月 16 日 答辩日期: 2012 年 5 月 19 日 金陵科技学院学士学位论文 目录I目 录摘 要 .IIAbstract .III1 绪 论 12 系统的总体设计和主要元器件介绍 .22.1 系统方案论证选择 22.2 系统的总体思路设计 32.3 主要元器件介绍 32.3.1 AT89C51 介绍 32.3.2 继电器介绍 .62.3.3 LED 数码管介绍 72.3.4 矩阵键盘介绍 .73、硬件设计 93.1

2、 单片机主控制模块(含晶振、复位基本工作电路) 93.2 键盘输入模块 93.3 显示模块 .103.4 报警模块 .113.5 开锁模块 .114、软件设计 .124.1 系统程序设计流程图 .124.2 系统程序设计 .125、系统仿真设计 .175.1 Proteus 软件介绍 .175.2 Proteus 仿真图 .17总结 19参考文献 20附录 21致谢 27金陵科技学院学士学位论文 摘要II基于单片机的电子密码锁仿真设计摘 要电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价

3、比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。本文以 AT89C51 单片机为核心器件,结合按键电路、LED 数码管显示电路、报警指示电路和开锁机构,利用单片机灵活的编程设计和丰富的 I/O 端口,及其控制的准确性通过软件程序来控制整个系统实现电子密码锁的基本功能,其主要具有如下功能:密码通过键盘输入,若密码正确,则将锁打开密码输入错误,蜂鸣器将报警提示用户可以自由设定密码本密码锁具有设计方法合理,简单易行成本低,安全实用等特点,具有一定的推广价值。关键词:AT89C51 ; 电子密码锁 ; 功能金陵科技学院学士学位论文 AbstractIIIThe Simulati

4、on Design of Electronic Cipher Lock Based on MCUAbstractThe electronic cipher lock is a electronic products, which control the mechanical switch by the control circuit or chip when you input a password. It has many different types ,for example, simple circuit products , chip products with a higher v

5、alue. Now the widely used electronic locks are based on the chip and achieve the function by programming. Based on the AT89C51 single-chip microcomputer as the core device, combining with the key circuit, LED digital tube display circuit, an alarm circuit and unlocking mechanism, design the whole sy

6、stem to achieve the basic functions of electronic cipher lock by its flexible programming , rich I / O port, and accuracy basing on the software program . With the following functions :Input password through the keyboard, if the password is correct, lock will open If the password is error, the buzze

7、r will alarm Users can freely set the password The lock has some features like a reasonable design methods,simple to work,low cost and security, it also has some promotion value.Key words: AT89C51 ; Cipher lock ; Function金陵科技学院学士学位论文 第 1 章 绪论11 绪 论随着人们生活水平的提高, 日常生活和工作中的住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资

8、料的保存等一系列安全防盗问题变的尤其突出。传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,且人们常需携带多把钥匙, 使用极不方便, 一旦钥匙丢失安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁因具有安全性高、成本低、功耗低、易操作等优点,受到了广大用户的青睐。据有关资料介绍,电子密码锁的研究从 20 世纪 30 年代就开始了,在一些特殊场所早就有所应用。但当时多半是配合机械锁一起作用且存在着诸如体积较大,成本较高,可靠性较低等缺点一时难以普及。20 世纪 80 年代后,随着信

9、息技术、集成电路、半导体技术的发展,电子密码锁的设计也取得了快速的进步。目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于安全处所,而我国在此点上这稍有落后。现今常见的密码锁设计主要有两种方案,一种是中规模集成电路控制的方案,另一种是单片机控制的方案。对于采用集成电路控制的方案,其中的编码电子锁电路分为编码电路、控制电路、复位电路、解码电路、防盗报警电路、门铃电路,而电子锁主要由输入元件、电路(包括电源)以及锁体三部分组成。显然此种方案的物理实现结构较为复杂且重新设置密码、输入密码的操作过程也会给用户带来一定的不方便;而利用单片机控制的方案,由于单片机灵活的编程设

10、计和丰富的 I/O 端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加掉电存储、声光提示甚至添加遥控控制功能,但其也有一定的局限性,就在于其控制原理的复杂以及要求设计人员具有更加良好的程序设计能力,调试较为繁琐,否则程序一旦跑飞将造成意想不到的损失。通过对这两种方案的优缺点比较,再考虑到本人自己对单片机设计具有一定的基础,所以此次选择利用单片机来进行密码锁的设计。本文以 AT89C51 单片机为核心器件,结合按键电路、LED 数码管显示电路、报警指示电路和开锁机构,利用单片机灵活的编程设计和丰富的 I/O 端口,及其控制的准确性通过软件程序来控制整个系统实现电子密码锁的基本功能。系统

11、能实现如下的功能:(1)密码通过键盘输入,若密码正确,则将锁打开(2)密码输入错误,蜂鸣器将报警提示(3)用户可以自由设定密码系统功能实用,成本低廉,具有一定的实用价值。金陵科技学院学士学位论文 第 2 章 系统的总体设计和主要元器件介绍 22 系统的总体设计和主要元器件介绍2.1 系统方案论证选择现今常见的密码锁设计主要有两种方案,一种是中规模集成电路控制的方案,另一种是单片机控制的方案。方案一:采用数字电路控制。其原理方框图如图 2.1 所示:图 2.1 数字电路控制原理图显然此种方案的物理实现结构较为复杂且重新设置密码、输入密码的操作过程也会给用户带来一定的不方便;方案二:采用一种是用以

12、 AT89S51 为核心的单片机控制方案。其原理如图 2.2 所示:开锁模块89S51单片机矩阵键盘控制显示模块报警模块金陵科技学院学士学位论文 第 2 章 系统的总体设计和主要元器件介绍 3图 2.2 单片机控制原理图通过比较以上两种方案,单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,所以我们采用后一种方案。本方案采用一种是用以 89S51 为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的 I/O 端口,及其控制的准确性,实现基本的密码锁功能。2.2 系统的总体思路设计以 AT89C51 单片机为主控制单元,键盘为主要

13、输入单元,结合开锁装置、报警器和显示器完成整个系统设计。系统的运行过程大致如下:假设初始状态为闭锁,此时整个系统只等待按键输入,数码管也不显示。每按下一个数据键(即每输入一个密码) ,数码管相应的显示一个“-”标志,当密码全部输入完成后,需按下确认键“#” ,此时系统判断密码是否正确,正确则开锁(仿真中以继电器动作导致发光二级管点亮为标志) ,错误则报警,此后数码管熄灭继续等待按键;若按下密码重置键“*” ,则需先输入原密码,正确后请输入新密码,输入密码过程中,数码管显示如上“-” 。2.3 主要元器件介绍2.3.1 AT89C51 介绍图 2.3 AT89C51 封装图 图 2.4 引脚图本

14、次毕业设计选用的是 AT89C51,A T89C51 是 一 种 带 4K 字 节 FLASH 存 储 器( FPEROMFlash Programmable and Erasable Read Only Memory) 的 低 电 压 、 高 性能 CMOS 8 位 微 处 理 器 , 俗 称 单 片 机 。 单 片 机 的 可 擦 除 只 读 存 储 器 可 以 反 复 擦 除金陵科技学院学士学位论文 第 2 章 系统的总体设计和主要元器件介绍 41000 次 。 该 器 件 采 用 ATMEL 高 密 度 非 易 失 存 储 器 制 造 技 术 制 造 , 与 工 业 标 准 的MCS-

15、51 指 令 集 和 输 出 管 脚 相 兼 容 。 由 于 将 多 功 能 8 位 CPU 和 闪 烁 存 储 器 组 合 在 单 个芯 片 中 , ATMEL 的 AT89C51 是 一 种 高 效 微 控 制 器 。 AT89C51 单 片 机 为 很 多 嵌 入 式控 制 系 统 提 供 了 一 种 灵 活 性 高 且 价 廉 的 方 案 。AT89C51 主要特性: 1. 与 MCS-51 兼 容2. 4K 字 节 可 编 程 FLASH 存 储 器3. 寿 命 : 1000 写 /擦 循 环4. 数 据 保 留 时 间 : 10 年5. 全 静 态 工 作 : 0Hz-24MHz6

16、. 三 级 程 序 存 储 器 锁 定7. 1288 位 内 部 RAM83 2 可 编 程 I/O 线9. 两 个 16 位 定 时 器 /计 数 器105 个 中 断 源11可 编 程 串 行 通 道12. 低 功 耗 的 闲 置 和 掉 电 模 式13. 片 内 振 荡 器 和 时 钟 电 路AT89C51 单片机引脚:VCC: 供 电 电 压 。 GND: 接 地 。 P0 口 : P0 口 为 一 个 8 位 漏 级 开 路 双 向 I/O 口 , 每 脚 可 吸 收 8TTL 门 电 流 。当 P0 口 的 管 脚 第 一 次 写 1 时 , 被 定 义 为 高 阻 输 入 。 P

17、0 能 够 用 于 外 部 程 序 数 据 存 储 器 ,它 可 以 被 定 义 为 数 据 /地 址 的 低 八 位 。 在 FIASH 编 程 时 , P0 口 作 为 原 码 输 入 口 , 当FIASH 进 行 校 验 时 , P0 输 出 原 码 , 此 时 P0 外 部 必 须 接 上 拉 电 阻 。 P1 口 : P1 口 是 一 个 内 部 提 供 上 拉 电 阻 的 8 位 双 向 I/O 口 , P1 口 缓 冲 器 能 接收 输 出 4TTL 门 电 流 。 P1 口 管 脚 写 入 1 后 , 被 内 部 上 拉 为 高 , 可 用 作 输 入 , P1 口 被外 部

18、下 拉 为 低 电 平 时 , 将 输 出 电 流 , 这 是 由 于 内 部 上 拉 的 缘 故 。 在 FLASH 编 程 和 校验 时 , P1 口 作 为 低 八 位 地 址 接 收 。 P2 口 : P2 口 为 一 个 内 部 上 拉 电 阻 的 8 位 双 向 I/O 口 , P2 口 缓 冲 器 可 接 收 ,输 出 4 个 TTL 门 电 流 , 当 P2 口 被 写 “1”时 , 其 管 脚 被 内 部 上 拉 电 阻 拉 高 , 且 作 为 输入 。 并 因 此 作 为 输 入 时 , P2 口 的 管 脚 被 外 部 拉 低 , 将 输 出 电 流 。 这 是 由 于

19、内 部 上 拉 的缘 故 。 P2 口 当 用 于 外 部 程 序 存 储 器 或 16 位 地 址 外 部 数 据 存 储 器 进 行 存 取 时 , P2 口输 出 地 址 的 高 八 位 。 在 给 出 地 址 “1”时 , 它 利 用 内 部 上 拉 优 势 , 当 对 外 部 八 位 地 址金陵科技学院学士学位论文 第 2 章 系统的总体设计和主要元器件介绍 5数 据 存 储 器 进 行 读 写 时 , P2 口 输 出 其 特 殊 功 能 寄 存 器 的 内 容 。 P2 口 在 FLASH 编 程 和校 验 时 接 收 高 八 位 地 址 信 号 和 控 制 信 号 。 P3 口

20、 : P3 口 管 脚 是 8 个 带 内 部 上 拉 电 阻 的 双 向 I/O 口 , 可 接 收 输 出 4 个TTL 门 电 流 。 当 P3 口 写 入 “1”后 , 它 们 被 内 部 上 拉 为 高 电 平 , 并 用 作 输 入 。 作 为 输入 , 由 于 外 部 下 拉 为 低 电 平 , P3 口 将 输 出 电 流 ( ILL) 这 是 由 于 上 拉 的 缘 故 。 P3 口 也 可 作 为 AT89C51 的 一 些 特 殊 功 能 口 , 如 下 表 所 示 : 口 管 脚 备 选 功 能 P3.0 RXD( 串 行 输 入 口 ) P3.1 TXD( 串 行 输

21、 出 口 ) P3.2 /INT0( 外 部 中 断 0) P3.3 /INT1( 外 部 中 断 1) P3.4 T0( 记 时 器 0 外 部 输 入 ) P3.5 T1( 记 时 器 1 外 部 输 入 ) P3.6 /WR( 外 部 数 据 存 储 器 写 选 通 ) P3.7 /RD( 外 部 数 据 存 储 器 读 选 通 ) P3 口 同 时 为 闪 烁 编 程 和 编 程 校 验 接 收 一 些 控 制 信 号 。 RST: 复 位 输 入 。 当 振 荡 器 复 位 器 件 时 , 要 保 持 RST 脚 两 个 机 器 周 期 的 高 电平 时 间 。 ALE/PROG:

22、当 访 问 外 部 存 储 器 时 , 地 址 锁 存 允 许 的 输 出 电 平 用 于 锁 存 地 址 的地 位 字 节 。 在 FLASH 编 程 期 间 , 此 引 脚 用 于 输 入 编 程 脉 冲 。 在 平 时 , ALE 端 以 不 变的 频 率 周 期 输 出 正 脉 冲 信 号 , 此 频 率 为 振 荡 器 频 率 的 1/6。 因 此 它 可 用 作 对 外 部 输 出的 脉 冲 或 用 于 定 时 目 的 。 然 而 要 注 意 的 是 : 每 当 用 作 外 部 数 据 存 储 器 时 , 将 跳 过 一 个ALE 脉 冲 。 如 想 禁 止 ALE 的 输 出 可

23、 在 SFR8EH 地 址 上 置 0。 此 时 , ALE 只 有 在 执 行MOVX, MOVC 指 令 是 ALE 才 起 作 用 。 另 外 , 该 引 脚 被 略 微 拉 高 。 如 果 微 处 理 器 在 外 部 执行 状 态 ALE 禁 止 , 置 位 无 效 。 /PSEN: 外 部 程 序 存 储 器 的 选 通 信 号 。 在 由 外 部 程 序 存 储 器 取 指 期 间 , 每 个 机器 周 期 两 次 /PSEN 有 效 。 但 在 访 问 外 部 数 据 存 储 器 时 , 这 两 次 有 效 的 /PSEN 信 号 将 不出 现 。 /EA/VPP: 当 /EA

24、保 持 低 电 平 时 , 则 在 此 期 间 外 部 程 序 存 储 器 ( 0000H-FFFFH) , 不 管 是 否 有 内 部 程 序 存 储 器 。 注 意 加 密 方 式 1 时 , /EA 将 内 部 锁 定 为RESET; 当 /EA 端 保 持 高 电 平 时 , 此 间 内 部 程 序 存 储 器 。 在 FLASH 编 程 期 间 , 此 引 脚也 用 于 施 加 12V 编 程 电 源 ( VPP) 。 XTAL1: 反 向 振 荡 放 大 器 的 输 入 及 内 部 时 钟 工 作 电 路 的 输 入 。 XTAL2: 来 自 反 向 振 荡 器 的 输 出 。 金

25、陵科技学院学士学位论文 第 2 章 系统的总体设计和主要元器件介绍 6振 荡 器 特 性 : XTAL1 和 XTAL2 分 别 为 反 向 放 大 器 的 输 入 和 输 出 。 该 反 向 放 大 器 可 以 配 置 为 片 内振 荡 器 。 石 晶 振 荡 和 陶 瓷 振 荡 均 可 采 用 。 如 采 用 外 部 时 钟 源 驱 动 器 件 , XTAL2 应 不接 。 有 余 输 入 至 内 部 时 钟 信 号 要 通 过 一 个 二 分 频 触 发 器 , 因 此 对 外 部 时 钟 信 号 的 脉 宽无 任 何 要 求 , 但 必 须 保 证 脉 冲 的 高 低 电 平 要 求

26、的 宽 度 。2.3.2 继电器介绍继电器是一种电控制器件。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关” 。故在电路中起着自动调节、安全保护、转换电路等作用。 当输入量(如电压、电流、温度等)达到规定值时,继电器被所控制的输出电路导通或断开。输入量可分为电气量(如电流、电压、频率、功率等)及非电气量(如温度、压力、速度等)两大类。继电器具有动作快、工作稳定、使用寿命长、体积小等优点。广泛应用于电力保护、自动化、运动、遥控、测量和通信等装置中。 电磁继电器工作原理和特性:图2.5 继电

27、器原理图电磁继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点” ;处于接通状态的静触点称为“常闭触点” 。继电器一般有两股电路,为低压控制电路和高压工作

28、电路。 金陵科技学院学士学位论文 第 2 章 系统的总体设计和主要元器件介绍 72.3.3 LED 数码管介绍图2.6 数码管LED 数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母 a,b,c,d,e,f,g,dp 来表示。当数码管特定的段加上电压后,这些特定段就会发亮,以形成我们眼睛看到 的样子。 以“2”为例,应当是 a 亮 b 亮 g 亮 e 亮 d 亮 f 不亮 c 不亮 dp 不亮。LED 数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况

29、下,单个发光二极管的管压降为1.8V 左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用 LED 数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 2.3.4 矩阵键盘介绍图 2.7 矩阵键盘在键盘中按键数量较多时,为了减少 I/O 口的占用,通常将按键排列成矩阵形式,如图 1 所示。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一金陵科技学院学士学位论文 第 2 章 系统的总体设计和主要元器件介绍 8个按键加以连接。这样,一个端口(如 P1

30、口)就可以构成 4*4=16 个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成 20 键的键盘,而直接用端口线则只能多出一键(9 键) 。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,上图中,列线通过电阻接正电源,并将行线所接的单片机的 I/O 口作为输出端,而列线所接的 I/O 口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。 金陵科技学院学士学

31、位论文 第 3 章 硬件设计93、硬件设计3.1 单片机主控制模块(含晶振、复位基本工作电路)图 3.1 主控制模块3.2 键盘输入模块本设计中采用 3*4 矩阵键盘,与 AT89C51 的 P1 口相连,提供按键输入,如图 3.2:图 3.2 键盘输入模块表 3.1 按键功能按 键 键 名 功 能 说 明19 键 数 字 键 输 入 密 码* 键 重 设 密 码 键 设 定 新 密 码# 键 确认键 确认密码输入完毕金陵科技学院学士学位论文 第 3 章 硬件设计103.3 显示模块图 3.3 显示模块此设计中,使用了四个共阴极数码管,使用动态显示技术控制数码管。其 4 个位选信号与 P2.0

32、-P2.3 相连,当其中某位为低电平时表示选中该位;8 段段选信号与 P0 口相连,当其中某段为高电平时导通该段,特殊的,由于 AT89C51 的 P0 口的驱动能力较弱,不足以驱动数码管点亮,故在此又引入上拉电阻以驱动数码管。关于上拉电阻有如下介绍:1、当 TTL 电路驱动 CMOS 电路时,如果电路输出的高电平低于 CMOS 电路的最低高电平(一般为3.5V) , 这时就需要在 TTL 的输出端接上拉电阻,以提高输出高电平的值。 2、 OC 门电路必须加上拉电阻,以提高输出的高电平值。 3、为加大输出引脚的驱动能力,有的单片机管脚上也常使用上拉电阻。 4、在 CMOS 芯片上,为了防止静电

33、造成损坏,不用的管脚不能悬空,一般接上拉电阻产生降低输入阻抗, 提供泄荷通路。 5、芯片的管脚加上拉电阻来提高输出电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。6、提高总线的抗电磁干扰能力。管脚悬空就比较容易接受外界的电磁干扰 。7、长线传输中电阻不匹配容易引起反射波干扰,加上下拉电阻是电阻匹配,有效的抑制反射波干扰。 金陵科技学院学士学位论文 第 3 章 硬件设计113.4 报警模块图 3.4 报警模块报警模块由蜂鸣器、PNP 三极管和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要 100mA 驱动电流。特殊的,此处为加强驱动能力,选用三极管来放大电流驱动蜂鸣器。当 89C

34、51 的 P3.0 口输出为低电平时,三极管导通,蜂鸣器产生蜂鸣音,89C51 输出为高电平时,蜂鸣器不发声。3.5 开锁模块图 3.5 开锁模块此处以继电器的动作来模拟锁的开闭。同样,为了增强驱动能力添加了 PNP 三极管以放大电流,当 P3.1 口为低电平时,三极管导通,此时继电器动作(锁开) ,灯亮;二极管具有续流作用以保护器件安全。金陵科技学院学士学位论文 第 4 章 软件设计124、软件设计4.1 系统程序设计流程图开始初始化模式选择识别按键密码输入手动清除密码比较开门旧密码输入新密码输入存入缓存区再次输入密码 重新输入完成返回NANBY图 3.6 流程图4.2 系统程序设计重要端口

35、定义说明:sbit buzzer=P30;sbit relay=P31;uchar code table2=0x40,0x00 ; /共阴极数码管编码 显示-和 熄灭uchar keyword4=1,1,1,1;uchar keycmp4;uchar key=0,num=0,flg=0;报警子程序:(通过控制 buzzer 端口的高低电平来控制三极管的通断,从而控制蜂鸣器)void alarm() num=0;buzzer=0;delay(100);buzzer=1;金陵科技学院学士学位论文 第 4 章 软件设计13数码管显示子程序:LED 显示器工作方式有两种:静态显示方式和动态显示方式。静

36、态显示的特点是每个数码管的段选必须接一个 8 位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用 CPU 时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高;动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些。本设计使用动态显示方法。void display() uchar i,j,cs=0x7f;for

37、(i=num;i0;i-) P0=table0;cs=_crol_(cs,1);P2=cs;delay(10);for(j=4-num;j0;j-)P0=table1;cs=_crol_(cs,1);P2=cs;delay(10);按下确认键后执行功能子程序:(使用标志变量 flg,根据其值来选择执行相应的功能)void ok() uchar i=0;display(); / P0=(flg+1);delay(1000);if(flg=0)for(i=0;i#include#define uint unsigned int#define uchar unsigned charsbit buzz

38、er=P30;sbit relay=P31;uchar code table2=0x40,0x00 ; /共阴极数码管编码 显示-和 熄灭uchar keyword4=1,1,1,1;uchar keycmp4;uchar key=0,num=0,flg=0;/=延迟程序 延时 x 毫秒void delay(uint x)uint i,j;for(i=x;i0;i-)for(j=110;j0;j-);/=报警程序 void alarm() num=0;buzzer=0;delay(100);buzzer=1;/=数码管显示程序void display() uchar i,j,cs=0x7f;f

39、or(i=num;i0;i-) P0=table0;cs=_crol_(cs,1);P2=cs;delay(10);金陵科技学院学士学位论文 附录22for(j=4-num;j0;j-)P0=table1;cs=_crol_(cs,1);P2=cs;delay(10);/=密码重置程序void set()num=0;display();flg=1;/=确认键程序void ok() uchar i=0;display(); / P0=(flg+1);delay(1000);if(flg=0)for(i=0;i4;i+)if(keywordi!=keycmpi) alarm();break;if(

40、num=4) relay=0;num=0;if(flg=2)num=0;for(i=0;i4;i+) keywordi=keycmpi;flg=0;if(flg=1)金陵科技学院学士学位论文 附录23for(i=0;i4;i+)if(keywordi!=keycmpi) alarm();break;if(num=4)num=0;display(); / P0=0x07;delay(1000);flg=2;/=键盘扫描程序void keyscan()uchar temp1,temp2;P1=0xfe;/令第一列为低电平,检测第 1 列temp1=P1;if(temp1!=0xfe)delay(5

41、); /去抖temp2=P1;if(temp1=temp2)switch(temp2)case 0xf6: if(num4)key=1;keycmpnum=key;num+;display();else alarm();break;case 0xee: if(num4)key=4;keycmpnum=key;num+;display();else alarm();break;case 0xde: if(num4)key=7;keycmpnum=key;num+;display();else alarm();break;金陵科技学院学士学位论文 附录24case 0xbe: set();brea

42、k;while(temp1!=0xfe) temp1=P1;/等待按键释放P1=0xfd;/检测第 2 列temp1=P1;if(temp1!=0xfd)delay(5); /去抖temp2=P1;if(temp1=temp2)switch(temp2)case 0xf5: if(num4)key=2;keycmpnum=key;num+;display();else alarm();break;case 0xed: if(num4)key=5;keycmpnum=key;num+;display();else alarm();break;case 0xdd: if(num4)key=8;ke

43、ycmpnum=key;num+;display();else alarm();break;case 0xbd: if(num4)key=0;keycmpnum=key;num+;display();else alarm();break;while(temp1!=0xfd) temp1=P1;/等待按键释放P1=0xfb;/检测第 3 列temp1=P1;金陵科技学院学士学位论文 附录25if(temp1!=0xfb)delay(5); /去抖temp2=P1;if(temp1=temp2)switch(temp2)case 0xf3: if(num4)key=3;keycmpnum=key;

44、num+;display();else alarm();break;case 0xeb: if(num4)key=6;keycmpnum=key;num+;display();else alarm();break;case 0xdb: if(num4)key=9;keycmpnum=key;num+;display();else alarm();break;case 0xbb: if(num=4) ok(); else alarm();break;while(temp1!=0xfb) temp1=P1;/等待按键释放display();/=主函数main()EA=1;EX0=1;IT0=1;while(1) keyscan();金陵科技学院学士学位论文 附录26/=中断服务程序void Int0() interrupt 0relay=1;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报