- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电气0703袁利军单片机课程设计电子密码锁
目 录
第1章 系统概述 1
1.1系统功能 1
1.2设计内容及要求 1
第2章 系统方案设计 2
2.1总体方案 2
2.2系统组成 2
第3章 硬件设计 3
3.1按键电路设计 3
3.2指示灯及报警蜂鸣器的电路设计 3
3.3显示电路设计 4
3.4 复位键的设计 4
第4章 软件设计 5
4.1主程序设计 5
4.2按键识别与编码设计 6
4.3显示程序设计 8
4.4密码修改程序设计 10
第五章 系统调试 11
5.1软件模拟调试 11
5.2硬件接线及调试 12
设计总结 13
参考文献 14
附录 15
第1章 系统概述
1.1系统功能
本次设计使用ATMEL公司的AT 8C51实现基于单片机的电子密码锁的设计,其主要具有如下功能:
(1设置6位密码,密码通过键盘输入,若密码正确,则将锁打开。
(2)密码可以由用户自己修改设定(支持位密码),后才能修改密码。
(3)报警、锁定键盘功能。密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过3次,蜂鸣器报警并且锁定键盘电子密码锁的设计主要由三部分组成:×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。另外系统还有LED提示灯,报警蜂鸣器等。密码的设定,此密码是固定在程序存储器ROM中,假设预设的为“12345”共位密码。密码的输入: 采用来完成密码的输入,其中按键为键按键为数字键。在密码输入完毕确认功能键之后,能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。按键禁止功能:初始化时,允许按键输入密码,当有按键按下并开始进按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。
图3-1单片机的键盘接口电路
3.2指示灯及报警蜂鸣器报警蜂鸣器
图3-2指示灯及报警蜂鸣器
图3-3显示电路
3.4 复位键的设计
当密码输入三次错误,则系统锁定键盘输入,按下复位键后,系统重新开始,如此可以防止系统报废,让系统再次循环使用。其硬件图如图3-4所示。
图3-4复位键
第4章 软件设计
4.1主程序设计
主程序主要完成初始化、检查有无按键按下、以及调用显示、指示灯、密码修改等等,流程图如图4-1所示。具体模块包括:
1. 按键识别与编码设计2. 显示程序设计3. 密码修改程序设计
图4-1主程序流程图
4.2按键识别与编码设计
当没有按键按下的时候,单片机循环等待按键按下,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。
每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对按键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。 对照图4-2-1所示的44键盘,说明扫描法原理。首先辨别键盘中有无键按下,有则单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。把每个键都分成水平和垂直的两端接入,比如说扫描码是从垂直的入,那就代表那一行所接收到的扫描码是同一个bit,而读入扫描码的则是水平,扫描的动作是先输入扫描码,再去读取输入的值,经过比对之后就可知道是哪个键被按下。
比如说扫描码送入01111,前面的0是代表,而后面的1111是让读取的4行接脚先设,若此时第一行的第列按键被按下,那读取的结果就会变成01110(注意1111变成11),其中LSB的第个bit会由1变成0,这是因这个按键被按下之后,会被垂直的扫描码电位,而把读取的LSB的bit电位拉到0扫描码此即扫描原理。
图4-2-2键盘识别子程序流程图
4.3显示程序设计
显示设计采用动态扫描。显示程序流程图如图4-3所示
显示程序流程图如图4-3
数码显示板上一共有8 个数码管,如果按照传统的数码管驱动方式(静态扫描方式),则需要8 个七段译码器进行驱动,这样既浪费资源,有时电路工作也不可靠。所以现在最常见的数码管驱动电路已经不用上述的静态扫描方式了,而是采用动态扫描显示的方式,这种方式只需一个译码器就可以实现电路正常、可靠的工作,这样大大节省资源。动态数码扫描显示方式是利用了人眼的视觉暂留效应,把八个数码管按一定顺序(从左至右或从右至左)进行点亮,当点亮的频率(即扫描频率)不大时,我们看到的是数码管一个个的点亮,然而,当点亮频率足够大时,我们看到的不再是一个一个的点亮,而是全部同时显示(点亮),与传统方式得到的视觉效果完全一样。因此我们只要
文档评论(0)