基于51单片机的密码锁设计

上传人:仙*** 文档编号:102206939 上传时间:2022-06-06 格式:DOC 页数:29 大小:132.50KB
收藏 版权申诉 举报 下载
基于51单片机的密码锁设计_第1页
第1页 / 共29页
基于51单片机的密码锁设计_第2页
第2页 / 共29页
基于51单片机的密码锁设计_第3页
第3页 / 共29页
资源描述:

《基于51单片机的密码锁设计》由会员分享,可在线阅读,更多相关《基于51单片机的密码锁设计(29页珍藏版)》请在装配图网上搜索。

1、-基于AT89S51与AT24C02密码锁的设计大学应用技术学院目 录前言1第一章绪论2第1.1节研究背景2第1.2节电子密码控制简介2第1.3节国外研究现状和开展趋势2第1.4节本设计所要实现的目标3第二章主要元器件介绍及IIC总线说明4第2.1节主控芯片AT89S5242.1.1. 主要性能参数42.1.2. 功能特性概述42.1.3. 引脚功能说明52.1.4. 特殊功能存放器6第2.2节 AT24C0292.2.1. 性能102.2.2. 引脚功能描述10第2.3节 LCD1602102.3.1. 接口信号说明11第2.4节晶振振荡器11第3章系统硬件构成13第3.1节设计原理13第3

2、.2节电路总图构成133.2.1. 报警局部143.2.2. AT24C02存储局部143.2.3. 显示局部153.2.4. 复位电路153.2.5. 晶振局部163.2.6. 开锁电路163.2.7. 键盘输入模块17第4章仿真设计18第4.1节 Protues仿真软件概述18第4.2节 Protues与Keil的连调18. z.-第4.3节 Protues与Keil的连调的仿真结果19第5章系统软件设计21第5.1节主程序流程图21第5.2节按键功能流程图21第5.3节密码设置流程图22第5.4节开锁流程图23结论24参考文献25致26附录27附录1: 实物照片27附录2: 局部源程序2

3、9. z.-基于AT89S51与AT24C02密码锁的设计大学应用技术学院【摘要】:电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比拟高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。本文从经济实用的角度出发,采用美国Atmel公司的单片机AT89S52作为主控芯片与数据存储器单元,结合外围的矩阵键盘输入、LCD液晶显示、报警、开锁等,用C语言编写主控芯片的控制程序与EEPROM读写程序相结合,设计了一款可以屡次更改密码,具有报警功能的电子密码控制系统。这种电路设计具

4、有防试探按键输入、智能控制上锁、开锁、报警、修改密码等多种功能。【关键词】:密码控制;单片机;报警;Abstract:The electronic cipher lock is a electronic products, which control the mechanical switch by the control circuit or chip when you input a password. It has many different types ,for e*ample, simple circuit products , chip products with a highe

5、r value. Now the widely used electronic locks are based on the chip and achieve the function by programming. This article from the economical and practical point of view,the use of the United States Atmel Corporation AT89S51 microcontroller as a master chip and the data memory unit,bined with the e*

6、ternal matri* keyboard input,LED digital display,alarm,unlock and so on,dolminated by the C programming language chip EEPROM of the control procedures and the bination of reading and writing program designed to change a password many times,the police function with the electronic the password control

7、.This circuit design with anti-test button input,intelligent control lock,unlock,alarm,multiple functions,such as Change Password. Key words:Password control; Singlechip; Alarm;. z.-前言随着科学技术的不断提高,人们对日常生活中的平安防盗器件的要求越来越高。传统的机械式钥匙由于平安性能差,携带不便等缺点,已不能满足人的需要,随着大规模集成电路技术的开展,特别是单片机的问世,出现了许多带微处理器的电子密码锁,有效地抑制

8、了机械式密码锁密码量少、平安性能差的缺点,使密码锁在技术和性能上都有了大大的提高,并且还具有易操作、功耗低、本钱低等优点,从而使电子密码锁成为目前市场上的主流产品。而近年来出现的智能密码锁,由于其本钱较高,一定程度上限制了这类产品的普及和推广。现今常见的密码锁设计主要有两种方案,一种是中规模集成电路控制的方案,另一种是单片机控制的方案。对于采用集成电路控制的方案,其中的编码电子锁电路分为编码电路、控制电路、复位电路、解码电路、防盗报警电路、门铃电路,而电子锁主要由输入元件、电路(包括电源)以及锁体三局部组成。显然此种方案的物理实现构造较为复杂且重新设置密码、输入密码的操作过程也会给用户带来一定

9、的不方便;而利用单片机控制的方案,由于单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现根本的密码锁功能,还能添加掉电存储、声光提示甚至添加遥控控制功能,但其也有一定的局限性,就在于其控制原理的复杂以及要求设计人员具有更加良好的程序设计能力,调试较为繁琐,否则程序一旦跑飞将造成意想不到的损失。通过对这两种方案的优缺点比拟,再考虑到本人自己对单片机设计具有一定的根底,所以此次选择利用单片机来进展密码锁的设计。本设计采用单片机为主控芯片,结合外围电路,组成电子密码控制系统,用户想要翻开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示,为了提高平安性,当密码输入错误三

