合成惊悚恐怖骷髅树桩制作步骤

上传人:仙*** 文档编号:63122482 上传时间:2022-03-17 格式:DOC 页数:63 大小:1.79MB
收藏 版权申诉 举报 下载
合成惊悚恐怖骷髅树桩制作步骤_第1页
第1页 / 共63页
合成惊悚恐怖骷髅树桩制作步骤_第2页
第2页 / 共63页
合成惊悚恐怖骷髅树桩制作步骤_第3页
第3页 / 共63页
资源描述:

《合成惊悚恐怖骷髅树桩制作步骤》由会员分享,可在线阅读,更多相关《合成惊悚恐怖骷髅树桩制作步骤(63页珍藏版)》请在装配图网上搜索。

1、编号: 毕业论文(设计)题目 基于单片机的电子密码锁设计 院 (系) 计算机与信息工程学院 专 业 电子科学与技术 学生姓名 成 绩 指导教师 (职称) 2013年6月诚信声明本人郑重声明:所呈交的毕业设计(论文)是我个人在导师指导下,由我本人独立完成。有关观点、方法、数据和文献等的引用已在文中指出,并与参考文献相对应。据我查证,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表和撰写的研究成果,也不包含为获得其他教育机构的学位或证书而使用过的材料。我承诺,论文中的所有内容均真实、可信。如在文中涉及到抄袭或剽窃行为,本人愿承担由此而造成的一切后果及责任。 毕业论文(设计)作者签名:

2、 签名日期: 年 月 日V摘要随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构(本设计重点介绍主机设计),实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。而且采用键盘输入的电子密码锁具有较高的优势。采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性

3、,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可扩展性和运行的稳定性。测试结果表明,本设计基本达到了预期的目标。 关键词:单片机;密码锁;单片机设计;电子锁AbstractAlong with the exaltation of social science and the living level of people, how carry out the family to guard against theft, this problem also change particula

4、rly outstanding.Because of the simple construct of traditional machine lock,the affairs of theft is hackneyed.the electronics lock is safer because of its confidentiality, using the vivid good, the safe coefficient is high, being subjected to the large customer close.It can carry out the key informa

5、tion to register in the main on board initial attestation, the password information encrypt etc. Go to correspond by letter the principle according to the string between 51 machines, this is easy to encrypt and protect to the passwords information random. Adopt the numerical signal codes,not only ca

6、n carry out many controls of the road information, raise the anti- interference that signal deliver, reduce the mistake action,but also the power consume is low, Respond quickly,the efficiency deliver is high, work stable credibility etc. The software design adoption the design thought from top to b

7、ottom, to make the system toward wear distribute type,turn to the direction development of small, strengthen the system and can expand the stability and circulate.Test the result enunciation, various functions of this system are already all request of this design.keyword:singlechip;cryptogram lock;s

8、inglechip design; electronics lock目录第一章 绪论11.1 课题背景11.2 课题设计目标1第二章 系统方案论证22.1 主控部分的选择22.2 密码输入方式的选择2第三章 系统总体设计和主要芯片介绍33.1 系统总体设计33.2 主要芯片介绍43.2.1 STC89C5243.2.2存储芯片AT24C0263.2.3显示电路(LCD1602)8第四章 系统硬件构成114.1 系统整体电路图114.2 单片机最小系统原理图114.3 电源输入部分124.4 键盘输入部分124.5 密码存储部分134.6 显示部分144.7 报警部分154.8 元器件采购154

9、.9 电路焊接164.9.1.焊接所需工具164.9.2电路焊接实物图17第五章 软件的设计与实现175.1设计原理185.2 主程序流程图18第六章 程序调试196.1 程序调试用到的软件及工具196.2 KEIL C51简介196.3 调试过程20第七章 结论22致谢23参考文献24附录25附录B文献翻译45附录B.1 中文翻译45附录B.2 英文原文49第一章 绪论随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电

