微机原理课程设计(电子密码锁).doc_第1页
微机原理课程设计(电子密码锁).doc_第2页
微机原理课程设计(电子密码锁).doc_第3页
微机原理课程设计(电子密码锁).doc_第4页
微机原理课程设计(电子密码锁).doc_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、设计目的通过课程设计掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法、8086微型计算机的应用方法、控制算法的设计及硬件设计方法。复习并学习用软件编程控制硬件。了解和掌握8086微机应用系统的软硬件设计过程、方法及实现,为以后设计实现8086微机应用系统打下良好的基础。二、设计任务与要求(1) 密码锁在输入密码正确时控制电控锁开启,同时显示00字样;当输入密码错误时,发出错误警告,并显示FF字样;当3次误码输入时,产生报警;具有密码修改的功能。(2) 选用8086和适当的存储器及接口芯片完成相应的功能,用LED显示器显示电子锁的当前状态;画出详细的硬件连接图;给出程序设计思路、画出软件流程图;给出所有程序清单并加上必要注释;完成设计说明书(包括封面、目录、设计任务书、硬件设计思路、硬件原理图、软件设计思路、程序流程框图、程序清单、所用器件型号、总结体会、参考文献等)。三、 整体功能描述本设计为多功能密码锁,使用存储器保存密码防止断电后密码丢失。工作时按下按键蜂鸣器会发出声音提示按键有效并在数码管有“- -”闪烁字样,若相隔1分钟无按键按下,则清零。在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示OPEN字样。开锁后可按下“复位/修改密码键”实现修改密码功能的转入,之后先输入密码再输入同样的密码确认才可成功修改,修改成功后蜂鸣器会发出三声,数码管“00”闪烁三次提示修改密码成功。当输入密码错误时,发出错误警告声音,同时显示CLOSE字样,当输入密码错误次数累积够3次后,蜂鸣器会产生90秒的报警声响进行报警。 四、总体设计方案根据本次设计的设计目的及设计要求,可有下列两种方案:4.1 方案一在本次设计中,因为密码锁的基本功能使可以判断密码是否正确,以及完成对密码的修改,所以需要用到输入设备以及CPU的接口电路以及相关存储设备;因为有报警提示功能,所以要用到相关的输出设备以及接口电路。因为要完成逻辑运算功能,所以必须要有CPU,CPU就选用我们最常用也最熟悉的8086,考虑到8255的端口兼具输入输出功能,灵活方便,所以选用一片8255作为输入输出设备与8086间的借口;采用0到9数字按键以及相关功能选择的输入;输出设备方面,采用两位数码管实现题目的状态提示要求,用一个蜂鸣器作为相关的警报,提示的声音输出。另外,为简化编程,采用8259中断控制器来触发中断实现密码锁工作模式的转换,其中的密码输入及判断功能与密码修改功能分别用两个外部中断来触发中断服务程序来实现。本设计的密码位数为6位。4.2 方案二用汇编语言编写程序实现应用程序的功能,从而实现简易计算器汇编程序的设计与实现。4.2.1使用设备含有Windows汇编编译环境的MASM软件及Office 2003软件的计算机一台。4.2.2汇编程序编写汇编程序编写,根据设计要求编写实现该功能的源程序代码。4.2.3使用方法在masm环境下运行本程序,按提示输入正确密码,则在屏幕上显示00字样,否则显示FF字样。五、硬件设计本设计使用了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等芯片的各引脚的功能、名称、工作方式、内部结构有了更深层次的掌握,对这三种芯片的编程从陌生转向熟练。通过这次的微机课程设计,对书本所学的知识有了进一步的巩固,并且对三种芯片各自的功能、工作方式有了明确性的区分。在设计过程中遇到问题时,遇到含糊不清或者看不懂的地方及时翻阅相关课本知识。有时看课本也没有结果时就和组员互相探讨。在设计过程中,才发现自己遗漏许多课本的相关知识,对各芯片的功能及其工作方式掌握的不够清楚。这说明在实践中才能真正的掌握从课本中所学的知识。这次的课程设计让我为一年后的毕业设计打下了基础。八、参考资料九、附录附录一:电路基本连接图附录二:程序清单(一)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,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 ;(键盘输入中断)设定密码修改的中断向量(即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输入,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 ;数码管显示-提示输入密码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+3OUT 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 ;中断返回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 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 WW1JMP 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+7OUT 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 ;且蜂鸣器响一下提示修改成功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 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!

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论