10、次将报警。密码可以由用户自己修改设定,锁翻开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。第一章 绪论第1.1节 研究背景在人们的日常生活中,锁被广泛使用,人们常用锁来锁一些贵重物品乃至自己的家门,目的就是为了提高平安性。常见的锁有普通机械锁、机械密码锁、电磁卡锁、指纹虹膜锁等。而普通的机械锁极容易被强行破坏,平安系数不高;机械密码锁虽然平安系数高但造价相对较高,目前在保险柜上应用较多;电磁卡锁由于磁卡信息极易受外界干扰而失磁导致无法开锁,而指纹虹膜锁虽然平安性很好,但会因手指划伤虹膜充血等收到限制。通过分析我们不难发现传统密码锁或多或少存在一些缺乏

11、从而降低了其的平安性,因此研究一种新型的密码锁是具有有很高的现实需求性。随着电子科技的开展,将电子芯片跟传统机械锁结合起来设计成一种新型的密码锁而电子密码锁作为一种新型的锁已经成功,即电子密码锁。在平安技术防领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁。电子密码锁与传统密码锁想比拟,拥有海量的密齿,通常从10000到10000000不等,抑制了机械式密码锁密码量少、平安性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。从是否方便的角度看,电子密码锁省去了传统机械锁的钥匙,电磁卡锁的磁卡,使用者只要记得其密码,便可以开启,从而大大提高了其适用性。因此电子密码锁的具有较

12、高的研究价值。第1.2节 电子密码控制简介电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。电子密码控制不管性能还是平安性都已大大超过了机械类。其特点如下:1)性好,编码量多,远远大于机械控制。随机开锁成功率几乎为零。2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以防止因人员的更替而使控制的性下降。3)误码输入保护,当输入密码屡次错误时,报警系统自动启动。4)无活动零件,不会磨损,寿命长。5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。6)电子密码控制系统具有操作简单易行,一学即会的特点。第1.3节 国外研究现状和开展趋势

13、早在80年代,日本产生了最早的电子密码锁。随着日本经济复,电子行业的快速开展,一些利用简单的门电路设计的密码锁出现了。这类电路平安性差,容易破解。到了90年代,美国、意大利、德国、日本、加拿大、国以及我国的、等地的微电子技术的进步和通信技术的开展为密码锁提供了技术上的根底,从而推动密码锁走向实际应用的阶段。我国于90年代初开场对密码锁进展初步的探索。到目前为止,在此领域虽已有较大的开展,采用各种电路进展设计的比拟多,技术也相领先进,电子技术开展至今已到达相当高的水平,电子密码锁技术已十分成熟。第1.4节 本设计所要实现的目标本设计采用单片机为主控芯片,结合外围电路,组成电子密码控制系统,用户想

14、要翻开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示,为了提高平安性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁翻开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。第二章 主要元器件介绍及IIC总线说明第2.1节 主控芯片AT89S52AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器既可在线编程ISP也可用传统方法进展编程及通用8

15、位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。. 主要性能参数与MCS-51产品指令系统完全兼容4k字节在系统编程ISPFlash闪速存储器1000次擦写周期4.05.5V的工作电压围全静态工作模式:0Hz33MHz三级程序加密锁1288字节部RAM32个可编程IO口线2个16位定时计数器6个中断源全双工串行UART通道低功耗空闲和掉电模式中断可从空闲模唤醒系统看门狗WDT及双数据指针掉电标识和快速编程特性灵活的在系统编程ISP字节或页写模式. 功能特性概述AT89S51 提供以下标准功能:4k 字节Fl

16、ash 闪速存储器,128字节部RAM,32个IO 口线,看门狗WDT,两个数据指针,两个16 位定时计数器,一个5 向量两级中断构造,一个全双工串行通信口,片振荡器及时钟电路。同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停顿CPU的工作,但允许RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的容,但振荡器停顿工作并制止其它所有部件工作直到下一个硬件复位。. 引脚功能说明P0口:P0口是一组8位漏极开路型双向I0口,也即地址数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l可作为高阻抗输入端用。在访

17、问外部数据存储器或程序存储器时,这组口线分时转换地址低8位和数据总线复用,在访问期间激活部上拉电阻。在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:Pl 是一个带部上拉电阻的8位双向IO口,Pl的输出缓冲级可驱动吸收或输出电流4个TTL逻辑门电路。对端口写“l,通过部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为部存在上拉电阻,*个引脚被外部信号拉低时会输出一个电流IIL。Flash编程和程序校验期间,Pl接收低8位地址。端口引脚第二功能:P1.5 MOSI用于ISP犏程P1.6 MISO用于ISP犏程P1.7 SCK

