微机原理课程设计(电子密码锁).doc

上传人:飞****2 文档编号:66783890 上传时间:2022-12-21 格式:DOC 页数:16 大小:368.50KB
返回 下载 相关 举报
微机原理课程设计(电子密码锁).doc_第1页
第1页 / 共16页
微机原理课程设计(电子密码锁).doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《微机原理课程设计(电子密码锁).doc》由会员分享,可在线阅读,更多相关《微机原理课程设计(电子密码锁).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一、设计目的通过课程设计掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法、8086微型计算机的应用方法、控制算法的设计及硬件设计方法。复习并学习用软件编程控制硬件。了解和掌握8086微机应用系统的软硬件设计过程、方法及实现,为以后设计实现8086微机应用系统打下良好的基础。二、设计任务与要求(1) 密码锁在输入密码正确时控制电控锁开启,同时显示00字样;当输入密码错误时,发出错误警告,并显示FF字样;当3次误码输入时,产生报警;具有密码修改的功能。(2) 选用8086和适当的存储器及接口芯片完成相应的功能,用LED显示器显示电子锁的当前状态;画出详细的硬件连接图;给出程序设计思路、画

2、出软件流程图;给出所有程序清单并加上必要注释;完成设计说明书(包括封面、目录、设计任务书、硬件设计思路、硬件原理图、软件设计思路、程序流程框图、程序清单、所用器件型号、总结体会、参考文献等)。三、 整体功能描述本设计为多功能密码锁,使用存储器保存密码防止断电后密码丢失。工作时按下按键蜂鸣器会发出声音提示按键有效并在数码管有“- -”闪烁字样,若相隔1分钟无按键按下,则清零。在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示OPEN字样。开锁后可按下“复位/修改密码键”实现修改密码功能的转入,之后先输入密码再输入同样的密码确认才可成功修改,修改成功后蜂鸣器会发出三声,数码管“00”闪烁

3、三次提示修改密码成功。当输入密码错误时,发出错误警告声音,同时显示CLOSE字样,当输入密码错误次数累积够3次后,蜂鸣器会产生90秒的报警声响进行报警。 四、总体设计方案根据本次设计的设计目的及设计要求,可有下列两种方案:4.1 方案一在本次设计中,因为密码锁的基本功能使可以判断密码是否正确,以及完成对密码的修改,所以需要用到输入设备以及CPU的接口电路以及相关存储设备;因为有报警提示功能,所以要用到相关的输出设备以及接口电路。因为要完成逻辑运算功能,所以必须要有CPU,CPU就选用我们最常用也最熟悉的8086,考虑到8255的端口兼具输入输出功能,灵活方便,所以选用一片8255作为输入输出设

4、备与8086间的借口;采用0到9数字按键以及相关功能选择的输入;输出设备方面,采用两位数码管实现题目的状态提示要求,用一个蜂鸣器作为相关的警报,提示的声音输出。另外,为简化编程,采用8259中断控制器来触发中断实现密码锁工作模式的转换,其中的密码输入及判断功能与密码修改功能分别用两个外部中断来触发中断服务程序来实现。本设计的密码位数为6位。4.2 方案二用汇编语言编写程序实现应用程序的功能,从而实现简易计算器汇编程序的设计与实现。4.2.1使用设备含有Windows汇编编译环境的MASM软件及Office 2003软件的计算机一台。4.2.2汇编程序编写汇编程序编写,根据设计要求编写实现该功能

5、的源程序代码。4.2.3使用方法在masm环境下运行本程序,按提示输入正确密码,则在屏幕上显示00字样,否则显示FF字样。五、硬件设计本设计使用了8086、8259A、8255、8253、2764、74LS138、74LS148、地址锁存器、数码管以及74系列逻辑门、蜂鸣器、开关等芯片与元器件,实现了键盘输入、中断控制、计时、按键响应、开锁及报警等功能模块,其硬件连接框图如图1所示。图1 硬件连接框图5.1 键盘本设计8255A的A口与两片级联的74LS148组合接用于输入键盘,实现对输入键号的读入。工作时,8086通过程序扫描键盘,当无键盘按下时,74LS148工作于无输入状态,GS口输出高

6、电平,接到PA4作为识别有无按键按下信号,PA口输入为10H;当有按键输入时,74LS148输入口接到低电平,输入有效,经编码后键号转换为相应二进制编码送到PA口,成为能为CPU识别的代表键值的有效信号。读入的按键信号经8086判断后,根据不同的功能,输出不同的按键响应,并转移到相对应的功能服务程序。本设计总共用到11位按键,包括10位数码输入按键及一位“复位/修改密码”按键,电路设计总共可用按键有16位,供升级功能使用。键盘电路如下图2所示:5.2 中断控制用一片8259A芯片作为中断控制接口电路。其中IR0与IR1中断开放,单片工作于非缓冲方式,电平触发,优先级是普通全嵌套方式。可通过编程

