《微型计算机原理与接口技术》课程设计一种由微机实现的多功能密码锁设计1.doc

上传人:仙人指路1688 文档编号:2881783 上传时间:2023-03-01 格式:DOC 页数:23 大小:653KB
返回 下载 相关 举报
《微型计算机原理与接口技术》课程设计一种由微机实现的多功能密码锁设计1.doc_第1页
第1页 / 共23页
《微型计算机原理与接口技术》课程设计一种由微机实现的多功能密码锁设计1.doc_第2页
第2页 / 共23页
《微型计算机原理与接口技术》课程设计一种由微机实现的多功能密码锁设计1.doc_第3页
第3页 / 共23页
《微型计算机原理与接口技术》课程设计一种由微机实现的多功能密码锁设计1.doc_第4页
第4页 / 共23页
《微型计算机原理与接口技术》课程设计一种由微机实现的多功能密码锁设计1.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《《微型计算机原理与接口技术》课程设计一种由微机实现的多功能密码锁设计1.doc》由会员分享,可在线阅读,更多相关《《微型计算机原理与接口技术》课程设计一种由微机实现的多功能密码锁设计1.doc(23页珍藏版)》请在三一办公上搜索。

1、 学号微型计算机原理与接口技术课程设计( 2008级本科)题 目:一种由微机实现的多功能密码锁设计 系(部)院: 物理与机电工程学院 专 业: 电气工程及其自动化 作者姓名: 指导教师: 职称: 副教授 完成日期: 2011 年 6 月 29 日河西学院本科生课程设计任务书学生姓名学号专业方向自动化班级08级1班题目名称一种由微机实现的多功能密码锁一、设计内容及技术要求:1密码锁在输入密码正确时输出开锁电平,控制电控锁开启,同时显示00字样;2当输入密码错误时,发出错误警告声音,同时显示FF字样;3当六次误码输入的条件下,产生报警电平报警;4还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音

2、。二、课程设计总结报告要求:1选用8086和适当的存储器及接口芯片完成相应的功能。2用LED显示器显示电子锁的当前状态。3画出详细的硬件连接图。4给出程序设计思路、画出软件流程图。5给出所有程序清单并加上必要注释。6完成设计说明书(包括封面、目录、设计任务书、硬件设计思路、硬件原理图、软件设计思路、程序流程框图、程序清单、所用器件型号、总结体会、参考文献等)。三、设计进度第一周:星期一上午 讨论设计题目星期一下午 查资料星期二至星期五 完成对硬件电路的基本设计第二周:星期一至星期二 完成软件流程图及软件设计星期三至星期四 软硬件统调,写说明书,画图星期五 答辩指导教师签字:2011_学年第_2

3、_学期目录一、设计目的 1二、设计任务与要求 1三、整体功能描述 1四、总体设计方案论证 1 4.1 方案一 14.2 方案二 2五、硬件设计 2 5.1 键盘 3 5.2 中断控制 3 5.3 计时 4 5.4 输入输出接口 4 5.5 储存器及片选 5 5.6 整机电路图 5六、软件设计 66.1 程序流程图 6 6.2 程序清单 76.3 程序调试运行 7七、设计总结 9八、参考资料 10九、附录 11微机原理与接口技术课程设计成绩评定表 21一、设计目的通过课程设计掌握控制系统设计的一般步骤,掌握系统总体控制方案的设计方法、8086微型计算机的应用方法、控制算法的设计及硬件设计方法。复

4、习并学习用软件编程控制硬件。了解和掌握8086微机应用系统的软硬件设计过程、方法及实现,为以后设计实现8086微机应用系统打下良好的基础。二、设计任务与要求(1) 密码锁在输入密码正确时控制电控锁开启,同时显示00字样;当输入密码错误时,发出错误警告,并显示FF字样;当六次误码输入时,产生报警;具有密码修改的功能。(2) 选用8086和适当的存储器及接口芯片完成相应的功能,用LED显示器显示电子锁的当前状态;画出详细的硬件连接图;给出程序设计思路、画出软件流程图;给出所有程序清单并加上必要注释;完成设计说明书(包括封面、目录、设计任务书、硬件设计思路、硬件原理图、软件设计思路、程序流程框图、程

5、序清单、所用器件型号、总结体会、参考文献等)。三、 整体功能描述本设计为多功能密码锁,使用存储器保存密码防止断电后密码丢失。工作时按下按键蜂鸣器会发出声音提示按键有效并在数码管有“- -”闪烁字样,若相隔1分钟无按键按下,则清零。在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示OPEN字样。开锁后可按下“复位/修改密码键”实现修改密码功能的转入,之后先输入密码再输入同样的密码确认才可成功修改,修改成功后蜂鸣器会发出三声,数码管“00”闪烁三次提示修改密码成功。当输入密码错误时,发出错误警告声音,同时显示CLOSE字样,当输入密码错误次数累积够6次后,蜂鸣器会产生90秒的报警声响进行

6、报警。 四、总体设计方案根据本次设计的设计目的及设计要求,可有下列两种方案:4.1 方案一在本次设计中,因为密码锁的基本功能使可以判断密码是否正确,以及完成对密码的修改,所以需要用到输入设备以及CPU的接口电路以及相关存储设备;因为有报警提示功能,所以要用到相关的输出设备以及接口电路。因为要完成逻辑运算功能,所以必须要有CPU,CPU就选用我们最常用也最熟悉的8086,考虑到8255的端口兼具输入输出功能,灵活方便,所以选用一片8255作为输入输出设备与8086间的借口;采用0到9数字按键以及相关功能选择的输入;输出设备方面,采用两位数码管实现题目的状态提示要求,用一个蜂鸣器作为相关的警报,提