18、用于ISP犏程P2 口:P2 是一个带有部上拉电阻的8 位双向IO 口,P2 的输出缓冲级可驱动吸收或输出电流4 个TTL逻辑门电路。对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为部存在上拉电阻,*个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8 位地址的外部数据存储器时,P2 口线上的容也即特殊功能存放器SFR区中P2存放器的容,在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。P3 口:P3 口是一组带有部上拉电阻的8 位双向I0 口。P3 口输

19、出缓冲级可驱动吸收或输出电流4 个TTL逻辑门电路。对P3口写入“l时,它们被部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I0口线外,更重要的用途是它的第二功能,如下表所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。端口引脚的第二功能P3.0 R*D串行输入口P3.1 T*D串行输出口P3.2 INT0外中断0P3.3 INT1外中断1P3.4 T0定时计数器0外部输入P3.5 T1定时计数器1外部输入P3.6 WR外部数据存储器写选通P3.7 RD外部数据存储器读选通RST:复位输入。当振荡器工作时,RST引

20、脚出现两个机器周期以上高电平将使单片机复位。WDT 溢出将使该引脚输出高电平,设置SFR AU*R的DISRT0 位地址8EH可翻开或关闭该功能。DISRT0位缺省为RESET输出高电平翻开状态。ALEPROG:当访问外部程序存储器或数据存储器时,ALE地址锁存允许输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE 仍以时钟振荡频率的 16 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对F1ash存储器编程期间,该引脚还用于输入编程脉冲PROG。如有必要,可通过对特殊功能存放器SFR区中的8EH 单元的D0 位

21、置位,可制止ALE 操作。该位置位后,只有一条M0V*和M0VC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许PSEN输出是外部程序存储器的读选通信号,当AT89S51 由外部程序存储器取指令或数据时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。EAVPP:外部访问允许。欲使CPU仅访问外部程序存储器地址为0000HFFFFH,EA端必须保持低电平接地。需注意的是:如果加密位LB1被编程,复位时部会锁存EA端状态。如EA端为高电平接Vcc端,CPU则执行部程序存储器中的指令。F1

22、ash存储器编程时,该引脚加上+12V的编程电压Vpp。*TALl:振荡器反相放大器及部时钟发生器的输入端。*TAL2:振荡器反相放大器的输出端。. 特殊功能存放器这些地址并没有全部占用,没有占用的地址亦不可使用,读这些地址将得到一个随意的数值。而写这些地址单元将不能得到预期的结果。不要软件访问这些未定义的单元,这些单元是留作以后产品扩展用途的,复位后这些新的位将为0。中断存放器:各中断允许控制位于IE存放器,5个中断源的中断优先级控制位于IP存放器。双时钟指针存放器:为更方便地访问部和外部数据存储器,提供了两个16位数据指针存放器:DP0位于SFR特殊功能存放器区块中的地址82H、83H和D

23、P1位于地址84H、85H,当SFR中的位DPS=0选择DP0,而DPS=1则选择DP1。用户应在访问相应的数据指针存放器前初始化DPS位。电源空闲标志:电源空闲标志POF在特殊功能存放器SFR 中PCON的第4 位PCON.4,电源翻开时POF 置“1,它可由软件设置睡眠状态并不为复位所影响。存储器构造:MCS-51单片机核采用程序存储器和数据存储器空间分开的构造,均具有64KB外部程序和数据的寻址空间。程序存储器:如果EA引脚接地GND,全部程序均执行外部存储器。在AT89S51,假设EA接至Vcc电源+,程序首先执行地址从0000H0FFFH4KB部程序存储器,再执行地址为1000HFF

24、FFH60KB的外部程序存储器。数据存储器:AT89S51 的具有128字节的部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进展,128字节均可设置为堆栈区空间。看门狗定时器WDT:WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看门狗复位SFRWDTRST构成。外部复位时,WDT默认为关闭状态,要翻开WDT,用户必须按顺序将01EH和0E1H写到WDTRST存放器SFR地址为0A6H,当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT 溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RST引脚输出高

25、电平的复位脉冲。使用看门狗WDT:翻开WDT需按次序写01EH和0E1H到WDTRST存放器SFR的地址为0A6H,当WDT翻开后,需在一定的时候01EH 和0E1H 到WDTRST 存放器以防止WDT 计数溢出。14 位WDT 计数器计数到达163833FFFH,WDT 将溢出并使器件复位。WDT 翻开时,它会随晶体振荡器在每个机器周期计数,这意味着用户必须在小于每个16383 机器周期复位WDT,也即写01EH和0E1H到WDTRST存放器,WDTRST为只写存放器。WDT计数器既不可读也不可写,当WDT溢出时,通常将使RST引脚输出高电平的复位脉冲。复位脉冲持续时间为98Tosc,而To

