电子密码门锁课程设计报告新.docx
- 文档编号:5007861
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:36
- 大小:1.93MB
电子密码门锁课程设计报告新.docx
《电子密码门锁课程设计报告新.docx》由会员分享,可在线阅读,更多相关《电子密码门锁课程设计报告新.docx(36页珍藏版)》请在冰豆网上搜索。
电子密码门锁课程设计报告新
计算机硬件技术基础课程设计
课题名称:
电子密码门锁设计
专业:
自动化专业
班级:
2013级02班
组长:
秦雪梅20134639
组员:
於小林
组员:
侯刚
组员:
黄楚齐
重庆大学自动化学院
2016年9月12日
分工明细
秦雪梅
总体设计规划与主程序编写
於小林
硬件设计与连线,8254与8259部分编程
侯刚
硬件设计与连线,8255扩展与编程
黄楚齐
硬件设计与连线,键盘的扩展与编程
1.课题分析
1.1课题描述
设计一个密码门锁系统,以扬声器作为发生装置,以4*4键盘作为功能按键,根据预设的密码对门锁实现安全控制。
只有密码完全符合时才能开门,密码不符时发出扬声器发生报警。
在计算机硬件试验系统上,自行完成扬声器模块设计,完成该系统的基本功能,该部分占80分;并在此基础上自行完善和优化系统功能,该部分占20分(如有雷同者,该部分不得分)。
基本功能集体要求如下:
(1)密码为6位,输入密码可以开门或修改密码。
(2)用LED显示门的当前状态(打开或关闭),以及当前功能状态(开门或设置)。
(3)按下开门键,LED显示“输入密码”提示信息,用户输入密码后,若密码正确则门打开,按下关门键或打开5秒后关门。
若密码错误则三色LED用红色显示“密码错”提示信息后,要求用户重新输入密码,3次错误后三色LED红绿交错显示错误提示信息,并且用扬声器同时发声报警,按下返回键返回。
(4)若按下设置键,LED显示“输入密码”提示信息,用户输入管理员密码,如正确则LED显示“修改密码”提示信息,要求用户输入新开门密码,按确认键保存新密码后返回,按返回键则放弃修改直接返回。
若错误错误则处理规则与开门相同。
1.2器件选择及功能分配
分析课题基本功能得知需要使用:
表格1器件与功能对应表
器件
功能
实验箱上8个三色LED对应的4片8255
颜色提示信息
试验箱上的8254
定时器0,1做5秒定时;定时器2用作扬声器控制
试验箱上的8259
5秒定时中断
试验箱上的6个8段LED
显示各种提示信息
扩展芯片8255一片
试验箱上总线与外部连接
扩展4*4键盘
功能键与数字键
4个3.7k电阻
辅助4*4键盘实现键盘控制
扩展板
连接个扩展器件
扩展接口
总线与8255间接口
扬声器模块
报警发声器
2.系统功能
2.1按键功能分配
图1按键功能示意图
其中返回键还具有在输入密码时清屏功能。
2.2系统功能优化
(1)待机状态以及操作状态三色LED为黄色,开门时三色LED为绿色,灯的颜色与们的状态同步变化。
(2)在关门状态以及输入密码错误的状态课按下提示键提示一位密码。
(3)退格功能,在输入密码时按下退格键可清除上一个输入字母。
(4)在输入密码时,可按下返回键使输入的所有密码清除。
3.硬件设计
3.1硬件模块原理图
其中扬声器模块原理图如下:
图2扬声器电路图
扬声器模块焊接好后,从输入信号端输入控制信号,即可控制扬声器报警。
不同频率的输入信号可产生不同的声音。
4*4键盘原理图如下:
购买的4*4键盘原理图:
直接使用,会造成按键不灵敏,为了准确我们在此基础上给每行接上电源,即可用列扫描读取其键特征值,从而实现键盘的功能。
接线后4*4键盘原理图:
3.2硬件连线
根据前面的分析以及器件功能分配,进行硬件连线
地址:
扩展的可编程并行I/O口接口芯片8255接实验箱上300H
可编程定时/计数器8254接实验箱上320H
中断控制器8259A接实验箱上340H
接线:
1.可编程定时/计数器8254计数器0CLK接频率信号47KHZ,GATE接+5V,OUT接计数器1的CLK。
2.可编程定时/计数器8254计数器1CLK接计数器0的OUT口,GATE接+5V,OUT接8259IRQ0。
3.可编程定时/计数器8254计数器2CLK接频率信号3MHZ,GATE接+5V,OUT接扬声器信号输入端。
4.扩展可编程并行I/O口接口芯片8255AA口接LED段选,B口高六位接LED位选,C口高四位接键盘列信号,低四位接键盘行信号。
5.8255的A0,A1接转接板的A2,A3,8255的读写信号接转接板的读写信号,8255的+5v与地接转接板的电源与地,8255的数据总线接转接板引出的D0-D7。
6.中断控制器8259(A)INT1接INTR,SP/1接+5V,IRQ0接8254计数器1OUT。
7.扬声器器电源接+5V,地接GND,信号接8254计数器2OUT。
4*4模块的每一列串联一个3.7v电阻并接+5v电源。
整个系统连接图如下:
图3系统接线图
4.软件设计方案
本次设计采用的是子程序嵌套。
在进行设计的时候,先定好程序的框架结构,分出几个子程序。
子程序用一个个小的调试程序调试好,确认准确之后再写主程序并将各个子程序加入到主程序进行链接调试。
4.1整体软件设计方案
4.1.1主程序
主程序主要包括:
1.8255初始化C口高4位为输出低四位为输入,A、B口为输出。
2.8254初始化计数器0工作在方式2下,计数器1工作在方式0下,并使两个级联实现5s定时。
计数器2作为扬声器控制输入信号。
3.8259初始化中断类型号为40H,中断向量入口标志为INTOTCOUT。
4.四片8255初始化使A、B、C口为输出。
并使LED显示为黄色。
5.按键扫描
6.密码提示程序
7.开门功能程序
8.设置功能程序
4.1.2子程序
子程序主要有:
1.延时子程序(DELY)
2.消除鬼影延时子程序(DELAY)
3.开门后跳出标识符中断子程序(INTOTCCOUT)
4.键特征值到短代码的转换(KEYTOSHOW)
5.输入密码时的横显示(SHOWHENG)
6.密码检测程序(CHECK)
7.开门后定时关门程序(OPENTOCLOSE)
8.扫描与显示子程序(SHOWANDKEY)
9.清除存储单元子程序(CLR)
一开始扫描是否有键按下,判断过后就进入四种不同的状态。
无键按下即为空闲状态,用JMP语句重新扫描。
当有键按下时,通过判断按的是开门键、设置键或密码提示键进入各自的子程序。
如果是开门键按下后,利用扫描每一位密码,通过比较程序比较密码是否正确,正确之后门打开,6位LED显示open,三色LED为绿色;如果密码输入错误,则6位LED显示error,三色LED为红色并显示EFEFEFEF,需要重新输入密码,密码输错3次长鸣报警,三色LED红绿交替为EFEFEFEF。
如果按下的是设置键,同样的流程判断管理员密码是否正确,若正确则可重新设置密码,错误则规则相同。
如果按下密码提示键则提示一位密码,按返回键可返回到关门状态。
不论系统出于何种状态之下,我们都能通过6位LED的文字显示与三色LED的颜色很容易的判断当前状态,让整个系统的流程清晰的显示出来。
4.2主程序设计方案
主程序设计思路:
电子密码门锁的实现主要是依靠5片8255,4×4小按键,8位三色LED,6位LED。
开门、设置和提示键的功能地选择那种功能,所以要先判断是三个键中那个键按下,并跳转到相应的程序部分。
跳到密码提示部分后,6位LED上直接显示密码种的第一位密码,按返回键后可退出到关门状态。
跳到开门部分后,调用键盘扫描与显示子程序和密码检测子程序等相关子程序,输入过程中可以按返回键清除屏幕上的内容也可以按退格键消除上一个输入的内容。
最后输入六位密码后按确认键,通过密码检测子程序的检测可判断出密码的对与错并在三色LED和6位数码管上做出相应的显示。
如果密码输入错误可按提示键提示第一位密码。
跳到设置密码部分后,对应LED变化提示输入原始密码,调用输入密码子程序,调用完之后调用判断设置密码是否正确的子程序,若是正确则输CHECK=1给主程序,若错误CHECK=0,三次错误则给8254定时器2初值使扬声器发声音给,主程序通过判断CHECK的数值决定要修改密码还是显示错误,跳到显示错误部分之后再判断是否按下返回键,若是按下则返回主程序开头,若是没按下则继续判断。
若CHECK=1则跳到修改密码部分,修改成功后按确认件即可。
主程序流程图:
图4
提示模块程序:
图5
开门模块:
图6
设置模块:
图7
4.3子程序设计方案
延时子程序(DELY和DELAY)
此部分是键盘扫描和去除鬼影所用的延时,不需要精确延时,所以使用程序延时,并在实际操作中找到合适的延时时间。
键特征值到短代码的转换(KEYTOSHOW)
键盘扫描后键特征值存在CL中,此子程序将键特征值转换为对应的数字,根据我们扩展的4*4键盘,键特征值与段代码对应关系为:
表格2键特征值与代码段与密码值的对应关系
键特征值
EEH
EDH
EBH
E7H
DEH
DDH
DBH
D7H
BEH
BDH
BBH
B7H
7EH
段代码
3FH
06H
5BH
4FH
66H
6DH
7DH
07H
7FH
6FH
77H
7CH
39H
密码值
0
1
2
3
4
5
6
7
8
9
A
B
C
输入密码时的横显示(SHOWHENG)
此子程序的意在在6个数码管上显示横杠,提示可输入密码。
通过给每个数码管送段代码40H。
密码检测程序(CHECK)
图8
CHECk为子程序返回值,在主程序中,通过判断CHECK的值来判断输入密码正确与否从而实现开门与关门信息显示。
开门后定时关门程序(OPENTOCLOSE)
由于8254的定时器0和定时器1级联实现5s延时,功能要求是开门后5s自动关门,此处定时器1的输出与8259的中断相连接,此段程序主要为8254写入计数初值,定时5s后给8259中断信号。
扫描与显示子程序(SHOWANDKEY)
图9
子程序的返回值在CL内部,即为键特征值。
清除存储单元子程序(CLR)
每次输入密码时需要清除上次输入的密码,即清除INPUTWAT中暂存的代码。
5.使用说明
5.1功能及显示说明
1.系统初始密码为88888888
2.密码可以由0~9abc组成
3.开门5S后,自动返回关门状态
4.关门状态显示为:
CLOSE
5.开门状态显示为:
OPEN
6.提醒输入密码显示为:
INPUT
7.提醒修改密码显示为:
CHANGE
8.提示密码错误显示为:
error
9.密码错误三色LED显示为:
EFEFEFEF(红色)
10.密码正确三色LED显示为绿色
11.错误三次三色LED显示为:
EFEFEFEF(红绿交替)
5.2操作说明
1.开门操作---按A键,待机界面时进入开门功能,此时显示INPUT,按确认键后可输入密码,输入6位密码后按确认键即可,在输入密码时可操作E键清屏以及A键清除上一个输入密码。
2.修改密码操作---按B键,待机界面时进入设置功能,此时显示INPUT按确认键后可输入原始密码,再按确认键,显示CHANGE,按确认键,显示新的设置密码,按确认键回到关门状态。
3.提示密码操作---按C键,待机界面进入密码显示,按键后显示第一位密码,再按返回键E可回到关门状态。
4.C键---提示键,在关门状态或者输入密码错误的状态可以提示第一位密码。
5.D键---清除键,输入密码时,按下可消除当前数字
6.E键---返回键,输入密码时,按下可返回重新输入;
输入新密码后,按下返回键可取消输入返回关门状态;
提示密码错误,需按返回键重新输入;
报警后,需按返回键返回关门状态;
开门后,按下返回键返回关门状态;
提示密码时,需按此键返回关门状态
7.F键---确定键,显示提醒时,需按确定键继续;
输入密码后,按确认键确认
6结果显示
根据题目的要求结合自我设计,通过调试运行程序,得到了各种情况如下:
关门状态
图10
数码管显示CLOSE,三色LED为黄色。
开门状态
图11
数码管显示OPEN,三色LED为绿色。
改密码
图12
数码管显示CHANGE,三色LED为黄色。
密码提示界面
图13
密码错误界面
图14
数码管显示ERROR,三色LED为红色。
三次错误
图15
数码管显示ERROR,三色LED红绿交替。
7附录
主程序
.486
CODESEGMENTUSE16
ASSUMECS:
CODE
ORG1000H
BEGIN:
JMPSTART
SHOWOPEN1DB3FH,73H,79H,37H,00H,00H
;开门状态,开门功能
SHOWCLOSE1DB39H,38H,3FH,6DH,79H,00H;关门状态
SHOWCLOSE2DB39H,38H,3FH,6DH,79H,00H;关门状态
SHOWINPUTDB30H,37H,73H,3EH,31H,00H
;显示输入密码
SHOWCHANGEDB39H,76H,77H,37H,3DH,79H;显示修改密码
SHOWERRORDB79H,70H,70H,3FH,70H,00H
;显示错误
SHOWSTOPDB40H,40H,40H,40H,40H,40H
;显示横杠
INPUTWATDB40H,40H,40H,40H,40H,40H
;输入密码暂存
PASSWORDDB7FH,7FH,7FH,7FH,7FH,7FH
;密码储存
PASSWORD1DB7FH,7FH,7FH,7FH,7FH,7FH;密码备份
MESSAGEWORDDB40H,40H,40H,40H,40H,40H
;提示密码
PASSNUMDB6;输入密码计数标志
CHECKFDB0
;密码检测标志
ERRORNUMDB3;错误计数
OTCOUTDB0;开门后关门程序跳出标志
KEYZHIDB0
;*****************************************************主程序开始
START:
LEASI,INPUTWAT
CALLCLR;清除输入密码存储单元
MOVDX,20CH;四片8255初始化
MOVEAX,80808080H
OUTDX,EAX
MOVDX,30CH;扩展8255控制字,AB输出,C高出低入
MOVAL,81H
OUTDX,ALMOVDX,32CH;8254计数器0初始化工作在方式2下
MOVAL,34H
OUTDX,ALMOVDX,32CH;8254计数器1初始化工作在方式0下与计数器0级联计时5SMOVAL,50H
OUTDX,AL
MOVDX,32CH;8245计数器2初始化
MOVAL,10110110B
OUTDX,AL
MOVDX,340H;初始化8259写ICW1
MOVAL,000010011B
OUTDX,ALMOVDX,348H;写ICW2中断类型号为40H~47H
MOVAL,40H
OUTDX,ALMOVDX,348H;写ICW4
MOVAL,01H
OUTDX,AL
MOVDX,348H;写OCW1,开放所有IR
MOVAL,00H
OUTDX,AL
CLI
MOVAX,0;填开门后关门跳出中断向量
MOVDS,AX
MOVBX,4*40H
MOVAX,OFFSETINTOTCOUT
MOV[BX],AX
MOVAX,SEGINTOTCOUT
MOV[BX+2],AX
SHOWSTATE:
LEABX,SHOWCLOSE1;显示当前状态,按下A键为进入开门功能,按下B键为进入设置功能
CALLSHOWANDKEY
CMPCL,0BBH
JZOPENDOOR
CMPCL,0B7H
JZSETTING
CMPCL,7EH
JZMESSAGE
JMPSHOWSTATE
;*************************************************密码提示程序
MESSAGE:
LEASI,MESSAGEWORD
LEADI,PASSWORD
MOVAL,BYTEPTR[DI]
MOVBYTEPTR[SI],AL
LEABX,MESSAGEWORD
STI
CALLOPENTOCLOSE
CALLSHOWANDKEY
CMPCL,7BH
JNZMESSAGE
CLI
JMPSTART
;***************************************************开门功能程序
OPENDOOR:
;清除输入密码存储单元
SHOWINP:
LEABX,SHOWINPUT;显示输入密码提示,按下F确认
CALLSHOWANDKEY
CMPCL,77H
JNZSHOWINP
PAA:
LEASI,INPUTWAT
CALLCLR
CALLSHOWHENG
PA0:
MOVPASSNUM,06H
;输入密码,按下D键可以消除上一次输入,按下E键可以重新输入,输入完成后按下F键确认
LEASI,INPUTWAT
PAL:
LEABX,INPUTWAT
CALLSHOWANDKEY
CMPCL,7BH
JZPAA
CMPCL,77H
JZPAL
CMPCL,7DH
JZPAL
JMPPA
JZSETTING
PASSN:
LEABX,INPUTWAT
CALLSHOWANDKEY
CMPCL,7BH
JZPAA
CMPCL,77H
JZPASSN
CMPCL,7DH
JNZPA
PA4:
DECSI
INCPASSNUM
CMPSI,BX
MOVBYTEPTR[SI],40H
JZPA0
JMPPASSN
PA:
CALLKEYTOSHOW
INCSI
DECPASSNUM
JNZPASSN
PA3:
CALLSHOWANDKEY
CMPCL,7DH
JZPA4
CMPCL,77H
JZPA2
CMPCL,7BH
JZPAA
JMPPA3
PA2:
MOVPASSNUM,06H
CALLCHECK;调用密码匹配
CMPCHECKF,01H
JNZPASSER
PASSRI:
MOVDX,208H;三色LED底色为绿色
MOVEAX,0A0A0A0AH
OUTDX,EAX
LEABX,SHOWOPEN1
;密码正确开门,按下E键或者5秒后关门
STI
CALLOPENTOCLOSE
CALLSHOWANDKEY
CMPCL,7BH
JNZPASSRI
CLI
MOVERRORNUM,3
JMPSTART
PASSER:
LEABX,SHOWERROR;密码错误,显示报错
MOVDX,200H;5片8255给段选(每片前一个)
MOVEAX,86868686H
OUTDX,EAX
MOVDX,204H;5片8255给段选(每片后一个)
MOVEAX,8E8E8E8EH
OUTDX,EAX
MOVDX,208H;三色LED底色为红色
MOVEAX,05050505H
OUTDX,EAX
CALLSHOWANDKEY
CMPCL,7EH
JZMESSAGE
CMPCL,7BH
JZGG
DECERRORNUM
JNZPASSL
WAR:
MOVDX,328H;错误三次,计数器2报警计数初值
MOVAX,10000
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVDX,200H;5片8255给段选(每片前一个)
MOVEAX,86868686H
OUTDX,EAX
MOVDX,204H;5片8255给段选(每片后一个)
MOVEAX,8E8E8E8EH
OUTDX,EAX
MOVDX,208H;三色LED红绿交替
MOVEAX,09090909H
OUTDX,EAX
RETURN:
LEABX,SHOWERROR
CALLSHOWANDKEY;判断是否按下返回
CMPCL,7BH
JNZRETURN
MOVERRORNUM,03H
MOVDX,328H;计数器2报警解除计数初值
MOVAX,0
OUTDX,AL
MOVAL,AH
OUTDX,AL
JMPSTART
PASSL:
CALLSHOWANDKEY
CMPCL,7BH;按下E键返回
JNZPASSL
GG:
JMPOPENDOOR
;***************************************************设置功能
SETTING:
LEABX,SHOWINPUT;提示输入密码
CALLSHOWANDKEY
CMPCL,77H
JNZSETTING
PBB:
LEASI,INPUTWAT
CALLCLR;输入密码
PB0:
MOVPASSNUM,06H
;按下D键可以消除上一次输入,按下E键可以重新输入,输入完成后按下F键确认
LEASI,INPUTWAT
PBL:
LEABX,INPUTWAT
CALLSHOWANDKEY
CMPCL,7BH
JZPBL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 密码 门锁 课程设计 报告