10、子密码锁就是其中之一。1.1 课题背景 由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。1.2 课题设计目标本设计采用STC89C52单片机为主控芯片,通过软件程序组成电子密码锁系统,能够实现:1 正确输入密码前提下,开锁提示;2 错误输入密码情况下,蜂鸣器报警;3 密码可以根据用户需要更改;4 断电存储功能第二章 系统方案论证 系统从主控部分和密码输入方

11、式两方面进行论证2.1 主控部分的选择方案一:采用数字电路控制 用以74LS112双JK触发器构成的数字逻辑电路作为密码锁的核心控制,将密码保存在JK触发器中,与输入密码通过比较器比较,判断结果是否相符合。采用数字电路设计的方案好处就是设计简单,但控制的准确性和灵活性差,故不采用。 方案二:采用以单片机为核心的控制方案 选用单片机作为系统的核心部件,实现控制与处理的功能。单片机具有资源丰富、速度快、编程容易等优点。利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标,因此综合考虑,本系统采用

12、方案二。2.2 密码输入方式的选择方案一:指纹输入识别 指纹识别技术主要涉及四个功能:读取指纹图像、提取特征、保存数据和比对。通过指纹读取设备读取到人体指纹的图像,然后要对原始图像进行初步的处理,使之更清晰,再通过指纹辨识软件建立指纹的特征数据。软件从指纹上找到被称为节点(minutiae)的数据点,即指纹纹路的分叉、终止或打圈处的坐标位置,这些点同时具有七种以上的唯一性特征。通常手指上平均具有70个节点,所以这种方法会产生大约490个数据。这些数据,通常称为模板。通过计算机模糊比较的方法,把两个指纹的模板进行比较,计算出它们的相似程度,最终得到两个指纹的匹配结果,从而判断输入结果的正确与否。

13、考虑到本方案软硬件太过复杂,而且成本也高,故不采用。方案二:矩阵键盘输入识别 由各按键组成的矩阵键盘每条行线和列线都对应一条I/O口线,键位设在行线和列线的交叉点,当一个键按下就会有某一条行线与某一条列线接触,只要确定接触的是哪两条线,即哪两个I/O口线,就可以确定哪一个键被触动。行线设计成上拉口线,初始时被置高电位,列线悬空,初始置低。通过不断读行线口线,或者中断方式触发键位扫描。当发现有键按下,将列线逐一置低,其他列线置高,读行线口线。当某条列线置低时,某条行线也被拉低,则确定这两条线的交点处的按钮被按下。每个按键都可通过程序赋予功能,从而完成密码识别。本方案简单易行,故采用。第三章 系统

14、总体设计和主要芯片介绍 系统主要芯片有STC89C52,AT24C02及液晶等3.1 系统总体设计本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可。系统整体框图如图3.1所示: 中央控制芯片 AT89C52 电源电路 AT24C02密码保护 键盘输入电路 显示电路 报警电路 图3.1

15、系统结构框图各模块功能如下:1矩阵键盘输入模块:分为密码输入按键与几个功能按键,用于完成密码锁输入功能。2显示模块:用于完成对系统状态显示及操作提示功能。3报警电路:用于完成输错密码时候的警报功能。4密码存储模块:用于完成掉电存储功能,使修改的密码断电后仍能保存。5电源模块:用于对系统电路提供+5V的直流电压3.2 主要芯片介绍3.2.1 STC89C52 STC89C52是美国Atmel公司生产的低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的只读程序存储器(PEROM)和256bytes的随机存取数据存储器(RAM),STC89C52有40个引脚,32个外部双向输入/输

16、出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。主要功能特性:兼容MCS51指令系统。8k可反复擦写(1000次)Flash ROM,32个双向I/O口,256x8bit内部RAM,时钟频率0-24MHz,可编程UART串行通道。3个16位可编程定时/计数器中断,2个串行中断,2个外部中断源,共6个中断源,2个读写中断口线。其引脚排列图如下图3.2:图3.2 STC89C52的引脚排列引脚功能如下:Vcc:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8

17、个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把

18、端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上位电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表3.1所示:表3.1 P3口的

19、第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)RST:复位输入 。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许) 输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时

