




免费预览已结束,剩余23页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微型计算机原理及应用课程设计报告设计题目: 多功能密码锁指导老师: 学 生: 学 号: 专 业: 目录一、课设目的2二、设计内容2三设计任务2四设计思路3五所用器件及各器件所实现的功能45.1 所用器件45.2 各部分器件及其功能45.2.1 CPU 808645.2.2 可编程并行接口8255A55.2.3译码器74L13865.2.4存储器27C51375.2.5 共阴极数码管85.2.6 时钟发生器8284A85.2.7 石英晶振9六、硬件连接图及说明(设计说明书)106.1时钟发生模块电路106.2 内存模块电路106.3 拓展IO口模块电路116.4 键盘输入模块126.5 显示模块146.6系统整体电路16七、各程序的详细框图及相应说明167.1 软件设计思路167.2程序介绍177.2.1主程序177.2.2开锁子程序177.2.3闭锁子程序177.2.4密码输入错误子程序177.2.5开锁成功子程序177.2.6修改密码子程序187.3流程图197.3.1主程序流程图197.3.2子程序流程图207.3.3修改密码子程序21八、程序清单及必要注释21九、课设结果及分析及设计难点259.1课设结果及分析259.2设计难点25十收获与体会26参考文献26一、课设目的1认真回顾及运用微型计算机原理的内容,深入了解8086,8255A和存储器等部分芯片的功能,并学会应用。2学会应用学过的汇编语言知识编写一个实用并且比较深入的程序。3能够用相应的芯片按照程序连接成一个多功能的可实现系统。4提高实验技术、操作能力,提高分析问题、处理问题、解决问题的能力;掌握电路的方案选择和综合设计方法与使用;5在此综合设计中,通过团队协作,进一步深入了解微机原理技术,提高软硬件的应用应用能力。二、设计内容密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示00字样。当输入密码错误时,发出错误警告声音,同时显示FF字样。当六次误码输入的条件下,产生报警电平报警。还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。三设计任务1、选用8086和适当的存储器及接口芯片完成相应的功能。2、用LED显示器显示电子锁的当前状态。3、画出详细的硬件连接图。4、给出程序设计思路、画出软件流程图。5、给出地址分配表。6、给出所有程序清单并加上必要注释。7、完成设计说明书(列出参考文献,所用器件型号)。四设计思路这种方案采用一种是以8086芯片为核心的设计控制方案。利用8255芯片进行数据的传送,利用它的三组控制口来实现所需功能。原理框图如下:8255A并行接口电路80868284时钟控制键盘输入电路LED显示电路报警提示电路内存电路开锁控制电路 图1 方案原理框图 经过我们的分析和讨论,综合了软硬件实现、课设要求、成本、可操作性、实用性、可塑性等因素,最后我们选择此方案,虽然不能实现计数中断等功能,功能拓展少,但此方案使用器件较少,连线简单,编程简单。易于升级和维护。既可满足电路简单,也可实现系统升级,我们有信心能够做到。接下来将会对该方案的详细实现过程进行介绍。此方案用8086为控制核心,8255A作为IO口拓展及连接外设,8284A来作为时钟发生器,使用8282作地址锁存。并选择存储器,设计键盘输入电路及报警、开锁等电路构成所需的控制系统。接下来根据硬件连接进行软件编程,我们用主程序来调用子程序(具体见程序介绍)共采用了5个子程序来实现开锁、闭锁、错误报警、开锁成功和修改密码子程序。 用到的软件有:用Protel99se画电路图,用Proteus7.5进行仿真,用TdPit进行编程,用Office Visio制作流程图。用Office Word进行论文的撰写。五所用器件及各器件所实现的功能5.1 所用器件本设计所用的主要器件包括CPU8086、可编程并行接口8255A、存储器27C513、地址锁存器8282、译码器74LS138、石英晶振,8284A、共阴极数码管、蜂鸣器、电阻开关等。5.2 各部分器件及其功能5.2.1 CPU 8086CPU内部结构大概可以分为控制单元、运算单元、存储单元和时钟等几个主要部分。 运算器是计算机对数据进行加工处理的中心,它主要由算术逻辑部件(ALU:Arithmetic and Logic Unit)、寄存器组和状态寄存器组成。控制器是计算机的控制中心,它决定了计算机运行过程的自动化。它不仅要保证程序的正确执行,而且要能够处理异常事件。 指令控制逻辑要完成取指令、分析指令和执行指令的操作。时序控制逻辑要为每条指令按时间顺序提供应有的控制信号。总线逻辑是为多个功能部件服务的信息通路的控制电路。就CPU而言一般分为内部总线和CPU对外联系的外部总线,外部总线有时候又叫做系统总线、前端总线(FSB)等。 中断是指计算机由于异常事件,或者一些随机发生需要马上处理的事件,引起CPU暂时停止现在程序的执行,转向另一服务程序去处理这一事件,处理完毕再返回原程序的过程。图 2 CPU 80865.2.2 可编程并行接口8255A可编程并行接口芯片8255A可编程并行接口芯片8255A的基本特性。8255A是一个具有3个8位数据口(即A口、B口、C口,其中C口还可作为两个4位口来使用)的并行输入/输入端口的接口芯片,它为Intel系列的CPU与外部设备提供了TTL电平兼容并行接口。8255A芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成,因此以后的编程主要是对这三类寄存器进行访问。每个端口都有一个数据输入寄存器和一个数据输出寄存器,输入时端口有三态缓冲器的功能,输出时端口有数据锁存器功能。控制A、B和C3个端口的工作方式,A组控制A口和C口的上半部(PC7PC4),B组控制B口和C口的下半部(PC3PC0)的工作方式和输入输出。作用:指定3个并行端口(PA、PB、PC)是作输入还是作输出端口以及选择8255的工作方式。利用按位置位复位控制字可以使PC口的8根线中的任意一根置成高电平输出或低电平输出。 图 3 8255A5.2.3译码器74L13874LS138 为3 线8 线译码器,当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。74LS138的作用:利用 G1、/(G2A)和/(G2B)可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器图 4 地址锁存器74L1385.2.4存储器27C513Intel 27C513是以5V为电源,8位的储存容量为64K的紫外光可擦除可编程只读存储器。图 5 存储器27C5135.2.5 共阴极数码管七段LED数码管由名称为abcdefg的7个笔画段和一个圆点dp组成,这7个笔画段在点亮时,共阴极数码管是一类数字形式的显示屏,通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示 时间、日期、温度等所有可用数字表示的参数。本设计用8255的PB口作为输出,和7段LED数码管的abcdefg和dp相连,8255的A口低四位PA0PA3和LED列线连接,共同来控制内容的显示。本程序是用的共阴极,从上图可以看出,要使数码管显示数字,有两个条件:(1)要在COM端加正电源;(2)要使(a、b、c、d、e、f、g、dp)端接低电平或”0”,这样才能显示。图 6 共阴极数码管5.2.6 时钟发生器8284A8284A是INTEL公司设计的专门与8086CPU配套的时钟信号发生器芯片。 8284A(时钟产生/驱动)芯片为8086提供主频为5MHz的时钟信号,对8086l提供的主频可达10MHZ。是Intel公司专为8086设计的时钟发生器,能产生8086所需的系统时钟信号(即主频),可采用石英晶体或某一TTL脉冲发生器作振荡源。8284A除提供恒定的时钟信号外,还对外界输入的就绪信号RDY和复位信号RES进行同步。图 7 时钟发生器8284A5.2.7 石英晶振石英晶振就是用石英材料做成的石英晶体谐振器,俗称晶振.起产生频率的作用,具有稳定,抗干扰性能良好图 8 石英晶振六、硬件连接图及说明(设计说明书)6.1时钟发生模块电路8086的时钟不能直接接晶振,而要用专门与8086CPU配套的时钟发生器芯片8284A才能满足8086的时钟要求,其中8284A的CLK,RESET,READY分别与8086的CLK,RESET,READY相连,这个电路使得CPU的工作频率是晶振的三分之一。外界的就绪信号RDY输入8284A,经时钟的下降沿同步以后,输出信号READY作为8086的就绪信号READY;同样外界的复位信号RES输入8284A,经整形并由时钟的下降沿同步后,输出RESET信号作8086的复位信号RESET(其宽度不得小于4个时钟周期)。外界的RDY和RES可以在任何时候发出,但送至CPU去的都是经时钟同步了的信号。 8086的时钟发生模块电路接法如图9所示。图 9 时钟发生电路6.2 内存模块电路 根据实际需要,我们采用27C513EPROM作为8086的内存,这是一个容量为8K的存储系统,具体接法为:8086的地址/数据复用总线AD0AD13与27C513的地址线和数据线相接;8086的与27C513的片选和输出控制相连,当为高电平时,表示CPU访问存储器,当为低电平时,表示CPU访问外设;8086的RESET与27C513的通过反相器相连,具体连接图如图10所示。存储器基本地址范围是:0000H3FFFH。图 10 内存模块6.3 拓展IO口模块电路由于8086的IO口较少,又因为8255A是并行接口芯片,可以作为微机系统与外部设备的接口,所以拓展IO口模块由8086与并行接口8255A组成。在8086系统中,采用16位数据总线。进行数据传输时,CPU总是将低8位数据送往偶地址,而将高8位数据送往及地址端口;而从偶地址端口取得的数据总是通过低8位数据线送往CPU,从奇地址端口取得的数据总是通过高8位数据线送往CPU。而现在,我们为了实际硬件上连接的方便,将8255A的D7D0接至系统总线的低8位。此时,从CPU看来,要求8255A的四个端口地址必须为偶地址。为了满足这个要求,将8255A的A1,A0分别与8086的地址总线A2,A1相连,并且,CPU在对8255A的端口进行访问时,总是将地址线中的A0设置为0。具体连接图如下图11所示。表3 8255A地址分配端口A口B口C口控制寄存器端口地址800H802H804H806H图 11 拓展IO口模块6.4 键盘输入模块电路中的键盘输入模块与8255A的A口相连接,共十四个按键,09为数字键,每一个十进制数对应PA7PA0的八位二进制数,其中导线与导线有节点的为低电平,输出0,否则为高电平输出1。图 12 键盘输入模块按键操作面板如图14所示。共14个按键,其中数字键10个,功能键4个。 图 13 键盘操作面板键盘操作面板中10个数字键用来输入密码,另外4个功能键分别是:开锁,闭锁,修改密码和确认。其中开锁键是让密码锁进入密码输入状态,闭锁键是让密码锁进入锁死状态,修改密码是让用户在密码正确的前提下也就是开锁状态的时候进行密码修改,确认键是用于确认输入的密码。6.5 显示模块原理图中的显示模块是由数码管,二极管,蜂鸣器和8255A的B、C口相连接组成的。与PB口相连接的数码管作为显示用途,当密码输入正确后,开锁并且数码管显示为00字样,当密码错误时,数码管显示FF字样。蜂鸣器则是用于当密码修改成功后蜂鸣器发出确认的声音。而报警电平连接的报警器则在六次输入错误密码的情况下输出电平报警。具体连接如图14所示。其中,C口PC0、PC1低电平有效,PC2、PC3、PC4高电平有效。图 14 显示模块6.6系统整体电路图 15 系统整体电路七、各程序的详细框图及相应说明7.1 软件设计思路考虑到密码锁的多功能,我们用主程序来调用子程序。共采用了5个子程序来实现开锁、闭锁、错误报警、开锁成功和修改密码子程序。主程序主要是通过对输入的判断,用户的按键来进入子程序,然后实现功能,因考虑到密码锁的实用性,我们采取要在开锁状态下才能进行密码修改,具体见程序介绍。由于我们采用8255来实现功能,所以我们程序也是围绕着8255来编写的,采取的是A口输入、B口输出(控制数码管显示)、C后输出(控制蜂鸣器、LED灯和报警器)。在程序开始时要对8255进行初始化。 并设置系统的初始状态。大概思路出来后,我们采取的是先编主程序、再编子程序,在编写子程序的返回点,检查是否匹配硬件连接和题目要求,反复检查,最后得出程序。7.2程序介绍7.2.1主程序主程序主要完成密码和密码锁状态码初始化( 初始密码为12345,密码锁状态码是更改密码时用的,STATUS为1时代表密码锁处于开启状态,为0时为关闭状态,只有STATUS为1时才能修改密码。初始状态为0),并设置数码管的初始状态,密码锁开始工作时,数码管显示“DD”表示处于等待状态。并设置密码位数为5以及密码输入次数为6。该密码锁要按功能键(开锁、闭锁、修改密码)才能工作,开始时按下了数字键无效。直到按下正确的按键才能跳到子程序,我们用LP标号来实现。7.2.2开锁子程序当用户按下“开锁”时,调用该程序,如果此时STATUS为0表明锁处于关闭状态才能进行开锁,否则判断为开锁无效,回到主程序。用户开始输密码,并将输入的数字和系统密码作对比,只要有一位错误就调用闭锁子程序。如果密码输入完全无误的话,启动开锁子程序。7.2.3闭锁子程序当用户按下“闭锁”时,进行关闭密码锁操作,是数码管显示11,表示密码锁已被关闭。并将密码锁状态码置0。7.2.4密码输入错误子程序当密码输入出现错误时自动调用此程序,当输入未到6次时:当密码输入错误时数码管输出FF、蜂鸣器响四下报错;如果输入错误密码达到6次时,输出报警电平报警。7.2.5开锁成功子程序作用:用户密码输入完全正确时,进行打开密码锁操作,数码管显示00,并使LED灯亮表示已开锁,并将STATUS置1,表示处于开锁状态。7.2.6修改密码子程序当用户按下“修改密码”时调用该程序,由于修改密码的前提是锁处于开启状态,所以在程序的开始要进行状态的判断,若STATUS为0,说明密码锁处于关闭状态,调用开锁子程序,先进行开锁。如果STATUS为1,可以进行密码修改,逐位进行修改,并按确认键确定,蜂鸣器响一下表示密码修改成功。7.3流程图7.3.1主程序流程图7.3.2子程序流程图 开锁子程序 闭锁子程序 密码输入错误子程序 开锁成功子程序 7.3.3修改密码子程序八、程序清单及必要注释;- ; 多功能密码锁程序;功能说明:;数字键:1、2、3、4、5、6、7、8、9、0;功能键:开启 上锁 确定 修改密码;数码管显示: DD代表等待状态 11代表闭锁状态 00代表开锁成功 FF代表密码输入错误;LED显示:开通代表开锁成功;蜂鸣器:响一声代表确定 响四声代表错误警报;变量说明:;PASSWORD:密码;STATUS:密码锁状态码;子程序说明:;OPEN:开锁子程序;CLOSE:闭锁子程序;SUCCESS:开锁成功子程序;FAULT:密码输入错误子程序;ALTER:修改密码子程序;-DATAS SEGMENTPASSWORD DB 1,2,3,4,5 ;设置初始密码为12345STATUS DB 0DATAS ENDSSTACKS SEGMENT STACK DW 256 DUP(?)STACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,ES:DATASSTART: MOV AX,DATAS MOV DS,AX MOV AX,DATAS MOV ES,AX MOV AL,90H ;定义8255工作方式 OUT 63H,AL ;工作方式0,A口输入,B、C口输出 MOV BX,5 ;设置错误密码允许输入的最大次数 MOV CX,4 ;设置密码位数 MAIN: MOV AL,5EH ;初始化数码管显示 OUT 61H,AL ;数码管L1输出D MOV AL,10H OUT 62H,AL ;选中L1 MOV AL,5EH OUT 61H,AL ;数码管L2输出D MOV AL,20H OUT 62H,AL ;选中L2 LP: IN AL,60H ;输入判断(按下功能键是开锁还是闭锁) CMP AL,10H JZ OPEN ;如按下开锁键则调用开锁子程序 CMP AL,20H JZ ALTER ;如按下修改密码则调用更改密码子程序 CMP AL,40H JZ CLOSE ;如按下闭锁键则调用闭锁子程序 JMP LP;-; 开锁子程序 ; 作用:当用户按下开锁功能键后,开始输密码,程序将用户输入的数字和系统密码比较;- OPEN PROC NEAR ;开锁子程序 CMP STATUS,0 ;判断密码锁状态 JNE LP MOV SI,OFFSET PASSWORDLP1: IN AL,60H ;开始读数据 CMP AL,BYTE PTRSI ;将用户输入的数字与系统密码逐位比较 JNE FAULT ;只要有一位错误就调用密码输入错误子程序 INC SI LOOP LP1 CALL SUCCESS ;正确就调用开锁子程序 RETOPEN ENDP;-; 闭锁子程序 ; 作用:当用户按下闭锁功能键后,进行关闭密码锁操作,此时数码管显示11;- CLOSE PROC NEAR ;闭锁子程序 MOV AL,06H OUT 61H,AL ;数码管L1输出1 MOV AL,10H OUT 62H,AL ;选中L1 MOV AL,06H OUT 61H,AL ;数码管L2输出1 MOV AL,20H OUT 62H,AL ;选中L2 MOV STATUS,0 ;将密码锁状态码置0 RETCLOSE ENDP;-; 密码输入错误子程序; 作用:输入未达6次时:当密码输入错误时数码管输出FF、蜂鸣器响四下; 报错; 输入错误达到6次时:产生报警电平报警;- FAULT PROC NEAR ;密码输入错误子程序 MOV AL,71H OUT 61H,AL ;数码管L1输出F MOV AL,10H OUT 62H,AL ;选中L1 MOV AL,71H OUT 61H,AL ;数码管L2输出F MOV AL,20H OUT 62H,AL ;选中L2LP2: MOV CX,3 MOV AL,01H OUT 62H,AL LOOP LP2 ;蜂鸣器响四声表示错误警告 MOV STATUS,0 ;将密码锁状态码置0 DEC BX CMP BX,0 ;判断是否已经输入了六次错误密码 JNE OPEN ;不足六次则重新转到开锁子程序 MOV AL,04H OUT 62H,AL ;已输入六次误码则产生报警电平报警 RETFAULT ENDP;-; 开锁成功子程序; 作用:用户密码输入正确时,进行打开密码锁操作,此时数码管显示00;- SUCCESS PROC NEAR ;开锁成功子程序LP3: IN AL,60H AND AL,80H JNE LP3 ;等待确认键按下 MOV AL,3FH OUT 61H,AL ;数码管L1输出0 MOV AL,10H OUT 62H,AL ;选中L1 MOV AL,3FH OUT 61H,AL ;数码管L2输出0 MOV AL,20H OUT 62H,AL ;选中L2 MOV AL,02H OUT 62H,AL ;输出开锁电平,开通LED,表示电子锁开启 MOV STATUS,1 ;将密码锁状态码置1SUCCESS ENDP;-; 修改密码子程序; 作用:当用户按下修改密码功能键时,如果密码锁处于开启状态,则可以进行修; 改密码;- ALTER PROC NEAR ;修改密码子程序 CMP STATUS,1 JNE OPEN MOV CX,4 ;设置密码位数 MOV SI,OFFSET PASSWORDLP4: IN AL,60H MOV SI,AL INC SI LOOP LP4 ;依次修改五位密码LP5: IN AL,60H AND AL,80H ;判断有否按下确认功能键 JNE LP5 ;若没按下则继续等待 MOV AL,01H OUT 62H,AL ;蜂鸣器响一声表示确认 RETALTER ENDPCODES ENDS END START九、课设结果及分析及设计难点9.1课设结果及分析经过我们的仔细分析,此设计基本上已满足了设计要求。密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示00字样。当输入密码错误时,发出错误警告声音,同时显示FF字样。当六次误码输入的条件下,产生报警电平报警。还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。 考虑到密码锁的实用性,我们增加了闭锁功能以及开锁条件及修改密码条件,以及在开始操作时数码管输出“DD”表示处于等待状态。9.2设计难点在硬件方面,主要遇到的困难时画图软件的问题。这次用的是protel99se,由于这个软件以前从来没用过,所以在应用软件画图这里花了很长时间,而且在布线方面也遇到许多的问题。在软件方面也遇到许多问题,因为之前所学的是比较简单的程序,但现在应用的是比较复杂的,所以再设计程序时也花了非常多的时间。十收获与体会在学期中老师就把微机原理课设的题目与要求发给了我们,本来想着在考完微机实验有着余热之际好好把课设先想想的,结果又由于课程考试复习任务比较重,所以就搁置了。在考试完了之后,当天晚上我们组好队,然后就把课设的题目拿了出来好好的研究选题。在综合考虑了我们已把握的知识,以及可选题目与我们的关联程度等各方面因素,我们最终选择了多功能密码锁。说做就做,我们根据设计要求需要,并且通过查阅网上的一些器件资料,择优讨论出一套比较好的实现方案,并根据需求选择出适合的器件。经过这样的分析讨论,我们的课设框架基本上出来了,接着我们进行分工,另一位同学负责硬件绘图部分,我负责软件编程部分。其实在学期初接触汇编语言的时候我就显得不适应,因为之前学习了C+高级语言,习惯了清晰明白的思路,结果看到汇编语言的一句句看不出意思的语句,感觉有点懵。不过经过一个学期的学习,结合微机实验的实践,我对汇编语言有了较为深刻的认识。在课设的时候我重温了自己的书本还有实验书,整理好自己的思路,便开始了课设的编程。根据做微机实验的经验,我为即将编写的程序做好了流程图。我们把整个系统分成了五个硬件模块,而相应地我设计了五个子程序,功能与硬件形成一一对应的关系,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年【R1快开门式压力容器操作】考试题库及答案
- 2025年公路水运工程试验检测师公共基础试题库及答案(法规与技术标准)
- 2025年监理工程师之交通工程目标控制考试题库含答案a卷
- 桥梁招标课件
- 2025年品牌营销经理招聘面试模拟题与技巧解析
- 2026届安徽省亳州市第三十二中学高三化学第一学期期中联考模拟试题含解析
- 2025年电商运营岗位笔试模拟题及答案解析
- 2025护士资格证考试题库及答案
- 2025年大数据与人工智能课程考试试题及答案
- 2025年旅游管理与规划项目的考试试题及答案
- 小升初测试(试题)-2023-2024学年六年级下册数学苏教版
- 青少年抑郁症的预防和干预策略
- 考公行测言语理解与表达题库之选词填空公考公务员考试省考国考310题(含答案)
- 2021年度计算机审计初级网络培训测试题
- 康复科康复评定表
- 输液反应-完整版
- 【高质量】如何进行有效的校本研修PPT文档
- 水泥生产企业生产安全事故综合应急预案
- 食堂安全培训-课件
- 胆总管结石伴急性胆管炎
- 制度编写书写规范
评论
0/150
提交评论