电子密码锁电路程序设计毕业论文.doc_第1页
电子密码锁电路程序设计毕业论文.doc_第2页
电子密码锁电路程序设计毕业论文.doc_第3页
电子密码锁电路程序设计毕业论文.doc_第4页
电子密码锁电路程序设计毕业论文.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

扬 州 市 职 业 大 学毕 业 设 计(论 文)设计(论文)题目: 电子密码锁电路程序设计系 别: 电子系 1专 业: 应用电子 班 级: 姓 名: 学 号: 指导教师: 完成时间: 10年 6月 目 录目录 1第一章 概述 2 第一节 本设计课题的目的意义 2 第二节 电子密码锁电路的功能与设计要求 3 第二章 电子密码锁电路程序的功能与设计方案 4 第一节 硬件设计方案的确定 4 第二节 硬件原理图 8 第三章 电子密码锁软件系统设计 9 第一节 程序功能 10 第二节 程序框图 10 第三节 系统程序 14第四章 系统的组装与调试23第五章 心得体会21 附录 22电子密码锁电路程序设计摘要:据有关资料介绍,电子密码锁的研究从上世纪30年代就开始了,在某些特殊场所早就有所应用。研究这种锁的初衷,是提高锁具的安全性,因为电子密码锁的密钥量(密码量)极大,可以和机械锁配合,避免因钥匙被仿制而出现的问题。在安全性极高的前提下,它的另一个特点无需钥匙。密码锁还有指纹锁、卡片锁,磁卡锁,生物锁等等。但能谈的上实用一些或者大众化一些的还是按键式电子密码锁。这是一种操作方式类似于按键电话机的电子锁,通过键盘上的数码按键依次输入一组密码,如果密码与内部已约定的密码相同,则输出一个电信号,以驱动电磁铁或者小马达将门打开,完成一个开锁过程。本论文从电子密码锁系统的功能,硬件电路设计,软件设计分别论述这一系统。通过使用单片机 80C51 作为控制核心,连接外部存储器 93C46,实现密码断电保存,通过七段数码管显示,制作一种密码锁。该锁具有开锁、解密、修改、保存密码、用户密码等基本的密码锁功能,还具有调电存储、数码提示等功能。关键词:单片机 存储器 七段数码管第一章 概 述第一节 本设计课题的目的和意义一、机械锁的缺点社会不断地的进步,人们生活水平也在不断地提高,安全成为现代居民最关心的问题之一。从古至今,锁一直就是保护人们财产的必不可少的工具。目前,我们最常用的锁就是圆柱形销栓的弹子锁,其机构简单,使用方便,价格便宜,但在使用中暴露了很多缺点:1、容易被开启:目前,传统机械门锁仅仅是单纯的契合型机械装置,无论其宣称如何复杂、坚固,所谓的“开锁大王”仍然能在数分钟之内就可将其开启,并且不留任何痕迹。2、内部机械结构复杂、故障率高:机械门锁由单纯的契合型机械装置构成。由于机械结构复杂,制造、装配工艺落后,在使用中锁具会因为其配件出现阻滞、变形、脱落等问题而导致失效。3、换锁麻烦:当钥匙遗失、被人配制、房子出租收回后或有其它不安全因素存在时,就必须换锁,一年内换几次锁的情况也时有发生。4、互开率高:由于机械钥匙自身编码能力极低,导致互开率高,即使机械钥匙匙形编码不同,也同样存在互开的问题。在同一幢楼里甚至是同一单元的两对门,也可能会出现别人家的钥匙能打开你家门的问题。5、易被破坏:我们长期以来所使用的门锁不但很不安全,而且非常容易被破坏,因为机械锁具的锁芯孔被一点点异物堵塞就会开不了门,类似的破坏随手操作几秒钟就可得逞,报纸、电视等媒体上经常有此类报道。6、带钥匙的烦恼:一道门至少需要带一把钥匙,所以我们都曾饱受携带一大串钥匙的痛苦。一旦有一串钥匙丢失,出于安全考虑,会造成多把门锁需要更换的情况。7、钥匙开门的烦恼:开门前总要花一定时间在许多钥匙之间挑选,在插入钥匙开门过程中还要分清左旋还是右旋,并转动几周方能开锁,经常会因为天地杆等机械运动不畅而导致开门困难,特别是老人和小孩有时根本就开不了门。二、电子密码锁的优点1、硬件结构简单,功能丰富:采用单片机来实现的电子密码锁,在设计时遵循以软件代替硬件,能用软件实现的东西就不用硬件去做,而且可以在硬件不变的情况下,改动 相应的软件,派生出不同功能的产品。2、密码组合多,安全性好:本设计采用了09 共十个数字作为密码编码,密码可在09 位内任意设置。如果设定密码为10 位,则密码组合为100多亿种,即使每20秒测试一组密码,进行试探性破译,试完全部密码大约要6000多年。如果密码长度再增加,破译就更加困难。3、安全方便:无需携带金属钥匙,只需记得一组密码。一旦发现密码有泄露的危险, 可即时更改密码。4、为社区的电子化管理提供了方便:现代社会是电子社会,电子存在于我们生活的每一角落,出于管理的统一和方便考虑,电子密码锁替代机械门锁是一种趋势。根据国外的统计资料,装有电子防盗的商业区或居民区盗窃犯罪率平均下降30%左右。三、本设计课题的研究现状随着电子技术的发展单片机功能的增强,出现了带微处理器的智能密码锁,它除了具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性。目前发达国家已经大规模地应用智能门禁系统,可以通过多种更加安全,更加可靠的方法来实现大门的管理。但电子密码锁在我国的应用还不广泛,主要出现在保险柜、密码箱、高级宾馆等场所,家居用的较少,究其原因,我认为有以下几点:1、价格原因。现在买一把普通的机械锁,价格在几块到几十块左右,而电子密码锁的价格较贵,一般在百元以上,进口的甚至要上千元,买一把这样的锁对很多家庭来说,是很难接受的。2、厂商的推广力度不够。电子密码锁属于较新的高科技产品,许多用户对其并不了解,更不用说拿它与传统的机械锁作比较。而一般的商场也不会经营这种产品,用户即使想买也难以买到。目前我国开发的电子密码锁的技术还比较落后,开发的密码锁大多采用分离电子元件或普通数字电路设计生产的,尽管与机械钥匙锁相比有许多优点,但智能化程度低,编码组合仍较少。采用8051 单片机制作的电子密码锁,就克服了以上的两大缺陷。其主要特点为:(1)保密性好。由于采用6位密码,随机破码率很低,并且在密码可能泄露的情况下及时更改密码,避免因人员的更替等特殊情况而使锁的安全性下降。(2)破解保护。连续三次输入错误密码将锁定键盘一段时间。(3)界面简洁,操作简单人性化,故障率低,密码输入操作简便。(4)通用性强,可根据需要可安装在不同的设备上。第二节 电子密码锁电路的功能与设计要求随着社会的发展,人民生活水平的提高,防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了人们亲睐。由单片机系统、矩阵键盘、LED 显示和报警系统组成的电子密码锁。具有开锁、超次锁定、解密、修改、保存密码、用户密码基本的密码锁的功能,还具有调电存储、声光提示等功能。克服了普通锁需要随身携带钥匙且易丢失、 保密性差的缺点,在宾馆、办公大楼、仓库、保险柜和家庭普遍适用。 本设计中要求电子密码锁的基本功能如下:1、电源开始后,显示器显示“000000”;2、按“#”,清除显示器为“000000”;3、更改密码时,先键入新号码再按“*”,即可建立新号码;4、键入号码,再按“D”开门键,若号码与密码相符,则门会打开,否则显示器会清除为“000000”;123A456B789C*0#D5、键盘设计要求: 第二章 电子密码锁电路程序的功能与设计方案第一节 硬件设计方案的确定基于单片机的电子密码锁主要由单片机最小应用系统电路、键盘接口电路、数码显示电路、密码存储电路、开锁控制电路组成。各电路有其特有功能,以下将分别论述,系统功能框图如下:时钟电路复位电路单 片 机显示电路密码输入电路开 锁 电 路 一、单片机最小应用系统电路方案的确定单片机控制电路主要由 8051 与其外围设备组成 (一)8051 应用方案的确定1、8051 的组成与结构Intel公司生产的 MCS-51 系列80C51 型号单片机上集成了一台微型计算机的各个主要部分,包括 CPU、存储器、可编程 I/O 口、定时/计数器、串行口等,各部分通过内部总线相连。除此之外,还有驱动器、锁存器、指令寄存器、地址寄存器等部分。2、80C51 的引脚8051 单片机实际有效的引脚为 40 个,为了尽可能缩小体积,减少引脚数,80C51的不少引脚还具有第二功能。40 个引脚大致分为 4 类:电源、时钟、 控制和 I/O 引脚。(1)电源VCC 芯片电源,接+5V; VSS接地端。(2)时钟XTAL1、XTAL2 晶振电路反相输入端和输出端。(3)控制线控制线共4 根,其中 3 根是复用线。 ALE/PROG 地址锁存允许/编程脉冲; /PSEN 外 ROM 读选通信号; RST/VPD 复位/备用电源; /EA/VPP 内外 ROM 选择端/编程电源;(4)I/O 线8051 共有4个8位并行 I/O 端口,共 32 个引 脚。 P0 口(P0.0P.07):8 位双向 I/O 口。在访问外部存储器时,P0 口用于分时传送 低 8 位地址(地址总线)和 8 位数据信号(数据总线)。在不接外 ROM 和外 RAM 时,P0 口可做双向 I/O 口用。 P1口(P1.0P1.7): 8 位准双向 I/O 口(准双向是指口内部有固定的上拉电阻)。 P2口(P2.0P2.7):8位准双向 I/O 口。在访问外部存储器时,P2 口用于传送高8 位地址(属地址总线)。 P3 口(P3.0P3.7):8 位准双向 I/O 口。可做一般 I/O 口用,同时 P3 口每一引 脚还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)P3 口第二功能如下 :P3.0RXD 串行口输入端; P3.1TXD:串行口输出端; P3.2/INT0:外部中断 0 请求输入端; P3.3/INT1:外部中断 1 请求输入端; P3.4T0:定时/计数器 0 外部信号输入端; P3.5T1:定时/计数器 1 外部信号输入端; P3.6/WR:外部 RAM 写选通信号输出端; P3.7/RD:外部 RAM 读选通信号输出端。 图2-1 80C51引脚图二、键盘接口电路方案的确定 键盘是单片机系统中最常用的人机联系的一种设备,它由若干个按键组成,用户通过键盘向 CPU 入数据或命令以实现简单的人机通信。 对键盘的识别可分为两类:一类是由专门的硬件电路来识别(如 2376、74C922),它使用起来方便,但需要价格昂贵的芯片,单片机系统中一般不采用;另一类靠软件来识别 ,它结构简单,价格便宜,应用灵活。本设计中查询的方法识别键,优点是电路简洁,节省硬件,抗干扰能力强,应用灵活,缺点是占用较多的 CPU 时间资源。非编码键盘可以分为两种结构形式:独立式键盘和行列式键盘。本次设计中采用的是行列式键盘,可节省 I/O 口线。其工作原理是:行线 P1.0P1.3 是输入线,CPU 通过其电平的高低来判别键盘是否被按下。依次使列线 P1.4P1.7 中的一根输出为低电平,则只有与之对应的键 按下时,才能使行线为低电平。图2-2 键盘接口电路三、数码管数码显示电路方案的确定显示电路主要由 6 个共阳型七段数码管(SM4105)、6 只PNP型三极管、一片74LS138 3-8线译码器以及一个7447 七段译码器组成。电路结构简单,性能稳定,使用方便。七段显示数码管(动态)工作原理:逐个地循环点亮各位显示器,也就是说在任一时刻只有 1 位显示器在显示 。LED动态显示的优点是用较少的端口,可以扩展多位LED显示器。缺点是过多的占用CPU的时间。除了LED动态显示,还有一种是LED静态显示。LED静态显示的优点是不占用CPU的时间,缺点是占用过多的输出端口。采用动态显示的数码管为了使人看到所有显示器都在显示,就得加快循环点亮各位显示器的速度(提高扫描频率) ,利用人眼的视觉残留效应,给人感觉到与全部显示器持续点亮的效果一样。一般地,每秒循环扫描不低于 50 次。数码管显示电路的工作原理:数码管显示时,P0.0-P0.3 根据程序输出高电平或低电平,送到 7447 译码器的四个输入端,经过7447译码后由 7 个输出端输出,输出信号经过限流电阻(防止数码管因电流过高而损坏)送至数码管的阴极。同时,单片机的 P0.4-P0.6 根据要求输出高电平或低电平,送到 74LS138 的三个输入端,经译码后由输出端输出,此时,74LS138 的输出端只有一位为“0”,使其中的一只三极管导通,引入电源,驱动与其对应的数码管,数码管工作。数码管的各发光二极管根据对应的高电平或低电平发光或不发光。每只数码管依次循环,就完成了发光电路的设计。数码管显示电路原理图: 图2-3 数码管显示电路图四、密码存储电路方案的确定密码存储电路主要由 EEPROM93C46 组成。1、93C46 是一种存储器可以定义为 16 位ORG 引脚接 Vcc或者定义为 8 位ORG引脚接GND的1K位的串行 EEPROM 每一个的存储器都可以通过 DI 引脚 或 DO引脚进行写入或读出,器件可以经受 1,000,000 次的写入/擦除操作片内数据保存寿命达到100年器件可提供的封装有 DIP-8 SOIC-8或TSSOP-8。2、93C46是一个有1024位内含工业标准微处理器的非易失的存储器。93C46可以选择为16位或8位结构。当选择16位结构时,93C46有7条9位的指令用来控制对器件进行读、写和擦除操作;当选择8位结构时,93C46有7条10位的指令来控制对器件进行读、写和擦除操作。93C46的所有操作都在单电源上进行,当执行任何的写操作时内部的升压电路将提供高压给芯片。 指令、地址和写入的数据在时钟信号SK的上升沿时由DI引脚输入,DO引脚除了从器件读取数据或进行写操作后查询准备/繁忙(ready/busy)的器件工作状态外,平常是高阻态的。 准备/繁忙(ready/busy)是开始了一个写操作后选择器件CS为高电平后从DO引脚读的用来测定期间工作状态的信号,DO位低电平则表示写操作还没有完成。当DO为高电平时则表示器件可以输入下一条指令,此时如果有需要,可以在DI引脚移入一个高电平,DO会进入高阻态,DO引脚会在时钟SK的下降沿时进入高阻态,将DO引脚恢复高阻态值得推荐在DI和DO合用一个I/O口来读/写的应用中。所有送往器件的指令格式为一个高电平“1”的开始位,一个2位或4位的操作码,写入数据时的6位(当选择8位结构时为7位)以及16位数据(当选择8位结构时为8位)。3、93C46的操作指令:指令开始位操作码 地址 数据注释X8X16X8X16XREAD110A6-A0A5-A0读地址An-A0的数据ERASE111A6-A0A5-A0擦除An-A0的数据WRITE101A6-A0A5-A0D7-D0D15-D0把数据写到地址An-A0的存储器中EWEN10011XXXXX11XXXX写允许EWDS10000XXXXX00XXXX写禁止ERAL10010XXXXX10XXXX擦除全部存储器的数据WRAL10001XXXXX01XXXXD7-D0D15-D0把数据写到全部的存储器中(1)读操作指令(READ)在接收到一个指令和地址(从DI引脚在时钟驱动下输入)之前,93C46的DO引脚是高阻态的。接收到读指令和地址后,DO引脚先输出一个虚拟的第电平,然后数据根据时钟信号移位输出(高位在前)。数据在时钟信号(SK)的上升沿时输出并经过一定的时间后稳定(tpDO或tpDI)。 (2)写操作指令(WRITE) 在接收到写指令、地址和数据后,片选引脚(CS)不片选芯片的时间要必须大于Tcs-min。片选引脚(CS)在下降沿的时候,器件开动自动时钟去擦除并把数据存放到指定存储器。在器件进入自动时钟的模式后时钟信号引脚(SK)的信号不是必须的93C46的准备/繁忙状态可以选择器件并测试数据输出引脚DO得到。因为器件有在写入前自动清除的特性,所以没必要在写入之前将存储器该地址的内容擦除。 (3)擦除操作指令(ERASE)在接收到擦除指令和地址以后,片选引脚(CS)不片选芯片的时间要必须大于Tcs-min。片选引脚(CS)在下降沿的时候,器件开动自动时钟,擦除指定存储器。在器件进入自动时钟的模式后时钟信号引脚(SK)的信号不是必须的。93C46的准备/繁忙状态可以选择器件并测试数据输出引脚(DO)得到。一旦清除了,该位就回到逻辑1的状态。(4)擦除/写入允许(EWEN)和禁止(EWDS)操作指令 93C46在上电时是默认写禁止的。任何在上电和写禁止(EWDS)指令后的写入操作都必须先发送写允许(EWEN)指令。一旦设置了写允许,它会持续有效直到断电或发送一条写禁止指令。写禁止指令用来禁止对93C46的写入和擦除操作,同时也可以防止意外的对器件进行写入和擦除。数据可以照常从器件中读取,论是写允许还是写禁止状态。(5)全部擦除(ERAL)在接收到全部擦除指令后,片选引脚(CS)不片选信号的时间要必须大于Tcs-min。片选引脚(CS)在下降沿的时候,器件开动自动时钟擦除存储器的所有内容。在器件进入自动时钟的模式后时钟信号引脚(SK)的信号不是必须的。93C46的准备/繁忙状态可以选择器件并测试数据输出引脚(DO)得到。一旦清除了,所有位都回到逻辑1的状态。(6)写全部操作指令(WRAL)在接收到写全部指令后,片选引脚(CS)不片选芯片的时间要必须大于Tcs-min。片选引脚(CS)在下降沿的时候,器件开动自动时钟把数据内容写满器件的所有存储器。在器件进入自动时钟的模式后时钟信号引脚(SK)的信号不是必须的。93C46的准备/繁忙状态可以选择器件并测试数据输出引脚(DO)得到。没有必要去在写全部之前把存储器内容擦除。93C46引脚定义如下: Vcc:电源引脚,+5V。GND:地线。CS:片选信号。在两条相临指令执行中,CS 必须最少产生 500NS 的低电平,以指明前条指令的结束。DI:数据输入端 DI 用于在串行时钟 SK 的同步下输入起始位,操作码地址和写入数据 。 DO:数据输出端。数据输出端 DO 用于在读方式中,在串行时钟 SK 的同步下输出读出的数据。SCK :时钟信号,所有操作码、址码、数据位均在 SCK 信号的上升沿输入或输出,SK 信号的最高频率为 1MHz。ORG:存储器结构选择接口,当ORG接Vcc时,存储器为16位结构。当ORG接GND时,存储器为8位结构。当ORG悬空时,内部的上拉电阻把存储器选择为16位结构。 图2-3 93C46引脚图五、开锁控制电路方案的确定开锁控制电路主要由整流二极管、继电器、三极管等组成。其优点是结构简单,成本低,操作简便。开锁控制电路的原理:当 P2 口输出“0”时,连接 VCC 的 10K 电阻将三极管的基极钳位在高电平,三极管导通,继电器流过电流,开始动作,继而开锁。图2-4 开锁控制电路第二节 电路原理图图2-5 电路原理图第三章 电子密码锁软件系统设计第一节 程序功能1、主程序功能:主要完成初始化、设置中断向量、检查有无按键按下,以及调用显示等。2、键盘扫描及识别子程序功能:键盘采用查询方式,放在主程序中,当没有按键按下时,单片机循环主程序,一旦有键按下,便转向相应的子程序处理,之后再返回。3、调用存储程序功能:比较密码时,需要读 93C46 程序,将存储在芯片内的数据读到 RAM 中,然后和输入密码相比较,当修改密码时,需要把输入的密码保存到 93C46 中。 图2-6 按键分布图4、 显示子程序功能:当识别到“C”键时,可显示密码,当需要清除显示器时,可调用 显示程序,使数码管显示“000000”。5、 编码设计:6、 各地址 RAM 的分配:20H ADR4;EEPROM93C46 的地址;21H FLG0;判断 93C4600 地址的内容是否为 01(已设定密码),00 表示93C46 中未存密码,01 表示已存有密码;22H;寄存器;30H35H;密码存储地址;36H38H;显示器地址;3CH;93C46 读/写存放高 8 位数据地址;3DH;93C46 读/写存放低 8 位数据地址;3EH;寄存器。 第二节 程序框图1、主程序框图错误开始初始化读93C46 00地址是否为0 1设标志位为0至TABLE读密码设标志位为1将密码存入30H35H清除显示器地址键盘扫描是否有按键按下判断键显示密码清除建立新密码比较密码正确开锁2、键识别子程序框图是否按C 是 否消除抖动按键放开否是否按D至TABLE取按键值是否按* 是 否载入按键值是否按# 是 否载入按键值显示按键值键盘扫描按键值与密码相同吗 是 否令开锁动作清 除设定新密码清除显示密码3、显示子程序框图密码地址传送给R0调用显示子程序C放开了吗 是否延 时返 回4、设定新密码程序框图将密码存入93C46 01-03H显示值存入密码地址标志位是否为1 延 时返回清除93C46 00地址写入01H5、密码比较子程序框图按键值与密码值比较相同吗 否是比较下一个码六个码都比较完了 是开 锁延 时返回清除6、掉电存储子程序框图93C46初始化依ACC值跳至相关地址读写写使能写禁止第三节 系统程序1、主程序READ EQU 0WRITE EQU 2EWEN EQU 4EWDS EQU 6FLG0 REG 08HCS REG P3.7CLK REG P3.6DI REG P3.5DO REG P3.4ADR46 REG 20H ORG 00H MOV SP, #60H MOV R7, #00H DJNZ R7, $ MOV P3, #10H MOV ADR46, #00H MOV A, #READ CALL TO9346 MOV 3EH, 3CH MOV A, 3EH CJNE A, #01H, A2 SETB FLG0 MOV R2, #03H MOV R0, #35H MOV ADR46, #01A1: MOV A, #READ CALL TO9346 MOV R0, 3CH DEC R0 MOV R0, 3DH DEC R0 INC ADR46 DJNZ R2, A1 JMP STARTA2: CLR FLG0 MOV R7, #10H MOV R6, #06 MOV R1, #35HL1: MOV A, R7 MOV DPTR, #TABLE MOVC A, A+DPTR MOV R1, A DEC R1 INC R7 DJNZ R6, L1START: ORL P2, #0FFH MOV R4, #06 MOV R0, #36HCLEAR: MOV R0, #00H INC R0 DJNZ R4, CLEARL2: MOV R3, #0F7H MOV R1, #0L3: MOV A, R3 MOV P1, A MOV A, P1 MOV R4, A CLR C CPL C MOV R5, #04HL4: RLC A JNC KEYIN INC R1 DJNZ R5, L4 CALL DISP MOV A, R3 CLR C CPL C RRC A MOV R3, A JC L3 JMP L22、键盘扫描与识别程序 KEYIN: MOV A, R1 XRL A, #0EH JZ X4 MOV A, R1 MOV A, #0FH JZ X3 MOV R7, #10 D1: MOV R6, #248 DJNZ R6, $ DJNZ R7, D1D2: MOV A, P1 XRL A,R4 JZ D2 MOV A, R1 MOV DPTR, #TABLE MOVC A, A+DPTR MOV R7, A XRL A, #0AH JZ SET0 MOV A, R7 XRL A, #0BH JZ START MOV A, R7 XRL A, #0CH JZ L2 MOV A, R7 XRL A, #0DH JZ L2 MOV A, R7 XCH A, 36H XCH A, 37H XCH A, 38H XCH A, 39H XCH A, 3AH XCH A, 3BH CALL DISP JMP L2X3: JMP DISP2 X4: JMP COMP3、数码显示电路DISP: MOV R0, #3BHDISP1: MOV A, R0 ADD A, #50H MOV P0, A CALL DELAY DEC R0 MOV A, R0 ADD A, #40H MOV P0, A CALL DELAY DEC R0 MOV A, R0 ADD A, #30H MOV P0, A CALL DELAY DEC R0 MOV A, R0 ADD A, #20H MOV P0, A CALL DELAY DEC R0 MOV A, R0 ADD A, #10H MOV P0, A CALL DELAY DEC R0 MOV A, R0 ADD A, #00H MOV P0, A CALL DELAY RETDISP2: MOV R0, #35H CALL DISP1 MOV A, P1 XRL A,R4 JZ DISP2 CALL DELAY JMP START4、掉电存储子程序O9346: SETB CS SETB DI SETB CLK CALL DELAY1 CLR CLK CALL DELAY2 MOV DPTR, #JPTBL46 JMP A+DPTRJPTBL46: AJMP SREAD AJMP SWRITE AJMP SEWEN AJMP SEWDSSREAD: MOV A, ADR46 ADD A, #80H CALL SDT46 CALL RDT46 MOV 3CH, A CALL RDT46 MOV 3DH, A JMP EX9346SWRITE: MOV A, ADR46 ADD A, #40H CALL SDT46 MOV A, 3CH CALL SDT46 MOV A, 3DH CALL SDT46 JMP EX9346SEWEN: MOV A, #30H CALL SDT46 JMP EX9346SEWDS: CLR A CALL SDT46EX9346: CLR CS RETSDT46: MOV 22H, #8SD1: RLC A MOV DI, C CALL DELAY1 CLR CLK CALL DELAY2 DJNZ 22H, SD1 RETRDT46: MOV 22H, #8RD1: SETB CLK CALL DELAY1 CLR CLK CALL DELAY2 MOV C, DO RLC A DJNZ 22H, RD1 RET5、设定密码程序SET0: MOV R2, #06H MOV RO, #36H MOV R1, #30HE1: MOV A, R0 XCH A, R1 INC R0 INC R1 DJNZ R2, E1 JB FLG0, E3 MOV ADR46, #00 MOV A, #EWEN CALL TO9346 MOV 3CH, #01H MOV 3DH, #00H MOV A, #WRITE CALL TO9346 MOV A, #EWDS CALL TO9346E3: MOV R0, #35H MOV ADR46, #01H MOV R2, #03E4: MOV A, #EWEN CALL TO9346 MOV 3CH, R0 DEC R0 MOV 3DH, R0 MOV A, #WRITE CALL TO9346 MOV A, #EWDS CALL TO9346 DEC R0 INC ADR46 DJNZ R2, E4 CALL DELAYE2: JMP START6、密码比较程序COMP: MOV R1, #3BH MOV R0, #35H MOV R2, #06HC1: MOV A, R1 MOV A, R0 JNZ C3 DEC R1 DEC R0 DJNZ R2, C1 MOV A, #0FEH MOV P2, A MOV R2, #200C2: MOV R6, #248 DJNZ R6, $ DJNZ R2, C2C3: JMP START7、延时子程序DELAY: MOV R7, #06D3: MOV R6, #248 DJNZ R6, $ DJNZ R7, D3 RETDELAY1: MOV R7, #0FH DJNZ R7, $ RETDELAY2: MOV R7, #8FH DJNZ R7, $ RET8、显示子程序TABLE: DB 01H, 02H, 03H, 0CH DB 04H, 05H, 06H, 0DH DB 07H, 08H, 09H, 0EH DB 0AH, 00H, 0BH, 0FH DB 02H, 02H, 01H, 05H, 08H, 02H END第四章 系统的组装与调试硬件电路组装之前一定要仔细核对硬件系统设计原理的正确性,包括电子元器件参数选用的正确性和原理的正确性,这取决于设计者的学识和经验积累。对没有把握的电路可以通过实验板上直接焊接实际电路来进行调试和验证。在系统通过理论分析后,便可进行印刷电路设计和加工。一、 硬件静态的调试1、排除逻辑故障。这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线 和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。2、排除元器件失效。造成这类错误的原因有两个:一个是元器件买来时就已坏了; 另一个是由于安装错,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。3、排除电源故障。在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查 VCC 与 GND 之间电位,若在 5V48V 之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。二、 联机仿真调试联机仿真必须借助仿真开发装置、示波器、万用表等工具。这些工具是单片机开发的最基本工具。信号线是联络 8051 和外部器件的纽带,如果信号线连结错误或时序不对,那么都会造成对外围电路读写错误。51 系列单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号(PSEN)、地址锁存信号(ALE )、复位信号等几大类 。 这些信号大多属于脉冲信号,对于脉冲信号借助示波器(这里指通用示波器)用常规方法很难观测到,必须采取一定措施才能观测到。应该利用软件编程的方法来实现。例如对片选信号,运行下面的小程序就可以检测出译码片选信号是否正常。MAIN :MOVDPTR,DPTR;将地址送入 DPTRMOVXA,DPTR;将译码地址外 RAM 中的内容送入 ACCNOP;适当延时 SJM PMAIN;循环执行程序后,就可以利用示波器观察芯片的片选信号引出脚(用示波器扫描时间为1s每格档),这时应看到周期为数微秒的负脉冲波形,若看不到则说明译码信号有错误。对于电平类信号,观测起来就比较容易。例如对复位信号观测就可以直接利用示波器, 当按下复位键时,可以看到 8051的复位引脚将变为高电平; 一旦松开,电平将变低。总而言之,对于脉冲触发类的信号我们要用软件来配合,并要把程序编为死循环,再利用示波器观察;对于电平类触发信号,可以直接用示波器观察。第五章心得体会随着大规模集成电路的发展,单片机具有体积小、价格低、功能强等特点;在工业控制、智能仪表、航空航天设备、机器人等领域得到了广泛应用。单片机的应用主要基于其控制功能,特别适合应用于测量和控制领域。掌握好单片机应用系统的一般设计方法,对于单片机应用系统的工程设计与开发,有十分重要意义。进行毕业设计,也就意味着我将走出校门开始自己的新天地,有许多的感慨,这次设计也是我在这三年的学习生涯中所学知识的一次大的汇编,这对我是个考验。总结这三年来学了多少知识,也是自己给自己打分,因此我对毕业设计非常重视。本次毕业设计对我们很重要,是我们毕业之前的一个重要环节。这几个月的毕业设计感触最深的便是理论联系实践的重要性。在大一和大二我们学的都是一些理论知识,就是有几个实习我们也大都注重观察的方面,比较注重理论性,而较少注重我

温馨提示

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

评论

0/150

提交评论