20、将跳过一个ALE脉冲。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。3.2.2存储芯片AT24C02AT24C02是美国Atmel公司的低功耗CMOS型E?PROM,内含2568位存储空间,

21、具有工作电压宽(2.55.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了I?C总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在 连到总线上的器件之间传送信息

22、,并根据地址识别每个器件。 AT24C02正是运用了I?C规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向。管脚描述:SCL 为串行时钟:串行时钟输入管脚用于产生器件所有数据发送或接收的时钟这是一个输入管脚。SDL 为串行数据/地址:双向串行数据/地址管脚用于器件所有数据的

23、发送或接收SDL,是一个开漏输出管脚可与其它开漏输出或集电极开路输出进行线或。A0、A1、A2 为器件地址输入端:当使用24C02 时最大可级联8个器件,如果只有一个24C02被总线寻址,这三个地址输入脚A0、A1、A2可悬空或连接到Vss。WP为写保护:如果WP 管脚连接到Vcc 所有的内容都被写保护只能读当WP, 管脚连接到Vss 或悬空,允许器件进行正常的读/写操作12。管脚图如图3.3所示。图3.3 AT24C02引脚图3.2.3显示电路(LCD1602)LCD1602:所谓的1602即是16字符*2行的字符型LCD显示器,它由32个字符点阵块组成,每个字符点阵块由57或510个点阵组

24、成,可以显示ASCII码表中的所有可视的字符。它内置了字符产生器ROM(CGROM)、字符产生器RAM(CGRAM)和显示数据RAM(DDRAM)。CGROM中内置了192个常用字符的字模,CGRAM包含8个字节的RAM,可存放用户自定义的字符,DDRAM就是用来寄存待显示的字符代码。1602液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用 1602引脚及其具体功能如下表:表3.2 1602引脚及功能编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号

25、11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读/写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极LCD1602基本操作时序: 读状态:输入:RS=L,RW=H,E=H 输出:D0D7=状态字写指令:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:无读数据:输入:RS=H,RW=H,E=H 输出:D0D7=数据写数据:输入:RS=L,RW=H,E=H 输出:无1)读操作时序图 图3.4 读操作时序图2)写操作时序图图3.5写操

26、作时序图3)时序参数表表3.3 时序参数表时序参数符号极限值单位测试条件最小值典型值最大值E信号周期tc400-ns引脚EE脉冲宽度tpw ,tF150-nsE上升/下降沿时间tR-25ns地址建立时间tsp130-ns引脚E、RS、R/W地址保持时间tHD110-ns数据建立时间(读操作)tD-100ns引脚DB0DB7数据保持时间(读操作)tHD220-ns数据建立时间(写操作)tsp240-ns数据保持时间(写操作)tHD210-ns3.2.3.3 状态字说明表表3.4 状态字说明STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0注意:对控制

27、器每次进行读写操作之前,都必须进行读写检测,确保STA7=03.2.3.6 数据控制控制器内部设有一个数据地址指针,用户可通过它们来访问内部的全部80字节RAM。1) 数据指针设置如表4表3.5 数据指针设置指令码功能80H+地址吗(0-27H,40-67H)设置数据地址指针2) 其他设置如表5表3.6 其他设置指令码功能01H显示清屏:1.数据指针清零 2.所有显示清零02H显示回车:1.数据指针清零Lcd初始化显示设置为:初始化过程(复位过程) 延时15ms 写指令38H(不检测忙信号) 延时5ms写指令38H(不检测忙信号) 5延时5ms 写指令38H(不检测忙信号)(以后每次写指令、读

28、/写数据操作之前均需检测忙信号) 写指令38H:显示模式设置写指令08H:显示关闭 写指令01H:显示清屏 写指令06H:显示光标移动设置写指令0CH:显示开及光标设置第四章 系统硬件构成4.1 系统整体电路图 本密码锁系统硬件电路是由STC89C52单片机、存储器AT24C02和LCD1602液晶显示、键盘输入以及输出控制报警5个模块组成的。其整体电路图如下4.1所示: 图4.1 整体电路图4.2 单片机最小系统原理图 由STC89C52,复位电路,时钟产生电路组成。其原理图如下:图4.2 最小系统电路原理图4.3 电源输入部分 密码锁主控制部分电源需要用5V直流电源供电,把频率为50Hz、

