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

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

ID:59521181

大小:971.50 KB

页数:17页

时间:2020-11-06

微机接口课程设计报告.doc_第1页
微机接口课程设计报告.doc_第2页
微机接口课程设计报告.doc_第3页
微机接口课程设计报告.doc_第4页
微机接口课程设计报告.doc_第5页
资源描述:

《微机接口课程设计报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.微机接口课程设计报告题目:简易密码锁的设计专业:电子信息工程专业班级:电信2013学号:201350822720135082542013508281学生:雪、高子懿、磊指导教师:农峰2015年7月13日..目录一、设计任务1二、设计思路2三、设计过程33.1系统方案论证33.2硬件电路设计53.2.18255A接口模块53.2.2行列式键盘模块63.3软件系统设计73.3.1程序主流程设计73.3.2行扫描法识别按键83.3.3按键转码及数据处理103.3.4循环队列存储数据113.3.5密码验证及信息显示11四、系统调试与结果13五、主要

2、元器件与设备14六、结论15七、参考文献16..一、设计任务基于PROTEUS实现简易密码锁的设计(3人)要求:1.密码由0-9数字组成,密码位数4位;2.开机上电后系统复位,处于准备接收密码的状态;3.每次输入密码后必须按下确认键,若输入密码位数超过4位,取后4位;4.若与规定密码相同则在点亮一只发光二极管,显示正确,否则点亮另一只发光二极管,显示错误。(正确和错误显示的发光二极管为两个)5.在实验系统TDN86/88上实现。..二、设计思路密码由0-9数字组成,同时要有确认键,共11个键,可以用3X4行列式键盘实现,由于后来考虑到用一个字

3、节表示按键对应编码,高低四位分别表示行和列,4X4行列式键盘更方便,而且键盘的布局也更为宽松,以后想再加几个键的话也方便,最终确定了用后者。设计要求密码位数为4位,超过4位,取后4位,这个要求恰好体现了一种队列的思想。可以在程序中开辟4个字节的数组空间,设计出循环队列的数据结构。依据先进先出的原则,保证数组里保留的永远是按键的后4位。用两个发光二极管分别表示密码正确和错误,为方便区分,可以用绿色表示正确,红色表示错误。行列式键盘使用8255A通用并行接口芯片实现,可以用其一个端口的引脚连接行线(或列线)作为控制线,另一个端口的引脚作检测线。本

4、次课程设计使用了其A端口的PA0-PA3引脚连接键盘行线,作为控制线,B端口的PB0-PB3引脚连接键盘列线,作为检测线,同时利用C端口的PC0和PC1引脚分别控制显示密码正确和错误的发光二极管。另外,测试程序时,发现很难确定按下的键是否被有效地识别,导致密码很难输入正确。于是,又添加了一个黄色的发光二极管,作为按键被有效识别时的提示信号。..三、设计过程3.1系统方案论证按照本课程设计的设计思路,系统总体框架大致如下图1,使用8086CPU芯片,通过74HC373锁存器与8255A并行接口相连。之后,将行列式键盘和LED灯连接到8255A的

5、端口上。由程序实现通过8255A并行接口扫描键盘,判断密码正误,并通过8255A控制LED灯的信息显示。图1简易密码锁系统框图在protues中画出的系统原理图如图2所示..图2系统原理图3.2硬件电路设计3.2.18255A接口模块8086CPU芯片通过74HC373锁存器与8255A并行接口相连,其电路如图4所示,由图可以计算出接口地址为0000H,即A、B、C端口及控制端口的地址分别是0000H、0002H、0004H、0006H。图48086芯片与8255A的连接..3.2.2行列式键盘模块行列式键盘电路图如图5所示,后来去掉几个电阻

6、,并略微美化一下原理图的视觉效果,电路图如图6所示图5行列式键盘电路图..3.3软件系统设计3.3.1程序主流程设计程序主流程图如图所示,程序开始运行,首先初始化8255A,随后进入键盘扫描子程序,首先快速检测是否有按键。如果有,则延时20ms后转入查找按键位置子程序,否则,继续检测。当按键位置(即该按键所在行列值)确定后,转入查找按键对应编码。若能找到对应编码,则为有效按键,延时亮一段时间黄灯作为提示信号,否则,返回快速按键检测流程。对于有效的按键,延时结束后,判断其是否为Enter键,若是,则进入密码验证子程序,密码正确亮绿灯,错误亮红灯

7、,否则,说明是输入的数据,将其存入到输入数据队列中。按键处理完毕后,转回快速按键检测流程,等待下一次输入。..3.3.2行扫描法识别按键程序使用行扫描法识别按键,其主要流程如图8所示(其中S8255A、S8255B分别代表8255A芯片的A、B端口)。图8行扫描发识别按键流程图该流程可大致分为三步。第一步进行快速按键检测,代码如下:NOKEY:MOVAL,0OUTS8255A,AL;往端口A输出0INAL,S8255B;读入键盘列状态ANDAL,0FH;只查低四位CMPAL,0FH;列是否全为1JZNOKEY;全为1,说明无按键CALLDEL

8、AY1;延时20ms,防抖动..8255A芯片的端口A连接键盘行线,并作为控制线,将行线全部置低电平“0”,然后,读取列线状态。如果没有按键被按下,则读取到的列状态

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。