26、sc=1Fosc晶体振荡频率。为使WDT工作最优化,必须在适宜的程序代码时间段周期地复位WDT防止WDT溢出。掉电和空闲状态时的WDT:掉电时期,晶体振荡停顿,WDT也停顿。掉电模式下,用户不能再复位WDT。有两种方法可退出掉电模式:硬件复位或通过激活外部中断。当硬件复位退出掉电模式时,处理WDT 可象通常的上电复位一样。当由中断退出掉电模式则有所不同,中断低电平状态持续到晶体振荡稳定,当中断电平变为高即响应中断效劳。为防止中断误复位,当器件复位,中断引脚持续为低时,WDT并未开场计数,直到中断引脚被拉高为止。这为在掉电模式下的中断执行中断效劳程序而设置。为保证WDT在退出掉电模式时极端情况下

27、不溢出,最好在进入掉电模式前复位WDT。在进入空闲模式前,WDT 翻开时,WDT 是否继续计数由SFR 中的AU*R 的WDIDLE 位决定,在IDLE 期间位WDIDLE=0默认状态是继续计数。为防止AT89S51从空闲模式中复位,用户应周期性地设置定时器,重新进入空闲模式。当位WDIDLE被置位,在空闲模式中WDT将停顿计数,直到从空闲IDLE模式中退出重新开场计数。中断:AT89S51共有5个中断向量:2个外中断INT0和INT1,2个定时中断Timer0和Timer1和一个串行中断。这些中断源各自的制止和使能位参见特殊功能存放器的IE。IE也包含总中断控制位EA,EA清0,将关闭所有中

28、断。定时器0和定时器1 的中断标志TF0和TF1,它是定时器溢出时的S5P2时序周期被置位,该标志保存至下个时序周期。晶体振荡器特性:AT89S51 中有一个用于构成部振荡器的高增益反相放大器,引脚*TAL1 和*TAL2 分别是该放大器的输入端和输出端。这个放大器与作为反响元件的片外石英晶体或瓷谐振器一起构成自激振荡器。外接石英晶体或瓷谐振器及电容Cl、C2 接在放大器的反响回路中构成并联振荡电路。对外接电容Cl、C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的上下、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30pF10pF,而如使用

29、瓷谐振器建议选择40pF10F。用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到*TAL1端,即部时钟发生器的输入端,*TAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。空闲节电模式:在空闲工作模式状态,CPU保持睡眠状态而所有片的外设仍保持激活状态,这种方式由软件产生。此时,片RAM和所有特殊功能存放器的容保持不变。空闲模式可由任何允许的中断请求或硬件复位终止。需要注意的是,当由硬件复位来终止空闲工作模式时,CPU 通常是从激活空闲模式那条指令的下一条指令开

30、场继续执行程序的,要完成部复位操作,硬件复位脉冲要保持两个机器周期24个时钟周期有效,在这种情况下,部制止CPU 访问片RAM,而允许访问其它端口。为了防止在复位完毕时可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。掉电模式:在掉电模式下,振荡器停顿工作,进入掉电模式的指令是最后一条被执行的指令,片RAM和特殊功能存放器的容在终止掉电模式前被冻结。退出掉电模式的方法是硬件复位或由处于使能状态的外中断INT0和INT1激活。复位后将重新定义全部特殊功能存放器但不改变RAM 中的容,在Vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡

31、器重启动并稳定工作。Flash闪速存储器的并行编程:AT89s51 单片机部有4k 字节的可快速编程的Flash 存储阵列。编程方法可通过传统的EPROM 编程器使用高电压+12V和协调的控制信号进展编程。AT89S51的代码是逐一字节进展编程的。数据查询:AT89S5l 单片机用数据查询方式来检测一个写周期是否完毕,在一个写周期中,如需读取最后写入的那个字节,则读出的数据的最高位P0.7是原来写入字节最高位的反码。写周期完成后,有效的数据就会出现在所有输出端上,此时,可进入下一个字节的写周期,写周期开场后,可在任意时刻进展数据查询。ReadyBusy:字节编程的进度可通过“RDYBSY输出信

32、号监测,编程期间,ALE变为高电平“H后P3.0端电平被拉低,表示正在编程状态忙状态。编程完成后,P3.0变为高电平表示准备就绪状态。程序校验:如果加密位LB1、LB2没有进展编程,则代码数据可通过地址和数据线读回原编写的数据,各加密位也可通过直接回读进展校验。读片签名字节:AT89S51 单片机有3 个签名字节,地址为000H、100H 和200H。用于声明该器件的厂商和型号等信息,读签名字节的过程和正常校验相仿,只需将P3.6和P3.7保持低电平。芯片擦除:在并行编程模式,利用控制信号的正确组合并保持ALEPROG引脚200ns500ns的低电平脉冲宽度即可完成擦除操作。在串行编程模式,芯