29、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。其主要原理是把单相电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。需通过低通滤波电路滤波,使输出电压平滑。稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流压。本电路使用充电器解决电源稳压问题。 4.4 键盘输入部

30、分由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置 。其大体功能(看键盘按键上的标记)及与单片机引脚接法如图4.3所示图4.3 键盘输入原理图4.5 密码存储部分 用EPROM芯片AT24C02存储密码。AT24C02是美国Atmel公司的低功耗CMOS型E2PROM,内含2568位存储空间,具有工作电压宽(2.

31、55.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失、体积小等特点。而且他是采用了I2C总线式进行数据读写的串行器件,占用很少的资源和IO线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。所有字节均以单一操作方式读取。为降低总的写入时间,一次操作可写入多达8个字节的数据。I2C总线是一种用于IC器件之间连接的二线制总线。他通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件

32、。AT24C02正是运用了I2C规程,使用主从机双向通信,主机(通常为单片机)和从机(AT24C02)均可工作于接收器和发送器状态。主机产生串行时钟信号(通过SCL引脚)并发出控制字,控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成,在开始信号发出以后,主机便会发出控制字,以选择从机并控制总线传送的方向 。其接线如图4.4所示: 图4.4 密码存储电路原理图4.6 显示部分 为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。显示器一直处于初始状态

33、,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD子显示“RIGHT”,LCD显示屏会显示“ERROR”,P2.0输出的是低电平,电子密码锁不能被打开。通过LCD显示屏,可以清楚的判断出锁所处状态 。其显示部分引脚接口如图4.5所示图4.5 显示电路原理图4.7 报警部分报警部分由喇叭电路组成,当有键按下时,每按一下,喇叭koi响一次,当密码输入错误时,单片机的P2.1引脚为低电平,喇叭发出噪鸣声报警。如图4.6所示:图4.6 报警电路

34、原理图4.8 元器件采购4.8.1、硬件所需元器件元器件名称数量9X15cm万用板1片51单片机+IC座1套AT24C02+IC座1套1602液晶显示屏1个按键17只12M晶振1只33P瓷片电容2只DC电源座1只开关1只4.7K电阻5只5V继电器1只红色发光二极管1只精密可调电位器1只单排座1条单排针1条USB电源线1条SS8550三极管2只10K电阻1只10u电解电容1只蜂鸣器1只排阻4.7K1只导线若干表4.1.元器件清单4.9 电路焊接4.9.1.焊接所需工具工具名称数量焊烙铁50W1只带松香焊丝若干万用表一个表4.2 焊接所需工具4.9.2电路焊接实物图图4.7 正面焊接实物图图4.8

35、 反面焊接实物图第五章 软件的设计与实现 软件的设计从设计原理和主程序流程图两方面进行说明5.1设计原理 本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入

36、部分、密码存储部分、显示部分、报警部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。5.2 主程序流程图主程序对模块进行初始化,而后调用密码输入子程序、密码比较子程序、判断密码是否输入正确。主程序流程图如图5.1所示。初始化 密码比较子程序 密码输入子程序 报警子程序 显示子程序 开始 判断密码输入是否正确? 结束 否 是 图5.1 系统主程序流程图第六章 程序调试把写好的汇编语言程序的载入软件调试工具,检查软件是否有设法错误,再根据软件提示对本程序进行修改,直到没有错误再生成单片机能

37、运行的机器码,再用51开发板或其它单怎机写入工具把机器码写入单片机进行实际的程序调试,根据实际情况再对程序的不足加以修改,直到满足设计要求。6.1 程序调试用到的软件及工具调试本程序需要用到KEIL C51,及51开发板一块及其配套的下载烧录软件6.2 KEIL C51简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,

38、只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 C51工具包的整体结构: uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的

39、Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。6.3 调试过程 首先打开KEIL C51主程序,新建工程,新建文本框写入程序,保存,检查是否有语法错误,经反复检查无误后汇编,生成51单片机可执行的HEX文件。然后用51开发板相匹配的烧录软件把HEX文件写入单片机。图6.1 keil c51调试介面图6.2 单片机烧录软件介面第七章 结论本设计从经济实用的角度出发,采用美国Atmel公司的单片机STC89C52与低功耗CMOS型E2PROM AT24C02作为主控芯片与数据存储器单元,结

40、合外围的键盘输入、显示、报警等电路并用汇编编写主控芯片的控制程序,研制了一款可以多次更改密码具有报警功能的电子密码锁。设计完全可行可以达到设计目地。使用单片机制作的电子密码锁具有软硬件设计简单,易于开发,成本较低,安全可靠,操作方便等特点,可应用于住宅、办公室的保险箱及档案柜等需要防盗的场所,有一定的实用性。该电路设计还具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码等多种功能。可在意外泄密的情况下随时修改密码。保密性强,灵活性高,特别适用于家庭、办公室、学生宿舍及宾馆等场所。在做毕业设计期间,在老师的指导下,通过自身的不断努力,无论是思想上,学习上,都取得了长足的发展和巨

41、大的收获,现将工作总结如下:思想上,学会了用科学的精神去解决问题。很多事情看起来是很简单的问题,但实际做起来去会发现有许多奥妙!这是因为其中蕴含着许多科学的问题。运用科学的方法去解决问题,这是我这次实训给我带来的思想上的改变。学习上,使自已在大学所以的知识在这次得到实践,学到一些书本上无法学到的经验,对电子元件有了进一步的认识。电子锁是信息化时代发展的产物,应时而生,我相信随着科技的不断发展,将来的电子锁一定更加完美,更加人性化,更加便宜,更加安全。致谢这次的毕业设计是在老师的悉心指导下完成的。从课题的选择、设计到论文的撰写以至最终定稿,期间遇到很多很多问题,都得到了老师全力细心的指导。在此,

42、向老师表示衷心的感谢!感谢电子科学与技术专业的所有领导和老师多年来对我的培养、帮助,使本人在本科学习中不仅学到了必备的专业知识技能和思考解决问题的方法,还学到了严谨治学的科研精神和积极进取的人生态度。谢谢各位老师的精心培养,热心帮助和鼓励。感谢老师所带毕业设计小组的所有同学,正是大家衷心的鼓励和热情的帮助,才使我能够顺利地完成本次设计。同时,感谢电子专业的所有同学,给我创造了一个团结进取,充满温暖,充满爱的大集体,使我快乐而且充实地渡过了人生中最美好的大学时光。参考文献 1 石文轩,宋薇,基于单片机MCS一51的智能密码锁设计,武汉工程职业技术学院学报,2004,(01)2 祖龙起,刘仁杰,一

43、种新型可编程密码锁,大连轻工业学院学报,2002,(01)3 郭海英,基于单片机的电子安全密码锁的设计,现代电子技术,2005,(13)4 李明喜,新型电子密码锁的设计,机电产品开发与创新,2004,(03)5 董继成,一种新型安全的单片机密码锁,电子技术,2004,(03)6 王千著,实用电子电路大全,电子工业出版社,20017 何立民著,单片机应用技术选编,北京:北京航空大学出版社,20058 李华著,MCS-51系列单片机使用接口技术,北京航空航天大学出版社,20039 潘永雄著,新编单片机原理与应用,西安:西安电子科技大学出版社,200310 童诗白著,华成英,模拟电子技术基础,北京:

44、高等教育出版社,200011 阎石主著,数字电子技术基础,北京:高等教育出版社,200312 樊昌信著,曹丽娜.通信原理,北京:国防工业出版社,200713 李瀚荪著,电路分析基础,北京:高等教育出版社2001附录附录A 系统设计源代码#include #include#define LCM_Data P0#define uchar unsigned char #define uint unsigned int#define w 6/定义密码位数sbit lcd1602_rs=P25;sbit lcd1602_rw=P26;sbit lcd1602_en=P27;sbit Scl=P34;/2

45、4C02串行时钟sbit Sda=P35;/24C02串行数据sbit ALAM = P21;/报警sbit KEY = P20;/开锁sbit open_led=P22;/开锁指示灯bit operation=0;/操作标志位bit pass=0;/密码正确标志bit ReInputEn=0;/重置输入充许标志bit s3_keydown=0;/3秒按键标志位bit key_disable=0;/锁定键盘标志unsigned char countt0,second;/t0中断计数器,秒计数器void Delay5Ms(void);unsigned char code a=0xFE,0xFD,

46、0xFB,0xF7; /控盘扫描控制表unsigned char code start_line= password: ;unsigned char code name = Coded Management;/显示名称unsigned char code Correct = correct ; /输入正确unsigned char code Error = error ; /输入错误unsigned char code codepass= pass ; unsigned char code LockOpen= true ;/OPENunsigned char code SetNew = Set

47、NewWordEnable;unsigned char code Input = input: ;/INPUTunsigned char code ResetOK = ResetPasswordOK ;unsigned char code initword= Init password.;unsigned char code Er_try= error,try again!;unsigned char code again= input again ;unsigned char InputData6;/输入密码暂存区unsigned char CurrentPassword6=1,3,1,4,

48、2,0; /当前密码值unsigned char TempPassword6;unsigned char N=0;/密码输入位数记数unsigned char ErrorCont;/错误次数计数unsigned char CorrectCont;/正确输入计数unsigned char ReInputCont; /重新输入计数unsigned char code initpassword6=1,2,3,4,5,6;/=5ms延时=void Delay5Ms(void)unsigned int TempCyc = 5552;while(TempCyc-);/=400ms延时=void Delay

49、400Ms(void) unsigned char TempCycA = 5; unsigned int TempCycB; while(TempCycA-) TempCycB=7269; while(TempCycB-); /=/=24C02=/=void mDelay(uint t) /延时 uchar i; while(t-) for(i=0;i125;i+) ; void Nop(void) /空操作 _nop_(); _nop_(); _nop_(); _nop_();/*起始条件*/void Start(void) Sda=1; Scl=1; Nop(); Sda=0; Nop()

50、; /*停止条件*/void Stop(void) Sda=0; Scl=1; Nop(); Sda=1; Nop();/*应答位*/void Ack(void)Sda=0;Nop();Scl=1;Nop();Scl=0;/*反向应答位*/void NoAck(void) Sda=1; Nop(); Scl=1; Nop(); Scl=0; /*发送数据子程序,Data为要求发送的数据*/void Send(uchar Data) uchar BitCounter=8; uchar temp; do temp=Data; Scl=0; Nop(); if(temp&0x80)=0x80) Sd

