电子密码锁设计课程设计.doc_第1页
电子密码锁设计课程设计.doc_第2页
电子密码锁设计课程设计.doc_第3页
电子密码锁设计课程设计.doc_第4页
电子密码锁设计课程设计.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

陕西理工学院课程设计 第 1 页 共 23 页 课程设计 题 目 电子密码锁设计 学生姓名 谢小宁 学号 1010064051 所在院 系 陕西理工学院 物电学院 专业班级 电子信息科学与技术 102 指导教师 周平和 完成地点 陕西理工学院 2012 年 11 月 15 日 陕西理工学院课程设计 第 2 页 共 23 页 电子密码锁设计 谢小宁 陕西理工学院物电学院电子信息科学与技术 102 班 陕西汉中 723001 指导老师 周平和 摘要 在日常的生活和工作中 住宅与部门的安全防范 单位的文件档案 财务报表以及一些个人资料 的保存多以加锁的办法来解决 若使用传统的机械式钥匙开锁 人们常需携带多把钥匙 使用极不方便 且钥匙丢 失后安全性即大打折扣 具有防盗报警等功能的电子密码锁代替密码量少 安全性差的机械式密码锁已是必然趋势 随着科学技术的不断发展 人们对日常生活中的安全保险器件的要求越来越高 为满足人们对锁的使用要求 增加 其安全性 用密码代替钥匙的密码锁应运而生 密码锁具有安全性高 成本低 功耗低 易操作 记住密码即可开 锁等优点 本系统以 stc89c52 单片机最小系统为核心 结合矩阵键盘 数码管显示和报警系统组成 系统能完成锁闭状 态显示 密码输入错误超次 大于三次 异常 系统锁定声光告警 初始化设置用户密码等基本的密码锁的功能 除上述基本的密码锁功能外 依据实际的情况还可以重置密码 关键字 电子密码锁 stc89c52 数码管显示 3 4 矩阵键盘 design of electronic password lock xie xiaoning grade10 class2 major electronic information science and technology department of physics shannxi university of technology hanzhong 723001 tutor zhou ping he abstract in the day to day living and working in the residential sector and the safety precautions units of paper files financial statements and some personal information to the preservation of more than locking the solution to the problem if the use of traditional mechanical key to unlock people often need to carry more keys a very inconvenient to use and after the loss of key security that is greatly reduced with anti theft alarm function instead of the password is less electronic lock security poor mechanical lock is an inevitable trend with the continuous development of science and technology in the daily lives of people on insurance safety devices increasingly demanding to meet the requirements of the use of locks to increase their security with a password instead of the password key lock came into being password lock is safe low cost low power consumption easy to operate remember the password to unlock it and other advantages the system stc89c52 microcomputer as the core combined with matrix keyboards led display and alarm system components system can complete the lock status display the password input error and ultra more than three times abnormal sound and light alarm system lock initialized to set user passwords and other basic lock function in addition to the basic lock function based on the actual situation can also reset your password keywords electronic password lock stc89c52 led display 3 4 keyboard 陕西理工学院课程设计 第 3 页 共 23 页 目录 1 引言 4 2 系统概述 4 2 1 系统功能 4 2 2 设计内容及要求 4 3 系统方案设计 4 3 1 总体方案 4 3 2 系统组成 5 4 硬件设计 5 4 1 按键电路设计 5 4 2 指示灯及报警蜂鸣器的电路设计 5 4 3 显示电路设计 6 4 4 复位键的设计 6 5 软件设计 7 5 1 主程序设计 8 5 2 按键识别与编码设计 8 5 3 显示程序设计 9 5 4 密码修改程序设计 11 6 系统调试 12 6 1 软件模拟调试 12 6 2 硬件接线及调试 13 设计总结 14 参考文献 15 附录 a 硬件原理图 16 附录 b 源程序 17 陕西理工学院课程设计 第 4 页 共 23 页 1 引言 随着电子技术的发展 利用电子设备制作改进相关生活用品 得到价格更低 质量更好 可靠 性的更高的产品 掀起了一次生活变革的浪潮 结合数字电路严密的逻辑功能的特点 与当今数字 逻辑电路发展的现状 利用数字电路控制锁具而研发电子密码锁成为了时代的必然 本次课程设计就是利用所学的电路知识 忽略复杂的实物锁体器件的驱动 简单模拟实现数字 密码锁原理功能 从而复习相关知识 达到理论与实践相结合的目的 2 系统概述 2 12 1 系统功能系统功能 本次设计使用 atmel 公司的 at 80c51 实现一基于单片机的电子密码锁的设计 其主要具有 如下功能 1 设置 6 位密码 密码通过键盘输入 若密码正确 则将锁打开 2 默认密码为 123456 密码可以由用户自己修改设定 输入密码正确后才能修改密码 3 状态指示 报警 锁定键盘功能 密码输入正确时有 good 提示信息 密码输入错误数 码显示器会出现错误提示 若密码输入错误次数超过 3 次 蜂鸣器报警并且锁定键盘 并且相应的 有指示灯指明状态 电子密码锁的设计主要由三部分组成 3 4 矩阵键盘接口电路 密码锁的控制电路 输出八 段显示电路 另外系统还有 led 提示灯 报警蜂鸣器等 2 22 2 设计内容及要求设计内容及要求 1 密码的设定 此密码是固定在程序存储器 rom 中 假设预设的密码为 123456 共 6 位密码 2 密码的输入 采用数字键盘来完成密码的输入 其中 号按键为确认键 号键位取消键 其他按键为数字键 在密码输入完毕并且确认功能键之后 才能完成密码的输入 过程 然后进入密码的判断比较处理状态并给出相应的处理过程 3 按键禁止功能 初始化时 允许按键输入密码 当有按键按下并开始进入按键识别状态 时 按键禁止功能被激活 但启动的状态是在 3 次密码输入不正确的情况下发生的 3 系统方案设计 3 13 1 总体方案总体方案 本密码锁系统采用 89c52 做主控制器 控制密码的输入 判断密码的正确与否 首先 系统将 允许用户输入密码 用存储单元把输入的密码进行动态的保存 当用户输入完后可以按下 表 示取消 重新输入密码 当用户输入完后可以按下 表示确定 系统将进行密的确认 如果密 码正确 则显示 good 并且有绿灯亮 如果不正确 红灯亮 显示 no 用户可以再次进行输 入密码 当用户连续三次输入错误时 系统将显示 no 和有报警的声音发出 黄 绿 红灯同时 亮 并且把键盘进行锁定 禁止用户进行输入 扩展功能的实现是在输入了正确的密码之后 如果按 键表示放弃对密码的修改 如果按 下 键 黄灯亮 就可以对默认密码进行修改 将进入修改密码状态并保存到存储默认密码的 单元 按 返回再次输入密码 按 键确认 显示 good 密码修改成功 返回主菜单 这样修改功能得以实现 陕西理工学院课程设计 第 5 页 共 23 页 3 23 2 系统组成系统组成 本系统由单片机 89c52 系统 矩阵键盘 开关 led 显示和报警系统组成 系统组成原理框图如图 3 1 所示 图 3 1 系统组成原理框图 4 硬件设计 4 14 1 按键电路设计按键电路设计 由于设计要求输入数字密码 所以本设计就采用数字键盘 有 0 9 共十位数字 检测方法采用 线反转法 先检测行后检测列 其原理如图 4 1 所示 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0 0 ad0 39 p0 1 ad1 38 p0 2 ad2 37 p0 3 ad3 36 p0 4 ad4 35 p0 5 ad5 34 p0 6 ad6 33 p0 7 ad7 32 p2 7 a15 28 p2 0 a8 21 p2 1 a9 22 p2 2 a10 23 p2 3 a11 24 p2 4 a12 25 p2 5 a13 26 p2 6 a14 27 p1 0 1 p1 1 2 p1 2 3 p1 3 4 p1 4 5 p1 5 6 p1 6 7 p1 7 8 p3 0 rxd 10 p3 1 txd 11 p3 2 int0 12 p3 3 int1 13 p3 4 t0 14 p3 7 rd 17 p3 6 wr 16 p3 5 t1 15 u1 80c51 srcfile wave文件 001 asm program dianzisuo hex 123 456 789 0 1 2 3 a b c d r2 10k 图 4 1 单片机的键盘接口电路 4 24 2 指示灯及报警蜂鸣器的电路设计指示灯及报警蜂鸣器的电路设计 指示灯及报警蜂鸣器的电路如图 4 2 所示 当输入的密码正确时 绿灯亮 当输入的密码错 误时 红灯亮 当三次错误输入时 绿灯和黄灯和红灯同时亮并且报警器发出报警 状态指示灯 80c51 单片机 矩阵 键盘 控制 lcd 六位显示器 复位按钮 一个蜂鸣器 陕西理工学院课程设计 第 6 页 共 23 页 图 4 2 指示灯及报警蜂鸣器的电路 4 34 3 显示电路设计显示电路设计 将 p1 与显示的数据端相连 使其它能动态的传输要显示的数据 将 p3 的第六位与位选通端 相连 选通相应的位 接线如图 4 3 所示 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0 0 ad0 39 p0 1 ad1 38 p0 2 ad2 37 p0 3 ad3 36 p0 4 ad4 35 p0 5 ad5 34 p0 6 ad6 33 p0 7 ad7 32 p2 7 a15 28 p2 0 a8 21 p2 1 a9 22 p2 2 a10 23 p2 3 a11 24 p2 4 a12 25 p2 5 a13 26 p2 6 a14 27 p1 0 1 p1 1 2 p1 2 3 p1 3 4 p1 4 5 p1 5 6 p1 6 7 p1 7 8 p3 0 rxd 10 p3 1 txd 11 p3 2 int0 12 p3 3 int1 13 p3 4 t0 14 p3 7 rd 17 p3 6 wr 16 p3 5 t1 15 u1 80c51 srcfile wave文件 001 asm program dianzisuo hex图 4 3 显示电路 4 44 4 复位键的设计复位键的设计 当密码输入三次错误 则系统锁定键盘输入 按下复位键后 系统重新开始 如此可以防止系 统报废 让系统再次循环使用 其硬件图如图 4 4 所示 陕西理工学院课程设计 第 7 页 共 23 页 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0 0 ad0 39 p0 1 ad1 38 p0 2 ad2 37 p0 3 ad3 36 p0 4 ad4 35 p0 5 ad5 34 p0 6 ad6 33 p0 7 ad7 32 p2 7 a15 28 p2 0 a8 21 p2 1 a9 22 p2 2 a10 23 p2 3 a11 24 p2 4 a12 25 p2 5 a13 26 p2 6 a14 27 p1 0 1 p1 1 2 p1 2 3 p1 3 4 p1 4 5 p1 5 6 p1 6 7 p1 7 8 p3 0 rxd 10 p3 1 txd 11 p3 2 int0 12 p3 3 int1 13 p3 4 t0 14 p3 7 rd 17 p3 6 wr 16 p3 5 t1 15 u1 80c51 srcfile wave文件 001 asm program dianzisuo hex 123 456 789 0 1 2 3 a b c d r2 10k 图 4 4 复位键 5 软件设计 开始 付初值 密码123456 错误次数3 输入的是 键 输入的是 号键 n 开机显示 n 检查密码 是否正确 是否修改 密码 确认 放弃 修改成功 显示good 显示 输入的密码 用 代表密码 显示no 红灯亮 显示good 绿灯亮 是否3次 密码错误 报警器发声 绿红黄灯都亮 等待输入 黄 绿灯亮 n 结束 输入的是 键 输入的是 号键 n 显示输入密码 用 代表密码 n y y y 等待 键盘输入 n y y y y 图 5 1 主程序流程图 陕西理工学院课程设计 第 8 页 共 23 页 5 15 1 主程序设计主程序设计 主程序主要完成初始化 检查有无按键按下 以及调用显示 指示灯 密码修改等等 流程图 如图 5 1 所示 具体模块包括 1 按键识别与编码设计 2 显示程序设计 3 密码修改程序设计 5 25 2 按键识别与编码设计按键识别与编码设计 当没有按键按下的时候 单片机循环等待按键按下 一旦有按键按下 便转向相应的子程序 处理 处理结束再返回 每一条水平 行线 与垂直线 列线 的交叉处不相通 而是通过一个按键来连通 利用这 种行列式矩阵结构只需要 n 条行线和 m 条列线 即可组成具有 n m 个按键的键盘 在这种行列 式矩阵键盘非键盘编码的单片机系统中 键盘处理程序首先执行等待按键并确认有无按键按下的程 序段 当确认有按键按下后 下一步就要识别哪一个按键按下 对按键的识别通常有两种方法 一 种是常用的逐行扫描查询法 另一种是速度较快的线反转法 对照图 5 2 1 所示的 3 4 键盘 说明扫描法原理 首先辨别键盘中有无键按下 有则单片机 i o 口向键盘送全扫描字 然后读入行线状态来判断 把每个键都分成水平和垂直的两端接入 比 如说扫描码是从垂直的入 那就代表那一行所接收到的扫描码是同一个 bit 而读入扫描码的则是 水平 扫描的动作是先输入扫描码 再去读取输入的值 经过比对之后就可知道是哪个键被按下 图 5 2 1 键盘 比如说扫描码送入 00001111 前面的 0000 是代表列 而后面的 1111 代表行 是让读取的 4 行接脚先设高 若此时第一行的第一列按键被按下 那读取的结果就会变成 00001110 注意 1111 变成 1110 其中 lsb 的第一个 bit 会由 1 变成 0 这是因为这个按键被按下之后 会被垂直的扫 描码电位短路接通 而把读取的 lsb 的 bit 电位拉到 0 如此我们就知道是第一行有按键按下 然 后再送入扫描码 11110000 同理可以得出是第一列有按键按下 2 次半段后就可以知道结果是按键 1 被按下 此即为扫描原理 其流程图如图 5 2 2 所示 陕西理工学院课程设计 第 9 页 共 23 页 开始 mov p2 0fh 检测哪一排的 键被按下 p2 0 0 p2 1 0 p2 2 0 p2 3 0 mov p2 0f0h 检测哪一列的 键被按下 p2 4 0 p2 5 0 输出为1号键 输出为2号键 输出为3号键 mov p2 0f0h 键盘横排为0 竖排为1 p2 4 0 p2 5 0 输出为4号键 输出为5号键 输出为6号键 mov p2 0f0h 键盘横排为0 竖排为1 p2 4 0 p2 5 0 输出为 号键 输出为0号键 输出为 号键 mov p2 0f0h 键盘横排为0 竖排为1 p2 4 0 p2 5 0 输出为7号键 输出为8号键 输出为9号键 n n n n n n y y y y n n n y y n y y n n y y y y 结束 图 5 2 2 键盘识别子程序流程图 5 35 3 显示程序设计显示程序设计 显示设计采用动态扫描 显示程序流程图如图 5 3 所示 陕西理工学院课程设计 第 10 页 共 23 页 开始 显示 输入的密码 用 代表 输入几个密码 就显示几个 保存 输入的密码 结束 图 5 3 显示程序流程图 数码显示板上一共有 6 个数码管 如果按照传统的数码管驱动方式 静态扫描方式 则需要 6 个七段译码器进行驱动 这样既浪费资源 有时电路工作也不可靠 所以现在最常见的数码管驱 动电路已经不用上述的静态扫描方式了 而是采用动态扫描显示的方式 这种方式只需一个译码器 就可以实现电路正常 可靠的工作 这样大大节省资源 动态数码扫描显示方式是利用了人眼的视 觉暂留效应 把八个数码管按一定顺序 从左至右或从右至左 进行点亮 当点亮的频率 即扫描 频率 不大时 我们看到的是数码管一个个的点亮 然而 当点亮频率足够大时 我们看到的不再 是一个一个的点亮 而是全部同时显示 点亮 与传统方式得到的视觉效果完全一样 因此我们 只要给数码管这样一个扫描频率 那么就可以实现两个以上的数码管同时点亮 而这个频率我们可 以通过一个计数器来产生 只要计数频率足够大 就可以实现我们的要求 事实上 因为数码管点 亮不是瞬间就可以的 它也需要一定的时间 该时间与数码管的选择有关系 为了折中这一对矛盾 实验中一般可将计数频率选择在 100hz 左右肯定可以满足上述两个要求 动态扫描的频率有一定的 要求 频率太低 led 将出现闪烁现象 如频率太高 由于每个 led 点亮的时间太短 led 的亮 度太低 肉眼无法看清 所以一般均取几个 ms 左右为宜 这就要求在编写程序时 选通某一位 led 使其点亮并保持一定的时间 程序上常采用的是调用延时子程序 在 c51 指令中 延时子程 序是相当简单的 并且延时时间也很容易更改 可参见程序清单中的 delay 延时子程序 如果显示数字 要为 led 显示器提供字型代码 我用的是共阳极的显示器 led 显示器的字 形代码如下表所示 表 5 1 led 显示器共阴极十六进制数的字型代码 0123456789 c0hf9ha4hb0h99h92h82hf8h80h90h 主要有三个显示程序组成 分别为按键后的输入密码正确的提示程序 密码输入错误后的 提示子程序 询问是否修改密码子程序 陕西理工学院课程设计 第 11 页 共 23 页 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0 0 ad0 39 p0 1 ad1 38 p0 2 ad2 37 p0 3 ad3 36 p0 4 ad4 35 p0 5 ad5 34 p0 6 ad6 33 p0 7 ad7 32 p2 7 a15 28 p2 0 a8 21 p2 1 a9 22 p2 2 a10 23 p2 3 a11 24 p2 4 a12 25 p2 5 a13 26 p2 6 a14 27 p1 0 1 p1 1 2 p1 2 3 p1 3 4 p1 4 5 p1 5 6 p1 6 7 p1 7 8 p3 0 rxd 10 p3 1 txd 11 p3 2 int0 12 p3 3 int1 13 p3 4 t0 14 p3 7 rd 17 p3 6 wr 16 p3 5 t1 15 u1 80c51 srcfile wave文件 001 asm program dianzisuo hex r1 10 r3 10 ls1 sounder d2 led red d3 led green 123 456 789 0 1 2 3 a b c d r2 10k r4 10 d4 led blue 图 5 4 1 等待密码输入及修改显示状态 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0 0 ad0 39 p0 1 ad1 38 p0 2 ad2 37 p0 3 ad3 36 p0 4 ad4 35 p0 5 ad5 34 p0 6 ad6 33 p0 7 ad7 32 p2 7 a15 28 p2 0 a8 21 p2 1 a9 22 p2 2 a10 23 p2 3 a11 24 p2 4 a12 25 p2 5 a13 26 p2 6 a14 27 p1 0 1 p1 1 2 p1 2 3 p1 3 4 p1 4 5 p1 5 6 p1 6 7 p1 7 8 p3 0 rxd 10 p3 1 txd 11 p3 2 int0 12 p3 3 int1 13 p3 4 t0 14 p3 7 rd 17 p3 6 wr 16 p3 5 t1 15 u1 80c51 srcfile wave文件 001 asm program dianzisuo hex r1 10 r3 10 ls1 sounder d2 led red d3 led green 123 456 789 0 1 2 3 a b c d r2 10k r4 10 d4 led blue 图 5 4 2 输入密码正确的显示状态 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0 0 ad0 39 p0 1 ad1 38 p0 2 ad2 37 p0 3 ad3 36 p0 4 ad4 35 p0 5 ad5 34 p0 6 ad6 33 p0 7 ad7 32 p2 7 a15 28 p2 0 a8 21 p2 1 a9 22 p2 2 a10 23 p2 3 a11 24 p2 4 a12 25 p2 5 a13 26 p2 6 a14 27 p1 0 1 p1 1 2 p1 2 3 p1 3 4 p1 4 5 p1 5 6 p1 6 7 p1 7 8 p3 0 rxd 10 p3 1 txd 11 p3 2 int0 12 p3 3 int1 13 p3 4 t0 14 p3 7 rd 17 p3 6 wr 16 p3 5 t1 15 u1 80c51 srcfile wave文件 001 asm program dianzisuo hex r1 10 r3 10 ls1 sounder d2 led red d3 led green 123 456 789 0 1 2 3 a b c d r2 10k r4 10 d4 led blue 图 5 4 3 输入密码错误的显示状态 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0 0 ad0 39 p0 1 ad1 38 p0 2 ad2 37 p0 3 ad3 36 p0 4 ad4 35 p0 5 ad5 34 p0 6 ad6 33 p0 7 ad7 32 p2 7 a15 28 p2 0 a8 21 p2 1 a9 22 p2 2 a10 23 p2 3 a11 24 p2 4 a12 25 p2 5 a13 26 p2 6 a14 27 p1 0 1 p1 1 2 p1 2 3 p1 3 4 p1 4 5 p1 5 6 p1 6 7 p1 7 8 p3 0 rxd 10 p3 1 txd 11 p3 2 int0 12 p3 3 int1 13 p3 4 t0 14 p3 7 rd 17 p3 6 wr 16 p3 5 t1 15 u1 80c51 srcfile wave文件 001 asm program dianzisuo hex r1 10 r3 10 ls1 sounder d2 led red d3 led green 123 456 789 0 1 2 3 a b c d r2 10k r4 10 d4 led blue 图 5 4 4 输入密码正确后询问是否修改密码状态 图 5 4 显示状态 5 45 4 密码修改程序设计密码修改程序设计 修改密码的功能 是自己扩展的功能 再输入了正确的密码之后 按下 键就可以进行密 码的修改了 输入新密码完毕后 再按 确认 则密码修改成功 在屏幕上显示 good 信息 则已经修改成功了 密码修改子程序流程图 5 5 所示 陕西理工学院课程设计 第 12 页 共 23 页 开始 等待输入 输入的是 号键 输入的是 号键 结束 显示密码 用 代表 并保持 n y n 修改成功 显示good y 图 5 5 修改子程序流程图 6 系统调试 6 16 1 软件模拟调试软件模拟调试 首先 在 keil 里面写的程序进行编译 编译通不过 不过这也是意料之中的事 把一个一个 提示的错误给改正过来 重新进行编译 终于没有错误提示信息了 接着 进行软件仿真 在 proteus 里面把硬件原理图画好 把在 keil 里面写的程序装进 89c52 进行仿真 按下任何的键都没 有反应 只好回到程序上进行修改了 把程序分成各个小的子程序逐一进行调试 对显示子程序进行调试 发现能够正确的显示 则表示此程序一切都正常 在把键盘识别和编码的子程序添加进去 发现不能显示了 说明是这个子程序存在问题 接 下来重点就是键盘编码部分了 由于我用的是顺序的判断是否有键按下和具体到底是哪个键被按下 思路特别的清晰 所以查找起来比较的方便 由于没有任何的反应 最有可能的就是进入了死循环 所以 先检查一下编码识别后面的程序 果真是进入了死循环 本来是应该编码之后就根据 r7 的 值相应进行查表 进行显示 但由于我的粗心 把一个变量没有归零所以一直在里面循环 把所有 类似的错误改过来 发现就能够正确的显示了 按下哪个数字键就相应的显示它的值 当我把显 示子程序改为扫描方式 让其动态的显示多位 按键之后却发现全屏幕显示相同的数 看到如此的 现象 心应该是按一次键 却执行了很多的次数 所以最后全屏幕上都上相同的数 如此一来就应该加一个判断是否已经放下键了 但是需要在每个判断是否有键按下后面都要 加一个判断 这样太麻烦 但是我们也可以在每次判断之后把相应的编码用完 立即清零也可以达 到如此的效果 按照思路对程序进行相应的修改 在进行仿真 真的问题就迎刃而解了 按下哪个 数就在屏幕上显示哪个值 按几个就显示几个 小于 6 接下来要做的就是 对所输入的密码进行比较 把 check 子程序添加进去 如果不出现意 外的话 屏幕上会有 good 的提示信息 并且红色的指示灯亮 密码的比较有两个方面 一是对 输入密码的个数进行比较 二是对密码的数值依次进行比较 只有全部通过猜是密码正确 在 陕西理工学院课程设计 第 13 页 共 23 页 proteus 里面进行仿真 发现不管你输入的密码是正确还是错误的密码都错误的提示信息 真有 想放弃的感觉 其实真的要有耐心和毅力的 心想这么容易的话 还有学的必要吗 呵呵 慢慢的 心又平静下来了啊 投入到了程序之中 再次仿真 令人欣慰的是 如我所思考的 问题解决了 再把对密码的每一位进行比较加去 打击人的是 又不对了啊 呵呵 真的是可笑我居然把一个编 码键值与直接的显示数值相比较 那肯定是不会相等的啊 对此做了相应的改动之后 一切都正确 了 接着就是如果输入的密码错误次数连续超过三次的调试 前两次只有红灯亮 三次错误之后 红灯 绿灯和黄灯都亮 呵呵 这次还好 一试就成功了 感觉这个模块是我做的最理想的一个模 块了啊 工夫不负有心人 至此 老师分配给我们的基本任务就完成了 心里感觉特别的爽啊 我自 己还想再里面加上修改密码的功能 用 来充当确定键 到此软件的调试就结束了 6 26 2 硬件接线及调试硬件接线及调试 虽然软件设计是非常重要的 但是还是纸上谈兵 真正要到了调试的时候 这又是一个另一 个比设计还头痛的事 我们说它令人头痛事有原因的 按理是通的 但调试不一定可以出来 甚至 于设计是错误的 调试是设计的试金石啊 付出了努力 还是有回报的 最终所有的功能都能在电路板上操作成功 陕西理工学院课程设计 第 14 页 共 23 页 设计总结设计总结 课程设计是培养学生综合运用所学知识 发现 提出 分析和解决实际问题 锻炼实践能力的重要 环节 是对学生实际工作能力的具体训练和考察过程 随着科学技术发展的日新日异 单片机已经成 为当今计算机应用中空前活跃的领域 在生活中可以说得是无处不在 因此作为二十一世纪的大 学来说掌握单片机的开发技术是十分重要的 回顾起此次课程设计 我仍感慨颇多 的确 从选题到定稿 从理论到实践 在接近四星期 的日子里 可以说得是苦多于甜 但是可以学到很多很多的东西 同时不仅可以巩固了以前所学过 的知识 而且学到了很多在书本上所没有学到过的知识 这次课程设计使我懂得了理论与实际相结 合是很重要的 只有理论知识是远远不够的 只有把所学的理论知识与实践相结合起来 从理论中 得出结论 才能真正为社会服务 从而提高自己的实际动手能力和独立思考的能力 在设计的过程 中遇到问题 可以说得是困难重重 同时在设计的过程中发现了自己的不足之处 对以前所学过的 知识理解得不够深刻 掌握得不够牢固 比如说不懂一些元器件的使用方法 对单片机汇编语言掌 握得不好 通过这次课程设计之后 一定把以前所学过的知识重新温故 通过这次单片机课程设计 我不仅加深了对单片机理论的理解 将理论好地应用到实际当中 去 而且我还学会了如何去培养我们的创新精神 而不断地战胜自己 超越自己 创新可以是在原 有的基础上进行改进之功能不断完善 成为自己的东西 俗话说 好的开始是成功的一半 说起课程设计 我认为最重要的就是做好设计的预习 认 真的研究老师给的题目 选一个自己有兴趣的题目 其次 老师对实验的讲解要一丝不苟的去听去 想 因为只有都明白了 做起设计就会事半功倍 如果没弄明白 就迷迷糊糊的去选题目做设计 到头来一点收获也没有 最后 要重视程序的模块化 修改的方便 也要注重程序的调试 掌握其 方法 软件的编程也要我们不断的调试 最终一个能完成课程设计的劳动成果出来了 很高兴它能 按着设计的思想与要求运动起来 当然 这其中也有很多问题 第一 不够细心比如由于粗心大意接错了线 由于对课本理论 的不熟悉导致编程出现错误 第二 是在学习态度上 这次课程设计是对我的学习态度的一次检验 对于这次单片机综合课程实习 我的第一大心得体会就是作为一名工程技术人员 要求具备的首要 素质绝对应该是严谨 我们这次实习所遇到的多半问题多数都是由于我们不够严谨 第三 在做人 上 我认识到 无论做什么事情 只要你足够坚强 有足够的毅力与决心 有足够的挑战困难的勇 气 就没有什么办不到的 这次课程设计终于顺利完成了 在设计中遇到了很多编程问题 最后在老师的辛勤指导下 终于游逆而解 同时 在老师那里我学得到很多实用的知识 在此对周老师以及给过我帮助的所有 同学再次表示忠心的感谢 陕西理工学院课程设计 第 15 页 共 23 页 参考文献 1 微型计算机原理及应用 许立梓编 机械工业出版社 2002 2 微型计算机接口技术及应用 刘乐善编 华中理工大学出版社 2000 3 计算机硬件技术基础试验教程 邹逢兴编 高等教育出版社 2000 4 16 位微型计算机原理接口及其应用 周佩玲编 中国科学技术大学出版社 2000 5 微型计算机原理与接口技术 吴秀清编 中国科学技术出版社 2001 6 微型计算机接口技术 邓亚平编 清华大学出版社 2001 7 单片机原理及及应用 王迎旭编 机械工业出版社 2001 8 单片机应用程序设计技术 周航慈 著 北京航空航天大学出版社 2002 9 单片机实用技术问答 谢宜仁 主编 人民邮电出版社 2002 陕西理工学院课程设计 第 16 页 共 23 页 附录 a 硬件原理图 xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0 0 ad0 39 p0 1 ad1 38 p0 2 ad2 37 p0 3 ad3 36 p0 4 ad4 35 p0 5 ad5 34 p0 6 ad6 33 p0 7 ad7 32 p2 7 a15 28 p2 0 a8 21 p2 1 a9 22 p2 2 a10 23 p2 3 a11 24 p2 4 a12 25 p2 5 a13 26 p2 6 a14 27 p1 0 1 p1 1 2 p1 2 3 p1 3 4 p1 4 5 p1 5 6 p1 6 7 p1 7 8 p3 0 rxd 10 p3 1 txd 11 p3 2 int0 12 p3 3 int1 13 p3 4 t0 14 p3 7 rd 17 p3 6 wr 16 p3 5 t1 15 u1 80c51 srcfile wave文件 001 asm program dianzisuo hex r1 10 r3 10 ls1 sounder d2 led red d3 led green 123 456 789 0 1 2 3 a b c d r2 10k r4 10 d4 led blue 图附录 a1 硬件原理图 陕西理工学院课程设计 第 17 页 共 23 页 附录 b 源程序 源程序 org 0000h start mov r7 03h mov 50h 82h 密码付初值 mov 51h 92h mov 52h 99h mov 53h 0b0h mov 54h 0a4h mov 55h 0f9h mov 60h 01h 显示付初值 mov 61h 03h mov 62h 07h mov 63h 0fh mov 64h 1fh mov 65h 3fh main 主程序 mov r0 60h mov r1 20h mov r2 0h mov p0 0ffh 开机显示 mov p3 7fh mov p1 0f7h loop lcall key cjne a 89h main1 jmp main main1 cjne a 9ch main2 lcall check jmp main main2 lcall display inc r0 inc r1 inc r2 cjne r2 06h loop loop2 lcall key cjne a 89h main3 jmp main main3 cjne a 9ch main4 lcall check jmp main 陕西理工学院课程设计 第 18 页 共 23 页 main4 jmp loop2 key mov p2 0fh 键盘输入子程序 jnb p2 0 y1 jnb p2 1 y2 jnb p2 2 y3 jnb p2 3 y4 jmp key y1 mov p2 0ffh mov p2 0f0h jnb p2 4 y11 jnb p2 5 y12 mov a 0b0h ret y11 mov a 0f9h ret y12 mov a 0a4h ret y2 mov p2 0ffh mov p2 0f0h jnb p2 4 y21 jnb p2 5 y22 mov a 82h ret y21 mov a 99h ret y22 mov a 92h ret y3 mov p2 0ffh mov p2 0f0h jnb p2 4 y31 jnb p2 5 y32 mov a 90h ret y31 mov a 0f8h ret y32 mov a 80h ret y4 mov p2 0ffh mov p2 0f0h jnb p2 4 y41 jnb p2 5 y42 mov a 9ch 陕西理工学院课程

温馨提示

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

评论

0/150

提交评论