网站大量收购闲置独家精品文档,联系QQ:2885784924

微机接口课程设计报告精要.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档