- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机接口课程设计报告精要
微机接口课程设计报告
题 目:简易密码锁的设计
专 业: 电子信息工程专业
班 级: 电信2013
学 号: 2013508227
2013508254
2013508281
学生姓名:张雪、高子懿、刘磊
指导教师: 农峰
2015 年 7 月 13 日
目录
一、设计任务 1
二、设计思路 2
三、设计过程 3
3.1 系统方案论证 3
3.2 硬件电路设计 5
3.2.1 8255A接口模块 5
3.2.2 行列式键盘模块 6
3.3 软件系统设计 7
3.3.1程序主流程设计 7
3.3.2 行扫描法识别按键 8
3.3.3 按键转码及数据处理 10
3.3.4 循环队列存储数据 11
3.3.5 密码验证及信息显示 11
四、系统调试与结果 13
五、主要元器件与设备 14
六、结论 15
七、参考文献 16
一、设计任务
基于PROTEUS实现简易密码锁的设计(3人)
要求:
1.密码由0-9数字组成,密码位数4位;
2.开机上电后系统复位,处于准备接收密码的状态;
3.每次输入密码后必须按下确认键,若输入密码位数超过4位,取后4位;
4.若与规定密码相同则在点亮一只发光二极管,显示正确,否则点亮另一只发光
二极管,显示错误。(正确和错误显示的发光二极管为两个)
5.在实验系统 TDN86/88 上实现。
二、设计思路
密码由0-9数字组成,同时要有确认键,共11个键,可以用3X4行列式键盘实现,由于后来考虑到用一个字节表示按键对应编码,高低四位分别表示行和列,4X4行列式键盘更方便,而且键盘的布局也更为宽松,以后想再加几个键的话也方便,最终确定了用后者。
设计要求密码位数为4位,超过4位,取后4位,这个要求恰好体现了一种队列的思想。可以在程序中开辟4个字节的数组空间,设计出循环队列的数据结构。依据先进先出的原则,保证数组里保留的永远是按键的后4位。
用两个发光二极管分别表示密码正确和错误,为方便区分,可以用绿色表示正确,红色表示错误。
行列式键盘使用8255A通用并行接口芯片实现,可以用其一个端口的引脚连接行线(或列线)作为控制线,另一个端口的引脚作检测线。本次课程设计使用了其A端口的PA0-PA3引脚连接键盘行线,作为控制线,B端口的PB0-PB3引脚连接键盘列线,作为检测线,同时利用C端口的PC0和PC1引脚分别控制显示密码正确和错误的发光二极管。
另外,测试程序时,发现很难确定按下的键是否被有效地识别,导致密码很难输入正确。于是,又添加了一个黄色的发光二极管,作为按键被有效识别时的提示信号。
三、设计过程
3.1 系统方案论证
按照本课程设计的设计思路,系统总体框架大致如下图1,使用8086 CPU芯片,通过74HC373锁存器与8255A并行接口相连。之后,将行列式键盘和LED灯连接到8255A的端口上。由程序实现通过8255A并行接口扫描键盘,判断密码正误,并通过8255A控制LED灯的信息显示。
图1 简易密码锁系统框图
在protues中画出的系统原理图如图2所示
图2 系统原理图
3.2 硬件电路设计
3.2.1 8255A接口模块
8086CPU芯片通过74HC373锁存器与8255A并行接口相连,其电路如图4所示,由图可以计算出接口地址为0000H,即A、B、C端口及控制端口的地址分别是0000H、0002H、0004H、0006H。
图4 8086芯片与8255A的连接
3.2.2 行列式键盘模块
行列式键盘电路图如图5所示,后来去掉几个电阻,并略微美化一下原理图的视觉效果,电路图如图6所示
图5 行列式键盘电路图
3.3 软件系统设计
3.3.1程序主流程设计
程序主流程图如图所示,程序开始运行,首先初始化8255A,随后进入键盘扫描子程序,首先快速检测是否有按键。如果有,则延时20ms后转入查找按键位置子程序,否则,继续检测。当按键位置(即该按键所在行列值)确定后,转入查找按键对应编码。若能找到对应编码,则为有效按键,延时亮一段时间黄灯作为提示信号,否则,返回快速按键检测流程。对于有效的按键,延时结束后,判断其是否为Enter键,若是,则进入密码验证子程序,密码正确亮绿灯,错误亮红灯,否则,说明是输入的数据,将其存入到输入数据队列中。按键处理完毕后,转回快速按键检测流程,等待下一次输入。
3.3.2 行扫描法识别按键
程序使用行扫描法识别按
文档评论(0)