33、片擦除操作是利用擦除指令进展。在这种方式,擦除周期是自身定时的,大约为500ms。擦除期间,用串行方式读任何地址数据,返回值均为00H。Flash闪速存储器的串行编程:将RST接至Vcc,程序代码存储阵列可通过串行ISP 接口进展编程,串行接口包含SCK线、MOSI输入和MISO输出线。将RST拉高后,在其它操作前必须发出编程使能指令,编程前需将芯片擦除。芯片擦除则将存储代码阵列全写为FFH。外部系统时钟信号需接至*TAL1端或在*TALl 和*TAL2接上晶体振荡器。最高的串行时钟SCK不超过l16晶体时钟,当晶体为33MHz时,最大SCK频率为2MHz。数据校验:数据校验也可在串行模式下进

34、展,在这个模式,在一个写周期中,通过输出引脚MISO串行回读一个字节数据的最高位将为最后写入字节的反码。第2.2节 AT24C02AT24C02支持I2C总线数据传送协议,I2C总线协议规定:任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停顿信号的主器件控制的,AT24C02作为从器件。虽然主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据发送或接收的模式。. 性能与400KHz I2C总线兼容1.8 到6.0 伏工作电压围低功耗CMOS 技术写保护功能当WP 为高电平时进入写保护状态页写缓冲器自定时擦写周期1,000,0

35、00 编程/擦除周期可保存数据100 年8 脚DIP SOIC 或TSSOP 封装温度围商业级工业级和汽车级. 引脚功能描述VCC +1.8V 6.0V 工作电压VSS 地SCL 串行时钟:串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。SDA 串行数据/地址:双向串行数据/地址管脚用于器件所有数据的发送或接收,SDA 一个开漏输出管脚,可与其它开漏输出或集电极开路输出进展线或wire-OR。A0 A1 A2 器件地址输入端:这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0 ,24WC01 除外。当使用24WC01 或24WC02 时最大可级联8 个器

36、件,如果只有一个24WC02 被总线寻址这三个地址输入脚A0 A1 A2 可悬空或连接到Vss,如果只有一个24WC01 被总线寻址这三个地址输入脚A0 A1 A2 必须连接到Vss。当使用24WC04 时最多可连接4 个器件该器件仅使用A1 A2 地址管脚A0 管脚未用可以连接到Vss 或悬空,如果只有一个24WC04 被总线寻址,A1 和A2 地址管脚可悬空或连接到Vss。当使用24WC08 时最多可连接2 个器件且仅使用地址管脚A2 A0 ,A1 管脚未用可以连接到Vss 或悬空,如果只有一个24WC08 被总线寻址A2 管脚可悬空或连接到Vss。当使用24WC16 时最多只可连接1 个

37、器件所有地址管脚A0 A1 A2 都未用管脚可以连接到Vss 或悬空。WP 写保护:如果WP 管脚连接到Vcc,所有的容都被写保护只能读。当WP 管脚连接到Vss 或悬空,允许器件进展正常的读/写操作。第2.3节 LCD1602现在的字符型液品模块已经是单片机应用设计中最常用的信息显示器件了。1602型LCD显示模块具有体积小,功耗低,显示容丰富等特点。1602型LCD可以显示2行16个字符,有8位数据总线D0D7和Rs,RW,EN三个控制端口,工作电压为5V,并且具有字符比照度调节和背光功能。. 接口信号说明1602型LCD的接口信号说明如表2-1所示:表2-1 1602型LCD的接口信号说

38、明编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VO液晶显示偏压信号11D4Data I/O4RS数据/命令选择端H/L12D5Data I/O5R/W读写选择端H/L13D6Data I/O6E使能信号14D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极1602型LCD的主要技术参数如表2-2所示:表2-2 1602型LCD的主要技术参数显示容量芯片上作电压工作电流模块最正确工作电压 字符尺寸16*2个字符4.55.5V 2.0mA(5.0V) 5.0V 2.95*4.35

39、 mm根本操作程序读状态:输入:RS=L,RW=L,E=H 输出:DO-D7=状态字读数据:输入:RS=H,RW=H,E=H 输出:无写指令:输入:RS=L,RW=L,D0-D7=指令码,E=高脉冲 输出:D0-D7=数据写数据:输入:RS=H,RW=L,D0-D7=数据,E=高脉冲 输出:无第2.4节 晶振振荡器晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。如果需要对这两种音频同时支持的话,声卡就

40、需要有两颗晶振。但是现在的娱乐级声卡为了降低本钱,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。现在应用最广泛的是石英晶体振荡器。石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。为数据处理设备产生时钟信号和为特定系统提供基准信号。在单片机中为其提供时钟频率。石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效

41、应制成的一种谐振器件,它的根本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷上银层用作电极使用,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。其产品一般用金属外壳封装,也有用玻璃壳、瓷或塑料封装的。只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应。当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。本设计中采用12MHz做系统的外部晶振。电容取值为30pF。第3章 系统硬件构成第3.1节 设计原

