基于51单片机的密码锁设计毕业设计_第1页
基于51单片机的密码锁设计毕业设计_第2页
基于51单片机的密码锁设计毕业设计_第3页
基于51单片机的密码锁设计毕业设计_第4页
基于51单片机的密码锁设计毕业设计_第5页
已阅读5页,还剩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节 晶振振荡

2、器11第3章 系统硬件构成13第3.1节 设计原理13第3.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的连调18i第4.3节 protues与keil的连调的仿真结果19第5章 系统软件设计21第5.1节 主程序流程图21第5.2节 按键功能流程图21第5.3节 密码设置流程图22第5.4节 开锁流程图23结论24参考文

3、献25致谢26附录27附录1: 实物照片27附录2: 部分源程序29ii基于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 example, simple circuit pro

5、ducts , chip products with a higher 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

6、data memory unit,combined with the external matrix keyboard input,led digital display,alarm,unlock and so on,dolminated by the c programming language chip eeprom of the control procedures and the combination of reading and writing program designed to change a password many times,the police function

7、with the electronic the password control.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;1苏州大学本科生毕业设计(论文)前言随着科学技术的不断提高,人们对日常生活中的安全防盗器件的要求越来越高。传统的机械式钥匙由于安全性能差,携带不便等缺点,已不能满足人

8、的需要,随着大规模集成电路技术的发展,特别是单片机的问世,出现了许多带微处理器的电子密码锁,有效地克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁在技术和性能上都有了大大的提高,并且还具有易操作、功耗低、成本低等优点,从而使电子密码锁成为目前市场上的主流产品。而近年来出现的智能密码锁,由于其成本较高,一定程度上限制了这类产品的普及和推广。现今常见的密码锁设计主要有两种方案,一种是中规模集成电路控制的方案,另一种是单片机控制的方案。对于采用集成电路控制的方案,其中的编码电子锁电路分为编码电路、控制电路、复位电路、解码电路、防盗报警电路、门铃电路,而电子锁主要由输入元件、电路(包括电源)以及

9、锁体三部分组成。显然此种方案的物理实现结构较为复杂且重新设置密码、输入密码的操作过程也会给用户带来一定的不方便;而利用单片机控制的方案,由于单片机灵活的编程设计和丰富的i/o端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加掉电存储、声光提示甚至添加遥控控制功能,但其也有一定的局限性,就在于其控制原理的复杂以及要求设计人员具有更加良好的程序设计能力,调试较为繁琐,否则程序一旦跑飞将造成意想不到的损失。通过对这两种方案的优缺点比较,再考虑到本人自己对单片机设计具有一定的基础,所以此次选择利用单片机来进行密码锁的设计。本设计采用单片机为主控芯片,结合外围电路,组成电子密码控制系统,用户想

10、要打开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。第一章 绪论第1.1节 研究背景在人们的日常生活中,锁被广泛使用,人们常用锁来锁一些贵重物品乃至自己的家门,目的就是为了提高安全性。常见的锁有普通机械锁、机械密码锁、电磁卡锁、指纹(虹膜)锁等。而普通的机械锁极容易被强行破坏,安全系数不高;机械密码锁虽然安全系数高但造价相对较高,目前在保险柜上应用较多;电磁卡锁由于磁卡信息极易受外界干扰而失磁导致无法开锁,而指纹

11、(虹膜)锁虽然安全性很好,但会因手指划伤虹膜充血等收到限制。通过分析我们不难发现传统密码锁或多或少存在一些不足从而降低了其保密的安全性,因此研究一种新型的密码锁是具有有很高的现实需求性。随着电子科技的发展,将电子芯片跟传统机械锁结合起来设计成一种新型的密码锁而电子密码锁作为一种新型的锁已经成功,即电子密码锁。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁。电子密码锁与传统密码锁想比较,拥有海量的密齿,通常从10000到10000000不等,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。从是否方便的角度看,电子密码锁省去

