微机课程设计密码锁.docx

上传人:b****4 文档编号:2962643 上传时间:2022-11-16 格式:DOCX 页数:13 大小:149.89KB
下载 相关 举报
微机课程设计密码锁.docx_第1页
第1页 / 共13页
微机课程设计密码锁.docx_第2页
第2页 / 共13页
微机课程设计密码锁.docx_第3页
第3页 / 共13页
微机课程设计密码锁.docx_第4页
第4页 / 共13页
微机课程设计密码锁.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

微机课程设计密码锁.docx

《微机课程设计密码锁.docx》由会员分享,可在线阅读,更多相关《微机课程设计密码锁.docx(13页珍藏版)》请在冰豆网上搜索。

微机课程设计密码锁.docx

微机课程设计密码锁

本科课程设计(论文)

 

题目:

多功能密码锁

 

课程名称微机原理课程设计

学院自动化科学与工程学院

班级2012级3班

学生姓名罗艺锋

学生学号201230641470

提交日期2015年1月3日

 

分数

一、目的············································3

二、内容············································3

三、设计任务········································3

四、方案选择及原理··································3

五、所用器件········································3

主要器件简介·····································4

六、原理图··········································6

1、8086和存储器连接······························6

2、CPU与8255A连接·······························6

8255A的A口与键盘连接·························7

4、8255A的B、C口······························7

5、完整电路图·····································8

七、软件设计思路·······································8

八、流程图··········································9

1、主程序·········································10

2、子程序········································11

九、程序代码·········································11

十、设计中的难点····································13

十一、收获及体会······································14

多功能密码锁

一、目的

1、了解和掌握8086,8255,等接口芯片以及LED显示器的原理和功能;

2、能用这些接口芯片构建一个简单的系统控制对象,

3、掌握接口电路的综合设计与使用;

4、通过自己动手,进一步了解计算机得工作原理,接口技术,提高计算机硬件,软件综合应用能力,即对微机原理,接口技术,汇编语言程序设计进行综合训练。

二、内容

密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同

显示00字样。

当输入密码错误时,发出错误警告声音,同时显示FF字样。

当六次误码输入的条件下,产生报警电平报警。

还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。

三、设计任务

1、选用8086和适当的存储器及接口芯片完成相应的功能。

2、用LED显示器显示电子锁的当前状态。

3、画出详细的硬件连接图。

4、给出程序设计思路、画出软件流程图。

5、给出地址分配表。

6、给出所有程序清单并加上必要注释。

7、完成设计说明书(列出参考文献,所用器件型号)。

四、方案选择及原理

这次的设计要求是在密码输入正确时输出开锁电平和显示“00”,密码错误时显示“FF”和蜂鸣器发出报警声音等,我们采用8255A的B口作为显示器的输出,c口为选管和接蜂鸣器,开锁及报警电平。

对于6次密码错误输入,刚开始用8253计数器,后来发觉可以直接用软件控制,线路简单,程序也很易实现。

用蜂鸣器发声次数来区分确认和警告声音,一声表示确认,三声表示警告。

键盘上的按键用SW-PB共12个,0-9为数字键,连接到8255A的A口对应二进制数,还有确认键和密码修改键,按下表示A口接收到低电平信号。

五、所用器件

CPU8086、并行接口8255A、存储器27c513、地址锁存器8282、74LS138、石英晶振,8284A、共阴极数码管、非门74LS04、蜂鸣器,电阻、开关等。

主要器件简介

CPU8086

8086是Inter系列的16位微处理器,芯片上有2.9万个晶体管,采用HMOS工艺制造,用单一的+5V电源,时钟频率为5MHz~10MHz。

8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。

可寻址的内存空间为1MB.

 

 

并行接口8255

