微机原理课程设计++多功能密码锁Word文档格式.docx
- 文档编号:22659604
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:19
- 大小:484.44KB
微机原理课程设计++多功能密码锁Word文档格式.docx
《微机原理课程设计++多功能密码锁Word文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计++多功能密码锁Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
1、选用8088和适当的存储器及接口芯片完成相应的功能。
2、用LED显示器显示电子锁的当前状态。
3、画出详细的硬件连接图。
4、给出程序设计思路、画出软件流程图。
5、给出地址分配表。
6、给出所有程序清单并加上必要注释。
7、完成设计说明书(列出参考文献,所用器件型号)。
三、整体功能描述
本设计为多功能密码锁,使用存储器保存密码防止断电后密码丢失。
工作时按下按键蜂鸣器会发出声音提示按键有效并在数码管有“--”闪烁字样,若相隔1分钟无按键按下,则清零。
在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示O字样。
开锁后可按下“复位/修改密码键”实现修改密码功能的转入,之后先输入密码再输入同样的密码确认才可成功修改,修改成功后蜂鸣器会发出三声,数码管“O”闪烁三次提示修改密码成功。
当输入密码错误时,发出错误警告声音,同时显示FF字样,当输入密码错误次数累积够6次后,蜂鸣器会产生90秒的报警声响进行报警。
四、硬件设计功能模块
本设计使用了8088、8259A、8255、8253、A28F512、74LS138、74LS148、地址锁存器、数码管以及74系列逻辑门、蜂鸣器、开关等芯片与元器件,实现了键盘输入、中断控制、计时、按键响应、开锁及报警等功能模块。
以下一一详述。
1.键盘
本设计8255A的A口与两片级联的74LS148组合接用于输入键盘,实现对输入键号的读入。
工作时,8086通过程序扫描键盘,当无键盘按下时,74LS148工作于无输入状态,GS口输出高电平,接到PA4作为识别有无按键按下信号,PA口输入为10H;
当有按键输入时,74LS148输入口接到低电平,输入有效,经编码后键号转换为相应二进制编码送到PA口,成为能为cpu识别的代表键值的有效信号。
读入的按键信号经8086判断后,根据不同的功能,输出不同的按键响应,并转移到相对应的功能服务程序。
本设计总共用到11位按键,包括10位数码输入按键及一位“复位/修改密码”按键,电路设计总共可用按键有16位,供升级功能使用。
键盘电路如下所示:
图1键盘连接图
2.中断控制
用一片8259芯片作为中断控制接口电路。
可通过编程开中断,通过编程或者8253计时器关中断。
电路连接如下:
图2中断控制器连接图
3.计时
采用8253计时器控制中断的关断,实现单次输入密码超时则退出输入密码中断子程序、报警器响铃时间控制等功能。
电路如图2所示。
4.按键响应
8255PC0、PC1接到数码管片选、PC2接到蜂鸣器、PC3接到电子锁。
电路连接如图3所示:
图3按键响应、报警、开锁功能电路
5.报警功能
同时用8255A的B口控制数码管的显示,C口片PC0、PC1选数码管,PC2用来驱动SPEAK发出报警。
电路如图3所示。
6.储存器及片选电路:
图4片选及存储器电路
7.整机电路图:
五、软件流程图:
六、程序清单:
各芯片地址:
825930H
825560H
825320H
存储器2000H
DATASSEGMENT;
程序初始化
DATA1DB'
0'
'
DATA2DB6DUP(?
)
DATA3DB6DUP(?
DATA4DB6DUP(?
DATASENDS
STACKSSEGMENTPARASTACK'
STACK'
STADB100DUP(?
TOPEQULENGTHSTA
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS,ES:
DATAS
START:
MOVAX,DATAS
MOVDS,AX
MOVAX,STACKS
MOVSS,AX
MOVSP,TOP
MOVAX,0;
初始化中断向量表
MOVES,AX
MOVBX,84H;
IR1中断类型码21h*4=84h
MOVAX,OFFSETINPUT
MOVES:
[BX],AX
MOVAX,SEGINPUT;
段地址
[BX+2],AX
MOVAL,90H;
8255初始化,A口方式0,输入;
B、c口方式0,输出
OUT63H,AL
MOVAL,36H;
8253初始化,方式0
OUT23H,AL
MOVAL,13H;
8259A初始化,ICW1
OUT30H,AL
MOVAL,20H;
ICW2
OUT31H,AL
MOVAL,01;
ICW4
MOVAL,00;
OCW1
OUT31H
MOVCX,06H;
从RAM里读出密码到DATA2,密码为6位
MOVSI,2000H
MOVDI,OFFSETDATA2
LP1:
MOVAL,[SI]
MOV[DI],AL
INCSI
INCDI
LOOPLP1;
读入密码结束
MOVBX,00;
输入密码次数计数器初始值
RE:
MOVAL,03H
OUT62H,AL
MOVAL,71H;
未开锁,B口输出显示FF
OUT61H,AL
MOVCX,06H
MOVSI,OFFSETDATA2;
定义SI、DI
MOVDI,OFFSETDATA3
HLT
STI;
停机,开中断,等待密码输入
CLD
INCBX;
输入密码次数加1
REPECMPSB;
将输入六位数码与密码比较
CMPCX,00
JEOPEN;
相等则转到开锁
CMPBX,06H;
输入错误且累积未够6次,重新输入
JNERE
MOVAL,07H;
若错误次数累积够6次,触发蜂鸣器报警
OUT62H,AL
B口输出FF
MOVAL,2048H;
报警铃响计时,90秒后关断蜂鸣器,保持显示FF
OUT20H,AL
MOVAL,03H
JMPDOON;
跳到结束
OPEN:
MOVAL,0BH;
开锁,并显示00
OUT62,AL
MOVAL,3FH
OUT61H
C1:
INAL,60H
CALLD20MS;
去抖动
CMPAL,00H
JEC1
CMPAL,0AH;
扫描键盘,是否有修改密码建(10)输入
JNEDOON;
没有则结束
C0:
MOVSI,OFFSETDATA2;
重新定义SI、DI
MOVCX,06H
HLT
STI;
开中断,输入修改程序
C2:
MOVAL,[DI]
MOV[SI],AL
LOOPC2;
输入密码转移到data2
INAL,60H;
扫描键盘,若有修改密码键输入则重新修改
CALLD20MS
CMPAL,0AH
JEC0
C3:
再次输入密码确认
STI
REPECMPSB
CMPCX,00;
若data2与data3不相等则从新输入
JNEC3
若相等,则从DATA2写密码到RAM
C4:
LOOPC4;
转存密码结束
CALLRING2;
蜂鸣三次,表示修改好了
JEC0
修改完毕,转到结束
;
中断子程序
INPUT:
PUSHAX;
保护现场
PUSHDS
PUSHBX
PUSHCX
PUSHDI
PUSHSI
MOVAL,1020H;
8253开始一分钟输入限制计时
OUT20H,AL
IN1:
读A口
CALLD20MS;
CMPAL,10H
JEIN1;
若无按键按下,则重新扫描
CMPAL,0AH;
若有按键按下,比较是否为复位键
JNEIN3
CALLRING1;
为复位键则输出按键有效提示音并重新输入
JMPIN1
IN3:
CALLRING1;
若不是复位键,则把键值送到data3
LOOPIN1;
循环,扫描下一次按键,直到输入够6位密码
MOVAL,01
OUT30,AL
POPSI;
中断结束恢复现场
POPDI
POPCX
POPBX
POPDS
POPAX
CLI;
关中断
IRET;
中断返回
DOON:
MOVAH,4CH
INT21H
;
20ms延时子程序
D20MSPROCNEAR
MOVCX,0080H
D1:
DECCX
LOOPD1;
循环
RET;
返回
D20MSENDP
输入按键响应子程序
RING1PROCNEAR
保护AX\CX
MOVCX,05H;
设置提示音为0.1秒
MOVAL,07H;
输出显示“--”字样
MOVAL,40H
R1:
LOOPR1
MOVAL,00H;
数码管灭
RING1ENDP
修改确认铃声子程序
RING2PROCNEAR
PUSHAX
MOVCX,03H;
三次0.1秒的提示声
R2:
MOVAL,0FH;
开铃声
延时0.1秒
MOVAL,00H
OUT62H,AL;
关铃声
LOOPR2;
MOVAL,0BH;
恢复开锁状态
RET
RING1ENDP;
CODESENDS
ENDSTART;
结束
1、遇到的问题及解决方法
首先遇到的问题是键盘的设计,刚开始想用8279,但是对8279不够熟悉,研究了一下就放弃了,再而想到用8255的A、B口组合64位矩阵键盘或者用C口低4位与高4位组合的16位键盘,但最后还是使用了开关与编码器组合的形式组成16位键盘,简单明了,但是还没有解决双键同时按下的问题。
再而由于学8259的时候不够认真,所以开始写8259初始化的时候也显的力不从心,最终参考了书本和其他资料,还是写了出来。
设计中接触到的另一个问题是密码的储存的问题,刚开始没有想到cpu关机后密码消失的问题,后来加了一篇存储器实现了密码的保存。
遇到的其他问题都跟同学们讨论而得到了一定的解决。
2、课程设计总结
通过本次课程设计,我进一步了解8255,8253,8259等芯片的内部结构,熟悉各种基本工作模式和编程方法;
加深了对8086中断系统工作过程的了解;
学会综合应用多种微机接口与单元电路,构成满足要求的小型微机应用系统;
学会了CPU与存储器的连接方法,扩展存储空间的方法。
3、参考资料
《微型计算机原理及应用》吴荣光吕钧星编著,华南理工大学出版社
《微型计算机原理与汇编语言程序设计》赵国相等编著,科学出版社
《精通ProtelDXP2004电路设计》张睿赵艳华刘志刚编著,电子工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 多功能 密码锁