12、了传统机械锁的钥匙,电磁卡锁的磁卡,使用者只要记得其密码,便可以开启,从而大大提高了其适用性。因此电子密码锁的具有较高的研究价值。第1.2节 电子密码控制简介电子密码控制是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。电子密码控制不论性能还是安全性都已大大超过了机械类。其特点如下:1)保密性好,编码量多,远远大于机械控制。随机开锁成功率几乎为零。2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因人员的更替而使控制的保密性下降。3)误码输入保护,当输入密码多次错误时,报警系统自动启动。4)无活动零件,不会磨损,寿命长。5)使用灵活性

13、好,不像机械锁必须佩带钥匙才能开锁。6)电子密码控制系统具有操作简单易行,一学即会的特点。第1.3节 国内外研究现状和发展趋势早在80年代,日本产生了最早的电子密码锁。随着日本经济复苏,电子行业的快速发展,一些利用简单的门电路设计的密码锁出现了。这类电路安全性差,容易破解。到了90年代,美国、意大利、德国、日本、加拿大、韩国以及我国的台湾、香港等地的微电子技术的进步和通信技术的发展为密码锁提供了技术上的基础,从而推动密码锁走向实际应用的阶段。我国于90年代初开始对密码锁进行初步的探索。到目前为止,在此领域虽已有较大的发展,采用各种电路进行设计的比较多,技术也相当先进,电子技术发展至今已达到相当

14、高的水平,电子密码锁技术已十分成熟。第1.4节 本设计所要实现的目标本设计采用单片机为主控芯片,结合外围电路,组成电子密码控制系统,用户想要打开锁,必先通过提供的键盘输入正确的密码才可以,密码输入错误有提示,为了提高安全性,当密码输入错误三次将报警。密码可以由用户自己修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作。第二章 主要元器件介绍及iic总线说明第2.1节 主控芯片at89s52at89s51是美国atmel公司生产的低功耗,高性能cmos8位单片机,片内含4k bytes的可系统编程的flash只读程序存储器,器件采用atmel

15、公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集flash程序存储器既可在线编程(isp)也可用传统方法进行编程及通用8位微处理器于单片芯片中,atmel公司的功能强大,低价位at89s51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。2.1.1. 主要性能参数与mcs-51产品指令系统完全兼容4k字节在系统编程(isp)flash闪速存储器1000次擦写周期4.05.5v的工作电压范围全静态工作模式:0hz33mhz三级程序加密锁128×8字节内部ram32个可编程io口线2个16位定时计数器6个中断源全双工串行uart通道低功耗空闲和掉

16、电模式中断可从空闲模唤醒系统看门狗(wdt)及双数据指针掉电标识和快速编程特性灵活的在系统编程(isp字节或页写模式)2.1.2. 功能特性概述at89s51 提供以下标准功能:4k 字节flash 闪速存储器,128字节内部ram,32个io 口线,看门狗(wdt),两个数据指针,两个16 位定时计数器,一个5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,at89s51可降至0hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止cpu的工作,但允许ram,定时计数器,串行通信口及中断系统继续工作。掉电方式保存ram 中的内容,但振荡器停止工作并禁止其它所

17、有部件工作直到下一个硬件复位。2.1.3. 引脚功能说明p0口:p0口是一组8位漏极开路型双向i0口,也即地址数据总线复用口。作为输出口用时,每位能驱动8个ttl逻辑门电路,对端口写“l”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在f1ash编程时,p0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。p1口:pl 是一个带内部上拉电阻的8位双向io口,pl的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作

18、输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。flash编程和程序校验期间,pl接收低8位地址。端口引脚第二功能:p1.5 mosi(用于isp犏程)p1.6 miso(用于isp犏程)p1.7 sck (用于isp犏程)p2 口:p2 是一个带有内部上拉电阻的8 位双向io 口,p2 的输出缓冲级可驱动(吸收或输出电流)4 个ttl逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时,p2口送出高8

19、位地址数据。在访问8 位地址的外部数据存储器时,p2 口线上的内容(也即特殊功能寄存器(sfr)区中p2寄存器的内容),在整个访问期间不改变。flash编程或校验时,p2亦接收高位地址和其它控制信号。p3 口:p3 口是一组带有内部上拉电阻的8 位双向i0 口。p3 口输出缓冲级可驱动(吸收或输出电流)4 个ttl逻辑门电路。对p3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的p3口将用上拉电阻输出电流。p3口除了作为一般的i0口线外,更重要的用途是它的第二功能,如下表所示:p3口还接收一些用于flash闪速存储器编程和程序校验的控制信号。端口引脚的第二功能p

