资源描述
编号:0 8 1 4 1 1 4课程设计微型计算机原理与接口技术( 2008级本科)题 目:一种由微机实现的多功能密码锁设计 系(部)院: 物理与机电工程学院 专 业: 电气工程及其自动化 作者姓名: 指导教师: 职称: 副 教 授 完成日期: 2011 年 6 月 30 日河西学院本科生毕业论文(设计)任务书论 文 题 目一种由微机实现的多功能密码锁作 者 姓 名所属院、专业、年级物理与机电工程学院电气工程及其自动化专业08年级指导教师姓名、职称张静 副教授任务下达日期2011年6月20日一、设计内容及技术要求:密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示00字样。当输入密码错误时,发出错误警告声音,同时显示FF字样。当六次误码输入的条件下,产生报警电平报警。采用90秒定时中断,输出控制信号,防止长时间无效操作。二、课程设计总结报告要求1、选用8086和适当的存储器及接口芯片完成相应的功能。2、用LED显示器显示电子锁的当前状态。3、画出详细的硬件连接图。4、给出程序设计思路、画出软件流程图。5、给出所有程序清单并加上必要注释。6、完成设计说明书(包括封面、目录、设计任务书、硬件设计思路、硬件原理图、软件设计思路、程序流程框图、程序清单、所用器件型号、总结体会、参考文献等)。三、设计进度第一周:星期一上午 讨论设计题目星期一下午 查资料星期二至星期五 完成对硬件电路的基本设计第二周:星期一至星期二 完成软件流程图及软件设计星期三至星期四 软硬件统调,写说明书,画图星期五 答辩指导教师签字:目录一、设计任务 1二、设计要求 1三、整体功能描述 1四、设计思路 1五、硬件设计 2 1.键盘 2 2.中断控制 2 3.计时 2 4.按键响应 2 5.报警 3 6.储存器及片选 3 7.硬件部分电路图 4六、软件设计 6七、程序清单 7八、设计总结与体会8九、参考资料8十、附录8一种由微机实现的多功能密码锁设计说明书一、 设计目标1密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示00字样。2当输入密码错误时,发出错误警告声音,同时显示FF字样。3当六次误码输入的条件下,产生报警电平报警。4还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。二、 设计要求1选用8086和适当的存储器及接口芯片完成相应的功能。2用LED显示器显示电子锁的当前状态。3画出详细的硬件连接图。4给出程序设计思路、画出软件流程图。5给出所有程序清单并加上必要注释。6完成设计说明书(包括封面、目录、设计任务书、硬件设计思路、硬件原理图、软件设计思路、程序流程框图、程序清单、所用器件型号、总结体会、参考文献等)。三、 整体功能描述本设计为多功能密码锁,使用存储器保存密码防止断电后密码丢失。工作时按下按键蜂鸣器会发出声音提示按键有效并在数码管有“- -”闪烁字样,若相隔1分钟无按键按下,则清零。在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示00字样。开锁后可按下“复位/修改密码键”实现修改密码功能的转入,之后先输入密码再输入同样的密码确认才可成功修改,修改成功后蜂鸣器会发出三声,数码管“00”闪烁三次提示修改密码成功。当输入密码错误时,发出错误警告声音,同时显示FF字样,当输入密码错误次数累积够6次后,蜂鸣器会产生90秒的报警声响进行报警。 四、设计思路在本次设计中,因为密码锁的基本功能使可以判断密码是否正确,以及完成对密码的修改,所以需要用到输入设备以及CPU的接口电路以及相关存储设备;因为有报警提示功能,所以要用到相关的输出设备以及接口电路。首先,因为要完成逻辑运算功能,所以必须要有CPU,CPU就选用我们最常用也最熟悉的8086,分别用一个2764作为外部存储设备,因为ROM只读不可断电信息不丢失,用来存储相关程序,而ram可读可写,但断电信息会丢失,故用来存储运行期间产生的相关数据。考虑到8255的端口兼具输入输出功能,灵活方便,所以选用一片8255作为输入输出设备与8086间的接口;采用0到9数字按键以及相关功能选择的输入;输出设备方面,采用两位数码管实现题目的状态提示要求,用一个蜂鸣器作为相关的警报,提示的声音输出。另外,为简化编程,采用8259中断控制器来触发中断实现密码锁工作模式的转换,其中的密码输入及判断功能与密码修改功能分别用两个外部中断来触发中断服务程序来实现。本设计的密码位数为6位。五、硬件设计本设计使用了8086、8259A、8255、8253、2764、74LS138、74LS148、地址锁存器、数码管以及74系列逻辑门、蜂鸣器、开关等芯片与元器件,实现了键盘输入、中断控制、计时、按键响应、开锁及报警等功能模块。以下一一详述。1.键盘本设计8255A的A口与两片级联的74LS148组合接用于输入键盘,实现对输入键号的读入。工作时,8086通过程序扫描键盘,当无键盘按下时,74LS148工作于无输入状态,GS口输出高电平,接到PA4作为识别有无按键按下信号,PA口输入为10H;当有按键输入时,74LS148输入口接到低电平,输入有效,经编码后键号转换为相应二进制编码送到PA口,成为能为CPU识别的代表键值的有效信号。读入的按键信号经8086判断后,根据不同的功能,输出不同的按键响应,并转移到相对应的功能服务程序。本设计总共用到11位按键,包括10位数码输入按键及一位“复位/修改密码”按键,电路设计总共可用按键有16位,供升级功能使用。键盘电路如下图1所示:2.中断控制用一片8259A芯片作为中断控制接口电路。其中IR0与IR1中断开放,单片工作于非缓冲方式,电平触发,优先级是普通全嵌套方式。可通过编程开中断,通过编程或者8253计时器关中断。电路连接如图2所示:3.计时采用8253计时器控制中断的关断,实现单次输入密码超时则退出输入密码中断子程序、报警器响铃时间控制等功能。电路如图2所示。4.按键响应8255PC0、PC1接到数码管片选、PC2接到蜂鸣器、PC3接到电子锁。电路连接如图3所示:5.报警功能同时用8255A的B口控制数码管的显示,C口片PC0、PC1选数码管,PC2用来驱动SPEAK发出报警。电路如图3所示。6.储存器及片选电路:存储器及片选电路采用一片2764存储器和一片74LS138,连接电路如图4所示:7.硬件部分电路图8.整机电路图:见附录一图1 键盘连接图图2 中断控制器连接图 图3 按键响应、报警、开锁功能电路图4 片选及存储器电路六、 软件设计1.程序流程图七、程序清单:见附录二八、设计总结与体会通过本次课程设计,我对所学知识有了一个完整的应用,对课程所学知识的体现,尤其是对8255,8259,8253等芯片的内部结构,熟悉各种基本工作模式和编程方法;加深了对8086中断系统工作过程的了解;学会综合应用多种微机接口与单元电路,构成满足要求的小型微机应用系统;学会了CPU与存储器的连接方法,扩展存储空间的方法。通过这次的微机课程设计,对所学知识有了个补充和完善,对那些模糊不懂的地方,进行了彻底完全的学习。在设计过程中,我发现我对上课中讲述的知识还有很大的欠缺,对很多芯片了解的不够透彻,这也造成了我在连接硬件图时遇到了很多困难,不得不请教组长和学习好的同学,彻底的搞懂问题。这说明我们光掌握课本上的知识是远远不够的,必须要通过实践才能加深对知识的理解。九、参考资料1 冯博琴,吴宁. 微型计算机原理与接口技术. 北京 清华大学出版社(第二版),2007。.2 赵国相等. 微型计算机原理与汇编语言程序设计. 北京 科学出版社,2004。.3 张睿,赵艳华,刘志刚. 精通Protel DXP 2004电路设计. 北京 电子工业出版社,2005.。4艾德才,微型计算机原理与与接口技术,北京:高等教育出版社,2004。5周明德,微型计算机系统原理及应用。北京:清华大学出版社,2002。6 郑学坚,周斌。微型计算机原理及应用。北京:清华大学出版社,2001.十、附录附录一:电路基本连接图附录二:程序清单DATA SEGMENT ;以下代码写入RAMDATA1 DB 6 DUP(?) ;输入的密码保存的地址DATA2 DB 6 DUP(?) ;修改后的密码的保存地址DATA3 DB 3,6,3,7,3,8 ;初始密码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 AX,DATAMOV DS,AX ;初始化数据段MOV AX,STACKSMOV SS,AX ;初始化堆栈段 MOV SI,OFFSET DATA1MOV DI,OFFSET DATA2MOV BP,OFFSET DATA3MOV AL,09H ;(键盘输入中断)设定密码输入的中断向量(即IR0的中断向量)MOV AH,25HINT 21HPUSH BXPUSH DSMOV DX,SEG SMMMOV DS,DXMOV DX,OFFSET SMMINT 21HMOV AL,09H ;(键盘输入中断)设定密码修改的中断向量(即IR1的中断向量)MOV AH,25HINT 21HPUSH BXPUSH DSMOV DX,SEG GMMMOV DS,DXMOV DX,OFFSET GMMINT 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,ALA1:STIMOV AL,00HOUT 04H,AL ;输出低电平使数码管熄灭SMM: ;密码输入程序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 ;数码管显示EE提示输入密码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:STIIRETGMM: ;密码修改程序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,03HMOV SI,OFFSET DATA1MOV DI,OFFSET DATA3REPZ CMPSBJNZ WRROMOV AL,BP+3OUT 04H,ALXOR DL,DLJMP GMMWRRO: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 DATA1MOV DI,OFFSET DATA2MOV 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 微机原理与接口技术课程设计成绩评定表姓 名 刘 世 兵学 号0814114专业班级电气工程及其自动化 08级1 班课程设计题: 一种由微机实现的多功能密码锁课程设计答辩或质疑记录:成绩评定依据:评 定 项 目评 分 成 绩1.选题合理、目的明确(10分)2.设计方案可行性、创新性(20分)3.设计结果(系统原理图、源程序、调试运行结果)(30分)4.平时成绩(态度认真、遵守纪律)(10分)5.设计报告的规范性、参考文献充分(不少于5篇)(10分)6.答辩(20分)总 分最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日 第18页
展开阅读全文