7、开中断,通过编程或者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储存器

8、及片选电路存储器及片选电路采用一片2764存储器和一片74LS138,连接电路如图5所示:图5 片选及存储器电路5.6 整机电路图:见附录一六、软件设计6.1 程序流程图图6 程序流程图6.2 程序清单:见附录二 七、设计总结与体会通过本次课程设计,我对 8255,8253,8259等芯片的各引脚的功能、名称、工作方式、内部结构有了更深层次的掌握,对这三种芯片的编程从陌生转向熟练。通过这次的微机课程设计,对书本所学的知识有了进一步的巩固,并且对三种芯片各自的功能、工作方式有了明确性的区分。在设计过程中遇到问题时,遇到含糊不清或者看不懂的地方及时翻阅相关课本知识。有时看课本也没有结果时就和组员互

9、相探讨。在设计过程中,才发现自己遗漏许多课本的相关知识,对各芯片的功能及其工作方式掌握的不够清楚。这说明在实践中才能真正的掌握从课本中所学的知识。这次的课程设计让我为一年后的毕业设计打下了基础。八、参考资料九、附录附录一:电路基本连接图附录二:程序清单(一)DATA SEGMENT ;以下代码写入RAMCODEIN DB 6 DUP(?) ;输入的密码保存的地址CODECH DB 6 DUP(?) ;修改后的密码的保存地址CODEOR DB 0,0,0,0,0,0 ;初始密码ORG 01000H ;下面的代码写入ROMDTABLE DB 80H,02H,10H,3FH,79H,71H,60H,

10、5BHDATA ENDSSTACKS SEGMENTSTA DB 20 DUP(?)STACKS ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSSTART:MOV SI,OFFSET CODEINMOV DI,OFFSET CODEORMOV BP,OFFSET DTABLEMOV AL,09H ;(键盘输入中断)设定密码输入的中断向量(即IR0的中断向量)MOV AH,25HINT 21HPUSH BXPUSH DSMOV DX,SEG INPUTMOV DS,DXMOV DX,OFFSET INPUTINT 21HMOV AL,09H ;(

11、键盘输入中断)设定密码修改的中断向量(即IR1的中断向量)MOV AH,25HINT 21HPUSH BXPUSH DSMOV DX,SEG CHANGEMOV DS,DXMOV DX,OFFSET CHANGEINT 21HMOV AL,1BH ;初始化8259OUT 10H,AL ;单片工作,高电平有效MOV AL,08HOUT 11H,ALMOV AL,03HOUT 11H,ALMOV AL,0FCHOUT 11H,AL ;开放IR0,IR1MOV AL,20HOUT 10H,ALMOV AL,68HOUT 10H,ALMOV AL,82H ;初始化8255 A口方式0输出,B口方式0输

12、入,C口输出OUT 06H,ALAA:STIMOV AL,00HOUT 04H,AL ;输出低电平使数码管熄灭INPUT: ;密码输入程序CLIMOV DL,00HIN1:CMP DL,06H ;判断是否连续6次输入错误密码JNZ IN2 ;若不是这继续输入MOV CX,03FFH ;使蜂鸣器长鸣报警(通过延时实现)R1:MOV DH,3FHMOV AL,02HOUT 00H,AL ;输出高电平使蜂鸣器发声R2:DEC DHCMP DH,00HJNZ R2LOOP R1JMP IN4 ;报警完毕,跳至中断返回IN2: ;输入密码MOV AL,BP+4OUT 04H,AL ;数码管显示-提示输入

13、密码MOV BX,0HMOV CX,03H ;设置循环次数IN3:MOV BP,OFFSET DTABLEMOV AL,BPOUT 04H,AL ;数码管提示输入位数CALL CCSCAN ;调用键盘扫描程序CMP AL,0BH ;判断是否按下返回键JZ IN4MOV BX+SI,AL ;保存输入密码INC BXINC BPLOOP IN3MOV BP,OFFSET DTABLE ;判断密码是否正确CLDMOV CX,03MOV SI,OFFSET CODEINMOV DI,OFFSET CODEORREPZ CMPSB ;判断密码是否正确JNZ WRO ;若错误就报警MOV AL,BP+3O

14、UT 04H,AL ;若正确数码管就显示00MOV AL,04HOUT 00H,AL ;且给LED高电平使其点亮XOR DL,ALJMP IN4WRO: ;出错报警部分INC DLMOV AL,BP+5 ;数码管显示FF提示错误OUT 04H,ALMOV CX,03H ;设定蜂鸣器响的次数W1:MOV AL,02H ;使蜂鸣器发声OUT 00H,ALW2: ;延时MOV BL,3FHDEC BLCMP BL,00HJNZ W2XOR AL,AL ;输出低电平关蜂鸣器OUT 00H,ALW3: ;延时MOV BL,3FHDEC BLCMP BL,00HJNZ W3LOOP W1JMP IN1 ;