20、3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 int0(外中断0)p3.3 int1(外中断1)p3.4 t0(定时计数器0外部输入)p3.5 t1(定时计数器1外部输入)p3.6 wr(外部数据存储器写选通)p3.7 rd(外部数据存储器读选通)rst:复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位。wdt 溢出将使该引脚输出高电平,设置sfr auxr的disrt0 位(地址8eh)可打开或关闭该功能。disrt0位缺省为reset输出高电平打开状态。aleprog:当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁

21、存地址的低8位字节。即使不访问外部存储器,ale 仍以时钟振荡频率的 16 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale脉冲。对f1ash存储器编程期间,该引脚还用于输入编程脉冲(prog)。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh 单元的d0 位置位,可禁止ale 操作。该位置位后,只有一条m0vx和m0vc指令ale才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ale无效。psen:程序储存允许(psen)输出是外部程序存储器的读选通信号,当at89s51 由外部程序存储器取指令(或数据)时

22、,每个机器周期两次psen有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的psen信号。eavpp:外部访问允许。欲使cpu仅访问外部程序存储器(地址为0000hffffh),ea端必须保持低电平(接地)。需注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储器中的指令。f1ash存储器编程时,该引脚加上+12v的编程电压vpp。xtall:振荡器反相放大器及内部时钟发生器的输入端。xtal2:振荡器反相放大器的输出端。2.1.4. 特殊功能寄存器这些地址并没有全部占用,没有占用的地址亦不可使用,读这些地址将得到一个随

23、意的数值。而写这些地址单元将不能得到预期的结果。不要软件访问这些未定义的单元,这些单元是留作以后产品扩展用途的,复位后这些新的位将为0。中断寄存器:各中断允许控制位于ie寄存器,5个中断源的中断优先级控制位于ip寄存器。双时钟指针寄存器:为更方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存器:dp0位于sfr(特殊功能寄存器)区块中的地址82h、83h和dp1位于地址84h、85h,当sfr中的位dps=0选择dp0,而dps=1则选择dp1。用户应在访问相应的数据指针寄存器前初始化dps位。电源空闲标志:电源空闲标志(pof)在特殊功能寄存器sfr 中pcon的第4 位(pcon

24、.4),电源打开时pof 置“1",它可由软件设置睡眠状态并不为复位所影响。存储器结构:mcs-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64kb外部程序和数据的寻址空间。程序存储器:如果ea引脚接地(gnd),全部程序均执行外部存储器。在at89s51,假如ea接至vcc(电源+),程序首先执行地址从0000h0fffh(4kb)内部程序存储器,再执行地址为1000hffffh(60kb)的外部程序存储器。数据存储器:at89s51 的具有128字节的内部ram,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区

25、空间。看门狗定时器(wdt):wdt是为了解决cpu程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看门狗复位sfr(wdtrst)构成。外部复位时,wdt默认为关闭状态,要打开wdt,用户必须按顺序将01eh和0e1h写到wdtrst寄存器(sfr地址为0a6h),当启动了wdt,它会随晶体振荡器在每个机器周期计数,除硬件复位或wdt 溢出复位外没有其它方法关闭wdt,当wdt溢出,将使rst引脚输出高电平的复位脉冲。使用看门狗(wdt):打开wdt需按次序写01eh和0e1h到wdtrst寄存器(sfr的地址为0a6h),当wdt打开后,需在一定的时候01eh 和0e1h

26、到wdtrst 寄存器以避免wdt 计数溢出。14 位wdt 计数器计数达到16383(3fffh),wdt 将溢出并使器件复位。wdt 打开时,它会随晶体振荡器在每个机器周期计数,这意味着用户必须在小于每个16383 机器周期内复位wdt,也即写01eh和0e1h到wdtrst寄存器,wdtrst为只写寄存器。wdt计数器既不可读也不可写,当wdt溢出时,通常将使rst引脚输出高电平的复位脉冲。复位脉冲持续时间为98×tosc,而tosc=1fosc(晶体振荡频率)。为使wdt工作最优化,必须在合适的程序代码时间段周期地复位wdt防止wdt溢出。掉电和空闲状态时的wdt:掉电时期,

