文档介绍:微机接口课程设计报告
题
目:简易密码锁的设计
专
业: 电子信息工程专业
班
级:
电 信 2013
学
号:
2013508227
2013508254
2013508281
学生:雪、高子懿、磊
指导教师:
农峰
2015 年 7 月 13 日
目录
一、设计任务 .............................................................................................................1...
二、设计思路 .............................................................................................................2...
三、设计过程 .............................................................................................................3...
系统方案论证 3..
硬件电路设计 4..
8255A 接口模块 4..
行列式键盘模块 5..
软件系统设计 6..
程序主流程设计 6..
行扫描法识别按键 7..
按键转码及数据处理 9..
循环队列存储数据 1..0
密码验证及信息显示 ......................................................................1 0
四、系统调试与结果 ...............................................................................................1 2.
五、主要元器件与设备 1..3
六、结论 ...................................................................................................................1 4.
七、参考文献 1..5.
一、设计任务
基于 PROTEUS 实现简易密码锁的设计( 3 人) 要求:
密码由 0-9 数字组成,密码位数 4 位;
开机上电后系统复位,处于准备接收密码的状态;
每次输入密码后必须按下确认键,若输入密码位数超过 4 位,取后 4 位;
若与规定密码相同则在点亮一只发光二极管,显示正确,否则点亮另一只发光二极管,显示错误。 (正确和错误显示的发光二极管为两个 )
在实验系统 TDN86/88 上实现。
二、设计思路
密码由 0-9 数字组成,同时要有确认键,共 11 个键,可以用 3X4 行列式键盘实现,由于后来考虑到用一个字节表示按键对应编码, 高低四位分别表示行和列, 4X4 行列式键盘更方便, 而且键盘的布局也更为宽松,以后想再加几个键的话也方便,最终确定了用后者。
设计要求密码位数为 4 位,超过 4 位,取后 4 位,这个要求恰好体现了一种队列的思想。可以在程序中开辟 4 个字节的数组空间,设计出循环队列的数据结构。依据先进先出的原则, 保证数组里保留的永远是按键的后 4 位。
用两个发光二极管分别表示密码正确和错误,为方便区分,可以用绿色表示正确,红色 表示错误。
行列式键盘使用 8255A 通用并行接口芯片实现, 可以用其一个端口的引脚连接行线(或列线)作为控制线,另一个端口的引脚作检测线。本次课程设计使用
了其 A 端口的 PA0-PA3引脚连接键盘行线,作为控制线, B 端口的 PB0-PB3引脚
连接键盘列线, 作为检测线, 同时利用 C端口的 PC0和 PC1引脚分别控制显示密码正确和错误的发光二极管。
另外,测试程序时, 发现很难确定按下的键是否被有效地识别, 导致密码很难输入正确。 于是, 又添加了一个黄色的发光二极管, 作为按键被有效识别时的提示信号。
三、设计过程
系统方案论证
按照本课程设计的设计思路,系统总体框架大致如下图 1,使用 8086 CPU 芯片,通过 74HC373 锁存器与 8255A 并行接口相连。之后,将