42、理本设计采用AT89S52为主控芯片,通过IIC总线协议与AT24C02进展通信。电路的辅助模块有复位电路、矩阵按键电路、继电器电路、报警电路。在进展keil c编程的时候,首先在程序中设置初始密码。在进展开锁的时候,用户需要进展根据提示进展使用按键输入密码,在输入密码的同时主控芯片单片时机根据程序的设定和输入的密码进展比拟,如果输入每个密码都正确的情况下,则液晶会提示用户进展相应的操作,如进展修改密码。报警与开锁电路实际是在在密码已经进展比对以后,主控芯片通过判断的结果给出相应的操作,即相应的I/O端口会出现上下电平的变化,从而实现开锁与报警的功能。系统框图如图3-1所示图3-1 系统框图第

43、3.2节 电路总图构成在确定了选用什么型号的单片机后,就要确定在外围电路,其外围电路包括电源输入局部、存储局部、键盘输入局部、复位局部、晶振局部、显示局部、报警局部、开锁局部组成,根据实际情况键盘输入局部选择4*4矩阵键盘,显示局部选择字符型液晶显示LCDl602。电路总图如图3-2所示:图3-2 电路总原理图. 报警局部当密码输入两次的数值与所设定的参数值不同时,单片机AT89C51便通过P2.7口控制三极管来驱动扬声器报警,当输出低电平时三极管截止,当输出高电平时三极管导通扬声器报警。如图3-3所示图3-3 报警电路原理图. AT24C02存储局部掉电存储单元的作用是在电源断开的时候,存储

44、当前设定的单价信息。AT24C02是ATMEL公司开发的可擦除存储芯片,AT24C02是一个2K位串行CMOS E2PROM, 部含有256个8位字节,AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进展操作,有一个专门的写保护功能。 采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。如图3-4所示图3-4 2AT24C02 原理图电路. 显示局部为了提高密码锁的密码显示效果能力。本设计的显示局部由液晶显示器LCDl602取代普通的数码管来完成。

45、只有按下键盘上的开启按键后,显示器才处于开启状态。同理只有按下关闭按键后显示器才处于关闭状态。否则显示器将一直处于初始状态,当需要对密码锁进展开锁时,按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个“*,输入多少位就显示多少个“*。当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD子显示“RIGHT,单片机其中P2.0引脚会输出低电平,使三极管T2导通,电磁铁吸合,电子密码锁被翻开,如果密码不正确,LCD显示屏会显示“ERROR,P2.0输出的是高电平,电子密码锁不能被翻开。通过LCD显示屏,可以清楚的判断出密码锁所处的状态。其显示局部引脚

46、接口如图3-5所示:图3-5 液晶显示电路和上拉电阻驱动. 复位电路复位电路图3-12是单片机复位电路具有上电自动复位和手动复位的双重功能。单片机的RST引脚是复位信号的输入端,复位信号是高电平的时候才有效,其有效时间应持续24个震荡脉冲周期即2个机器周期以上;通常为了保证应用系统能够准确地复位,复位电路应使引脚RST脚保持10ms以上的高电平状态。只要RST保持高电平,单片机就会自动循环复位。当RST引脚从高电平状态转为低电平状态时,单片机退出复位状态,从程序存储器的0000H地址开场执行用户程序。电容C3和电阻R5组成上电复位电路。上电瞬间RST引脚获得高电平,随着电容C11的充电,RST