27、晶体振荡停止,wdt也停止。掉电模式下,用户不能再复位wdt。有两种方法可退出掉电模式:硬件复位或通过激活外部中断。当硬件复位退出掉电模式时,处理wdt 可象通常的上电复位一样。当由中断退出掉电模式则有所不同,中断低电平状态持续到晶体振荡稳定,当中断电平变为高即响应中断服务。为防止中断误复位,当器件复位,中断引脚持续为低时,wdt并未开始计数,直到中断引脚被拉高为止。这为在掉电模式下的中断执行中断服务程序而设置。为保证wdt在退出掉电模式时极端情况下不溢出,最好在进入掉电模式前复位wdt。在进入空闲模式前,wdt 打开时,wdt 是否继续计数由sfr 中的auxr 的wdidle 位决定,在i

28、dle 期间(位wdidle=0)默认状态是继续计数。为防止at89s51从空闲模式中复位,用户应周期性地设置定时器,重新进入空闲模式。当位wdidle被置位,在空闲模式中wdt将停止计数,直到从空闲(idle)模式中退出重新开始计数。中断:at89s51共有5个中断向量:2个外中断(int0和int1),2个定时中断(timer0和timer1)和一个串行中断。这些中断源各自的禁止和使能位参见特殊功能寄存器的ie。ie也包含总中断控制位ea,ea清0,将关闭所有中断。定时器0和定时器1 的中断标志tf0和tf1,它是定时器溢出时的s5p2时序周期被置位,该标志保留至下个时序周期。晶体振荡器特

29、性:at89s51 中有一个用于构成内部振荡器的高增益反相放大器,引脚xtal1 和xtal2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容cl、c2 接在放大器的反馈回路中构成并联振荡电路。对外接电容cl、c2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30pf±10pf,而如使用陶瓷谐振器建议选择40pf±10f。用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到xtal1

30、端,即内部时钟发生器的输入端,xtal2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。空闲节电模式:在空闲工作模式状态,cpu保持睡眠状态而所有片内的外设仍保持激活状态,这种方式由软件产生。此时,片内ram和所有特殊功能寄存器的内容保持不变。空闲模式可由任何允许的中断请求或硬件复位终止。需要注意的是,当由硬件复位来终止空闲工作模式时,cpu 通常是从激活空闲模式那条指令的下一条指令开始继续执行程序的,要完成内部复位操作,硬件复位脉冲要保持两个机器周期(24个时钟周期

31、)有效,在这种情况下,内部禁止cpu 访问片内ram,而允许访问其它端口。为了避免在复位结束时可能对端口产生意外写入,激活空闲模式的那条指令后一条指令不应是一条对端口或外部存储器的写入指令。掉电模式:在掉电模式下,振荡器停止工作,进入掉电模式的指令是最后一条被执行的指令,片内ram和特殊功能寄存器的内容在终止掉电模式前被冻结。退出掉电模式的方法是硬件复位或由处于使能状态的外中断int0和int1激活。复位后将重新定义全部特殊功能寄存器但不改变ram 中的内容,在vcc恢复到正常工作电平前,复位应无效,且必须保持一定时间以使振荡器重启动并稳定工作。flash闪速存储器的并行编程:at89s51

32、单片机内部有4k 字节的可快速编程的flash 存储阵列。编程方法可通过传统的eprom 编程器使用高电压(+12v)和协调的控制信号进行编程。at89s51的代码是逐一字节进行编程的。数据查询:at89s5l 单片机用数据查询方式来检测一个写周期是否结束,在一个写周期中,如需读取最后写入的那个字节,则读出的数据的最高位(p0.7)是原来写入字节最高位的反码。写周期完成后,有效的数据就会出现在所有输出端上,此时,可进入下一个字节的写周期,写周期开始后,可在任意时刻进行数据查询。readybusy:字节编程的进度可通过“rdybsy”输出信号监测,编程期间,ale变为高电平“h”后p3.0端电平

