微型计算机原理及应用课程设计多功能密码锁Word文档下载推荐.docx
- 文档编号:15846315
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:11
- 大小:91.05KB
微型计算机原理及应用课程设计多功能密码锁Word文档下载推荐.docx
《微型计算机原理及应用课程设计多功能密码锁Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微型计算机原理及应用课程设计多功能密码锁Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
4.当密码输入错误四次时发出警报
三.问题分析、设计思路及原因
1.问题分析
考虑到实现以上功能需要使用数码管、开锁电平、报警电平、蜂鸣器等输出,因此使用微机实验中用过的芯片8255A作为接口芯片,该芯片能比较好地满足这次课程设计的功能要求。
而CPU则选择我们熟悉的8086。
2.设计思路及原因
密码的输入主要通过系统功能调用语句“MOVAH,1;
INT21H”(即带显示的单字符键盘输入功能)和循环语句实现,而密码输入是否正确则通过串比较指令来实现。
程序中的提示语句可以使用系统功能调用语句“MOVAH,9;
INT21H”(即字符串输出)功能来实现。
对接口芯片,首先要完成芯片的初始化,使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子程序流程图
六.汇编源程序清单
DATASEGMENT
NUMDB‘1’,‘2’,‘3’,‘4’,‘5’,‘6’;
设定初始的密码
INPUTDB6DUP(?
);
定义保存输入密码的数据串
MESS0DB‘pleaseinputthepassword’,0DH,0AH,‘$’;
定义各种提示字符串
MESS1DB‘Doyouwanttochangezhepassword?
y/n’,0DH,0AH,‘$’
MESS2DB‘pleaseinputanewpassword’,0DH,0AH,‘$’
MESS3DB‘pleaseinsurethenewpassword’,0DH,0AH,‘$’
MESS4DB‘Thepasswordisdifferentwiththelastoneyouinput’,0DH,0AH,‘$’
MESS5DB‘Youhavesucceefullychangedthepassword.’,0DH,0AH,‘$’
DATAENDS
STACKSEGMENTPARASTACK‘STACK’
STADB200DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
MAINPROCFAR
MOVAX,DATA
MOVDS,AX
MOVES,AX
MOV63H,80H;
8255的初始化,A,B口同为输出,工作方式0
LOOP1:
LEADX,MESS0;
提示输入密码
MOVAH,09H
INT21H
LOOP2:
CALLINPUT;
调用输入密码子程序
LEASI,NUM
LEADI,INP
MOVCX,06H
CLD
REPZCMPSB;
将输入密码同正确的密码进行串比较
MOVBL,00H
JNZWARN;
若不相同,则发出警告
CALLRIGHT;
若为正确的密码,则调用RIGHT子程序进行处理
JMPLOOP1
WARN:
MOVAL,03H;
警告提示部分
OUT61H,AL;
B口,发出密码错误警告,相应二极管亮MOVAL,71H
OUT60H,AL;
A口连接的两个数码管显示“FF”
INCBL;
BL+1
CMPBL,04H
JEALARM;
若连续输入四次错误密码,则转ALARM报警
JMPLOOP1;
没有达到四次,则继续提示输入密码
ALARM:
MOVAL,OCH;
报警部分
OUT61H,AL;
B口输出报警电平,同时相应的二极管亮
INPUTPROCNEAR;
输入密码的子程序
PUSHCX
PUSHAX
PUSHDI
MOVCX,06H;
输入六位数密码
LOOP3:
MOVAH,01H
LEADI,INP
MOV[DI],AL
INCDI
LOOPLOOP3
POPDI
POPAX
POPCX
RET
INPUTENDP
RIGHTPROCNEAR;
输入密码正确时执行的子程序
MOVAL,3FH
OUT60H,AL;
A口对应两个数码管显示“00”
MOVAL,30H
OUT61H,AL;
B口输出开锁电平并且相应的二极管亮
LEADX,MESS1
MOVAH,O9H
INT21H;
显示语句询问是否修改密码
系统功能调用,读入输入的命令
CMPAL,‘y’
JEAMEND;
若为“y”,则转修改密码部分AMEND
AMEND:
;
修改密码部分
LEADXMESS2;
提示输入一新密码
MOVCX,06H
LOOP4:
MOVAH,O1H
LEADI,NUM
LOOPLOOP4;
循环,实现新密码的输入
LEADX,MESS3;
提示再次输入确认密码
CALLINPUT
LEASI,INP
REPZCAPSB;
对比前后两次输入的密码
JNZDIFFERENT;
若不相同,则转DIFFERENT提示输入不同,并重新输入
MOVAL,C0H
若前后一致,B口输出修改成功的提示音,相应二极管亮
LEADX,MESS5;
输出修改成功的提示语句
DIFFERENT:
LEADX,MESS4;
若输入前后不同,予以提示
LOOPAMEND;
重新修改
RIGHTENDP
七.课设结果分析
经过调试和改错,以上的电路设计以及汇编程序代码已经符合设计要求,实现了密码输入,对比,修改,蜂鸣器报警,LED灯发光,连续输入错误密码报警,开锁电平控制等功能。
经过测试,上述功能都可以正常使用,因此这次该课程设计结果来看是完成了要求。
八.收获、体会和建议
这次微机原理课程设计给了我们一个动手实践的机会,在学习完微机原理的理论课程之后,通过该课程设计,在实际中运用学过的各种芯片去进行电路的设计,使我们加深了对这些芯片的理解以及这些芯片的使用方法。
在进行课程设计的时候,遇到不懂或者忘记了的知识点,我们会查阅课本,或者是上网搜索相关资料,这加深了我们对于某些知识点的理解,并且巩固了这方面的知识。
程序调试的过程是比较漫长的,甚至比设计这个多功能密码锁的芯片连接图用的时间还要多。
因为在程序设计的时候,很多东西都依旧没有考虑到,或者是在设计的时候的逻辑漏洞并没有注意到,而这些东西都要通过程序实际运行的时候进行调试才会发现。
因此在程序调试的时候我们也遇到了非常多的问题,通过解决这些问题,我们掌握到了各种调试程序的技巧以及方法,想必以后在做这些调试的时候效率一定会提高。
九.参考文献
1.清华大学出版社.微机原理与接口技术(第2版)[Z].北京:
牟琪,2007.
2.华南理工大学教材供应中心.32位微型计算机原理及应用实验指导书[Z].广州:
耿丹,梁佑斌,2001.
3.华南理工大学电子工艺教学实习中心.电子线路计算机辅助设计[Z].广州:
杨日福,廖继海,黄谭友,2008.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理 应用 课程设计 多功能 密码锁