51单片机简易密码锁.doc
《51单片机简易密码锁.doc》由会员分享,可在线阅读,更多相关《51单片机简易密码锁.doc(36页珍藏版)》请在装配图网上搜索。
学 号 201114040215 HEBEI UNITED UNIVERSITY 单 片 机 课 程 设 计 说 明 书 设计题目 简易电子密码锁 学生姓名 李红辉 专业班级 测控技术及仪器 2 学 院 电气工程学院 指导教师 曹晓华 2014 年 06 月 05 日 成绩评定表 指导教师评语 答 辩 成 绩 占总成绩 60 说明书 成 绩 占总成绩 40 摘 要 在日常的生活和工作中 住宅与部门的安全防范 单位的文件档案 财务 报表以及一些个人资料的保存多以加锁的办法来解决 若使用传统的机械式钥 匙开锁 人们常需携带多把钥匙 使用极不方便 且钥匙丢失后安全性即大打 折扣 随着科学技术的不断发展 人们对日常生活中的安全保险器件的要求越 来越高 为满足人们对锁的使用要求 增加其安全性 用密码代替钥匙的密码 锁应运而生 密码锁具有安全性高 成本低 功耗低 易操作等优点 在安全技术防范领域 具有防盗报警功能的电子密码锁逐渐代替传统的机 械式密码锁 克服了机械式密码锁密码量少 安全性能差的缺点 使密码锁无 论在技术上还是在性能上都大大提高一步 随着大规模集成电路技术的发展 特别是单片机的问世 出现了带微处理器的智能密码锁 它除具有电子密码锁 的功能外 还引入了智能化管理 专家分析系统等功能 从而使密码锁具有很 高的安全性 可靠性 应用日益广泛 本课程设计介绍了基于单片机电子密码锁的设计 该设计硬件主要由 AT89C52最小系统 矩阵电路 1602LCD显示电路 电源电路和报警电路等几部 分组成 软件主要由C语言编程 该密码锁由单片机技术 通过矩阵电路设置 修改密码 保护密码 并由LCD显示密码输入 从而实现对密码的设置 保护 关键词 单片机 密码锁 1602 最小系统 矩阵键盘 Abstract In daily life and work the department of housing and security unit documents financial statements and some personal information to save more in order to lock the ways to solve If use the traditional mechanical key to open the lock people often need to carry multiple keys use very convenient and the key missing after security is compromised With the continuous development of science and technology people in daily life the demand is higher and higher safety insurance device To meet the requirements of people on the use of the lock increase its safety use the password instead of the key combination lock arises at the historic moment Combination lock with high safety low cost low power consumption easy operation etc In the field of security technology to guard against with electronic combination lock anti theft alarm function gradually replace the traditional mechanical combination lock overcoming the mechanical combination lock password quantity is little the shortcomings of poor safety performance make the combination lock both in technology and step in performance are improved greatly With the development of large scale integrated circuit technology especially the single chip microcomputer appeared with the intelligent combination of the microprocessor it besides has the function of electronic combination lock also introduced the intelligent management expert analysis system and other functions so that the combination lock of high security reliability and increasingly widely used The course design of electronic combination lock based on MCU is introduced the design of the hardware is mainly composed of AT89C52 minimum system matrix circuit 1602 LCD display circuit power circuit and alarm circuit and so on several parts Software is mainly composed of C language programming The combination lock by the single chip microcomputer technology through the matrix circuit setting change passwords password protection and by the LCD display password input so as to realize the password Settings protection Key words single chip microcomputer trick lock the 1602 the smallest system matrix keyboard 目 录 摘 要 I ABSTRACT II 第 1 章 绪论 7 1 1 电子密码锁的现状与发展 7 1 1 1 电子密码锁的现状 7 1 1 2 电子密码锁的发展 7 1 2 电子密码锁的特色 7 第 2 章 电子密码锁的工作原理及总体设计 8 2 1 电子密码锁的工作原理 8 2 2 总体结构的设计 8 第 3 章 硬件系统设计 9 3 1 单片机最小系统和数据输入 9 3 1 1 单片机最小系统 9 3 1 2 矩阵键盘的设计与初始数据的输入 11 3 2 数据的输出与显示 12 3 3 报警电路 16 3 4 硬件电路图 17 第 4 章仿真与调试 19 4 1 程序流程 19 4 2 仿真结果 20 总结 23 参考文献 25 附件 第 1 章 绪论 1 1 电子密码锁的现状和发展 1 1 1 电子密码锁的现状 当今智能电子密码锁发展已经到了非常高的境界 由于电子元件特别是单 片机应用在这几年得到空前发展 无论功能性 稳定性都比较全面 在保密方 面已做到人眼识别 指纹识别 人声识别基本上电影上有的现实也有 在国外 发展比较早 所以应用也比较广泛 主要在家庭装较贵重地方 银行 保险柜 等应用较多 在国内这方面发展也较快 不管自己开发或是引进都有 在重要 地方应用也较多 由于价钱比普通弹子锁较贵 早几年应用较少 现在越来越 普及到平常化 未来的发展也会越来越被大众采用 由于它的功能 安全是弹 子锁无法相比的 发展前境是非常大的 1 1 2 电子密码锁的发展 现在 电子密码锁适用于各个领域 尤其在国民建设 和军事领域具有突 出贡献 现在的密码锁内的信息包括了数字 字符 图形图像 人体生物特征 和时间等 对电子锁的要求也越来越高 电子技术必是各国发展的优先技术 1 2 电子密码锁的特色 保密性好 编码量多 远远大于弹子锁 随机开锁成功率几乎为零 密码可 变 用户可以经常更改密码 防止密码被盗 同时也可以避免因人员的更替而 使锁的密级下降 误码输入保护 当输入密码多次错误时 报警系统自动启动 电子密码锁操作简单易行 一学即会 干扰码功能 在输入正确密码前可输入任 意码 出门时无需其他操作 只需一次的把手动作 可机械的开启门 所以遇 到火灾等应急状况下也迅速 安全的开启门 第 2 章 电子密码锁的工作原理及总体设计 2 1 电子密码锁的工作原理 本设计采用 STC89C52 单片机为主控芯片 结合外围电路矩阵键盘 液 晶显示器 LCD1602 和密码存储 AT24C02 等部分组成 其中矩阵键盘用于输入数 字密码和进行各种功能的实现 由用户通过连接单片机的矩阵键盘输入密码 后经过单片机对用户输入的密码与自己保存的密码进行对比 从而判断密码是 否正确 然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报 警 组成的电子密码锁系统 能够实现 1 完全正确输入四位密码的前提下 有开锁提示 2 错误输入密码情况下 开锁密码错 3 次要报警 报警期间输入密码无效 3 用户可以自行设定和修改密码 2 2 电子密码锁的总体框图 STC89c52 晶振电路 矩阵键盘 显示电路 报警电路 复位电路 图 2 1 总体框图 第三章 硬件系统设计 3 1 单片机最小系统和数据输入 3 1 1 单片机最小系统 选用单片机作为系统的核心部件 实现控制与处理的功能 单片机具有资 源丰富 速度快 编程容易等优点 利用单片机内部的随机存储器 RAM 和只 读存储器 ROM 及其引脚资源 外接液晶显示 LCD 键盘输入等实现数据 的处理传输和显示功能 基本上能实现设计指标 本设计采用 AT89c52 单片机 89C52 是 INTEL 公司 MCS 51 系列单片机中基 本的产品 它采用 ATMEL 公司可靠的 CMOS 工艺技术制造的高性能 8 位单片机 属于标准的 MCS 51 的 HCMOS 产品 它结合了 CMOS 的高速和高密度技术及 CMOS 的低功耗特征 它基于标准的 MCS 51 单片机体系结构和指令系统 属于 89C51 增强型单片机版本 集成了时钟输出和向上或向下计数器等更多的功能 适合 于类似马达控制等应用场合 89C52 内置 8 位中央处理单元 512 字节内部数据 存储器 RAM 8k 片内程序存储器 ROM 32 个双向输入 输出 I O 口 3 个 16 位定时 计数器和 5 个两级中断结构 一个全双工串行通信口 片内时钟振荡电 路 此外 89C52 还可工作于低功耗模式 可通过两种软件选择空闲和掉电模 式 在空闲模式下冻结 CPU 而 RAM 定时器 串行口和中断系统维持其功能 掉 电模式下 保存 RAM 数据 时钟振荡停止 同时停止芯片内其它功能 图 3 11 P0 口外接排阻 图 3 12 最小系统电路图 如图 3 12 为单片机最小系统 硬件最小系统 由电 源 主板和 CPU 内存组成 在这个系统中 没有任何信 号线的连接 只有电源到主板的电源连接 由于设计本电 路图所使用的软件为 Protues 且电源和电源地脚为自 动隐藏所以电源部分也是在其中的 如图 3 11 所示 51 单片机的 P0 端口为开漏输出 内部无上拉电阻 所 以在当做普通 I O 输出数据时 由于 V2 截止 输出级 是漏极开路电路 要使 1 信号 即高电平 正常输 出 必须外接上拉电阻 图 3 13 在单片机系统中 复位电路是非常关键的 当程序跑飞 运行不正常 或 死机 停止运行 时 就需要进行复位 MCS 5l 系列单片机的复位引脚 RST 第 9 管脚 出现 2 个机器周期以上的高电平时 单片机就执行复位操作 如果 RST 持续为高电平 单片机就处于循环复位状态 复位操作通常有两种基 本形式 上电自动复位和开关复位 图 3 13 中所示的复位电路就包括了这两种 复位方式 上电瞬间 电容两端电压不能突变 此时电容的负极和 RESET 相连 电压全部加在了电阻上 RESET 的输入为高 芯片被复位 随之 5V 电源给电容 充电 电阻上的电压逐渐减小 最后约等于 0 芯片正常工作 并联在电容的 两端为复位按键 当复位按键没有被按下的时候电路实现上电复位 在芯片正 常工作后 通过按下按键使 RST 管脚出现高电平达到手动复位的效果 一般来 说 只要 RST 管脚上保持 10ms 以上的高电平 就能使单片机有效的复位 图 中所示的复位电阻和电容为经典值 实际制作是可以用同一数量级的电阻和电 容代替 读者也可自行计算 RC 充电时间或在工作环境实际测量 以确保单片 机的复位电路可靠 3 1 2 数据的输入 鉴于单片机的 I O 口的限制 本次选用矩阵键盘的输入 如下图所示 图 3 21 矩阵键盘 阵式键盘由行线和列线组成 按键位于行 列的交叉点上 当键被按下时 其交点的行线和列线接通 相应的行线或列线上的电平发生变化 单片机通过 检测行或列线上的电平变化可以确定哪个按键被按下 矩阵键盘不仅在连接上 比单独式按键复杂 它的按键识别方法也比单独式按键复杂 矩阵键盘的检测 方法有多种 常见的有 逐点扫描法 逐行扫描法 全局扫描法 在本实例中我们采用逐行扫描法来实现按键检测 其中 P3 0 P3 3 作为行 线 P3 4 P3 7 作为列线 识别过程如下 1 判断键盘中是否有键按下 设置所有行线为输出口 并输出低电平 设 置列线为输入口 读取列线上的电平状态 只要有一列的电平为低 就表示有 按键按下 并且被按下的键位于电平为低的列线与 4 跟行线相交叉的 4 个按键 中 若所有列线都为高电平 表示没有按键按下 2 判断被按下按键所在的位置 在确认有键按下后 进行按键消抖处理后 接下来就是确定具体哪个案件被按下 方法是 依次将每根行线设置为输出 口 并输出低电平 同时剩余行线输出高电平 然后逐列检查每根列线的电 平状态 若某列为低电平 则该列线与设置为输出低电平的行线交叉处的按键 就是被按下的按键 3 按键位置确定后 接下来就要给矩阵键盘中的每个按键进行编号 也就 是进行按键编码 程序设计中常用计算法和查表法两种方式对按键进行编码 程序设计中常用计算法和查表法两种方式对按键进行编码 本实例采用计算法编码 从上面的电路图中我们可以看到 键盘的所有行 线接到了 P3 0 P3 3 口 51 单片机上电后为高电平 这是确保在没有按键按下 的时候 I O 口的电平状态始终为高电平 从而消除外界干扰 对于 51 单片机 来说 我们可以将 P3 4 P3 7 口分别不同置为低电平 当有按键按下时可以比 较 P3 0 P3 7 的压值 则可以得出是哪个键按下并且可以赋予相应的值 并可 以读入单片机中 继续相应的操作 3 2 数据的输出和显示 在日常生活中 我们对液晶显示器并不陌生 液晶显示模块已作为很多电 子产品的通过器件 如在计算器 万用表 电子表及很多家用电子产品中都可 以看到 显示的主要是数字 专用符号和图形 在单片机的人机交流界面中 一般的输出方式有以下几种 发光管 LED 数码管 液晶显示器 发光管和 LED 数码管比较常用 软硬件都比较简单 在前面章节已经介绍过 在此不作介绍 本章重点介绍字符型液晶显示器的应用 在单片机系统中应用晶液显示器作为 输出器件有以下几个优点 显示质量高 由于液晶显示器每一个点在收到信号 后就一直保持那种色彩和亮度 恒定发光 而不像阴极射线管显示器 CRT 那 样需要不断刷新新亮点 因此 液晶显示器画质高且不会闪烁 数字式接口 液晶显示器都是数字式的 和单片机系统的接口更加简单可靠 操作更加方便 体积小 重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示 的目的 在重量上比相同显示面积的传统显示器要轻得多 功耗低相对而言 液晶显示器的功耗主要消耗在其内部的电极和驱动 IC 上 因而耗电量比其它显 示器要少得多 图 3 2 LCD1602 显示电路 如图 3 21 所示 本次设计采用的是 LCD1602 工业字符型液晶 能够同时 显示 16x02 即 32 个字符 16 列 2 行 注 为了表示的方便 后文皆以 1 表示高电平 0 表示低电平 1602 液晶也叫 1602 字符型液晶 它是一种专门用来显示字母 数字 符号 等的点阵型液晶模块 它由若干个 5X7 或者 5X11 等点阵字符位组成 每个点阵 字符位都可以显示一个字符 每位之间有一个点距的间隔 每行之间也有间隔 起到了字符间距和行间距的作用 正因为如此所以它不能很好地显示图形 用 自定义 CGRAM 显示效果也不好 1602LCD 是指显示的内容为 16X2 即可以显 示两行 每行 16 个字符液晶模块 显示字符和数字 市面上字符液晶大多数 是基于 HD44780 液晶芯片的 控制原理是完全相同的 因此基于 HD44780 写的 控制程序可以很方便地应用于市面上大部分的字符型液晶 1602 采用标准的 16 脚接口 其中 第 1 脚 GND 为电源地 第 2 脚 VCC 接 5V 电源正极 第 3 脚 V0 为液晶显示器对比度调整端 接正电源时对比度最弱 接地电 源时对比度最高 对比度过高时会 产生 鬼影 使用时可以通过一个 10K 的 电位器调整对比度 第 4 脚 RS 为寄存器选择 高电平 1 时选择数据寄存器 低电平 0 时选择指令寄存器 第 5 脚 RW 为读写信号线 高电平 1 时进行读操 作 电平 0 时进行写操作 第 6 脚 E 或 EN 端为使能 enable 端 高电平 1 时读取信息 负跳变时执行指令 第 7 14 脚 D0 D7 为 8 位双向数据端 第 15 16 脚 空脚或背灯电源 15 脚背光正极 16 脚背光负极 特性 3 3V 或 5V 工作电压 对比度可调 内含复位电路 提供各种控制命令 如 清屏 字符闪烁 光标闪烁 显示移位等多种功能 有 80 字节显示数据存储器 DDRAM 内建有 192 个 5X7 点阵的字型的字符发生器 CGROM 8 个可由用户自定义的 5X7 的字符发生器 CGRAM 1602 液晶模块内部的字符发生存储器 CGROM 已经存储了 160 个不同的点 阵字符图形 这些字符有 阿拉伯数字 英文字母的大小写 常用的符号 和 日文假名等 每一个字符都有一个固定的代码 比如大写的英文字母 A 的代 码是 01000001B 41H 显示时模块把地址 41H 中的点阵字符图形显示出来 我们就能看到字母 A 在单片机编程中还可以用字符型常量或变量赋值 如 A 因为 CGROM 储存 的字符代码与我们 PC 中的字符代码是基本一致的 因此我们在向 DDRAM 写 C51 字符代码程序时甚至可以直接用 P1 A 这样的方法 PC 在编译时就把 A 先 转换为 41H 代码了 CGROM 中字符码与字符字模关系对照表 字符代码 0 x00 0 x0F 为用户自定义的字符图形 RAM 对于 5X8 点阵的字符 可以存放 8 组 5X10 点阵的字符 存放 4 组 就是 CGRAM 了 0 x20 0 x7F 为标准的 ASCII 码 0 xA0 0 xFF 为日文字符和希腊文字符 其 余字符码 0 x10 0 x1F 及 0 x80 0 x9F 没有定义 以下是 1602 的 16 进制 ASCII 码表地址 读的时候 先读左边那列 再读 上面那行 如 感叹号 的 ASCII 为 0 x21 字母 B 的 ASCII 为 0 x42 前面加 0 x 表示十六进制 本设计将 1602 的数据 命令端接到单片机的 P1 5 端 使能 端接到 P1 4 口 读写端直接接地 本次使用只用其写的功能 1602 的数据端 接到单片机的 P0 端 通过程序即可将单片机从矩阵键盘读入的数据显示到 1602 上面 3 3 报警电路 本次设计使用的蜂鸣器作为警报装置 电路图如下 图 3 3 报警电路 由于自激蜂鸣器是直流电压驱动的 不需要利用交流信号进行驱动 只需 对驱动口输出驱动电平并通过三极管放大驱动电流就能使蜂鸣器发出声音 很 简单 这里就不对自激蜂鸣器进行说明了 这里只对必须用 1 2duty 的方波信 号进行驱动的他激蜂鸣器进行说明 单片机驱动他激蜂鸣器的方式有两种 一种是 PWM 输出口直接驱动 另一 种是利用 I O 定时翻转电平产生驱动波形对蜂鸣器进行驱动 PWM 输出口直接驱动是利用 PWM 输出口本身可以输出一定的方波来直接驱 动蜂鸣器 在单片机的软件设置中有几个系统寄存器是用来设置 PWM 口的输出 的 可以设置占空比 周期等等 通过设置这些寄存器产生符合蜂鸣器要求的 频率的波形之后 只要打开 PWM 输出 PWM 输出口就能输出该频率的方波 这 个时候利用这个波形就可以驱动蜂鸣器了 比如频率为 2000Hz 的蜂鸣器的驱 动 可以知道周期为 500 s 这样只需要把 PWM 的周期设置为 500 s 占空 比电平设置为 250 s 就能产生一个频率为 2000Hz 的方波 通过这个方波再 利用三极管就可以去驱动这个蜂鸣器了 而利用 I O 定时翻转电平来产生驱动波形的方式会比较麻烦一点 必须利 用定时器来做定时 通过定时翻转电平产生符合蜂鸣器要求的频率的波形 这 个波形就可以用来驱动蜂鸣器了 比如为 2500Hz 的蜂鸣器的驱动 可以知道 周期为 400 s 这样只需要驱动蜂鸣器的 I O 口每 200 s 翻转一次电平就可 以产生一个频率为 2500Hz 占空比为 1 2duty 的方波 再通过三极管放大就可 以驱动这个蜂鸣器了 本次设计采用的是通过三极管来驱动蜂鸣器 并且有单 片机延时产生脉冲电流来让蜂鸣器实现报警功能 3 4 硬件总体电路图 本次设计采用 89c52 单片机作为主控芯片 结合矩阵键盘 蜂鸣器电路 LCD1602 显示 做成的简易密码锁设计的总电路图如下所示 图 3 4 第四章 仿真与调试 4 1 程序流程 本次设计的总体思路为 开机后有 1602 显示电路提示输入密码 密码初始 化为 0123 然后可以通过矩阵键盘输入 并通过 1602 显示所输入的密码的 内容 当密码输入 4 位后 自动进入比较函数 如果密码正确则通过 1602 显示 Welcome back 如果密码输入错误 则再次显示输入密码 并且记错一次 记错达到三次后 开始报警 并且输入无效 修改密码设置独立按键 按下后 可以改密码 输入 4 位密码后自动保存 由于本设计没有用到掉电后数据不丢 失的存储芯片 所以修改后只有在程序运行时有效 程序流程图如下 是 否 否 是 否 是 否 图 4 1 程序流程图 开始 修改密码 接受新密 码 密码是 否正确 检测是否 有输入密 码 密码锁开启错误次数 相加 次数是 否 3 报警且其它输入 无效 4 2 仿真结果 当开始仿真时则 1602 液晶显示为 pass word 如下图 4 21 所示 图 4 21 仿真开始显示 其中液晶显示后面 1 代表第几次输入 当密码输入正确时仿真结果如图 4 22 图 4 22 密码输入正确 当密码输入错误时 则再次显示输入密码 并且液晶后面的数字显示会加 1 如图 4 23 所示 图 4 23 密码输入错误时 当输入密码连续错 3 次后 则会报警 如图 4 24 图 4 24 报警仿真 当按下修改密码键的时候 液晶则会显示修改密码 并且显示你所修改的 密码 如图 4 25 所示 图 4 25 修改密码仿真 密码修改成功后 回到输入密码界面 第五章 总结 通过此次课程设计 使我更加扎实的掌握了有关单片机方面的知识 在设 计过程中虽然遇到了一些问题 但经过一次又一次的思考 一遍又一遍的检查 终于找出了原因所在 也暴露出了前期我在这方面的知识欠缺和经验不足 实 践出真知 通过亲自动手制作 使我们掌握的知识不再是纸上谈兵 过而能改 善莫大焉 在课程设计过程中 我们不断发现错误 不断改正 不断领悟 不断获龋最终的检测调试环节 本身就是在践行 过而能改 善莫 大焉 的知行观 这次课程设计终于顺利完成了 在设计中遇到了很多问题 最后在老师的指导下 终于游逆而解 在今后社会的发展和学习实践过程中 一定要不懈努力 不能遇到问题就想到要退缩 一定要不厌其烦的发现问题所 在 然后一一进行解决 只有这样 才能成功的做成想做的事 才能在今后的 道路上劈荆斩棘 而不是知难而退 那样永远不可能收获成功 收获喜悦 也 永远不可能得到社会及他人对你的认可 课程设计诚然是一门专业课 给我很多专业知识以及专业技能上的提升 同时又是一门讲道课 一门辩思课 给了我许多道 给了我很多思 给了我莫 大的空间 同时 设计让我感触很深 使我对抽象的理论有了具体的认识 通 过这次课程设计 我掌握了常用元件的识别和测试 熟悉了常用仪器 仪表 了 解了电路的连线方法 以及如何提高电路的性能等等 掌握了焊接的方法和技术 通过查询资料 也了解了密码锁的构造及原理 我认为 在这一周的课设时间 不仅培养了独立思考 动手操作的能力 在各种其它能力上也都有了提高 更重要的是 在实践中 我们学会了很多学 习的方法 而这是日后最实用的 真的是受益匪浅 要面对社会的挑战 只有 不断的学习 实践 再学习 再实践 这对于我们的将来也有很大的帮助 以 后 不管有多苦 我想我们都能变苦为乐 找寻有趣的事情 发现其中珍贵的 事情 就像中国提倡的艰苦奋斗一样 我们都可以在实验结束之后变的更加成 熟 会面对需要面对的事情 回顾起此课程设计 至今我仍感慨颇多 从理论到实践 在这段日子里 可以说得是苦多于甜 但是可以学到很多很多的东西 同时不仅可以巩固了以 前所学过的知识 而且学到了很多在书本上所没有学到过的知识 通过这次课 程设计使我懂得了理论与实际相结合是很重要的 只有理论知识是远远不够的 只有把所学的理论知识与实践相结合起来 从理论中得出结论 才能真正为社 会服务 从而提高自己的实际动手能力和独立思考的能力 在设计的过程中遇 到问题 可以说得是困难重重 但可喜的是最终都得到了解决 本次设计让我认识到了 做事不能马虎 一件事的全部可能问题就出现在 某一点上面 在本次课程设计中 由于时间较短 来不及搭建硬件 就使用了 开发板进行程序调试 由于开发板的端口限制 矩阵键盘和液晶显示的控制有 相同的端口 这就导致有些功能完成不了 例如在调试用液晶显示输入的密码 时 由于同时使用的 P3 4 和 P3 5 导致了输入密码是液晶无法显示输入的东 西 并且按键按下时液晶的光标也乱跑 由于我的粗心 没有仔细想这个原因 就在程序的时序语句上修改 结果修改的半天也是没有进展白白的浪费了时间 后来仔细思考才发现是端口共用的结果 于是我就把液晶的端口改到别的地方 去了 再调试程序 当然是符合自己的想法了 此次设计也让我明白了思路即出路 有什么不懂不明白的地方要及时请教 或上网查询 只要认真钻研 动脑思考 动手实践 就没有弄不懂的知识 收 获颇丰 参考文献 1 郭天祥主编 51 单片机 C 语言教程 电子工业出版社 2009 1 2 丁元杰主编 单片微型计算机 北京 机械工业出版社 2003 3 李广第主编 单片机基础 北京 北京航天工业出版社 2002 4 单片机原理及应用 张鑫等 电子工业出版社 5 MCS51 单片机应用设计 张毅刚等 哈尔滨工业大学 6 MCS51 系列单片机实用接口技术 李华等 北京航天航空大学 7 PROTEL2004 电路原理图及 PCB 设计 清源科技 机械工业出版社 8 基于 MCS 51 系列单片机的通用控制模块的研究 曹卫芳 山东科技大学 9 单片机应用技术选编 何立民 北京航空航天大学出版社 2000 附录 程序代码 主程序 密码锁 c include define uc unsigned char define ui unsigned int include key c include yejing c include head h sbit beep P2 3 sbit key P2 0 uc code table1 pass word uc table 4 0 1 2 3 密码 uc table2 Welcom back uc table4 ALARM uc table5 chang mima uc m ronum flag mitu miro void chushi write zhiling 0 x80 2 for m 0 m 10 m write date table1 m delay 5 write date write date table3 ronum 1 write date write zhiling 0 x0e write zhiling 0 x80 40 void alrm beep 0 delay 500 beep 1 delay 500 void bijiao if mima 0 table 0 else miro 1 ronum P1 0 xff void panduan 输入密码 if ronum 3 if a 4 密码位数 keyscan flag 1 else if flag 1 bijiao 比较密码 flag 0 if mitu 1 密码正确 write zhiling 0 x01 清屏 delay 50 write zhiling 0 x80 2 for m 0 m 3 write zhiling 0 x01 错误超过三 次 警报 write zhiling 0 x80 4 for m 0 m 6 m write date table4 m delay 5 alrm void change 修改密码 if b 4 keyscan else 修改成功 xiugai 0 write zhiling 0 x01 csh chushi void main csh chushi while 1 if key 0 修改密码键 delay 10 if key 0 xiugai 1 修改判断 while key write zhiling 0 x01 write zhiling 0 x80 2 for m 0 m0 y for z 110 z 0 z uc keyscan uc num temp P3 0 xfe temp P3 temp temp while temp 0 xf0 delay 5 temp P3 temp temp while temp 0 xf0 temp P3 switch temp case 0 xee num 0 break case 0 xde num 1 break case 0 xbe num 2 break case 0 x7e num 3 break while temp 0 xf0 temp P3 temp temp if xiugai 1 table b num else mima a num write date num P3 0 xfd temp P3 temp temp while temp 0 xf0 delay 5 temp P3 temp temp while temp 0 xf0 temp P3 switch temp case 0 xed num 4 break case 0 xdd num 5 break case 0 xbd num 6 break case 0 x7d num 7 break while temp 0 xf0 temp P3 temp temp if xiugai 1 table b num else mima a num write date num P1 num P3 0 xfb temp P3 temp temp while temp 0 xf0 delay 5 temp P3 temp temp while temp 0 xf0 temp P3 switch temp case 0 xeb num 8 break case 0 xdb num 9 break while temp 0 xf0 temp P3 temp temp if xiugai 1 table b num else mima a num write date num P1 num return num 液晶显示程序 yejing c include head h sbit rs P1 5 sbit rw P3 6 sbit len P1 4 sbit duan P2 6 sbit wei P2 7 void write date uc date rs 1 delay 5 P0 date delay 5 len 1 delay 5 len 0 void write zhiling uc zhiling rs 0 delay 5 P0 zhiling delay 5 len 1 delay 5 len 0 void csh duan 0 wei 0 rw 0 write zhiling 0 x38 write zhiling 0 x0c write zhiling 0 x06 write zhiling 0 x80 头文件程序 head h ifndef GUI H HFILE define GUI H HFILE 1 void write date uc date void write zhiling uc zhiling void delay ui x uc keyscan void csh void readkey uc endif- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 简易 密码锁
![提示](https://www.zhuangpeitu.com/images/bang_tan.gif)
关于本文