33、被拉低,表示正在编程状态(忙状态)。编程完成后,p3.0变为高电平表示准备就绪状态。程序校验:如果加密位lb1、lb2没有进行编程,则代码数据可通过地址和数据线读回原编写的数据,各加密位也可通过直接回读进行校验。读片内签名字节:at89s51 单片机内有3 个签名字节,地址为000h、100h 和200h。用于声明该器件的厂商和型号等信息,读签名字节的过程和正常校验相仿,只需将p3.6和p3.7保持低电平。芯片擦除:在并行编程模式,利用控制信号的正确组合并保持aleprog引脚200ns500ns的低电平脉冲宽度即可完成擦除操作。在串行编程模式,芯片擦除操作是利用擦除指令进行。在这种方式,擦除

34、周期是自身定时的,大约为500ms。擦除期间,用串行方式读任何地址数据,返回值均为00h。flash闪速存储器的串行编程:将rst接至vcc,程序代码存储阵列可通过串行isp 接口进行编程,串行接口包含sck线、mosi(输入)和miso(输出)线。将rst拉高后,在其它操作前必须发出编程使能指令,编程前需将芯片擦除。芯片擦除则将存储代码阵列全写为ffh。外部系统时钟信号需接至xtal1端或在xtall 和xtal2接上晶体振荡器。最高的串行时钟(sck)不超过l16晶体时钟,当晶体为33mhz时,最大sck频率为2mhz。数据校验:数据校验也可在串行模式下进行,在这个模式,在一个写周期中,通

35、过输出引脚miso串行回读一个字节数据的最高位将为最后写入字节的反码。第2.2节 at24c02at24c02支持i2c总线数据传送协议,i2c总线协议规定:任何将数据传送到总线的器件作为发送器,任何从总线接收数据的器件为接收器。数据传送是由产生串行时钟和所有起始停止信号的主器件控制的,at24c02作为从器件。虽然主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据发送或接收的模式。2.2.1. 性能与400khz i2c 总线兼容1.8 到6.0 伏工作电压范围低功耗cmos 技术写保护功能当wp 为高电平时进入写保护状态页写缓冲器自定时擦写周期1,000,000 编程/擦除周期

36、可保存数据100 年8 脚dip soic 或tssop 封装温度范围商业级工业级和汽车级2.2.2. 引脚功能描述vcc +1.8v 6.0v 工作电压vss 地scl 串行时钟:串行时钟输入管脚用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。sda 串行数据/地址:双向串行数据/地址管脚用于器件所有数据的发送或接收,sda 一个开漏输出管脚,可与其它开漏输出或集电极开路输出进行线或wire-or。a0 a1 a2 器件地址输入端:这些输入脚用于多个器件级联时设置器件地址,当这些脚悬空时默认值为0 ,24wc01 除外。当使用24wc01 或24wc02 时最大可级联8 个器件,如果

37、只有一个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 个器件所

38、有地址管脚a0 a1 a2 都未用管脚可以连接到vss 或悬空。wp 写保护:如果wp 管脚连接到vcc,所有的内容都被写保护只能读。当wp 管脚连接到vss 或悬空,允许器件进行正常的读/写操作。第2.3节 lcd1602现在的字符型液品模块已经是单片机应用设计中最常用的信息显示器件了。1602型lcd显示模块具有体积小,功耗低,显示内容丰富等特点。1602型lcd可以显示2行16个字符,有8位数据总线d0d7和rs,rw,en三个控制端口,工作电压为5v,并且具有字符对比度调节和背光功能。2.3.1. 接口信号说明1602型lcd的接口信号说明如表2-1所示:表2-1 1602型lcd的接

39、口信号说明编号符号引脚说明编号符号引脚说明1vss电源地9d2data i/o2vdd电源正极10d3data i/o3vo液晶显示偏压信号11d4data i/o4rs数据/命令选择端(h/l)12d5data i/o5r/w读写选择端(h/l)13d6data i/o6e使能信号14d7data i/o7d0data i/o15bla背光源正极8d1data i/o16blk背光源负极1602型lcd的主要技术参数如表2-2所示:表2-2 1602型lcd的主要技术参数显示容量芯片上作电压工作电流模块最佳工作电压 字符尺寸16x2个字符4.55.5v 2.0ma(5.0v) 5.0v 2.