7、示的声音输出。另外,为简化编程,采用8259中断控制器来触发中断实现密码锁工作模式的转换,其中的密码输入及判断功能与密码修改功能分别用两个外部中断来触发中断服务程序来实现。本设计的密码位数为6位。4.2 方案二用汇编语言编写程序实现应用程序的功能,从而实现简易计算器汇编程序的设计与实现。4.2.1使用设备含有Windows汇编编译环境的MASM软件及Office 2003软件的计算机一台。4.2.2汇编程序编写汇编程序编写,根据设计要求编写实现该功能的源程序代码。4.2.3使用方法在masm环境下运行本程序,按提示输入正确密码,则在屏幕上显示00字样,否则显示FF字样。五、硬件设计本设计使用了

8、8086、8259A、8255、8253、2764、74LS138、74LS148、地址锁存器、数码管以及74系列逻辑门、蜂鸣器、开关等芯片与元器件,实现了键盘输入、中断控制、计时、按键响应、开锁及报警等功能模块,其硬件连接框图如图1所示。图1 硬件连接框图5.1 键盘本设计8255A的A口与两片级联的74LS148组合接用于输入键盘,实现对输入键号的读入。工作时,8086通过程序扫描键盘,当无键盘按下时,74LS148工作于无输入状态,GS口输出高电平,接到PA4作为识别有无按键按下信号,PA口输入为10H;当有按键输入时,74LS148输入口接到低电平,输入有效,经编码后键号转换为相应二进

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

10、退出输入密码中断子程序、报警器响铃时间控制等功能。电路如图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 整机电路图:见附录一六、软

11、件设计6.1 程序流程图图6 程序流程图6.2 程序清单:见附录二 6.3 程序调试运行63.1程序编写第一步:对要实现的功能进行大体分析,画出程序的总流程图,如图6所示:第二步:将这些功能的实现分别编写程序来实现。第三步;编写代码,上机调试和运行程序。6.3.2 上机编译与调试第一步:编辑源程序:即建立.ASM文件。第二步:汇编源程序。源文件建立后,要用汇编程序对源文件进行汇编,以便产生二进制的目标文件(.OBJ文件),如图7所示:第三步: 用LINK程序产生.EXE文件。汇编程序已产生出二进制的代码文件(.OBJ),但.OBJ文件并不是可执行文件,还必须使用(LINK)把.OBJ文件转换为

12、可执行的.EXE文件。用LINK.EXE连接为可执行文件界面如图8所示。第四步: 程序的调试及运行图7 程序汇编图8 生成可执行文件图9 程序运行七、设计总结与体会通过本次课程设计,我对 8255,8253,8259等芯片的各引脚的功能、名称、工作方式、内部结构有了更深层次的掌握,对这三种芯片的编程从陌生转向熟练。通过这次的微机课程设计,对书本所学的知识有了进一步的巩固,并且对三种芯片各自的功能、工作方式有了明确性的区分。在设计过程中遇到问题时,遇到含糊不清或者看不懂的地方及时翻阅相关课本知识。有时看课本也没有结果时就和组员互相探讨。在设计过程中,才发现自己遗漏许多课本的相关知识,对各芯片的功

13、能及其工作方式掌握的不够清楚。这说明在实践中才能真正的掌握从课本中所学的知识。这次的课程设计让我为一年后的毕业设计打下了基础。八、参考资料1 冯博琴,吴宁. 微型计算机原理与接口技术. 北京 清华大学出版社(第二版),2007.2 赵国相等. 微型计算机原理与汇编语言程序设计. 北京 科学出版社,2004.3 吴荣光,吕钧星.微型计算机原理及应用广州 华南理工大学出版社,2006.4 张睿,赵艳华,刘志刚. 精通Protel DXP 2004电路设计. 北京 电子工业出版社2005.5耿丹,梁佑斌32位微型计算机原理及应用实验指导书广州 华南理工大学教材供应中心,2001.6王爽.汇编语言(第

14、2版).北京 清华大学出版社,2008.7康华光等 .电子技术基础(数字部分)第五版. 华中科技大学电子技术课程组编. 北京 高等教育出版社,2006九、附录附录一:电路基本连接图附录二:程序清单(一)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 SEGMENTST

15、A 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的中断向量

16、)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

17、,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 ;设置循环次

18、数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

19、,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: ;密码修改

20、程序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 DTABLECLD

21、MOV 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 ;当密码输入正确时,转入密码修改部

22、分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,0

23、3FFHY2: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,03FFHC

24、3: 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

25、,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 ENDS;STACK SEGMENT DB 100 DUP

26、(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,STRING2 JMP EXITGOON: CLD MOV AL

27、,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微机原理与接口技术课程设计成绩评定表姓 名马 健学 号0814119专业班级电气工程08及1班课程设计题目: 一种由微机实现的多功能密码锁设计课程设计答辩或质疑记录:成绩评定依据:评 定 项 目评 分 成 绩1.选题合理、目的明确(10分)2.设计方案可行性、创新性(20分)3.设计结果(系统原理图、源程序、调试运行结果)(30分)4.平时成绩(态度认真、遵守纪律)(10分)5.设计报告的规范性、参考文献充分(不少于5篇)(10分)6.答辩(20分)总 分最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号