47、引脚的高电平逐渐下降。只要高电平保持足够的时间,单片机就能完成复位。手动复位如图3-6所示图3-6 复位电路. 晶振局部AT89S52引脚*TAL1和*TAL2与晶体振荡器及电容C2、C3按图4-6所示方式连接。晶振、电容C2C3及片与非门(作为反响、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C2、C3的容量有关,但主要由晶振频率决定,围在033MHz之间,电容C2、C3取值围在2040pF之间。根据实际情况,本设计中采用12MHz做系统的外部晶振。电容取值为30pF。电路如图3-7图3-7 晶振电路. 开锁电路开锁电路的功能是当输入正确的密码后密码锁将被锁定,既开锁。当单

48、片机P2.6引脚发出信号经三极管放大后,触动电磁阀即会把锁翻开。一旦输入密码,单片机便会与初始密码进展比对,如果密码输入两次都与原始密码不相符即会报警。电路如图3-8所示图3-8 开锁电路. 键盘输入模块键盘是单片机十分重要的输入设备,是实现人机对话的纽带。键盘是由一组规则排列的按键组成,一个按键实际上就是一个开关元件,即键盘是一组规则排列的开关。根据按键与单片机的连接方式不同,按键主要分为独立式按键和矩阵式按键 ,有了这些按键,对单片机的控制就方便多了。本设计按键数量较多,所以采用矩阵式按键以节省I/O口线。将16个按键分为4排4列排列好,如图3-9矩阵键盘硬件构造。当有一个键按下时,通过*

49、一边引脚赋低电平,扫描全部引脚看是否与最初的赋值一样,不一样则根据相应的算法通过改变后的值与初始值相或,根据结果赋值确定是哪个键按下。键盘为44形式,按键包括阿拉伯数字09,以及锁定、更改和改密三个应用按键。当用户需要输入密码或修改密码时,按下相应按键即会与单片机产生信号,并会执行相应的程序。电路如图3-9所示图3-9 矩阵键盘电路第4章 仿真设计第4.1节 Protues仿真软件概述Protues是目前使用比拟广泛的单片机类的仿真系统的软件之一,它可以实现的功能比拟多,可以实现程序与原理图的连调,也可以单独作为绘制原理图的工具使用,与Protel有着过之不及的功能,于此同时还可以进展PCB幅

50、员的生成,在方法中与Protel类似。此款软件及绘制原理图、PCB幅员和仿真于一身。Protues此款软件的使用比拟简单。在运行环境搭载好的前提下,翻开ISIS直接进入到主界面,在左边栏框中有一个快捷键P(从库中选取),点击后出现一个对话框然后输入想要查找的元器件即可。之后在单击确定按键所选器件就会显示在界面左上角的小框中此时点击鼠标左键就会放到图层中,然后直接把鼠标放到接头处就会显示一个画笔的标志此时按住鼠标左键就可进展连线了。如图4-1所示为绘图界面。图4-1 绘图界面第4.2节 Protues与Keil的连调在进展连调之前必须确保程序是完整的,原理图也是没有错误的。还要在正确的运行平台下

51、进展操作。检查没有错误后,翻开原理图,点击单片机就会出现一个对话框如图5-2所示,然后把生成的.he*文件添加到里面即可实现。在这里比拟重要的就是.he*文件的生成过程。首先把已编写好的程序加载到Keil软件下进展编译如果没有遇到任何错误后,选择相应的选项就可以生成.he*文件了。之后再按照生成的的路径去寻找这个文件。找到之后加载到之前点开的 对话框上即可。在此后点击运行按键就会进展仿真了,按照设计的功能去调试就可以了。加载he*如图4-2所示图4-2 加载.he*文件第4.3节 Protues与Keil的连调的仿真结果系统仿真运行环境下的结果如图4-3所示图4-3 系统仿真图 开锁仿真图如5

52、-4所示图4-3 开锁仿真图第5章 系统软件设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。第5.1节 主程序流程图图5-1所示为主程序流程图,开场接上电源,程序进展初始化设置,然后在键盘上输入密码,此系统进展键盘扫描,然后启动程序,进展保护,再次在键盘上输入密码,系统进展扫描,如和之前一样,则执行程序,如不是,则执行另一种程序,最后完毕。图5-1 主程序流程图第5.2节 按键功能流程图图5-2为按键功能流程图,在按键当中,有与输入、开锁、去除、设置、确认的程序相对应的按键,并按顺序与输入的数相比拟,当输入正

53、确时,进入密码程序,错误时进展去除,输入两次正确的,可进展重新设置,最后确认程序。图5-2 按键功能流程第5.3节 密码设置流程图如图5-3为密码设置流程图,开场按下设置键,输入旧密码,如果错误,累计三次错误,进展报警程序。如输入正确,可以改密码,确认后再次输入更改后密码,如两次输入一样,则更改成功。图5-3 密码设置流程图第5.4节 开锁流程图图5-4为开锁流程图,开场时按开锁键,输入密码,如果输入正确,则开锁成功。如果输入错误累计三次,则执行报警程序。图5-4 开锁流程图结论此次毕业设计我之所以选择基于AT89S52与AT24C02的密码锁的设计,是因为我对于单片机与芯片之间的数据传输还存

54、在着一定的问题。此次通过本次毕业设计,我查阅了大量的资料,具体了解AT89S52芯片、存储器芯片的读写操作、编程程序的简化与规。在进展总体的设计以后,我使用了keil c软件编写了程序并且进展了protues软件的仿真。在仿真成功了以后。我才开场进展开场制作硬件电路。硬件电路包括,复位电路、晶振电路、矩阵按键电路、LCD1602液晶显示电路、报警指示电路、开锁电路和AT24C02存储器电路!在进展硬件电路制作的时候,我花了大量的时间,因为既要设计的美观又要考虑实际的电路布线规则,所以还是感觉制作起来极其困难。电路制作好了以后,我使用下载器把程序下载进去以后,发现并没有我想象的则的成功,然后我只

55、能逐一的调试各个模块,最后发现还是存在许多的问题的,如业绩显示模块在使用主控单片机的P0模块是,还是要需要使用上拉电阻的。在进展矩阵电路的制作时,电路很容易发生短路,因此必须使用万用表逐个的测量使用短路的现象!从筹划开场,我开场查找和收集大量的资料,进展程序编程的时候,我又要把各个软件仔细的熟悉了一下,再到仿真成功,硬件调试成功。在这个复杂的过程中我真的学到了很多。我学会以了系统的对待了一个问题,也必须细心的对待每一个问题,因为一个整体无论在哪一个小的方面出了问题,都会造成整个系统的出错。参考文献1. 昌华,易逵.?8051单片机的C语言应用程序设计与实践?M. 国防工业. 2007.52.

56、立峰, 王宝兴. 单片机原理与应用技术M.:大学,2021:34-65.3. 王为青,邱文勋.?51单片机应用开发案例精选?M. 人民邮电. 2007.14. 谭浩强.C程序设计 (第三版) M.:高等教育,2005:113.5. 雪丽.单片机原理及接口技术M.:化学工业,2005.6. 王少伟,巫丹. 89C51单片机USB接口的设计与实现. 科技创新导报,2021(28) .7. 明喜新型电子密码锁的设计J机电产品开发与创新,2004,03;8. 董继成一种新型平安的单片码锁J电子技术,2004,03;9. 茂涛一种电子密码锁的实现J电脑,2004,08;10. 瞿贵荣实用电子密码锁J家庭

57、电子,2000,07;11. 亮 , 跟我学51单片机系列教程第十一I2C总线J, ?电子制作? 2021年第11期.12. 静,王计元. 24C系列串行EEPROM与单片机的接口设计及应用J,?电力学院学报?2021年第4期.致时光飞逝,一转眼大学四年的时光就过去了,我所学的专业是电子信息工程与技术,我很喜欢这门专业,因此我的专业课成绩也不是很差。在本次毕业设计中,我的论文指导教师真的帮了我很多的忙,指导了我很多。在此次论文的选题到最后论文定稿,教师给了我很多的建议。还有就是我在做硬件的时候,我的同学给了我很多的建议,我的同学专业学的很好,尤其在做硬件方面,我在几个比拟难以解决的问题都是她帮

58、我解决的。在我做论文的时候给了我很多的鼓励与帮助。最后还要感我的父母,这么含辛茹苦的给了我这么个学习的时机。总之,感你们一直伴随着我成长。真的到了离别的时候了,真的非常不舍得我美丽的母校,我亲爱的教师,但是百舸争流,勇者不必勇敢向前。不管前面遇到什么苦难,我相信大学四年,我已经学会了如何去思考我所遇到的问题,学会如何去解决我所遇到的问题。最后,感在大学期间认识我和我认识的所有朋友,因为你们的陪伴,我的大学生活才丰富多彩!附录附录1: 实物照片图1 实物图2 输入密码图3 密码正确提示图4 修改密码附录2: 局部源程序*include /包含头文件,一般情况不需要改动,头文件包含特殊功能存放器的

59、定义*includekeyboard.h*includedelay.h*define KeyPort P1unsigned char KeyScan(void) /键盘扫描函数,使用行列反转扫描法 unsigned char cord_h,cord_l;/行列值中间变量 KeyPort=0*0f; /行线输出全为0 cord_h=KeyPort&0*0f; /读入列线值 if(cord_h!=0*0f) /先检测有无按键按下 DelayMs(10); /去抖 if(KeyPort&0*0f)!=0*0f) cord_h=KeyPort&0*0f; /读入列线值 KeyPort=cord_h|0