40、95x4.35 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的时钟频率。如果需要对这两种音频同时支

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

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

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

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

45、储单元的作用是在电源断开的时候,存储当前设定的单价信息。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 原理图电路3.2.3. 显示部分为了提高密码锁的密码显示效果能力。本设计的显示部分

46、由液晶显示器lcdl602取代普通的数码管来完成。只有按下键盘上的开启按键后,显示器才处于开启状态。同理只有按下关闭按键后显示器才处于关闭状态。否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个“*”,输入多少位就显示多少个“*”。当密码输入完成时,按下确认键,如果输入的密码正确的话,lcd子显示“right”,单片机其中p2.0引脚会输出低电平,使三极管t2导通,电磁铁吸合,电子密码锁被打开,如果密码不正确,lcd显示屏会显示“error”,p2.0输出的是高电平,电子密码锁不能被打开。通过lc

47、d显示屏,可以清楚的判断出密码锁所处的状态。其显示部分引脚接口如图3-5所示:图3-5 液晶显示电路和上拉电阻驱动3.2.4. 复位电路复位电路(图3-12是单片机复位电路)具有上电自动复位和手动复位的双重功能。单片机的rst引脚是复位信号的输入端,复位信号是高电平的时候才有效,其有效时间应持续24个震荡脉冲周期(即2个机器周期)以上;通常为了保证应用系统能够准确地复位,复位电路应使引脚rst脚保持10ms以上的高电平状态。只要rst保持高电平,单片机就会自动循环复位。当rst引脚从高电平状态转为低电平状态时,单片机退出复位状态,从程序存储器的0000h地址开始执行用户程序。电容c3和电阻r5

48、组成上电复位电路。上电瞬间rst引脚获得高电平,随着电容c11的充电,rst引脚的高电平逐渐下降。只要高电平保持足够的时间,单片机就能完成复位。手动复位如图3-6所示图3-6 复位电路3.2.5. 晶振部分at89s52引脚xtal1和xtal2与晶体振荡器及电容c2、c3按图4-6所示方式连接。晶振、电容c2c3及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容c2、c3的容量有关,但主要由晶振频率决定,范围在033mhz之间,电容c2、c3取值范围在2040pf之间。根据实际情况,本设计中采用12mhz做系统的外部晶振。电容取值为30pf。电路如图3-7

49、图3-7 晶振电路3.2.6. 开锁电路开锁电路的功能是当输入正确的密码后密码锁将被锁定,既开锁。当单片机p2.6引脚发出信号经三极管放大后,触动电磁阀即会把锁打开。一旦输入密码,单片机便会与初始密码进行比对,如果密码输入两次都与原始密码不相符即会报警。电路如图3-8所示图3-8 开锁电路3.2.7. 键盘输入模块键盘是单片机十分重要的输入设备,是实现人机对话的纽带。键盘是由一组规则排列的按键组成,一个按键实际上就是一个开关元件,即键盘是一组规则排列的开关。根据按键与单片机的连接方式不同,按键主要分为独立式按键和矩阵式按键 ,有了这些按键,对单片机的控制就方便多了。本设计按键数量较多,所以采用

50、矩阵式按键以节省i/o口线。将16个按键分为4排4列排列好,如图3-9矩阵键盘硬件结构。当有一个键按下时,通过某一边引脚赋低电平,扫描全部引脚看是否与最初的赋值一样,不一样则根据相应的算法(通过改变后的值与初始值相或,根据结果赋值)确定是哪个键按下。键盘为4×4形式,按键包括阿拉伯数字09,以及锁定、更改和改密三个应用按键。当用户需要输入密码或修改密码时,按下相应按键即会与单片机产生信号,并会执行相应的程序。电路如图3-9所示图3-9 矩阵键盘电路第4章 仿真设计第4.1节 protues仿真软件概述protues是目前使用比较广泛的单片机类的仿真系统的软件之一,它可以实现的功能比较

