单片机课设基于51单片机的电子密码锁设计_第1页
单片机课设基于51单片机的电子密码锁设计_第2页
单片机课设基于51单片机的电子密码锁设计_第3页
单片机课设基于51单片机的电子密码锁设计_第4页
单片机课设基于51单片机的电子密码锁设计_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

xxxxxx大学 课课 程程 设设 计计 报报 告告 课程设计名称 单片机系统综合课程设计单片机系统综合课程设计 课程设计题目 基于基于 51 单片机的电子密码锁设计单片机的电子密码锁设计 院 系 专 业 班 级 学 号 姓 名 指导教师 完成日期 目目 录录 第第 1 章章 总体设计方案总体设计方案 1 1 1 课程设计的内容和要求 1 1 2 课程设计原理 1 1 3课程设计思路 1 1 4 实验环境 2 第第 2 章章 详细设计方案详细设计方案 3 2 1 实现方法 3 2 2程序连线图 3 2 3模块设计 4 第第 3 章章 调试及结果分析调试及结果分析 8 3 1 调试步骤及方法 8 3 2 实验结果及分析 8 参考文献参考文献 9 附附 录录 1 源程序 源程序 10 附附 录录 3 器件清单 器件清单 18 xxxxxx大学课程设计报告 第 1 章 总体设计方案 1 第 1 章 总体设计方案 1 1 课程设计的内容和要求课程设计的内容和要求 课程设计内容 密码锁设计具体内容如下 状态显示功能 锁定状态时系统用三位数码管显示 OFF 用三位数码管显示成功开锁次 数 成功开锁时用三位数码管显示 888 用三位数码管显示成功开锁次数 报警和加锁功能 密码的输入时间大于十二秒或者连续三次输入失败 声音报警同时锁 定系统 不让再次输入密码 此时只有使用管理员密码方能对系统解锁 课程设计要求 独立完成课程设计任务 通过老师现场验收 交出完整的课程设计报告 1 2 课程设计原理课程设计原理 根据题目要求 要完成密码锁的输入密码 解锁 显示等功能 在本次设计 中主要使用了键盘 数字数码管以及片选连线来完成密码锁的设计 编制键盘扫描程序 实现密码的输入和开锁功能 同时在开锁和开锁成功的 时候显示不同数据 通过两个函数 分别调用 通过中断服务程序完成对 12 秒 的计时 当开锁的时候开启定时器 开锁完成后关闭定时器并还原定时器相应数 据 xxxxxx大学课程设计报告 第 1 章 总体设计方案 2 1 3课程设计思路课程设计思路 提出方案 首先 设计三种数码管显示方案 开锁成功 开锁失败 系统态 在实现不 同的功能的时候分别调用每一个子函数 另外编写键盘扫描程序 根据矩阵键盘 的原理 编写扫描程序 以按键作为返回值 供其他函数使用 开锁功能可以通 过开锁函数把输入的密码存入另一个数组 密码输入以 0X0F 结束 待输入完成 后 跟密码进行比较 根据输入的密码正误和系统当时的状态确定程序下一步的 状态 定时器只在系统进行输入密码的操作时才进行计时 方案论证 由于单片机执行程序的时候每一条函数的执行时间基本可以忽略 所以显示 函数放在主函数内会出现一闪而过的现象 但是函数大部分的时间都停在检测是 否有键按下函数中 所以在可以在键盘扫描程序内调用显示函数 并通过函数传 递判断该显示哪些数字 这样在一个功能内在视觉上就会看到一直显示要显示的 信息 1 4 实验环境实验环境 硬件环境 Lab 6000 通用微控制器 PC 机 软件环境 WAVE 应用软件 xxxxxx大学课程设计报告 第 1 章 总体设计方案 3 xxxxxx大学课程设计报告 第 2 章 详细设计方案 4 第 2 章 详细设计方案 2 1 实现方法实现方法 开始运行时 数码管显示没有显示 系统开始时为输入密码 开锁成功后显 示 888 和开锁成功次数 当不继续操作时 系统停留在输入密码等待 继续输入 密码可继续开锁 当连续输入密码三次或者输入密码时间超过十二秒时 数码管 显示 0FF 蜂鸣器响 此时只能通过输入系统密码 才能函数返回 否则一直在 系统态内 死循环 返回后显示 888 和输入密码成功次数 继续循环进行 2 2程序连线图程序连线图 硬件电路由矩阵键盘和片选控制构成 如图 2 4 所示 图图 2 4 硬件连线图硬件连线图 本试验使用了 6 位数码管 只要按地址输出相应数据 就可以实现对显示器 的控制 显示共有 6 位 用动态方式显示 本试验中 8 位段码输出地址位 0X004H 位码输出地址为 0X002H 同时试验提供一个 6 的小键盘 向列扫描码地 址 0X002H 逐列输出低电平 然后从行码地址 0X001H 读回 如果有键按 下 则相应行的值为 0 如无键按下 由于上拉的作用 行码为高 这样就可以 通过输出的列码和读取的行码来判断按下的是什么键 在判断有键按下以后 要 有一定的延时 防治键盘抖动 此处 X 由 KEY LED CS 决定 蜂鸣器电路可以 输入不同时间的高低电平驱动蜂鸣器发生 8001H 8004H 8031键盘 蜂鸣器 LED KEY CS P1 0脉冲输入 xxxxxx大学课程设计报告 第 3 章 调试及结果分析 5 2 3模块设计模块设计 程序由输入密码模块 关锁模块 系统开锁模块组成 输入密码模块 输入密码模块要实现密码的输入与检测 将输入的密码存入数组中 当输入 0 是表示开始输入密码 当输入正确时调用程序显示成功然后继续等待输入 如 果连续输入错误超过三次或输入时间超过十二秒则进入关锁程序 流程图如图 2 1 所示 输入密码以0F结束按键是否为0 开始 密码是否正确 显示成功次数 Y 是否错误超过三次 N Y N 进入关锁系统 结束 Y 图图 2 1 密码输入模块流程图密码输入模块流程图 2 关锁模块 该模块执行显示功能 输出 OFF 并且进入开锁模块 同时用蜂鸣器进行报警 xxxxxx大学课程设计报告 第 3 章 调试及结果分析 6 流程图如图 2 2 所示 开始 进入关锁程序显示 关锁 蜂鸣器长鸣报警 结束 进入开锁模块 图图 2 2 关锁模块流程图关锁模块流程图 3 开锁模块 系统模块实现对系统的保护 当三次密码输入错误或者输入密码时间大于 12 秒时 进入系统状态 提醒用户 并且保护系统 本模块跟输入密码模块大致相 同 从键盘上输入数据后 然后和系统密码进行比较 如果和系统密码相同时 则返回 否则一直等待正确的输入 密码输入结束符为 0F xxxxxx大学课程设计报告 第 3 章 调试及结果分析 7 输入系统密码 输入密码是否结束 开始 结束 密码是否正确 进入输入密码模块 N 显示正确 图图 2 3 开锁模块流程图开锁模块流程图 主函数流程图 开锁模块 开始 输入密码是否成功 输入密码 系统密码是否正确 关锁模块 开锁模块 显示成功 Y N N Y 图图 2 4 主程序流程图主程序流程图 xxxxxx大学课程设计报告 第 3 章 调试及结果分析 8 进入系统后按键 0 表示输入密码开始 根据检测函数的判断开锁是否成功 如果成功则显示开锁成功 按键 0 后输入密码 当连续开锁失败三次或者开锁时 间大于 12 秒时 进入关锁模块 然后进入开锁模块 输入的系统密码正确时 返回输入密码模块重新循环 xxxxxx大学课程设计报告 第 3 章 调试及结果分析 9 第 3 章 调试及结果分析 3 1 调试步骤及方法调试步骤及方法 编译并连接程序后全速运行 输入 0 表示密码输入开始 此时定时 12 秒开 始 输入密码正确数码管显示 888 和成功次数 当输入密码错误的时候显示 OFF 连续的第三次错误的时候显示 OFF 进入关锁状态 此时输入系统密码 输 入系统密码成功后显示成功 再次进入输入密码模块 输入密码的时间超过 12 秒时 同样进入关锁状态 3 2 实验结果及分析实验结果及分析 本程序实现了课设的基本要求 能够实现密码锁的基本功能 并且能够实现 基本的保护功能 当输入密码错误三次的时候或者输入密码时间大于十二秒的时 候 进入系统状态 xxxxxx大学课程设计报告 参考文献 8 参考文献 1 袭尚福 微机原理与接口技术 M 西安 西安电子科技大学出版社 2003 2 王忠民 微型计算机原理 M 西安 西安电子科技大学出版社 2003 3 沈美明 温冬婵 IBM PC 汇编语言程序设计 M 北京 清华大学出版社 2001 4 郑初华 汇编语言 微机原理及接口技术 M 北京 电子工业出版社 2006 5 谢瑞和 微型计算机原理与接口技术 M 北京 高等教育出版社 2004 6 张雪兰 汇编语言程序设计 M 北京 清华大学出版社 2006 xxxxxx大学课程设计报告 附录 9 附 录 1 源程序 include include stdio h unsigned char xdata ledport 0 x8004 unsigned char xdata ledcon 0 x8002 lie sao miao unsigned char xdata in 0 x8001 jian pan du ru kou define uchar unsigned char uchar keytable 0 x16 0 x15 0 x14 0 xff 0 x13 0 x12 0 x11 0 x10 0 x0d 0 x0c 0 x0b 0 x0a 0 x0e 0 x03 0 x06 0 x09 0 x0f 0 x02 0 x05 0 x08 0 x00 0 x01 0 x04 0 x07 uchar ledmap 八段管显示码 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x77 0 x7c 0 x39 0 x5e 0 x79 0 x71 uchar password 1 2 3 4 15 15 15 15 15 15 15 15 15 15 15 15 uchar passinbuf 16 uchar sys password 2 3 4 5 6 7 15 15 15 15 15 15 15 15 15 15 uchar sysmode 4 sbit P3 4 P3 4 int alarmtime int error num 0 int succ num 0 int timer void delay int void time0 void ini time0 void lock system void disp password void disp succ void get key void unlock system void alarm void check password unsigned char Test Key main int i 0 uchar pos uchar k xxxxxx大学课程设计报告 附录 12 int j 0 ledcon 0 x3f ledport 0 x0 delay 10 while 1 if sysmode 4 do ledport 0 i 6 pos 0 x20 do ledcon pos pos 1 k in while i 0 if k 0 i 4 if k else if k else if k ledcon 0 do delay 50 while Test Key 等键释放 sysmode keytable i if sysmode 0 j else ledcon 0 x01 ledport ledmap sysmode delay 50 j if while j 1 if sysmode 4 switch sysmode case 0 shu ru mi ma ini time0 get key xxxxxx大学课程设计报告 附录 13 check password for i 0 i 1 k in while i 0 if k 0 i 4 if k else if k else if k ledcon 0 do delay 50 while Test Key 等键释放 passinbuf j keytable i 取出键码 ledcon 0 x01 ledport ledmap passinbuf j delay 50 if passinbuf j 0 x0f for m j m 16 m passinbuf m 0 x0f j 16 j if if timer 120 j 16 while j 16 void lock system lock system int i 0 for i 0 i 50 i ledcon 4 xxxxxx大学课程设计报告 附录 15 ledport 0 x71 delay 4 ledcon 8 ledport 0 x71 delay 4 ledcon 0 x10 ledport 0 x3f delay 4 sysmode 3 void unlock system unlock system int loc 0 get key while passinbuf loc sys password loc if loc 16 error num 0 disp succ sysmode 4 else while loc 16 passinbuf loc 0 x0f loc sysmode 3 void disp succ disp succ ledcon 0 x38 ledport 0 x7f delay 5000 ledcon 1 ledport ledmap succ num delay 5000 void check password check password int i 0 j 0 while passinbuf i password i if i 16 succ num error num 0 xxxxxx大学课程设计报告 附录 16 disp succ else error num while j2 error num 0 sysmode 2 else sysmode 4 if timer 120 sysmode 2 unsigned char Test Key ledcon 0 输出线置为 0 return in 读入键状态 高四位不用 void alarm int i P3 4 1 P3 4 0 delay 5 for i 0 i 20 i P3 4 P3 4 delay 50 void delay int a int c1 c2 for c1 0 c1 a c1 for c2 0 c2 50 c2 xxxxxx大学课程设计报告 附录 17 void disp password int i for i 0 i 16 i led

温馨提示

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

评论

0/150

提交评论