单片机密码保险柜.doc_第1页
单片机密码保险柜.doc_第2页
单片机密码保险柜.doc_第3页
单片机密码保险柜.doc_第4页
单片机密码保险柜.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

安徽建筑大学 毕 业 设 计 (论 文) 专 业 电子信息工程学院 此处要把线都调对齐 班 级_ 09计算机(1)班 学生姓名 朱进山 学 号 09205010125 课 题 _ 基于单片机的密码 保险柜设计与仿真 指导教师 梁祥莹 2013年 6 月 10日摘要摘要去掉目前单片机已经在家电领域中得到了广泛的应用,而且在安全密保什么是“安全密保”?方面,具有防盗报警功能的电子密码锁逐渐取代了传统的机械密码锁,克服了机械密码锁密码过少的安全性问题。本密码锁密码保险柜,不是密码锁!的主控芯片采用价格实惠而且容易购买的 STC89C52芯片。密码输入采用矩阵键盘及独立键盘有两个键盘吗?,密码显示采用LCD1602液晶液晶什么?说完整。系统能完成密码输入、正确开锁、超次报警等基本功能。系统的软件实现采用功能强大且易于开发的KeilC51环境这句话不通顺,且支持ISP下载。因此没使用编程器,用C语言实现系统的软件部分。由于51单片机也有一些不足之处如断电后内部RAM储存的数据会完全丢失,为了克服这一缺点,这句话去掉系统的外围加了以AT24C02芯片为核心的掉电存储电路防止断电后数据丢失。此设计具有安全性高、价格低廉便于实现、易于改进等优点。 关键词:电子密码锁 ;STC89C52;矩阵键盘 ABSTRACTMCU had been widely used in home appliance field,in the security password protection aspect anti-theft alarm function electronic combination lock gradually replace the traditional mechanical trick lock,it also overcome the security problems that the password of machinery combination lock are too few. This combination locks master chip adopts STC89C52 which is affordable and easy to buy. Passwords input adopt matrix keyboard and independent keyboard, passwords display using LCD1602 display digital. This system can accomplish password input, correct unlock, super times alarm ,these basic combination lock function . Software realization of this system is used in KeilC51 environment .it is powerful and easy to develop, and to support ISP to download. Therefore it is not use programmer, use C language implementation software of system components. Because 51MCU also has some disadvantages ,such as the internal RAM stored data will be completely lose after power failure, in order to, the systems periphery added off electricity storage circuit and use AT24C02 chip to overcome these shortcomings. This design has a high security, a low prices,which is easy to be realized and improved.【Key words】Electronic Combination lock STC89C52 Matrix keyboard 目录1. 绪论11.1 研究的目的和意义21.2 国内外研究现状21.3 课题的主要任务21.4 本章小结32. 系统总体设计思路33. 硬件设计43.1 单片机AT89C5143.1.1 主要特性53.1.2 管脚说明63.1.3 时钟电路83.1.4 复位电路83.2 模块介绍93.2.1 键盘输入电路93.2.2 密码存储电路103.2.3 开锁电路113.2.4 报警电路123.2.3 显示电路123.2.3 晶振电路134. 软件设计144.1 模块划分144.1.1 键盘扫描模块154.1.2 密码修改模块154.1.3 密码比较判断模块154.1.4 显示模块154.1.5报警模块154.2 系统程序设计流程图155. 系统调试与仿真195.1 Proteus软件介绍195.2 keil软件介绍205.3 下载工具STC-ISP21 5.4 系统调试仿真及结果215.4.1 仿真结果截图215.4.2 结果分析26设计总结27致谢28参考文献28附录29附录A 整体电路图 29附录B 源程序代码301安徽建筑大学毕业设计(论文)基于Proteus的密码保险柜设计这个题目是否和任务书上的一模一样?另外,你的子课题呢?电子与信息工程学院 计算机科学与技术专业 2009级1班 朱进山指导教师 梁祥莹1 绪 论顶行写! 随着新技术的不断开发与应用,近年来单片机发展十分迅速,一个以微机应用为主的新技术革命浪潮正在蓬勃兴起,单片机的应用已经渗透到冶金、电力、建材、化工、机械、石油、食品等各个行业。单片机控制无疑是人们追求的目标之一,它所给人们带来的方便也是不可否认的。MCS-51系列单片机应用广泛,是学习单片机技术较好的系统平台,同时也是单片机微型计算机应用系统开发的一个重要系列。目前,单片机原理与应用教材大都采用汇编语言讲解和设计程序实例,但汇编语言学习困难。在实际应用系统开发调试中,特别是开发比较复杂的应用系统时,为了提高开发效率和使程序便于移植,现在多用C语言。 全文行间距是否为固定值22磅? 在信息产业飞速发展的今天,我们生活中必不可需的设备都向着小型化、便携化、智能化、自动化的方向发展。所以电子密码保险柜随着快节奏的生活应运而生。在我国六七十年代还是传统的一把钥匙配一把锁,不管是单位还是个人每天都要认真检查是否锁上了门,而且钥匙还不能随便乱放,一旦不小心忘记放在哪里很可能就打不开门了。传统的锁也相当的不安全,会有一些不法分子想尽办法打开你的房锁去偷盗东西。电子密码保险柜的产生使得这些问题都不再是问题,我们只需简单的记住六位密码即可。1.1 研究的目的和意义人们从前使用的锁不但不方便,而且安全系数也比较低。随着社会的进步和人们生活水平的提高,老式的锁已经跟不上人们的要求,况且人们对防盗的要求越来越高,特别是对使用的便捷性也有了更高的需求。因此近几年一种新型的电子密码保险柜应运而生,受到了人们的青睐。有报警功能的密码保险柜这时正为人们解决了不少问题。但是市场上的密码保险柜大部分都是用于一些大公司财政机构、价格高昂,一般人们难以接受。如果再设计和生产一种价格低廉、性能灵敏可靠的密码保险柜,必将在防盗和保证财政安全方面发挥更加有效的作用。电子密码保险柜克服了机械式密码保险柜安全性能差的缺点,特别是使用单片机控制的智能电子密码保险柜,不但功能全,而且具有更高的安全性和可靠性。并且电子密码保险柜只需记住一组密码,无需携带钥匙,免除了人们携带钥匙的烦恼,被越来越多的人所喜欢。随着我国第三产业的飞速发展,电子密码保险柜会在不久的将来得到广泛的应用。 1.2 国内外研究现状20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,同时可靠性提高,成本也相对提高,所以只适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对密码锁的研究一直没有明显进展。到了90年代,美国、意大利、德国、日本、加拿大、韩国以及我国的台湾、香港等地的微电子技术的进步和通信技术的发展为密码锁提供了技术上的支持,从而推动密码锁走向实际应用的阶段。目前,在西方国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,使之更加安全更加可靠实现大门的管理。我国于90年代初期开始对密码锁进行初步的探索。到目前为止,随着电子技术和信息技术的发展,电子密码锁的技术领域已发展的十分成熟。从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。在其他技术领域还有遥控式电子密码锁以及卡片式密码锁等。1.3 课题的主要任务 本设计的任务采用单片机AT89C52作为单片机的核心单元这句不通,C52本身就是单片机,利用单片机丰富的功能而设计的一款具有本机开锁什么叫本机开锁?,密码更改和报警功能的电子密码锁。主要实现以下几个功能:1、密码显示为了帮助用户确认是否有键按下,特在电路中设置了模拟显示电路;而为了防止密码外泄,显示时并不是显示用户按下的数字符号,而是以一个特定的字母符号提醒用户是否有键按下。有键按下,就会显示出字符-“*”实际系统中显示的是“”,没键按下,则不会显示字符。2、密码更改设置6位密码,密码通过密码正确,不是密码通过键盘输入,当按下更改密码的功能键时功能键是那个键?,要先输入原来的密码,正确无误后,再输入新的密码,最后按下确认键即可。3、密码错误报警当用户键入错误密码时,系统就会报警,由扬声器发出警告声。当连续三次出现密码错误时,则系统会报警声。这段话是什么意思?这时必须按复位方可停止。4、本机键开锁当用户键入正确密码后,便会自动开锁。但用户键入密码时应注意:数字与数字之间的间隔时间为30秒,例如密码为123456,当键入第一个数字1后应在30秒内键入第二个数字2,否则就会视为无效。1.4 本章小结无论是在工业生产中还是在日常生活中通过对电子密码保险柜的应用越来越普及,应用场合也越来越多。因此,对于密码保险柜的需求也在逐渐增加。本文基于以上方面的考虑,研究并设计了一种简单的基于单片机的密码保险柜具有重要的意义。2. 系统总体设计思路以AT89C52单片机为主控制单元,键盘为主要输入单元,结合开锁装置、报警器和显示器完成整个系统设计。系统的运行过程大致如下:假设初始状态为闭锁什么叫闭锁?,此时系统等待按键输入,数码管前面说用的是液晶显示,此处怎么变成数码管了?到底是什么显示?显示“please input password”。每按下一个数据键(即每输入一位密码),数码管相应的显示一个“*”标志,当密码全部输入完成后,系统判断密码是否正确,正确则开锁(仿真中以继电器动作导致发光二极管点亮为标志),错误则显示“password error try again”,此后数码管显示“please input password”续等待按键;如果连续输入错误密码三次,则显示“password error no chance”,需复位后才能继续使用。系统是否具有这个功能?在开锁状态下,按下密码重置键,则需先输入原密码,正确后输入新密码,输入密码过程中,数码管显示 “*”,到底显示什么?以保证密码的隐秘性系统的整体结构框图呢?各个功能模块的划分呢?。3. 硬件设计3.1 单片机AT89C52由于此设计需要编写程序,并将程序载入单片机中,因此单片机必须具有足够多的存储空间,本次设计采用的ATMEL公司生产的AT89C52型单片机具有8K字节的FLASH完全满足要求。16位的定时/计数器使得读取数据变得更加简单,同时其结构有利于晶振电路和复位电路的连接。最重要的是,能够在掉电状态下保存RAM内的数据。因此,对于本设计来说,选择AT89C52是最有利的。AT89C51是一种带8K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C52是一种带4K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C52是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.1.1 主要特性AT89C52具有如下特点:AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。其内部结构图如图3-1所示。 兼容MCS51指令系统 8k可反复擦写(1000次)FlashRO 4k字节可编程FLASH存储器 32个双向I/O口 256x8bit内部RAM 3个16位可编程定时/计数器中断 时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部中断源 共6个中断源 2个读写中断口线 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能此处要修改图3-1 AT89C52内部结构图3.1.2 管脚说明AT89C52引脚排列图如图3-2所示。 图3-2 AT89C52引脚图引脚功能说明:VCC电源电压GND地P0口P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见下表。要把格式完整的刷一遍引脚号功能特性表头呢?P1.0T2(定时/计数器2外部计数脉冲输入),时钟输出P1.1T2EX(定时/计数2捕获/重装载触发和方向控制)P2口P2是一个带内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口输出P2锁存器的内容。FLASH编程或校验时,P2亦接收高位地址和一些控制信号。P3口P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:端口引脚第二功能此处表头呢?P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp.。P1.0和P1.1的第二功能它接手键盘的输入并作出判断,控制6位7段数码管和LED指示灯的显示。3.1.3 时钟电路图3-3时钟电路AT89C52内有时钟发生器、振荡电路(高增益反相放大器),振荡电路与外界振荡元件(晶振)构成振荡器,振荡器与时钟发生器一起构成内部时钟方式,产生AT89C52工作所需的时钟信号。它使单片机在唯一的时钟信号控制下严格地按一定的节拍该系统中的晶振是多少?进行工作(即按一定的时序工作),如图3-3所示。3.1.4 复位电路本设计采用简单的上电复位电路,如图3-4所示。其实通过外部电容充电来实现复位的,上电瞬间,RST引脚的电位与Vcc相同,随着充电电流的减小,此引脚电位将逐渐下降。RST引脚的高电平持续时间取决于电容的充电时间,应大于两个机器周期。图中的电阻值、电容值为12MHz晶振时的常用值9。图3-4复位电路3.2 模块介绍根据整体设计思路与设计要求,本设计共分为单片机主控制模块(含晶振、复位基本工作电路)、键盘输入模块、显示模块、报警模块、开锁模块五个部分组成。这里有5个模块吗?3.2.1 键盘输入电路键盘的原理呢?键盘输入电路采用的是44的矩阵键盘,因为本设计所用到的按键数量较多而不适合用独立按键式键盘因此采用的是矩阵式按键键盘,它由行和列组成,也称行列式键盘,按键位于行线和列线的交叉点上,密码锁的密码输入由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4X4键盘不但能完成密码的输入还能作特别功能键使用,设置功能等。键盘的每个按键功能在程序设计中设置。平时无按键按下时,行线电平状态将由与此电平相连的列线电平决定。列线电平如果为低,则行线电平为低;列线电平为高,则行线电平也为高。这是识别矩阵键盘是否被按下的关键所在。由于矩阵键盘中的行、列为多键公用,各按键均影响该按键所在行和列的电平,因此,各按键彼此将相互发生影响,所以必须将行列线信号配合起来,并作适当的处理,这样才能决定闭合键的位置。其按键结构及与单片机引脚接法如图3-5所示。图3-5图的名称呢?3.2.2 密码存储电路介绍存储电路的原理。芯片的主要功能和引脚由于51单片机掉电后会丢失数据存储器里的数据,因此必须外加掉电存储电路。并由AT24C02芯片来实现。AT24C02芯片的管脚图如图3-6 所示。图3-6 AT24C02芯片的管脚图这个图分明是接线图本设计采用的是美国Atmel公司生产的AT24C02。AT24C02是一个2K位串行CMOS型 E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。AT24C02支持IC,总线数据传送协议IC,总线协议规定任何将数据传送到总线的器件作为发送器。任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上。3.2.3开锁电路用的是继电器吗?不是电机啊? 开锁控制电路的功能是当输入正确的密码后将锁打开。系统使用单片机其中一引脚线发出信号,经三极管放大后,由继电器驱动电磁阀动作将锁打开。用户通过键盘任意设置密码,并储存在EEPROM中作为锁码指令。只有用户操作键盘时,单片机的电源端才能得到3V电源,否则单片机处于节电工作方式。开锁步骤如下:首先按下键盘上的开锁按键,然后利用键盘上的数字键09输入密码,最后按下确认键。当用户输入一密码后,单片机自动识码,如果识码不符,则报警。只有当识码正确,单片机才能控制电子锁内的微型继电器吸台。当继电器吸台以后带动锁杆伸缩,这时,锁勾在弹簧的作用下弹起,完成本次开锁。开锁以后,单片机自动清除掉由用户输人的这个密码。如图3-7所示:图3-7继电器电路锁3.2.4 报警电路 报警电路由一个蜂鸣器驱动电路来实现的,包括以下几个部分:一个蜂鸣器、一个三极管、一个连续流二极管和一个电阻。蜂鸣器的作用:用来发声,在其两端加直流电压(有源蜂鸣器)或者方波(无源蜂鸣器)就可以发声,其主要参数是外形尺寸、发声方向、工作电压、工作频率、驱动方式(直流/方波)等。这些都可以根据需要来选择。连续流二极管的作用:蜂鸣器本质上是一个感性元件,其电流不能瞬变,因此必须有一个连续流二极管提供连续流。否则,在蜂鸣器两端会产生几十伏的尖峰电压,可能损坏驱动三极管,并干扰整个电路系统的其他部分。三极管:三极管起开关作用,其基极的高电平使三极管饱和导通,使蜂鸣器发声,而基极低电平则使三极管关闭,蜂鸣器停止发声。报警电路如图3-8所示。图3-8 报警电路3.2.5 显示电路 为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。只有按下键盘上的开启按键后,显示器才处于开启状态。同理只有按下关闭按键后显示器才处于关闭状态。否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD子显示“RIGHT”,单片机其中P2.0引角会输出低电平,使三极管T2导通,电磁铁吸合,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“ERROR”,P2.0输出的是高电平,电子密码锁不能被打开。通过LCD显示屏,可以清楚的判断出锁所处的状态。其显示部分引脚接口。如图3-9所示 图2.7 1602液晶电路3.2.6晶振电路前面已经介绍过了 晶体振荡器简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或者缩小就成了电脑中各种不同的总线频率。以声卡来说,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。如果需要对这两种音频同时支持通话,声卡就需要有两个晶振。但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SCR会对音质带来伤害,而且现在的娱乐级声卡都没有很好地解决这个问题。现在应用最广泛的是石英晶体振荡器。晶振电路图如图3-10所示。 图3-10 晶振电路 石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表电子设备中。为数据处理设备产生时钟信号和为特定系统提供基准信号。在单片机中为其提供时钟频率。 石英晶体振荡器是利用石英晶体的压电效应制成的一种谐振元件,它的基本构成是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装了的。只要在晶体振荡器子板上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应。当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。 4. 软件设计4.1 模块划分本设计软件部分要实现的功能分别为:键盘扫描,数码管显示,延时部分,蜂鸣器报警,蜂鸣器唱歌以及掉电存储。4.1.1键盘扫描模块键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。4.1.2密码修改模块该模块的功能是修改设置密码。密码修改程序要求密码要输入两次,程序将两次输入的密码比较一致时,即用此密码代替原先的密码,如果两次输入的密码不一致,则重复操作。这样就避免了修改密码的随机性。4.1.3密码比较判断模块该模块的功能是将键盘输入的密码与设定的密码进行比较,若密码正确,则开锁;若不正确,则密码输入次数计数单元计数,如达不到3次,返回键盘扫描模块;若计数已达3次,则调用报警模块。4.1.4显示模块该模块的功能是显示,由于是分屏显示数据,所以需要调用各显示子程序。4.1.5报警模块该模块为了保证安全性,当密码输入的次数超过3次,就会发出报警,以便引起人们的注意。4.2 系统程序设计流程图 开始初始化键盘扫描启动程序键盘扫描键功能程序结束关闭程序流程图有错误。重画 图4-1 主程序流程图键功能程序键值09?键值开锁?键值清除?键值设置?键值确认?密码输入程序设置程序清除程序开锁程序确认程序YYYYYNNNN返回N 图4-2 键功能流程图键扫描流程图,且流程图有错误设置程序初始化按下设置键输旧密码确认程序所输入旧密码正确?输新密码确认程序设置成功输入次数加1次数3?报警程序NYNY返回确认程序再次输新密码两次新密码输入相同?NY流程图有错误 图4-3 密码设置流程图 5. 系统调试与仿真本次设计使用Proteus软件进行原理图编辑,用keil软件程序编写程序。5.1 Proteus软件介绍Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、AVR、ARM、8086 PIC10/12/16/18/24/30/DsPIC33和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。Proteus与其他单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其他电路的工作情况。因此在仿真和程序调用时,关心的不再是某些语句执行时单片机寄存器和储存器内容的改变,而是从工程的角度直接看程序运行和电路工作过程和结果。Proteus主要由ISIS和ARES两部分组成,ISIS的主要功能是原理图设计及与电路原理图的交互仿真,ARES主要用于印制电路板的设计。本次设计主要用的是ISIS部分。Proteus ISIS是一种操作简便而又功能强大的原理图编译工具,它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路,该软件的特点有:实现了单片机仿真和SPICE电路仿真结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、RS232动态仿真、IC调试器、SPI调试器、键盘和LCD系统仿真等功能;有各种虚拟仪器。如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有68000系列、8051系列、ARM系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、PIC24系列、BSTAMP系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各种变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境。如KeiluVision3等软件。具有强大的原理图绘制功能。运行Proteus的ISIS程序后,进入该仿真软件的主界面。在工作前,要设置VIEW菜单下的捕捉对齐和system下的颜色、图形界面大小等项目。通过工作栏中的P(从库中选择元件命令)命令。在pick devices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Define code generation tools 菜单命令下,选择程序编译的工具、路径、扩展名的项目:在source菜单的Add/remove source files命令下,加入单片机硬件电路的对应程序:通过debug菜单的相应命令仿真程序和电路的运行情况。Proteus提供了比较丰富的测试信号用于电路的测试。对于单片机硬件电路和软件的调试,Proteus提供了两种方法;一种是系统总执行效果,一种是对软件的分部调试以看具体的执行情况。对于总体执行效果的调试方法,只需要执行debug菜单下的execute菜单项或F12快捷键启动执行,用debug菜单下的pause animation 菜单项或pause键暂停系统的运行。对于软件的分部调试,应先执行debug菜单下的start/restart debugging菜单项命令,此时可以选择step over、step into和step out命令执行程序,执行的效果是单句执行、进入子程序执行和跳出子程序执行。在执行了start/restart debugging命令后,在debug菜单的下面要出现仿真中所涉及到的软件列表和单片机的系统资源等,可供调试时分析和查看。5.2 keil软件介绍 Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2 IDE可为它们提供单一而灵活的开发环境。C51 V7版本是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三 方开发工具。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 5.3下载工具STC-ISPSTC-ISP 是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。使用时只要将Keil C51生成的.HEX文件烧进单片机就可以了,操作非常简单。5.4系统调试仿真及结果首先在Proteus的ISIS环境下根据上述设计思路选择元件,画出原理图(完整电路图见附录A)。然后在keil中写好代码并生成keil文件(完整代码见附录B)。完成电路连接后,在电路图中双击单片机,输入hex文件的路径,然后保存,仿真执行即可。5.4.1 仿真结果截图1、 打开密码保险柜电源时显示如图5-1所示: 图5-1 初始界面2、输入密码界面如图5-2所示: 图5-2输入密码界面 3、开锁后界面如图5-3所示: 图5-3 开锁后界面4、 按下设置密码键后如图5-4所示: 图5-4 改密界面5、 改密时输完旧密码后显示: 图5-5 输入新密码界面5.4.2 结果分析根据以上仿真结果看,此设计符合设计要求。再输入密码时,不显示输入数字,用“*”代替输入数字;输入错误密码三次后会报警;输入正确密码后,指示灯亮,代表保险柜开锁;可以修改密码,并设有掉电保护。 设计总结本次设计主要是要求使用一款大学时候没有接触过的工程管理及仿真软件,一切都是新的,对自己来说是个挑战挑战自己的自学能力,跳帧自我对新知识的接受能力,从确定选题开始的查阅资料,到最后系统地联调,遇到过很多困难,比如芯片的选择、各模块电路的设计、模块整合,尤其是程序设计部分,各个子模块最后整合的时候出现了编译不通过、通过后显示屏乱码、报警系统不工作等问题,最后通过一行行查程序,问老师,问同学,逐一解决了上述问题。整个过程使我对C语言有了更加进一步的理解,也明白了当初老师严格要求我们写程序之前必须有严谨的流程图的良苦用心。当然,由于种种原因,本次设计的基于单片机的保险柜设计还有很多不足之处,现在无论工业还是生活中,人们已经远远不能满足于仅仅可以修改密码,我们设想以后可以在此系统的基础上进行完善,还可以添加多账号、多密码的组合,以起到监测谁打过密码箱的作用。通过本次毕业设计,我的知识得到巩固和提升,并将理论应用于实践,获得了书本上没有的知识,使我对该课题步步深入,极大地提高了自己的实践能力。对我以后的工作和生活也有重要的影响。致谢通过大学四年的学习,我获得了很多专业相关的知识,在此感谢所有教过我的老师们,感谢你们的谆谆教诲,感谢你们的耐心指导,感谢你们带给我的不可或缺的知识。通过本次毕业设计,我的知识得到升华,应用知识的能力得到极大的提高。在此对我的指导老师梁祥莹老师致以深深的敬意,梁老师积极、严谨的治学态度,认真、努力的工作态度给了我极其深远的影响。同时,在设计的过程中,梁老师也给予我莫大的帮助,他帮助我制定研究过程的计划,督促我每天努力学习,他的严格要求和悉心讲解对我的毕业设计的顺利完成起到了至关重要的作用。同时还要特别感谢同组的三位同学,是你们给了我强大的支持与理解,使这次毕业设计能圆满地完成。 参考文献1 程国钢 案例解说单片机C语言开发M. 北京:电子工业出版社2 陈忠平 基于Proteus的51系列单片机设计与仿真(第二版)M .北京:电子工业出版社3 张靖武,周灵彬. 单片机系统PROTEUS设计与仿真M北京:电子工业出版社,20074 周润景,张丽娜. 基于proteus的电路及单片机系统设计与仿真M. 北京:北京航空航天大学出版社,20065 李广弟. 单片机基础M. 北京:北京航空航天大学出版社, 20086 田鑫. OP07功率放大器J. 武汉理工大学,2009,5-68 朱清慧, 张凤蕊, 崔天嵩. 王志奎 .Proteus教程M. 北京:清华大学出版社9

温馨提示

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

评论

0/150

提交评论