51、多,可以实现程序与原理图的连调,也可以单独作为绘制原理图的工具使用,与protel有着过之不及的功能,于此同时还可以进行pcb版图的生成,在方法中与protel类似。此款软件及绘制原理图、pcb版图和仿真于一身。protues此款软件的使用比较简单。在运行环境搭载好的前提下,打开isis直接进入到主界面,在左边栏框中有一个快捷键p(从库中选取),点击后出现一个对话框然后输入想要查找的元器件即可。之后在单击确定按键所选器件就会显示在界面左上角的小框中此时点击鼠标左键就会放到图层中,然后直接把鼠标放到接头处就会显示一个画笔的标志此时按住鼠标左键就可进行连线了。如图4-1所示为绘图界面。图4-1 绘

52、图界面第4.2节 protues与keil的连调在进行连调之前必须确保程序是完整的,原理图也是没有错误的。还要在正确的运行平台下进行操作。检查没有错误后,打开原理图,点击单片机就会出现一个对话框如图5-2所示,然后把生成的.hex文件添加到里面即可实现。在这里比较重要的就是.hex文件的生成过程。首先把已编写好的程序加载到keil软件下进行编译如果没有遇到任何错误后,选择相应的选项就可以生成.hex文件了。之后再按照生成的的路径去寻找这个文件。找到之后加载到之前点开的 对话框上即可。在此后点击运行按键就会进行仿真了,按照设计的功能去调试就可以了。加载hex如图4-2所示图4-2 加载.hex文

53、件第4.3节 protues与keil的连调的仿真结果系统仿真运行环境下的结果如图4-3所示图4-3 系统仿真图 开锁仿真图如5-4所示图4-3 开锁仿真图第5章 系统软件设计本系统软件设计由主程序、初始化程序、lcd显示程序、键盘扫描程序、键功能程序、密码设置程序、eeprom读写程序和延时程序等组成。第5.1节 主程序流程图图5-1所示为主程序流程图,开始接上电源,程序进行初始化设置,然后在键盘上输入密码,此系统进行键盘扫描,然后启动程序,进行保护,再次在键盘上输入密码,系统进行扫描,如和之前一样,则执行程序,如不是,则执行另一种程序,最后结束。图5-1 主程序流程图第5.2节 按键功能流

54、程图图5-2为按键功能流程图,在按键当中,有与输入、开锁、清除、设置、确认的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,输入两次正确的,可进行重新设置,最后确认程序。图5-2 按键功能流程第5.3节 密码设置流程图如图5-3为密码设置流程图,开始按下设置键,输入旧密码,如果错误,累计三次错误,进行报警程序。如输入正确,可以改密码,确认后再次输入更改后密码,如两次输入一样,则更改成功。图5-3 密码设置流程图第5.4节 开锁流程图图5-4为开锁流程图,开始时按开锁键,输入密码,如果输入正确,则开锁成功。如果输入错误累计三次,则执行报警程序。图5-4 开

55、锁流程图结论此次毕业设计我之所以选择基于at89s52与at24c02的密码锁的设计,是因为我对于单片机与芯片之间的数据传输还存在着一定的问题。此次通过本次毕业设计,我查阅了大量的资料,具体了解at89s52芯片、存储器芯片的读写操作、编程程序的简化与规范。在进行总体的设计以后,我使用了keil c软件编写了程序并且进行了protues软件的仿真。在仿真成功了以后。我才开始进行开始制作硬件电路。硬件电路包括,复位电路、晶振电路、矩阵按键电路、lcd1602液晶显示电路、报警指示电路、开锁电路和at24c02存储器电路!在进行硬件电路制作的时候,我花了大量的时间,因为既要设计的美观又要考虑实际的电路布线规则,所以还是感觉制作起来极其困难。电路制作好了以后,我使用下载器把程序下载进去以后,发现并没有我想象的那么的成功,然后我只能逐一的调试各个模块,最后发现还是存在许多的问题的,如业绩显示模块在使用主控单片机的p0模块是,还是要需要使用上拉电阻的。在进行矩阵电路的制作时,电路很容易发生短路,因此必须使用万用表逐个的测量使用短路的现象!从策划开始,我开始查找和收集大量的资料,进行程序编程的时候,我又要把各个软件仔细的熟悉了一下,再到仿真成功,硬件调

温馨提示

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

评论

0/150

提交评论