版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学号 微型计算机原理与接口技术微型计算机原理与接口技术 课程设计课程设计 ( 2008 级本科)级本科) 题题 目:目:一一种种由由微微机机实实现现的的多多功功能能密密码码锁锁设设计计 系(部)院:系(部)院: 物理与机电工程学院物理与机电工程学院 专专 业:业: 电电气气工工程程及及其其自自动动化化 作者姓名:作者姓名: 指导教师:指导教师: 职称:职称: 副教授副教授 完成日期:完成日期: 2011 年年 6 月月 29 日日 河西学院本科生课程设计任务书 2011_学年第_2_学期 目录 学生姓名学号 专业方向自动化班级08 级 1 班 题目名称一种由微机实现的多功能密码锁 一、设计内容
2、及技术要求:一、设计内容及技术要求: 1密码锁在输入密码正确时输出开锁电平,控制电控锁开启,同时显示 00 字样; 2当输入密码错误时,发出错误警告声音,同时显示 FF 字样; 3当六次误码输入的条件下,产生报警电平报警; 4还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。 二、课程设计总结报告要求:二、课程设计总结报告要求: 1选用 8086 和适当的存储器及接口芯片完成相应的功能。 2用 LED 显示器显示电子锁的当前状态。 3画出详细的硬件连接图。 4给出程序设计思路、画出软件流程图。 5给出所有程序清单并加上必要注释。 6完成设计说明书(包括封面、目录、设计任务书、硬件设计思路、
3、硬件 原理图、软件设计思路、程序流程框图、程序清单、所用器件型号、总结体 会、参考文献等) 。 三、设计进度三、设计进度 第一周: 星期一上午 讨论设计题目 星期一下午 查资料 星期二至星期五 完成对硬件电路的基本设计 第二周: 星期一至星期二 完成软件流程图及软件设计 星期三至星期四 软硬件统调,写说明书,画图 星期五 答辩 指导教师签字: 一、设计目的 1 二、设计任务与要求 1 三、整体功能描述 1 四、总体设计方案论证 1 4.1 方案一 1 4.2 方案二 2 五、硬件设计 2 5.1 键盘 3 5.2 中断控制 3 5.3 计时 4 5.4 输入输出接口 4 5.5 储存器及片选
4、5 5.6 整机电路图 5 六、软件设计 6 6.1 程序流程图 6 6.2 程序清单 7 6.3 程序调试运行 7 七、设计总结 9 八、参考资料 10 九、附录 11 微机原理与接口技术课程设计成绩评定表 21 一、设计目的一、设计目的 通过课程设计掌握控制系统设计的一般步骤,掌握系统总体控制方案的 设计方法、8086 微型计算机的应用方法、控制算法的设计及硬件设计方法。复 习并学习用软件编程控制硬件。了解和掌握 8086 微机应用系统的软硬件设计过 程、方法及实现,为以后设计实现 8086 微机应用系统打下良好的基础。 二、设计任务与要求二、设计任务与要求 (1) 密码锁在输入密码正确时
5、控制电控锁开启,同时显示 00 字样;当输入密 码错误时,发出错误警告,并显示 FF 字样;当六次误码输入时,产生报警;具 有密码修改的功能。 (2) 选用 8086 和适当的存储器及接口芯片完成相应的功能,用 LED 显示器显 示电子锁的当前状态;画出详细的硬件连接图;给出程序设计思路、画出软件 流程图;给出所有程序清单并加上必要注释;完成设计说明书(包括封面、目 录、设计任务书、硬件设计思路、硬件原理图、软件设计思路、程序流程框图、 程序清单、所用器件型号、总结体会、参考文献等) 。 三、三、 整体功能描述整体功能描述 本设计为多功能密码锁,使用存储器保存密码防止断电后密码丢失。工作 时按
6、下按键蜂鸣器会发出声音提示按键有效并在数码管有“- -”闪烁字样,若 相隔 1 分钟无按键按下,则清零。在输入密码正确的条件下输出开锁电平,控 制电控锁开启,同时显示 OPEN 字样。开锁后可按下“复位/修改密码键”实现 修改密码功能的转入,之后先输入密码再输入同样的密码确认才可成功修改, 修改成功后蜂鸣器会发出三声,数码管“00”闪烁三次提示修改密码成功。当 输入密码错误时,发出错误警告声音,同时显示 CLOSE 字样,当输入密码错误 次数累积够 6 次后,蜂鸣器会产生 90 秒的报警声响进行报警。 四、总体设计方案四、总体设计方案 根据本次设计的设计目的及设计要求,可有下列两种方案: 4.
7、14.1 方案一方案一 在本次设计中,因为密码锁的基本功能使可以判断密码是否正确,以及完 成对密码的修改,所以需要用到输入设备以及 CPU 的接口电路以及相关存储设 备;因为有报警提示功能,所以要用到相关的输出设备以及接口电路。因为要 完成逻辑运算功能,所以必须要有 CPU,CPU 就选用我们最常用也最熟悉的 8086,考虑到 8255 的端口兼具输入输出功能,灵活方便,所以选用一片 8255 作为输入输出设备与 8086 间的借口;采用 0 到 9 数字按键以及相关功能选择的 输入;输出设备方面,采用两位数码管实现题目的状态提示要求,用一个蜂鸣 器作为相关的警报,提示的声音输出。另外,为简化
8、编程,采用 8259 中断控制 器来触发中断实现密码锁工作模式的转换,其中的密码输入及判断功能与密码 修改功能分别用两个外部中断来触发中断服务程序来实现。本设计的密码位数 为 6 位。 4.24.2 方案二方案二 用汇编语言编写程序实现应用程序的功能,从而实现简易计算器汇编程序 的设计与实现。 4.2.1 使用设备 含有 Windows 汇编编译环境的 MASM 软件及 Office 2003 软件的计算机一台。 4.2.2 汇编程序编写 汇编程序编写,根据设计要求编写实现该功能的源程序代码。 4.2.3 使用方法 在 masm 环境下运行本程序,按提示输入正确密码,则在屏幕上显示 00 字
9、样,否则显示 FF 字样。 五、硬件设计五、硬件设计 本设计使用了 8086、8259A、8255、8253、2764、74LS138、74LS148、地 址锁存器、数码管以及 74 系列逻辑门、蜂鸣器、开关等芯片与元器件,实现了 键盘输入、中断控制、计时、按键响应、开锁及报警等功能模块,其硬件连接框 图如图 1 所示。 图图 1 1 硬件连接框图硬件连接框图 5.15.1 键盘键盘 本设计 8255A 的 A 口与两片级联的 74LS148 组合接用于输入键盘,实现对 输入键号的读入。工作时,8086 通过程序扫描键盘,当无键盘按下时, 74LS148 工作于无输入状态,GS 口输出高电平,
10、接到 PA4 作为识别有无按键按 下信号,PA 口输入为 10H;当有按键输入时,74LS148 输入口接到低电平,输 入有效,经编码后键号转换为相应二进制编码送到 PA 口,成为能为 CPU 识别的 代表键值的有效信号。读入的按键信号经 8086 判断后,根据不同的功能,输出 不同的按键响应,并转移到相对应的功能服务程序。 本设计总共用到 11 位按键,包括 10 位数码输入按键及一位“复位/修改密 码”按键,电路设计总共可用按键有 16 位,供升级功能使用。键盘电路如下图 2 所示: 5.25.2 中断控制中断控制 用一片 8259A 芯片作为中断控制接口电路。其中 IR0 与 IR1 中
11、断开放,单片 工作于非缓冲方式,电平触发,优先级是普通全嵌套方式。可通过编程开中断, 通过编程或者 8253 计时器关中断。电路连接如图 3 所示: 图图 2 2 键盘连接图键盘连接图 5.35.3 计时计时 采用 8253 计时器控制中断的关断,实现单次输入密码超时则退出输入密码 中断子程序、报警器响铃时间控制等功能。电路如图 3 所示。 图图 3 3 中断控制器连接图中断控制器连接图 5.45.4 输入输出接口输入输出接口 输入输出接口采用可编程的 8255A,8255A 是 Intel 系列的并行接口芯片, 常作为微机系统与外部设备接口。在连接电路时 8255 的 PC0、PC1 接到数
12、码管 片选,电路连接如图 3 所示。同时用 8255A 的 B 口控制数码管的显示,C 口片 PC0、PC1 选数码管,PC2 用来驱动 SPEAK 发出报警电路如图 4 所示。 图图 4 4 按键响应、报警、开锁功能电路按键响应、报警、开锁功能电路 5.55.5储存器及片选电路储存器及片选电路 存储器及片选电路采用一片 2764 存储器和一片 74LS138,连接电路如图 5 所示: 图图 5 5 片选及存储器电路片选及存储器电路 5.65.6 整机电路图:见附录一整机电路图:见附录一 六、软件设计六、软件设计 6.16.1 程序流程图程序流程图 开始 程序初始化 8255.8259初始化
13、从RAM存储器中读出密码 定义DI.SI指针 开中断 data2与data3数据串比较 相等? 开锁,并显示00 扫描键盘,有修改密码键? 定义SI,DI指针 开中断,实现密码输入 转存到data2 有修改密码键输入? 开中断,重新输入密码 比较是否为首次输入密码? 转存密码到RAM 铃声确认修改密码成功 扫描键盘是否有修改密码键输入 保持开锁状态 结束 错误计数器加1 错误累积超过6次? 保持关锁 结束 N N 报警响铃, 输出显示FF Y Y N Y N Y 图图 6 程序流程图程序流程图 6.26.2 程序清单:见附录二程序清单:见附录二 6.36.3 程序调试运行程序调试运行 63.1
14、 程序编写 第一步:对要实现的功能进行大体分析,画出程序的总流程图,如图 6 所示: 第二步:将这些功能的实现分别编写程序来实现。 第三步;编写代码,上机调试和运行程序。 6.3.2 上机编译与调试 第一步:编辑源程序:即建立.ASM 文件。 第二步:汇编源程序。源文件建立后,要用汇编程序对源文件进行汇编,以便 产生二进制的目标文件(.OBJ 文件),如图 7 所示: 第三步: 用 LINK 程序产生.EXE 文件。汇编程序已产生出二进制的代码文件 (.OBJ),但.OBJ 文件并不是可执行文件,还必须使用(LINK)把.OBJ 文件转换为 可执行的.EXE 文件。用 LINK.EXE 连接为
15、可执行文件界面如图 8 所示。 第四步: 程序的调试及运行 图图 7 7 程序汇编程序汇编 图图 8 8 生成可执行文件生成可执行文件 图图 9 9 程序运行程序运行 七、设计总结与体会七、设计总结与体会 通过本次课程设计,我对 8255,8253,8259等芯片的各引脚的功能、名称、 工作方式、内部结构有了更深层次的掌握,对这三种芯片的编程从陌生转向熟练。 通过这次的微机课程设计,对书本所学的知识有了进一步的巩固,并且对三种 芯片各自的功能、工作方式有了明确性的区分。在设计过程中遇到问题时,遇 到含糊不清或者看不懂的地方及时翻阅相关课本知识。有时看课本也没有结果 时就和组员互相探讨。在设计过
16、程中,才发现自己遗漏许多课本的相关知识, 对各芯片的功能及其工作方式掌握的不够清楚。这说明在实践中才能真正的掌 握从课本中所学的知识。这次的课程设计让我为一年后的毕业设计打下了基础。 八、参考资料八、参考资料 1 冯博琴,吴宁. 微型计算机原理与接口技术. 北京 清华大学出版社(第二 版) ,2007. 2 赵国相等. 微型计算机原理与汇编语言程序设计. 北京 科学出版社, 2004. 3 吴荣光,吕钧星.微型计算机原理及应用广州 华南理工大学出版社,2006. 4 张睿,赵艳华,刘志刚. 精通 Protel DXP 2004 电路设计. 北京 电子工业出 版社 2005. 5耿丹,梁佑斌32
17、 位微型计算机原理及应用实验指导书广州 华南理工大 学教材供应中心,2001. 6王爽.汇编语言(第 2 版).北京 清华大学出版社,2008. 7康华光等 .电子技术基础(数字部分)第五版. 华中科技大学电子技术课程 组编. 北京 高等教育出版社,2006 九、附录九、附录 附录一:电路基本连接图 附录二:程序清单(一) DATA SEGMENT ;以下代码写入 RAM CODEIN DB 6 DUP(?) ;输入的密码保存的地址 CODECH DB 6 DUP(?) ;修改后的密码的保存地址 CODEOR DB 0,0,0,0,0,0 ;初始密码 ORG 01000H ;下面的代码写入 R
18、OM DTABLE DB 80H,02H,10H,3FH,79H,71H,60H,5BH DATA ENDS STACKS SEGMENT STA DB 20 DUP(?) STACKS ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKS START: MOV SI,OFFSET CODEIN MOV DI,OFFSET CODEOR MOV BP,OFFSET DTABLE MOV AL,09H ;(键盘输入中断)设定密码输入的中断向量(即 IR0 的中断向量) MOV AH,25H INT 21H PUSH BX PUSH DS MOV D
19、X,SEG INPUT MOV DS,DX MOV DX,OFFSET INPUT INT 21H MOV AL,09H ;(键盘输入中断)设定密码修改的中断向量(即 IR1 的中断向量) MOV AH,25H INT 21H PUSH BX PUSH DS MOV DX,SEG CHANGE MOV DS,DX MOV DX,OFFSET CHANGE INT 21H MOV AL,1BH ;初始化 8259 OUT 10H,AL ;单片工作,高电平有效 MOV AL,08H OUT 11H,AL MOV AL,03H OUT 11H,AL MOV AL,0FCH OUT 11H,AL ;开
20、放 IR0,IR1 MOV AL,20H OUT 10H,AL MOV AL,68H OUT 10H,AL MOV AL,82H ;初始化 8255 A 口方式 0 输出,B 口方式 0 输入,C 口输 出 OUT 06H,AL AA: STI MOV AL,00H OUT 04H,AL ;输出低电平使数码管熄灭 INPUT: ;密码输入程序 CLI MOV DL,00H IN1: CMP DL,06H ;判断是否连续 6 次输入错误密码 JNZ IN2 ;若不是这继续输入 MOV CX,03FFH ;使蜂鸣器长鸣报警(通过延时实现) R1: MOV DH,3FH MOV AL,02H OUT
21、 00H,AL ;输出高电平使蜂鸣器发声 R2: DEC DH CMP DH,00H JNZ R2 LOOP R1 JMP IN4 ;报警完毕,跳至中断返回 IN2: ;输入密码 MOV AL,BP+4 OUT 04H,AL ;数码管显示-提示输入密码 MOV BX,0H MOV CX,03H ;设置循环次数 IN3: MOV BP,OFFSET DTABLE MOV AL,BP OUT 04H,AL ;数码管提示输入位数 CALL CCSCAN ;调用键盘扫描程序 CMP AL,0BH ;判断是否按下返回键 JZ IN4 MOV BX+SI,AL ;保存输入密码 INC BX INC BP
22、LOOP IN3 MOV BP,OFFSET DTABLE ;判断密码是否正确 CLD MOV CX,03 MOV SI,OFFSET CODEIN MOV DI,OFFSET CODEOR REPZ CMPSB ;判断密码是否正确 JNZ WRO ;若错误就报警 MOV AL,BP+3 OUT 04H,AL ;若正确数码管就显示00 MOV AL,04H OUT 00H,AL ;且给 LED 高电平使其点亮 XOR DL,AL JMP IN4 WRO: ;出错报警部分 INC DL MOV AL,BP+5 ;数码管显示FF提示错误 OUT 04H,AL MOV CX,03H ;设定蜂鸣器响的
23、次数 W1: MOV AL,02H ;使蜂鸣器发声 OUT 00H,AL W2: ;延时 MOV BL,3FH DEC BL CMP BL,00H JNZ W2 XOR AL,AL ;输出低电平关蜂鸣器 OUT 00H,AL W3: ;延时 MOV BL,3FH DEC BL CMP BL,00H JNZ W3 LOOP W1 JMP IN1 ;中断返回 IN4: STI IRET CHANGE: ;密码修改程序 CLI MOV DL,00H INP1: CMP DL,06H JNZ INP2 MOV CX,03FFH RR1: MOV DH,3FH MOV AL,02H OUT 00H,AL
24、 RR2: DEC DH CMP DH,00H JNZ RR2 LOOP RR1 JMP C4 INP2: MOV AL,BP+4 OUT 04H,AL MOV BX,0000H MOV CX,03H INP3: MOV BP,OFFSET DTABLE MOV AL,BP OUT 04H,AL CALL CCSCAN CMP AL,0BH JZ IN4 MOV BX+SI,AL INC BX INC BP LOOP INP3 MOV BP,OFFSET DTABLE CLD MOV CX,03 MOV SI,OFFSET CODEIN MOV DI,OFFSET CODEOR REPZ CM
25、PSB JNZ WRRO MOV AL,BP+3 OUT 04H,AL XOR DL,DL JMP CHANGE WRRO: INC DL MOV AL,BP+5 OUT 04H,AL MOV CX,03H WW1: MOV AL,02H OUT 00H,AL WW2: MOV BL,3FH DEC BL CMP BL,00H JNZ WW2 XOR AL,AL OUT 00H,AL WW3: MOV BL,3FH DEC BL CMP BL,00H JNZ WW3 LOOP WW1 JMP INP1 ;当密码输入正确时,转入密码修改部 分 CHAN: ;修改密码部分 MOV SI,OFFSE
26、T CODEIN MOV DI,OFFSET CODECH MOV AL,BP+6 ;数码管提示第一次输入 OUT 04H,AL MOV CX,03FFH Y1: LOOP Y1 MOV BP,OFFSET DTABLE MOV BX,0H MOV CX,03H C1: MOV AL,BP OUT 04H,AL CALL CCSCAN CMP AL,0BH JZ C4 MOV BX+SI,AL ;存放在输入密码缓冲区 INC BX INC BP LOOP C1 MOV BP,OFFSET DTABLE MOV AL,BP+7 OUT 04H,AL ;数码管提示第二次输入 MOV CX,03FF
27、H Y2: LOOP Y2 MOV BP,OFFSET DTABLE MOV BX,0H MOV CX,03H C2: MOV AL,BP OUT 04H,AL CALL CCSCAN CMP AL,0BH JZ C4 MOV BX+DI,AL ;存放在修改密码缓冲区 INC BX INC BP LOOP C2 MOV BP,OFFSET DTABLE REPZ CMPSB JNZ CHAN ;判断两次输入的密码是否一致 MOV DI,OFFSET CODEOR MOV CX,03H CLD REP MOVSB ; 若是相等那就保存密码 MOV AL,02H ;且蜂鸣器响一下提示修改成功 OU
28、T 00H,AL MOV CX,03FFH C3: LOOP C3 XOR AL,AL OUT 00H,AL ;中断返回 C4: STI IRET CCSCAN PROC NEAR ;键盘扫描子程序 MOV AL,00H OUT 00H,AL IN AL,02H NOT AL AND AL,0FH CMP AL,00H ;判断是否有键按下 JNZ K1 JMP CCSCAN K1: MOV CX,0EFFH ;延时 LOOP K1 IN AL,02H CMP AL,00H JZ CCSCAN MOV AH,60H ;扫描第一列 K2: MOV AL,AH OUT 00H,AL IN AL,02
29、H NOT AL AND AL,0FH CMP AL,00H ;判断是否有键按下 JNZ K3 OR AH,01H ROR AH,1 ;扫描下一列 AND AH,0FH JMP K2 K3: ADD AL,AH RET CCSCAN ENDP CODE ENDS END START 程序清单(二)利用 DOS 调用显示 DATA SEGMENT TABLE DB 888 STRING1 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 26 DATA ENDS ; STACK SEGMENT DB 100 DUP(0) STACK ENDS ; CODE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论