微机原理课程设计电子密码锁文档格式.docx
- 文档编号:22594011
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:22
- 大小:322.01KB
微机原理课程设计电子密码锁文档格式.docx
《微机原理课程设计电子密码锁文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计电子密码锁文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
五、硬件设计
本设计使用了8086、8259A、8255、8253、2764、74LS138、74LS148、地址锁存器、数码管以及74系列逻辑门、蜂鸣器、开关等芯片与元器件,实现了键盘输入、中断控制、计时、按键响应、开锁及报警等功能模块,其硬件连接框图如图1所示。
图1硬件连接框图
5.1键盘
本设计8255A的A口与两片级联的74LS148组合接用于输入键盘,实现对输入键号的读入。
工作时,8086通过程序扫描键盘,当无键盘按下时,74LS148工作于无输入状态,GS口输出高电平,接到PA4作为识别有无按键按下信号,PA口输入为10H;
当有按键输入时,74LS148输入口接到低电平,输入有效,经编码后键号转换为相应二进制编码送到PA口,成为能为CPU识别的代表键值的有效信号。
读入的按键信号经8086判断后,根据不同的功能,输出不同的按键响应,并转移到相对应的功能服务程序。
本设计总共用到11位按键,包括10位数码输入按键及一位“复位/修改密码”按键,电路设计总共可用按键有16位,供升级功能使用。
键盘电路如下图2所示:
5.2中断控制
用一片8259A芯片作为中断控制接口电路。
其中IR0与IR1中断开放,单片工作于非缓冲方式,电平触发,优先级是普通全嵌套方式。
可通过编程开中断,通过编程或者8253计时器关中断。
电路连接如图3所示:
图2键盘连接图
5.3计时
采用8253计时器控制中断的关断,实现单次输入密码超时则退出输入密码中断子程序、报警器响铃时间控制等功能。
电路如图3所示。
图3中断控制器连接图
5.4输入输出接口
输入输出接口采用可编程的8255A,8255A是Intel系列的并行接口芯片,常作为微机系统与外部设备接口。
在连接电路时8255的PC0、PC1接到数码管片选,电路连接如图3所示。
同时用8255A的B口控制数码管的显示,C口片PC0、PC1选数码管,PC2用来驱动SPEAK发出报警电路如图4所示。
图4按键响应、报警、开锁功能电路
5.5.储存器及片选电路
存储器及片选电路采用一片2764存储器和一片74LS138,连接电路如图5所示:
图5片选及存储器电路
5.6整机电路图:
见附录一
六、软件设计
6.1程序流程图
图6程序流程图
6.2程序清单:
见附录二
七、设计总结与体会
通过本次课程设计,我对8255,8253,8259等芯片的各引脚的功能、名称、工作方式、内部结构有了更深层次的掌握,对这三种芯片的编程从陌生转向熟练。
通过这次的微机课程设计,对书本所学的知识有了进一步的巩固,并且对三种芯片各自的功能、工作方式有了明确性的区分。
在设计过程中遇到问题时,遇到含糊不清或者看不懂的地方及时翻阅相关课本知识。
有时看课本也没有结果时就和组员互相探讨。
在设计过程中,才发现自己遗漏许多课本的相关知识,对各芯片的功能及其工作方式掌握的不够清楚。
这说明在实践中才能真正的掌握从课本中所学的知识。
这次的课程设计让我为一年后的毕业设计打下了基础。
八、参考资料
九、附录
附录一:
电路基本连接图
附录二:
程序清单
(一)
DATASEGMENT;
以下代码写入RAM
CODEINDB6DUP(?
);
输入的密码保存的地址
CODECHDB6DUP(?
修改后的密码的保存地址
CODEORDB0,0,0,0,0,0;
初始密码
ORG01000H;
下面的代码写入ROM
DTABLEDB80H,02H,10H,3FH,79H,71H,60H,5BH
DATAENDS
STACKSSEGMENT
STADB20DUP(?
)
STACKSENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACKS
START:
MOVSI,OFFSETCODEIN
MOVDI,OFFSETCODEOR
MOVBP,OFFSETDTABLE
MOVAL,09H;
(键盘输入中断)设定密码输入的中断向量(即IR0的中断向量)
MOVAH,25H
INT21H
PUSHBX
PUSHDS
MOVDX,SEGINPUT
MOVDS,DX
MOVDX,OFFSETINPUT
(键盘输入中断)设定密码修改的中断向量(即IR1的中断向量)
MOVDX,SEGCHANGE
MOVDX,OFFSETCHANGE
MOVAL,1BH;
初始化8259
OUT10H,AL;
单片工作,高电平有效
MOVAL,08H
OUT11H,AL
MOVAL,03H
MOVAL,0FCH
OUT11H,AL;
开放IR0,IR1
MOVAL,20H
OUT10H,AL
MOVAL,68H
MOVAL,82H;
初始化8255A口方式0输出,B口方式0输入,C口输出
OUT06H,AL
AA:
STI
MOVAL,00H
OUT04H,AL;
输出低电平使数码管熄灭
INPUT:
;
密码输入程序
CLI
MOVDL,00H
IN1:
CMPDL,06H;
判断是否连续6次输入错误密码
JNZIN2;
若不是这继续输入
MOVCX,03FFH;
使蜂鸣器长鸣报警(通过延时实现)
R1:
MOVDH,3FH
MOVAL,02H
OUT00H,AL;
输出高电平使蜂鸣器发声
R2:
DECDH
CMPDH,00H
JNZR2
LOOPR1
JMPIN4;
报警完毕,跳至中断返回
IN2:
输入密码
MOVAL,[BP+4]
数码管显示‘--’提示输入密码
MOVBX,0H
MOVCX,03H;
设置循环次数
IN3:
MOVAL,[BP]
数码管提示输入位数
CALLCCSCAN;
调用键盘扫描程序
CMPAL,0BH;
判断是否按下返回键
JZIN4
MOV[BX+SI],AL;
保存输入密码
INCBX
INCBP
LOOPIN3
MOVBP,OFFSETDTABLE;
判断密码是否正确
CLD
MOVCX,03
REPZCMPSB;
JNZWRO;
若错误就报警
MOVAL,[BP+3]
若正确数码管就显示‘00‘
MOVAL,04H
且给LED高电平使其点亮
XORDL,AL
JMPIN4
WRO:
出错报警部分
INCDL
MOVAL,[BP+5];
数码管显示’FF‘提示错误
OUT04H,AL
设定蜂鸣器响的次数
W1:
MOVAL,02H;
使蜂鸣器发声
OUT00H,AL
W2:
延时
MOVBL,3FH
DECBL
CMPBL,00H
JNZW2
XORAL,AL;
输出低电平关蜂鸣器
W3:
JNZW3
LOOPW1
JMPIN1;
中断返回
IN4:
IRET
CHANGE:
密码修改程序
INP1:
CMPDL,06H
JNZINP2
MOVCX,03FFH
RR1:
RR2:
JNZRR2
LOOPRR1
JMPC4
INP2:
MOVBX,0000H
MOVCX,03H
INP3:
CALLCCSCAN
CMPAL,0BH
MOV[BX+SI],AL
LOOPINP3
REPZCMPSB
JNZWRRO
XORDL,DL
JMPCHANGE
WRRO:
MOVAL,[BP+5]
WW1:
WW2:
JNZWW2
XORAL,AL
WW3:
JNZWW3
LOOPWW1
JMPINP1;
当密码输入正确时,转入密码修改部分
CHAN:
修改密码部分
MOVDI,OFFSETCODECH
MOVAL,[BP+6];
数码管提示第一次输入
Y1:
LOOPY1
C1:
JZC4
存放在输入密码缓冲区
LOOPC1
MOVAL,[BP+7]
数码管提示第二次输入
Y2:
LOOPY2
C2:
MOV[BX+DI],AL;
存放在修改密码缓冲区
LOOPC2
JNZCHAN;
判断两次输入的密码是否一致
REPMOVSB;
若是相等那就保存密码
且蜂鸣器响一下提示修改成功
C3:
LOOPC3
C4:
CCSCANPROCNEAR;
键盘扫描子程序
INAL,02H
NOTAL
ANDAL,0FH
CMPAL,00H;
判断是否有键按下
JNZK1
JMPCCSCAN
K1:
MOVCX,0EFFH;
LOOPK1
CMPAL,00H
JZCCSCAN
MOVAH,60H;
扫描第一列
K2:
MOVAL,AH
JNZK3
ORAH,01H
RORAH,1;
扫描下一列
ANDAH,0FH
JMPK2
K3:
ADDAL,AH
RET
CCSCANENDP
CODEENDS
ENDSTART
程序清单
(二)利用DOS调用显示
DATASEGMENT
TABLEDB'
888'
STRING1DB'
Pleaseenterapassward:
'
0DH,0AH,'
$'
STRING2DB'
Wrong!
STRING3DB'
OPEN!
'
STRING4DB'
CLOSE!
BUFFERDB40,?
40DUP(0)
TAB_LENEQU26
;
STACKSEGMENT
DB100DUP(0)
STACKENDS
ASSUMECS:
DATA,ES:
STACK
MOVAX,DATA
MOVDS,AX
MOVES,AX
LEADX,STRING1
MOVAH,09H
INT21H
LEADX,BUFFER
MOVAH,0AH
MOVSI,DX
INCSI
MOVBL,[SI]
MOVBH,0
LEADI,TABLE
MOVCX,TAB_LEN
CMPCX,BX
JNCGOON
LEADX,STRING2
JMPEXIT
GOON:
CLD
MOVAL,[SI]
SCAN:
REPNZSCASB
JZMATCH
ERROR:
LEADX,STRING4
MATCH:
INCCX
JCERROR
PUSHCX
PUSHSI
PUSHDI
MOVCX,BX
DECDI
REPZCMPSB
POPDI
POPSI
POPCX
JZFOUND
JCXZERROR
JMPSCAN
FOUND:
LEADX,STRING3
EXIT:
MOVAH,09H
MOVAH,4CH
ENDSTART
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 电子 密码锁