15、中断返回IN4:STIIRETCHANGE: ;密码修改程序CLIMOV DL,00HINP1:CMP DL,06HJNZ INP2MOV CX,03FFHRR1:MOV DH,3FHMOV AL,02HOUT 00H,ALRR2:DEC DHCMP DH,00HJNZ RR2LOOP RR1JMP C4INP2:MOV AL,BP+4OUT 04H,ALMOV BX,0000HMOV CX,03HINP3:MOV BP,OFFSET DTABLEMOV AL,BPOUT 04H,ALCALL CCSCANCMP AL,0BHJZ IN4MOV BX+SI,ALINC BXINC BPLOOP

16、 INP3MOV BP,OFFSET DTABLECLDMOV CX,03MOV SI,OFFSET CODEINMOV DI,OFFSET CODEORREPZ CMPSBJNZ WRROMOV AL,BP+3OUT 04H,ALXOR DL,DLJMP CHANGEWRRO:INC DLMOV AL,BP+5OUT 04H,ALMOV CX,03HWW1:MOV AL,02HOUT 00H,ALWW2:MOV BL,3FHDEC BLCMP BL,00HJNZ WW2XOR AL,ALOUT 00H,ALWW3:MOV BL,3FHDEC BLCMP BL,00HJNZ WW3LOOP W

17、W1JMP INP1 ;当密码输入正确时,转入密码修改部分CHAN: ;修改密码部分MOV SI,OFFSET CODEINMOV DI,OFFSET CODECHMOV AL,BP+6 ;数码管提示第一次输入OUT 04H,ALMOV CX,03FFHY1:LOOP Y1MOV BP,OFFSET DTABLEMOV BX,0HMOV CX,03HC1:MOV AL,BPOUT 04H,ALCALL CCSCANCMP AL,0BHJZ C4MOV BX+SI,AL ;存放在输入密码缓冲区INC BXINC BPLOOP C1MOV BP,OFFSET DTABLEMOV AL,BP+7OU

18、T 04H,AL ;数码管提示第二次输入MOV CX,03FFHY2:LOOP Y2MOV BP,OFFSET DTABLEMOV BX,0HMOV CX,03HC2:MOV AL,BPOUT 04H,ALCALL CCSCANCMP AL,0BHJZ C4MOV BX+DI,AL ;存放在修改密码缓冲区INC BXINC BPLOOP C2MOV BP,OFFSET DTABLEREPZ CMPSBJNZ CHAN ;判断两次输入的密码是否一致MOV DI,OFFSET CODEORMOV CX,03HCLDREP MOVSB ; 若是相等那就保存密码MOV AL,02H ;且蜂鸣器响一下提

19、示修改成功OUT 00H,ALMOV CX,03FFHC3: LOOP C3XOR AL,ALOUT 00H,AL ;中断返回C4:STIIRETCCSCAN PROC NEAR ;键盘扫描子程序MOV AL,00HOUT 00H,ALIN AL,02HNOT ALAND AL,0FHCMP AL,00H ;判断是否有键按下JNZ K1JMP CCSCANK1:MOV CX,0EFFH ;延时LOOP K1IN AL,02HCMP AL,00HJZ CCSCANMOV AH,60H ;扫描第一列K2:MOV AL,AHOUT 00H,ALIN AL,02HNOT ALAND AL,0FHCMP

20、 AL,00H ;判断是否有键按下JNZ K3OR AH,01HROR AH,1 ;扫描下一列AND AH,0FHJMP K2K3:ADD AL,AHRETCCSCAN ENDPCODE ENDSEND START程序清单(二)利用DOS调用显示DATA SEGMENTTABLE DB 888STRING1 DB Please enter a passward:,0DH,0AH,$STRING2 DB Wrong!,0DH,0AH,$STRING3 DB OPEN!,$STRING4 DB CLOSE!,$BUFFER DB 40,?,40 DUP(0)TAB_LEN EQU 26DATA E

21、NDS;STACK SEGMENT DB 100 DUP(0)STACK ENDS;CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART:MOV AX,DATA MOV DS,AX MOV ES,AX LEA DX,STRING1 MOV AH,09H INT 21H LEA DX,BUFFER MOV AH,0AH INT 21H MOV SI,DX INC SI MOV BL,SI MOV BH,0 INC SI LEA DI,TABLE MOV CX,TAB_LEN CMP CX,BX JNC GOON LEA DX,STRI

22、NG2 JMP EXITGOON: CLD MOV AL,SISCAN:REPNZ SCASB JZ MATCHERROR: LEA DX,STRING4 JMP EXIT MATCH: INC CX CMP CX,BX JC ERROR PUSH CX PUSH SI PUSH DI MOV CX,BX DEC DI REPZ CMPSB POP DI POP SI POP CX JZ FOUND JCXZ ERROR JMP SCAN FOUND: DEC DI LEA DX,STRING3EXIT:MOV AH,09H INT 21H MOV AH,4CH INT 21HCODE ENDS END START

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