51、a=1; else Sda=0; Scl=1; temp=Data1; Data=temp; BitCounter-; while(BitCounter); Scl=0;/*读一字节的数据,并返回该字节值*/uchar Read(void) uchar temp=0;uchar temp1=0;uchar BitCounter=8;Sda=1;doScl=0;Nop();Scl=1;Nop();if(Sda)temp=temp|0x01;elsetemp=temp&0xfe;if(BitCounter-1)temp1=temp1;temp=temp1;BitCounter-;while(Bit

52、Counter);return(temp);void WrToROM(uchar Data,uchar Address,uchar Num) uchar i; uchar *PData; PData=Data; for(i=0;iNum;i+) Start(); Send(0xa0); Ack(); Send(Address+i); Ack(); Send(*(PData+i); Ack(); Stop(); mDelay(20); void RdFromROM(uchar Data,uchar Address,uchar Num) uchar i; uchar *PData; PData=Data; for(i=0;i0;x-) for(y=110;y0;y-);/-写指令-write_1602com(uchar com)/*液晶写入指令函数*lcd1602_rs=0;/数据/指令选择置为指令lcd1602_rw=0; /读写选择置为写P0=com;/送入数据delay(1);lcd1602_en=1;/拉高使能端,为制造有效的下降沿做准备delay(1);lcd1602_en=0;/en由高变低,产生下降沿,液晶执行命令/-写数据-write_1602dat(uc

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!