微型计算机原理及应用课程设计--多功能密码锁

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

一.课设目的 (1)

二.课设内容

三.问题分析、设计思路及原因 (1)

四.电路设计及功能说明,硬件原理图 (2)

五.软件部分的程序流程图,算法和使用的编程技巧 (10)

六.汇编源程序清单 (11)

七.课设结果分析 (20)

八.收获、体会和建议 (20)

九.参考文献 (21)

一.课设目的

1.掌握8086,8255等芯片的工作原理和使用方法,了解各引脚的功能。

2.掌握各芯片之间的连接方法,设计多功能密码锁电路。

3.运用《微机原理及应用》中学习到的知识,编写汇编语言程序,通过对芯片的控制实现多功能密码锁的各种功能。

4.巩固本学期学习到的微机原理的相关知识,通过实践加强对知识的理解,同时提高自身思考问题的能力,培养对本课程的兴趣,提高动身能力。

二.课设内容

课程设计题目选取多功能密码锁,实现的功能为:

1.判断输入的密码是否正确

2.修改密码

3.密码输入错误时发错警告声音

4.当密码输入错误四次时发出警报

三.问题分析、设计思路及原因

1.问题分析

考虑到实现以上功能需要使用数码管、开锁电平、报警电平、蜂鸣器等输出,因此使用微机实验中用过的芯片8255A作为接口芯片,该芯片能比较好地满足这次课程设计的功能要求。而CPU则选择我们熟悉的8086。

2.设计思路及原因

密码的输入主要通过系统功能调用语句“MOV AH,1; INT 21H”(即带显示的单字符键盘输入功能)和循环语句实现,而密码输入是否正确则通过串比较指令来实现。程序中的提示语句可以使用系统功能调用语句“MOV AH,9; INT 21H”(即字符串输出)功能来实现。

对接口芯片,首先要完成芯片的初始化,使8255A芯片的A,B口作为输出端口,A口用于控制数码管在密码输入正确或错误的情况下的显示“00”或“FF”,B口用于控制提示音和相应的发光二极管。当输入错误时,B口输出03H(即00000011B),使对应的蜂鸣器发声,相应的发光二极管发光。而当四次输入密码错误时,B口输出0CH(即00001100B),使对应蜂鸣器发声,对应二极管发光。当密码输入正确时,B口输出30H(即00110000B),发出开锁提示音,并使对应二极管发光。

程序的设计思路总体来说就是“输入->各种逻辑运算->输出”,为了实现各种不同输入情况下的响应,本程序使用了比较多的转移指令,从而使结构变得复杂,因此采用了两个字程序,让程序的结构更加清晰。

四.电路设计及功能说明,硬件原理图

1.设计所使用的元件清单

PC机一台,8086处理器,8255A接口芯片一片,74LS138译码器一个,6264随机存储器一片,七段数码管两个,发声器及发光二极管各四个,非门一个

2.电路中用到的芯片介绍

(1)微处理器8086CPU

8086是Intel系列的16位微处理器,它采用HMOS工艺技术制造,芯片采用40系列线封装,单一的+5V电源,时钟频率为5~10MHz。

8086有16根数据线和20根地址线,可以处理8位和16位数据,寻址1MB 的储存单元和64KB的I/O端口。如图所示

(2)并行接口芯片8255A

8255A是Intel系列的并行接口芯片,常作为微机系统与外部设备接口。由于它是可编程的,可以通过软件来设置芯片的工作方式,因此,用它连接外部设备时,一般不需要在附加外部电路,给使用带来很大方便。如图所示

3.电路连接图

五.软件部分的流程图,算法和使用的编程技巧

1.主程序流程图

2.密码输入子程序流程图

3.RIGHT子程序流程图

六.汇编源程序清单

DATA SEGMENT

NUM DB ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’;设定初始的密码

INPUT DB 6 DUP (?) ;定义保存输入密码的数据串

MESS0 DB ‘please input the password’,0DH,0AH, ‘$’;定义各种提示字符串

MESS1 DB ‘Do you want to change zhe password? y/n’ ,0DH,0AH, ‘$’

MESS2 DB ‘please input a new password’ ,0DH,0AH, ‘$’

MESS3 DB ‘please insure the new password’ ,0DH,0AH, ‘$’

MESS4 DB ‘The password is different with the last one you input’ ,0DH,0AH, ‘$’

MESS5 DB ‘You have succeefully changed the password.’ ,0DH,0AH, ‘$’

DATA ENDS

STACK SEGMENT PARA STACK ‘STACK’

STA DB 200 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA

MAIN PROC FAR

MOV AX ,DATA

MOV DS,AX

MOV ES,AX

MOV 63H,80H ;8255的初始化,A,B口同为输出,工作方式0

LOOP1:LEA DX,MESS0 ;提示输入密码

MOV AH,09H

INT 21H

LOOP2:CALL INPUT ;调用输入密码子程序

LEA SI,NUM

LEA DI,INP

MOV CX ,06H

CLD

REPZ CMPSB ;将输入密码同正确的密码进行串比较

MOV BL ,00H

JNZ WARN ;若不相同,则发出警告

CALL RIGHT ;若为正确的密码,则调用RIGHT子程序进行处理

JMP LOOP1

WARN:MOV AL,03H ;警告提示部分

OUT 61H,AL ;B口,发出密码错误警告,相应二极管亮MOV AL,71H

OUT 60H,AL ;A口连接的两个数码管显示“FF”

INC BL ; BL+1

CMP BL,04H

JE ALARM ;若连续输入四次错误密码,则转ALARM报警

JMP LOOP1 ;没有达到四次,则继续提示输入密码

相关文档
最新文档