Intel8086/8088系列的可编程外设接口电路(ProgrammablePeripheralInterface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。

它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。

8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。

地址锁存器74LS138

74LS138为3线-8线译码器,共有54/74S138和54/74LS138两种线路结构型式,其工作原理如下:

当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。

利用G1、/(G2A)和/(G2B)可级联扩展成24线译码器;若外接一个反相器还可级联扩展成32线译码器。

若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。

六、原理图

1、8086和存储器连接

存储器地址:

0000H~3FFFH

2、CPU与8255A连接

8255A地址分配:

PA800HPB802HPC804H控制寄存器806H

为了满足8255A的四个端口地址必须为偶地址这一要求,将8255A的A1、A0分别与8086系统地址总线的A2、A1相连,并且,CPU在对8255A的端口进行访问时,总是将地址中的A0设置为0.

 

3、8255A的A口与键盘连接

共12个按键,0-9为数字键,每个十进制数对应PA3~PA0四位二进制数,确认键和修改密码键按下时,PA4和PA5为低电平。

4、8255A的B、C口

C口低四位用了低三位,都是输出高电平有效,高四位用了两位,输出低电平有效。

 

5、完整电路图

七、软件设计思路

由于硬件设计部分没有用到8259和8253,主要器件是8086和8255,所以使得设计简单很多。

程序也主要解决如何利用8255来实现所要求的功能这个问题。

首先需要初始化8255,A口作为输入,B、C口作为输出。

一开始纵观设计内容及要求,可以大致知道需要三个子程序,修改密码程序、开锁程序、闭锁程序。

由A口输入的数据决定调用哪个子程序,而相关子程序需要具有所要求的功能,比如修改密码程序需要在修改成功后发出蜂鸣声,开锁程序需要输出开锁电平和显示00字样,等等。

为方便程序编写,采用输入数据逐位与正确密码相比的方法,只要有一位不相同即转入闭锁程序,而在闭锁程序中需要设置计数值,当转入闭锁程序六次也即输入错误密码六次则输出报警电平报警。

这样则能完成所需的所有功能。

程序设计思路基本如此。

按此思路画完流程图之后则进入程序设计阶段。

大框架已经确定下来,现在需要决定一些重要的细节。

比如如何安排计数值的位置,子程序的返回处,等等。

经过多次试探与检验,最终将这些细节确定下来。

最后将程序开始的初始化、退出程序补充完整,整体再检查一遍,查漏补缺,即可完成设计。

 

八、流程图

主程序流程图

开始

设置初始密码,对8255初始化

需要重新修改密码?

调用修改密码子程序

设置最大误码输入次数。

输入密码,并与原定密码进行逐位比较

输入密码是否正确?

调用开锁子程序

调用闭锁子程序

结束

设置密码个数,获取密码偏移地址

 

修改密码子程序流程图闭锁子程序流程图开锁子程序流程图

开始

数码管输出“00”

输出开锁电平

返回

九、程序代码

DATASSEGMENT

PASSWORDDB0,0,0,0,0,0;设置初始密码

DATASENDS

CODESSEGMENT

ASSUMECS:

CODES,DS:

DATAS,ES:

STACKS

START:

MOVAX,DATAS

MOVDS,AX

MOVAX,STACKS

MOVES,AX

MOVAL,90H

OUT63H,AL;初始化8255,方式0,A口输入,B、C口输出

INAL,60H;读取A口数据

ANDAL,20H;是否需要修改密码

JNECHANGE;需要则调用修改密码子程序

MOVBX,5;设置错误密码输入最大次数

A1:

MOVCX,5;设置密码个数

MOVSI,OFFSETPASSWORD

A2:

INAL,60H

CMPAL,BYTEPTR[SI];逐位比较,判断输入密码是否正确

JNECLOSE;只要有一位错误就调用闭锁子程序

INCSI

LOOPA2

CALLOPEN;正确就调用开锁子程序

JMPST

CHANGEPROCNEAR;修改密码子程序

MOVCX,5;设置密码个数

MOVSI,OFFSETPASSWORD

A3:

INAL,60H

MOV[SI],AL

INCSI

LOOPA3;依次修改六位密码

A4:

INAL,60H

ANDAL,10H;判断有否按下确认键

JNEA4;没按下则继续等待

MOVAL,01H

OUT62H,AL;蜂鸣器响一下表示确认

RET

CHANGEENDP

CLOSEPROCNEAR;闭锁子程序

MOVAL,71H

OUT61H,AL;数码管输出“F”

MOVAL,10H

OUT62H,AL;选中L0输出“F”

MOVAL,71H

OUT61H,AL

MOVAL,20H

OUT62H,AL;选中L1输出“F”

A5:

MOVCX,3

MOVAL,01H

OUT62H,AL

LOOPA5;蜂鸣器响四下表示错误警告

DECBX

CMPBX,0;判断是否已经输入六次错误密码

JNEA1;不够六次则重新转到A1

MOVAL,04H

OUT62H,AL;已输入六次误码则产生报警电平报警

RET

CLOSEENDP

OPENPROCNEAR;开锁子程序

A6:

INAL,60H

ANDAL,10H

JNEA6;等待确认键按下

MOVAL,3F

OUT61H,AL;数码管输出“0”

MOVAL,10H

OUT62H,AL;选中L0输出“0”

MOVAL,3F

OUT61H,AL

MOVAL,20H

OUT62H,AL;选中L1输出“0”

MOVAL,02H

OUT62H,AL;输出开锁电平,开通LED,显示电子锁开启

RET

OPENENDP

ST:

MOVAX,4CH

INT21H

CODESENDS

ENDSTART

十、设计中的难点

1.硬件

在硬件方面,设计过程也遇到不少的问题。

首先没看

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1