60、*f0; /输出当前列线值 cord_l=KeyPort&0*f0; /读入行线值 while(KeyPort&0*f0)!=0*f0);/等待松开并输出 return(cord_h+cord_l);/键盘最后组合码值 return(0*ff); /返回该值unsigned char KeyPro(void) /按键值处理函数,返回扫键值 switch(KeyScan() case 0*7e:return 0;break;/0 按下相应的键显示相对应的码值 case 0*7d:return 1;break;/1 case 0*7b:return 2;break;/2 case 0*77:ret

61、urn 3;break;/3 case 0*be:return 4;break;/4 case 0*bd:return 5;break;/5 case 0*bb:return 6;break;/6 case 0*b7:return 7;break;/7 case 0*de:return 8;break;/8 case 0*dd:return 9;break;/9 case 0*db:return 10;break;/a 确认键 case 0*d7:return 11;break;/b设置键 case 0*ee:return 12;break;/c保存键 default:return 0*ff;

62、break; *include /包含头文件,一般情况不需要改动,头文件包含特殊功能存放器的定义*include*include1602.h*includedelay.h*includekeyboard.h*define uchar unsigned char*define uint unsigned int*defineOP_READ0*a1/ 器件地址以及读取操作*defineOP_WRITE 0*a0/ 器件地址以及写入操作*defineMA*_ADDR 0*7f/ AT24C02最址sbit SET = P30;sbit SDA = P37;sbit SCL = P36;sbit JDJ = P

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