微机原理课程设计电子密码锁.doc_第1页
微机原理课程设计电子密码锁.doc_第2页
微机原理课程设计电子密码锁.doc_第3页
微机原理课程设计电子密码锁.doc_第4页
微机原理课程设计电子密码锁.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

设计说明书目 录摘要- 3第一章 前言- 3第二章 基本功能设计- 42.1 实验任务- 42.2基本设计- 42.3 系统框图及电路总图- 5第三章 硬件设计- 83.1、8255的接口- 83.2、8088与其他元件的连接- 93.3、复位电路- 113.4、电源电路- 113.5、存储器设计- 123.6、接口译码设计- 133.7、密码输入端硬件设计- 153.8、结果显示- 16第四章 软件设计- 184.1软件结构- 184.2源程序- 19第五章 心得体会- 21第六章 参考文献- 22摘要电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁,特点如下: 1保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。 2密码可变。 用户可以经常更改密码,防止密码被盗,同时也可以避免因人员的更替而使锁的密级下降。 3误码输入保护。当输入密码多次错误时,报警系统自动启动。 4. 电子密码锁操作简单易行,一学即会。第一章 前言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。一个科技快速发展的时代,人们对自己的生活有了越来越高的要求,生活质量的提高,也是我们对自身财产的安全有了更加浓重的保护欲,而传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,使我们的财产以及人身安全有了很大的隐患,这致使我们寻求更好的安全措施。电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的喜爱。而且密码锁的形式多样,有声控密码锁,电子密码锁等,社会上大多使用电子按键密码锁。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,我们采取的是单片机,它具有超大规模集成电路技术,有极强的数据处理能力,I/O口多。以它为核心设计的密码锁,结构小,功能强,现在很多单位甚至家里的各个家用电器,还有保险箱都需要它。它们有很多扩展功能:用户可以根据实际情况随意改变密码值或密码长度,按下“密码修改键”提示用户输入原密码,通过校验后提示输入新密码,一次写入CPU存储器中,另一次写入单片机内部RAM中,以便机器确认密码的正确性。输入完毕后,按修改确认键,两次的密码完全一致时,密码修改完成。我们这可以在输入的密码与程序中设定的密码相比,若失误,会有灯亮提示,但三次后都错误,系统可自动报警。防盗报警功能是利用断线方式报警,当CPU检测不到返回信号时,系统自动报警单元报警,正常开启锁时,系统自动切断报警单元的电源。第二章 基本功能设计1、实验任务根据设定好的密码,采用矩阵式按键实现密码的输入功能,当密码输入正确之后,锁就打开(即绿灯亮),如果输入的三次密码不正确,就锁定按键3秒钟,同时报警(即红灯亮)。2、基本设计2.2.1 方案的论证与比较 本程序是基于8255的简单应用,能够做到能输入任意密码并进行较验。所以该简易数码锁的实现方法为:1)使用8255芯片让其工作在方式0下,并设置为A口输入,B口输出,C口输入,以实现密码输入,确认键输入,输出结果显示。2)利用键控开关的低6位表示密码,并与8255A口的低6位相连。以保证密码输入后进入8255A口。3)将发光二极管的D7-D4位与B口的B7-B4相连接,蜂鸣器与B口的B0-B1相连,发光二极管的D0-D1与B口的B2-B3相连, 当输入密码错误的时候红灯亮并且伴随有蜂鸣响。密码正确时仅绿灯亮。4)将KK2与C口的C0-C1相连接,KK1与C口的D4-D5相连接,键控开关的K6-K7相连,使党K6K7都为高电平时输入修改密码按下KK2确认,按下KK1检测测试密码。 2.2.2 简易数码锁的功能与要求基本功能:设置初始密码,随机输入密码并按确认键检验,若密码正确则绿灯亮;若密码错误则红灯亮,峰鸣器峰鸣一瞬间。扩展功能:在运行过程中随时修改密码,并按相关键确认,之后再重新随机输入密码,若密码正确则绿灯亮,若密码错误则红灯亮,峰鸣器峰鸣一瞬间。2.2.3 设计方案的确定1)芯片的选择8255的端口比较多, 课根据自己的需要设置输入输出,并且设置程序比较简单,故选用此芯片。2)结果显示期间的选择结果显示要便于识别,而二极管正好有红色和绿色两种,故选用发光二极管。3)密码确认的按键设置由于是数码锁,每一位都只需要两种状态,故选用键控开关,操作起来比较简便。3、系统框图及电路总图设置8255工作方式提示“ENTER”等待输入时间超过5S三个数字输入密码正确点亮发光二极管,显示”BINGO”,可设置密码出错到3次显示”MISTAKE”点亮发光二极管,显示”3 TIMES”,程序退出初始化需设置密码设置密码输入开锁键密码格式对输入数据第三章 电子密码锁的硬件设计3.1、8255的接口3. 2、8088与其他元件的连接8284 时钟信号发生器时钟发生器8284除了提供频率恒定的单相时钟脉冲CLK给CPU外还具有系统复位信号RESET产生电路和准备好信号READY控制电路。如果F/C接+5V,则由FEI输入外加脉冲,如果F/C接地,由X1和X2连接的石英晶体震荡器提供脉冲源,图中有石英晶体振荡器提供输入脉冲给8284.8088 - 简介8088是一个Intel以8086为基础的微处理器,拥有16位元暂存器和8位元外部资料总线。8088使用8位元的设计,所针对的是较为经济之系统。当把8088的MN/引脚接到+5V时,8088CPU工作于最小工作方式。所谓最小工作方式,就是系统中只有一个微处理器8088。在这种系统中所有的总线控制信号都直接由8088产生,系统中总线控制逻辑电路被减小到最小,这种方式适合于较小规模的应用。最小方式下,24-31引脚功能:(1)中断响应信号(输出,低电平有效)是CPU对外设的中断请求的回答信号。对于8088来说,信号实际是位于连续周期中的两个负脉冲,在每个中断响应周期的T2、T3和TW状态,为低电平。第一个负脉冲通知外围设备的接口,它发出的中断请求已经得到允许;外设接口收到第二个负脉冲后,将中断类型码送往数据总线。(2)ALE地址锁存允许信号(输出,高电平有效)ALE是CPU在每个总线周期的T1状态发出的,其有效电平表示当前在地址/数据复用线上输出的是地址信息,利用它的下降沿把地址信号和信号锁存在74LS373地址锁存器中。ALE不能被浮置。(3)数据允许信号(输出,低电平有效,三态)有效表示CPU准备好接受和发送数据,是CPU提供双向数据收发器74LS245的选通信号,在每个访问存储器或访问I/O周期,或中断相应周期均有效。在DMA下,被浮置为高阻态。(4)DT/数据收发信号(输出,三态)在系统使用双向收发器74LS245时,用其控制数据的传送方向。如果DT/为高电平,则进行数据发送,如果DT/为低电平,则进行数据接收.在DMA下,被浮置为高阻态。(5)/IO存储器/IO控制信号(输出,三态)用于区分是访问存储器(低电平),还是访问I/O(高电平),通常/IO被接至存储器或接口芯片的片选端。当DMA时,被浮置为高阻态。(6)WR写信号(输出,低电平有效,三态)WR有效时,表示CPU正在执行存储器或访问存储器。在任何写周期,WR只在T2、T3、TW有效,在DMA时,WR被浮置为高阻态。(7)HOLD总线保持请求信号(输入,高电平有效)它是系统中的其他总线主控部件向CPU发出的请求占用总线的申请信号。(8)HLDA总线保持响应信号(输出,高电平有效)它是CPU对系统中其他总线主控部件向其请求总线使用权的响应信号。3.3、复位电路图中,由R(560K)、C1(10UF)和二极管D1同8284A组成了系统复位电路,当系统上电工作时,系统电源通过R、C1是RES端电位由低变高,该信号经8284A内部电路处理后,输出的RESET信号作为8088CPU的复位信号。 根据CPU 对RESET 信号的要求,系统上电后8284A输出RESET由低电平变为高电平的复位时间要大于4个时钟周期,因此合理选择R、C1数值是确保8088CPU上电可靠复位的重要条件。复位电路二极管D1是用于当系统电源瞬间掉电时,将C1中存储的电荷快速放掉,这样当系统再次上电时,即保证R和C1的充电时间使8284A输出的RESET时间大于4个时钟周期,确保CPU可靠复位,K为手动复位开关。3.4、电源电路系统电源接220V交流电源,经二极管整流桥,电容,稳压管后输出5V直流电。3.5、存储器设计3.5.1、ROM设计(2764*2)ROM使用的是两片2764芯片,组成8K*2的容量,由于写入过程很慢,所以EPROM芯片在使用中是作为只读存储器。3.5.2、RAM设计(6264*2)图中ROM用于系统存储常驻程序,RAM用于存放用户非常驻程序,数据或作为系统堆栈区使用。根据题目要求的容量选用两片EPROM2764和两片RAM6264,八位数据总线和CPU的低八位数据总线相连,CPU地址总线的A12-A0用于芯片的字选和存储器的地址线相连,A19-A13译码后用做片选,和IO引脚经过译码器译码后用作片选。3.6、接口译码设计3.6.1、8259设计8259A是专门为了对8085A和8086/8088进行中断控制而设计的芯片,它是可以用程序控制的中断控制器。单个的8259A能管理8级向量优先级中断。在不增加其他电路的情况下,最多可以级联成64级的向量优先级中断系统。8259A有多种工作方式,能用于各种系统。各种工作方式的设定是在初始化时通过软件进行的。 在总线控制器的控制下,8259A芯片可以处于编程状态和操作状态.编程状态是CPU使用IN或OUT指令对8259A芯片进行初始化编程的状态。在有多个中断源的系统中,接受外部的中断请求,并进行判断,选中当前优先级最高的中断请求,再将此请求送到cpu的INTR端;当cpu响应中断并进入中断子程序的处理过程后,中断控制器仍负责对外部中断请求的管理。3.6.2、8255设计接口电路是CPU和外围设备进行数据交换的缓冲区域,图中的8255A是一个有3个数据口、1个控制/状态口的8位并行输入输出接口可编程芯片,能接通键盘、打印机、显示器等外围设备等。8255A的数据线接系统总线的低八位,控制端口和系统的相应控制端口相连。图中,PA口连接LED8段显示器,PC口连接显示器的位选信号,PB口接4*4KEY的行线。A0,A1接8088的A0,A1地址线,8088的高位地址经译码后与CS连接,由此,8055的地址是60H,61H,62H,63H。3.6.3、8253设计A0,A1接8088的A0,A1地址线,8088的高位地址经译码后与CS连接,8253的地址由30H开始并且连续。3.7密码输入端硬件设计图中有4行4列,4根线于PB口相连,2根列线与PB口的PB2,PB3相连。按键设置在行、列交点处(数字或字符为其键号),行、列线分别连接到按键开关的两端。当列线通过上拉电阻接+5V时,就被钳位在高电平状态。键盘中有无键按下是由行线送入全扫描字、列线读入行线状态来判断的。这就是:给行线所有I/O线均置成低电平,然后读入列线电平状态。如果有键按下,总会有一根列线电平被拉至低电平,从而使列线输入不全为1。键盘中哪一个键按下是由行线逐行置低电平后,检查列线输入状态予以确定的。其方法是:依次给每根行线送低电平,然后查所有列线状态,如果全为1,则所按下之键不在次行。如果不全为1,则所按下之键必在此行。而且是在与0电平行线相交点上的那个键。键盘的工作方式采用编程扫描工作方式,即通过调用键盘子程序来响应键输入的要求,在键盘扫描子程序中完成下述功能:1) 判断键盘上有无键按下。其方法是先使PA0PA30,然后读PB2、PB3的状态,若全为1,则键盘中无键按下;若不全为1,则说明键盘中有键按下。2) 去除按键的抖动影响。对于由机械触点构成的按键,由于机械触点的弹性作用,触点在闭合及断开瞬间有一个抖动过程,一般为510ms时间。为了消除抖动影响可作这样处理:当判断有键按下后,软件延时一段时间在判断键盘状态,如果仍有键按下状态,则认为有一个确定的键按下,否则按键抖动处理。3) 求按下键的键值及键号。键盘上的每个键都对应一个键值。键值的组成:低8位为扫描该键时的行线输出值,高8位为该键按下时的列线输入值(有效位为0,其余位令其为1)。由于键盘中键号排列无规律,不能通过对键值直接运算得到键号。因此必须先判断按下键是使PB2=0还是PB3=0,然后再查为零的列线上键按下时其8位键值中是否有一位为零,若为零则可得到键值。求按下键的键值及键号的目的是使程序转到相应的地址去完成该键的操作。一般,对数字键就是直接将该号送到显示缓冲区进行显示,对功能键则必须先找到该功能键处理程序入口地址,并转去执行该键的命令。因此当键号求到后,还必须找到功能处理入口。4) 为保证键闭合依次CPU仅进行依次键功能操作。程序中需要等待键释放以后再将键号送累加器AH。3.8结果显示一个LED数码管可用来显示一位09十进制数和一个小数点。小型数码管(0.5寸和0.36寸)每段发光二极管的正向压降,随显示光(通常为红、绿、黄、橙色)的颜色不同略有差别,通常约为22.5V,每个发光二极管的点亮电流在510mA。LED显示器有静态和动态两种工作方式LED显示器工作在静态显示方式下,共阴极或共阳极连接在一起,然后接地或+5V;每位的段选线(A,B,G,H)与一个8位并行口PA口相连。这样,只要在每一位的段选线上保持段选码电平,该位就能保持相应的显示字符。在多位LED显示时,将所有位的段选线并联在一起,由一个8位的I/O口控制,即控制段选码而共阴极或共阳极点分别由相应的I/O线控制即控制位选码,这就是动态显示。6位LED动态显示电路只需一个8位I/O口及一个6位I/O口,其中8个I/O控制段选码,6位I/O控制位选。进行6位字符显示时,采用扫描显示方式,即在每一瞬间只使某一位显示相应字符,在此瞬间,段选控制I/O口输出相应字符段选码,位选控制I/O口在该显示位送入选通电平(共阴极送低电平,共阳极送高电平),以保证该位显示相应字符。如此轮流,使每位显示该位应显示字符,并保持延迟一段时间(15ms),以造成视觉暂留效果。不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。为节省成本,这里用的是软件译码。第四章 电子密码锁的软件设计 软件的设计的重点在秒脉冲信号的产生,显示和按键调时的实现。秒脉冲产生利用中断来实现,采用动态显示。41 主程序流程图:比较是是否否是否是任意输入密码KK1是否被按下?K6.K7是否都为高电平?KK2是否被按下?输入新密码输入的密码绿灯亮正确的密码(初始为000000)两者是否相同红灯亮峰鸣否图 3.14.2 程序代码:porta equ 60hportb equ 61hportc equ 62hctrl equ 63hdata segmentbuff db 64 dup(?)data endscode segment assume ds:data,cs:codestart:mov ax,data mov ds,ax mov dx,ctrl mov al,10011001b out dx,al ;对8255初始化,A口为输入,B口为输出,C口高入低入 mov dx,portb mov al,00h ;使开始时所有的灯亮 out dx,ala7: mov dx,portc in al,dx ;设置原始密码为000000 mov buff,al jmp a3a10: mov dx,portb ;使所有的灯亮 mov al,00h out dx,al mov dx,portc in al,dx test al,11000000b jz a10 ;如果KK2被按下,则修改密码change:mov dx,porta in al,dx mov buff,al jmp a3 a1: mov dx,portb ;使蜂鸣熄灭 mov al,0ch out dx,ala3: mov dx,portc in al,dx test al,00110000b jz a3a2: mov dx,portc in al,dx test al,11000000b jnz a10 mov dx,porta in al,dx mov bl,buff xor al,bl jz right jnz error ;读取A口状态,若与密码相同则跳至wright,否则跳至error.right:mov dx,portb mov al,0f0h out dx,al jmp a3error:mov dx,portb mov al,0fh out dx,al call delay jmp a1 delay proc near mov cx,0005h;延时子程序 a5:mov ax,0560h a6:dec

温馨提示

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

评论

0/150

提交评论