首页 智能密码锁毕业设计论文

智能密码锁毕业设计论文

举报
开通vip

智能密码锁毕业设计论文智能密码锁毕业设计论文 目 录 摘要: ............................................................................................................................................ I Abstract: ........................................................................................

智能密码锁毕业设计论文
智能密码锁毕业设计论文 目 录 摘要: ............................................................................................................................................ I Abstract: .....................................................................................................................................II 第1章 绪论 .............................................................................................................................. 1 1.1 课 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 背景 ......................................................................................................................... 1 1.2 课题设计目标 ................................................................................................................. 2 第2章 系统 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 论证 .............................................................................................................. 4 2.1 主控部分的选择 ............................................................................................................. 4 2.2 密码输入方式的选择 ..................................................................................................... 5 第3章 系统总体设计和主要芯片介绍 .................................................................................. 6 3.1 系统总体设计 ................................................................................................................. 6 3.2 主要芯片介绍 ................................................................................................................. 6 3.2.1 AT89C51.................................................................................................................... 6 3.2.2 存储芯片AT24C02 ............................................................................................... 10 3.2.3 显示电路(LCD1602) .........................................................................................11 第4章 系统硬件构成 ............................................................................................................ 13 4.1 系统整体电路图 ........................................................................................................... 13 4.2 单片机最小系统原理图 ............................................................................................... 13 4.3 复位电路 ....................................................................................................................... 14 4.4 时钟电路 ....................................................................................................................... 15 4.5 键盘输入部分 ............................................................................................................... 16 4.6 密码存储部分 ............................................................................................................... 17 4.7 显示部分 ....................................................................................................................... 18 4.8 报警部分 ....................................................................................................................... 19 第5章 软件的设计与实现 .................................................................................................... 20 5.1 软件系统的总体设计 ................................................................................................... 20 5.2 主程序流程图 ............................................................................................................... 20 5.3 键功能程序流程图 ....................................................................................................... 22 第6章 结论 ............................................................................................................................ 23 附 录 ........................................................................................................................................ 26 附件1:英文原文及中文翻译 ........................................................................................... 26 附件2:任务书 ................................................................................................................... 40 附件3:开题报告 ............................................................................................................... 41 附件4:原理图 ................................................................................................................... 46 附件5:实物图 ................................................................................................................... 47 附件6:程序 ....................................................................................................................... 48 附件7:元件清单 ............................................................................................................... 66 基于单片机的智能密码锁的设计 摘要: 随着科学技术的不断发展,人们在日常生活与工作中对保险器件的要求越来越高。同时,电子设备也正在向智能化与微型化不断发展,电子密码控制系统已经越来越符合人们的要求。而单片机已经成为电子产品研制和开发中首选的控制器。为了满足人们对锁的使用要求,增加其安全性,同时克服传统锁具带来的不方便性,用数据密码代替钥匙的智能密码锁便应运而生。智能密码锁具有安全性高、操作简易、成本低、功耗低等优点。 本次设计由单片机系统、矩阵键盘、LCD显示和报警系统组成。系统能完成开锁、超次锁定、报警、修改用户密码等基本的密码锁功能。除上述基本的密码锁功能外,还具有掉电存储、声光提示等功能,依据实际的情况还可以添加遥控功能。所采用的编程语言是C语言。本系统电路稳定性高、成本低廉、功能实用,符合办公室、住宅等场所的用锁要求,具有推广价值。 关键词:AT89C51;AT24C02;电子密码锁;矩阵键盘 I Design of Intelligent Password Lock Based on MCU Abstract: with the continuous development of science and technology, insurance devices have become increasingly demanding in people’s daily life and work. Meanwhile, the electronic intelligence devices are also being miniaturized to the intelligent and evolving. Electronic code control system has been increasingly in line with people's requirements. The microcontroller has become the preferred controller in the research and development of electronic product. In order to meet people's requirements for the use of locks to increase their security and overcoming the inconvenience of traditional locks, smart locks which use the data encryption instead of key come into being. Smart locks have many advantages such as high security, ease of operation, low cost and low power consumption. This design is made up of SCM system, matrix keyboard, LCD display and alarm system. System can perform basic password lock function such as unlocking, smart-locking, alarming, modifying user passwords. In addition to these basic password lock function, it also has a power-down storage, sound and light tips and other functions, according to the actual situation can also add remote control functionality. The programming language used is c language. The system circuit high stability, low cost, functional and practical. It conforms to the office, residential and other places with a lock request and has promotional value. Key Words: AT89C51, AT24C02, Electronic password lock, Matrix keyboard II 第1章 绪论 随着科技的发展和人们对安全的高度要求,密码锁也从原来的大块头变成现在的芯片设计。锁自古以来就被人们广泛的运用,并且对它的可靠性要求甚高。一方面,人们需要安全可靠的防盗,同时在使用中又希望可以方便的进行操作,这成为了制锁技术长久发展以来永恒的技术攻关方向。随着电子技术的不断进步,电子产品在人们的日常生活与工作等方面发挥着愈来愈重要的作用,智能密码锁就是其中之一。例如,具有锁定报警功能的电子密码锁。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、报警、闭锁任务的电子产品。在安全防盗领域,完美的替代了传统的机械式密码锁,解决了机械式密码锁长久以来存在的密码量少、安全性能差的缺陷,使锁具在技术层面与性能优化上都有了很大的提高。同时,随着大规模集成电路技术的成熟,尤其是是单片机的普及,出现了带微处理器的智能密码锁,通过不同的外接硬件,使锁具功能多样化,从而提高了安全性与可靠性,应用日益广泛。 1.1 课题背景 所谓的智能密码锁,就是通过微电子技术、集成电路技术,同时使用大量的电子元器件,结合多种新颖有效的识别技术(包括指纹识别技术、锁体的机械设计、网络报警等),进行多元开发生产的综合型产品。 关于智能密码锁的研究从20世纪30年代就开始了,已经应用于当时的一些特殊场所。智能锁的密钥量极大,不仅可以通过芯片控制,也可以与精密的机械原理相融合。有了这样的双层保障,就可以减少或避免由于钥匙丢失或被盗窃后造成的安全隐患。人们只要记住自己所设定的密码,不需要随身携带钥匙,不需要担心遗失钥匙的情况,方便了人们的生活。因此人们愈发的欣赏这种方便安全的保护措施。20世纪80年代后,通过进一步的研发,智能锁专用集成电路已经出现在科研人员的手中,它的体积进一步缩小,可靠性有了大幅度提高,不过成本较高,比较适用于在要求安全措施较高的场合。显而易见,它的使用范围还有所局限,难以普及到大众生活中,所以对它的研究有一度的停滞。到了20世纪90年代,日本、美国、意大利、韩国、德国、加拿大以及我国的台湾、香港等地的微电子技术和通信技术有了较大的科研进展,这一进步为密码锁的后续发展提供了技术上的有力援助,从而肯定了密码锁向实际应用普及的发展方向。到了 1 21世纪初,在西方的一些国家里,密码锁技术更加先进,拓展的使用功能更加多样化。例如,人们把电子密码锁广泛应用于智能门禁系统中从而实现大门的管理,不仅更加安全,同时也更加可靠了。 我国开始对密码锁进行的前期科学研究是在90年代初期。随着国家的快速发展,国力的不断增强,我国在微电子技术与信息技术的研究中也有所建树。从20世纪初的技术水平和市场认可程度看,最被人们广泛欢迎与接受的是键盘式电子密码锁。该产品安全性能高,价格低廉,主要应用于私人储物、保险柜和银行的金库等,同时也可以应用于保管箱和运钞车。由于这种密码锁的优点突出,很有市场推广价值,因此科研投入高。这种锁很快的克服了初期的性能稳定差的缺点,变得越来越实用,愈发的受到人们的欢迎。 智能密码锁的种类繁多,例如数码锁、指纹锁、磁卡锁、IC卡锁、生物锁、遥控式电子密码锁、卡片式密码锁等。当代社会,由于生物特征技术发展迅速,除了一些近期难以被克服的体积、价格、材料等方面的缺点外,生物特征防盗锁在应用方面的前景被人们普遍看好。这是因为人体生物特征例如指纹、虹膜、DNA等一些含有字符、图形图像和时间等电子生物信息要素均可成为唯一的开锁钥匙,通过对这些辨识度高、特征性强的信息的自由组合,能够大幅度提高电子防盗锁保密特性。同时,对特征信息的组合使用也能够更多方面的扩展电子防盗的 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 ,使功能更加丰富。 21世纪初,接触式卡的技术成熟、价格低廉,应用也较为广泛;不过非接触式卡使用更加隐蔽、方便,大有后来居上之势。它不仅可以作为钥匙,还包含多项个人的信息特征,可以用于入门、开锁、存储、付费等,这种一卡多用的方法给持卡人带来了便利,它特别适合金融业注重“验明正身”的行业特点,而且储存信息量大是此种智能锁的优势。不过同时存在一些缺点,使用这类防盗锁,需要谨慎的保管卡,尤其当遗失卡时为了防止信息的泄露与经济的损失,须尽快取消对该卡的授权。在技术层面上,我国密码锁整体水平尚处于国际上70年代左右,高端智能密码锁的成本还很高,市场上仍以按键电子锁为主。不过在生物特征防盗锁和卡片钥匙式电子锁方面,已引进国际先进生产水平。由于高端密码锁商业市场结构尚未形成,技术还不成熟,国内自行研制开发的多功能电子锁,应用还不广泛。 1.2 课题设计目标 本设计硬件采用AT89C51单片机为主控芯片,LCD1602为显示芯片,以AT24C02 2 作为密码存储芯片。同时依靠软件程序编程,组成电子密码锁整体系统,可以实现多种功能: (1)(正确输入密码前提下,开锁提示; (2)(在输入密码错误的情况下,蜂鸣器会持续报警;如果连续输入错误次数超过三次,锁定键盘; (3)(密码可以根据用户需要更改; (4)(忘记密码可以进行密码初始化; (5)(断电存储功能。 3 第2章 系统方案论证 系统从控制方案部分和密码输入方式两方面进行论证,找到最优方案。 2.1 主控部分的选择 方案一:采用数字电路控制。 电路内容包括:键盘输入、密码更改、密码检测、密码校验、开锁电路、执行电路、报警电路、断电检测、充电电路、键盘输入次数锁定电路。共设9个用户按键,其中4个有效按键,剩余4个为干扰按键。若按下干扰按键,输入密码无效。密码锁的核心控制用74LS112双JK触发器组成数字逻辑电路,用JK触发器储存用户提前设定的密码,通过与输入的密码进行比较,从而判断输入与原始密码是否相同,进而判断是否开锁。对于数字电路设计方案的密码锁,好处就是设计简单,不过缺点也很明显,对系统控制的准确性和操作的灵活性差。 方案二:单片机作为控制核心的方案。 采用单片机作为密码锁的核心硬件,从而进行对系统的控制与处理。单片机是一种集成电路芯片,采用的是超大规模集成电路技术。具体是在一块硅片上集成具有数据处理能力的中央处理器CPU、只读存储器ROM、随机存储器RAM、多种I/O口和定时器/计数器、中断系统等功能(可能还包括显示驱动电路、键盘输入电路、脉宽调制电路、模拟多路转换器、D/A转换器、A/D转换器等)。这样就可以构成一个体积虽小,但是性能完善的微型计算机系统,在工业控制领域广泛应用。单片机从问世以来,经过不断的发展,越来越多的优点体现了出来,如体积小、功耗低、价格低廉、可扩展性强、控制功能强、环境适应能力好、使用方便等。利用单片机可以构成形式丰富、功能强大的控制系统、通信系统、测控系统、数据采集系统、信号检测系统、无线远程操控系统、机器人等应用控制系统。例如蔬菜大棚的温湿度采集系统、智能机器人、工厂流水线的智能化管理、波形信号发生器、电梯智能化控制以及各种报警系统,或与计算机联网构成二级控制系统等。通过使用单片机来制作智能密码锁,可以利用它具有I/O端口功能丰富、运算处理速度快、编程容易和控制精准等优点,同时利用单片机内部的随机存储器(RAM)和只读存储器(ROM),通过外接液晶显示(LCD)用于显示密码以及操作提示,使用矩阵键盘来输入密码,同时外接AT24C04芯片用于存储密码。这种设计功能实用,同时扩展性强、操作简便、系统灵活。基本上可以实现设计所要求的指标。 4 通过对比与考虑,本系统采用方案二进行设计。 2.2 密码输入方式的选择 方案一:指纹输入识别。 指纹识别技术的核心思想是把人和他的指纹一一对应,由于指纹具有唯一性,检测也非常方便,因此这种技术发展前景良好。具方法体是通过与预留指纹的比较,就可以验证进行指纹识别的人的真实身份信息。每个人的皮肤纹路,例如指纹,在图案、纹数、核心点和三角点这些细节上具有不同的特征。指纹识别技术主要涉及四个功能:读取指纹图像、提取特征、保存数据和比对特征。读取人体指纹特征的图像是通过指纹读取设备进行的,紧接着要对读取到的原始图像进行初期的处理,为的是让图像更加清晰,然后再通过指纹辨识软件搜集指纹的特征进行数据化操作。软件可以从指纹纹路的分叉、终止或打圈处的坐标位置上找到被称为“节点”(minutiae)的数据点,这些点特征的唯一性很强,可以同时具有七种以上的唯一性特征。一般来说,每个人手指上平均具有70个节点,这样的话通过使用这种方法大约会产生490个数据。这些数据,通常被称为模板。通过使用计算机将这些模版进行比较比,可以计算出它们的相似程度,最终得到两个指纹的比较结果,从它们的匹配程度可以判断输入结果的正确与否。考虑到本方案软硬件过于复杂,同时成本较高,故不采用。 方案二:矩阵键盘输入识别。 由于密码锁是依靠键盘输入密码,同时有确认与取消等其他键位。这样的话,键盘中按键数量就会较多,为了方便操作,必须减少I/O口的占用,通常用将按键排列成矩阵形式来解决这个问题。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。在由按键组成的矩阵键盘上,每条行线和列线都相对应I/O口线。键位设在行线和列线的交叉点,因此当有键位按下时,就会有一条行线与一条列线相接触,这时通过确定接触的两条线的位置,即两个I/O口线的位置,就可以对触动的键位进行定位。这样,通过设计就可以构成4*4=16个按键,比着直接将端口线用于键盘的方法多出了一倍的按键。而且线数越多,差距愈明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键。另外,每个按键都可通过程序赋予不同的功能,从而完成密码识别。 比较来看,方案二简单易行、成本不高,故采用此方案。 5 第3章 系统总体设计和主要芯片介绍 系统主要芯片有AT89C51,AT24C02 ,LCD1602等。 3.1 系统总体设计 本设计主要由单片机AT89C51、矩阵键盘、密码存储芯片AT24C02和液晶显示器LCD1602等部分构成。其中矩阵键盘用于输入密码和进行功能的实现。用户通过连接单片机的矩阵键盘输入密码,然后单片机对用户通过键盘输入的密码与保存在AT24C02芯片中的密码进行对比,从而判断密码是否正确,然后将引脚的高低电平传到开锁电路或者报警电路,从而选择控制开锁还是报警。在实际使用时只需要将单片机的负载由继电器换成控制密码锁开关的电磁铁吸合线圈即可。系统整体框图如图3-1所示: 显示电路 电源电路 中央控制芯 片 AT24C02密码保护 AT89C51 报警电路 键盘输入电路 图3-1 系统结构框图 各模块功能如下: (1)(矩阵键盘输入模块:分为从“0”~“9”共10个密码输入按键与几个功能按键,用于完成密码的输入与修改功能; (2)(显示模块:用于完成对输入密码正确与否状态显示及操作提示功能; (3)(报警电路:用于完成输错密码时候的报警功能; (4)(密码存储模块:可以使修改过的密码断电后仍能保存在芯片中; (5)(电源模块:用于对系统电路提供+5V的直流电压。 3.2 主要芯片介绍 3.2.1 AT89C51 6 AT89C51是在半导体硅片上集成微处理器,存储器与各种I/O接口的单片机。单片机上的可擦除只读存储器可以反复擦除1000次。并且该器件采用ATMEL高密度非易失存储器制造技术制造,抗干扰能力强。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,功能齐全,简单方便。AT89C51单片机提供了一种灵活性高且价廉的方案,许多嵌入式控制系统青睐于这种多功能的芯片。它的外形及引脚排列如图3-2所示: 图3-2 AT89C51芯片 主要特性: (1)(与MCS-51 可以兼容; (2)(可编程FLASH存储器(4K字节); (3)(寿命:1000次写/擦循环; (4)(数据保留时间长,可达10年; (5)(全静态工作:最高24MHz; (6)(三级程序存储器锁定; (7)(128×8位内部RAM; (8)(32可编程I/O线; (9)(两个16位定时器/计数器; 7 (10)(5个中断源; (11)(可编程串行通道; (12)(片内有振荡器和时钟电路。 特性概述: AT89C51 不仅可以为使用者提供以上 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 功能,同时可支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 管脚说明: (1)(I/O引脚 P0口:P0口是一个8位漏级开路的双向I/O口,每脚可驱动8个LS型TTL负载。当P0口的管脚第一次写1时,被定义为高阻输入。当89C51扩展外部存储器及I/O接口芯片时,P0口作为地址总线(低八位)及数据总线的分时复用端口。在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻,此时为准双向口。 P1口:P1口是一个内部提供上拉电阻的8位准双向I/O口。同时它可驱动4个LS型TLL负载。 P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流。在FLASH编程和校验时,P1口作为低八位地址接收。 P2口:八位,准双向I/O口,具有内部上拉电阻。P2口缓冲器可接收,输出4个TTL门电流。当作为普通的I/O输入时,应先向端口的输出锁存器写入1。因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口是8位,同时带有内部上拉电阻的准双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL),这是由于上拉的缘故。 P3口也可为AT89C51提供第二功能,如表3-1所示: 表3-1 P3口的第二功能 8 引脚 第二功能 说明 P3.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 外部数据存储器写选通输入 P3口同时为闪烁编程和编程校验接收一些控制信号。 (2)(电源 电源引脚接入单片机的工作电源;V 接+5V电源;V接地 。 CCSS (3)(时钟引脚 XTAL1:是用来做为片内振荡器反相放大器和时钟发生器电路的输入端。当使用片内振荡器时,该引脚连接外部石英晶体和微调电容。当采用外接时钟源时,引脚XTAL1接收外部时钟振荡器的信号。 XTAL2:作为片内振荡器反相放大器的输出端。当采用外接时钟源时, XTAL2引脚悬空。当使用片内振荡器时,该引脚连接外部石英晶体和微调电容。 (4)(控制引脚 该类引脚不仅可以提供控制信号,有的引脚还具有复用功能。 RST:作为复位信号的输入端,高电平时有效。当对单片机进行复位操作时,要保持RST脚大于两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低8位字节。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为时钟振荡器频率f的1/6。因此它可用作对外部输出的脉冲或定时信号使用。然而要注意的是:每当OSC 用作访问外部数据存储器时,将跳过一个ALE脉冲。因此严格来说,它不适宜用作准确的时钟源或定时信号。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PROG为该引脚的第二功能,在对片内 9 FLASH编程期间,此引脚用于输入编程脉冲。 /PSEN:外部程序存储器的选通信号。在单片机读取外部程序存储器期间,此引脚输出脉冲的负跳沿作为读外部程序存储器的选通信号。但在访问外部数据存储器时,/PSEN信号将不出现。 /EA/V:/EA为外部程序存储器访问允许控制端。当/EA保持低电平时,则在此期PP 间对程序存储器的读操作只限定在外部程序存储器,地址为0000H-FFFFH,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,单片机读片内程序存储器,但在PC值超过0FFFH时,将自动转向访问外部程序存储器中的程序。V为该引脚的第二功能,为变成电压输入端。在对片内Flash固化编PP 程时,对于89C51引脚加载的编程电压为+5V或+12V。 3.2.2 存储芯片AT24C02 2具有IC串行总线接口EEPROM有多个厂家生产的多种类型的产品。其中,AT24C02是美国Atmel公司生产的低功耗CMOS型EEPROM,内含256×8位存储空间,具有工作电压宽(2.5,5.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能 2力强、数据可保存100年、体积小等特点。而且它是采用了IC总线式进行数据读写的串行器件,具有写保护、可靠性高、功耗低等特点,同时占用很少的资源和I/O线,并 2且支持在线编程,具有一个16B的页写缓冲器,进行数据实时的存取十分方便。IC(Inter,Integrated Circuit)总线是由PHILIPS公司推出的一种两线式串行总线。它是目前使用较为广泛的芯片间串行扩展总线。它用于连接微控制器及其外围设备,可以通过两条连线实现全双工同步数据传送。它是微电子通信控制领域广泛采用的一种总线标准,同时 22也是同步通信的一种特殊形式。它可以使具有IC总线的单片机直接与具有IC总线接口的各种扩展器件连接。它具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。AT24C02操作时有两种寻址方式,芯片寻址和片内子地址寻址。AT24C02中带有的片内地址寄存器,每写入或读出一个数据字节后,该地址寄存器自动加1,从而可以实现对下一个存储单元的读写,并且所有字节均以单一操作方式读取。一次操作可写入多达8个字节的数据,这样的话可以降低总的写入时间。它依靠SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间进行信息的传输,并通过地址识 2别每个器件。AT24C02正是运用了IC规程,使用主/从机双向通信,主机(通常为单片机)和从机(AT24C02)均可在接收器和发送器状态进行。主机产生串行时钟信号(通过 10 SCL引脚)的同时,会发出控制字,用来控制总线的传送方向,并产生开始和停止的条件。无论是主机还是从机,接收到一个字节后必须发出一个确认信号ACK。AT24C02的控制字由8位二进制数构成。 管脚描述: SCL 为串行时钟管脚:用于产生器件所有数据发送或接收的时钟,这是一个输入管脚。 SDL 为串行数据/地址管脚:用于器件所有数据的发送或接收SDL,是一个开漏输出管脚。此管脚可与其它开漏输出或集电极开路输出进行线或。 A0、A1、A2 为器件地址输入端:当使用AT24C02 时,最大可级联8个器件。如果只有一个24C02被总线寻址,这三个地址输入脚A0、A1、A2可悬空或连接到Vss。 WP为写保护:如果WP 管脚连接到Vcc, 所有的内容都被写保护只能读。当WP,管脚连接到Vss 或悬空,允许器件进行正常的读/写操作。 管脚图如图3-2所示: 图3-2 AT24C02引脚 3.2.3 显示电路(LCD1602) LCD(Liquid Crystal Display)是液晶显示器的缩写,它是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能改变光线通过方向的特点,从而达到白底黑字或黑底白字显示的目的。LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置薄膜晶体管,上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。液晶显示器具有很多优点,低压微功耗、外观小巧精致 、被动显示型(无眩光、不刺激人眼、不会引起眼睛疲劳)、显示信息量大、易于彩色化(在色谱上可以非常准确的复现)、无电磁辐射(对人体安全、利于信息保密)、长寿命、抗干扰性能强,因而在仪器仪表和控制系统中应用非常广泛。 11 所谓的 LCD1602即是16字符*2行的字符型LCD显示器,它由32个字符点阵块组成,每个字符点阵块由5×7或5×11个点阵组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。可以显示ASCII码表中的所有可视的字符。它内置了字符产生器ROM(CGROM)、字符产生器RAM(CGRAM)和显示数据RAM(DDRAM)。CGROM中内置了192个常用字符的字模,CGRAM包含8个字节的RAM,用来存放用户自定义的字符,DDRAM就是用来寄存待显示的字符代码。 1602引脚及其具体功能如表3-2: 表3-2 1602引脚及功能 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 Data I/O 2 VDD 电源正极 10 D3 Data I/O 3 VEE 液晶显示偏压信号 11 D4 Data I/O 4 RS 数据/命令选择端(H/L) 12 D5 Data I/O 5 R/W 读/写选择端(H/L) 13 D6 Data I/O 6 E 使能信号 14 D7 Data I/O 7 D0 Data I/O 15 BLA 背光源正极 8 D1 Data I/O 16 BLK 背光源负极 控制器内部设有一个数据地址指针,用户可通过它们来访问内部的全部80字节RAM。 数据指针设置如表3-3所示 表3-3 数据指针设置 指令码 功能 80H+地址吗(0-27H,40-67H) 设置数据地址指针 12 第4章 系统硬件构成 4.1 系统整体电路图 本密码锁系统硬件电路是由AT89C51单片机、LCD1602液晶显示、存储器AT24C02、矩阵键盘电路以及控制报警电路5个模块组成的。其整体电路图如下图4-1所示: 图4-1 整体电路 4.2 单片机最小系统原理图 由AT89C51,电源,复位电路,时钟产生电路组成。电源由+5v的直流提供。 13 图4-2 单片机最小系统原理 4.3 复位电路 单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。只需给AT89C51的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可使AT89C51复位。复位时,PC初始化为0000H,为的是使AT89C51单片机从0000H单元开始执行程序。不仅在正常启动时需要复位,当程序运行出错或操作错误是系统处于死锁状态时,也需按复位键使RST脚为高电平,使单片机摆脱“程序走飞”或“死机”状态而重新启动。 除PC之外,复位操作还对其他一些寄存器有影响。复位时,SP=07H,而4个I/O口P0~P3的引脚均为高电平。在某些控制应用中,要注意考虑P0~P3引脚的高电平对接在这些引脚上的外部电路的影响。另外,在复位有效期间,单片机的ALE引脚和/PSEN引脚均为高电平,且内部RAM的状态不受复位影响。AT89C51的复位是由外部的复位电路实现的。89C51片内复位电路的结构见图4-3。 14 复位电路 RST引脚 片内施密特 复位触发器 电 阻 图4-3 复位电路结构 单片机的复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器的作用是用来抑制噪声。复位电路在每个机器周期的S5P2采集一次施密特触发器的输出电平,然后得到的信号是内部复位操作所需要的。复位电路的复位方式有上电自动复位和按钮复位两种方式。另外,按钮复位有电平和脉冲两种复位方式。 本设计采用按键电平复位。电平复位是通过RST端口经电阻与电源V接通来实CC现的,按键电平复位电路见图4-4。 图 4-4 按键电平复位电路 4.4 时钟电路 时钟电路是用于产生单片机工作时所必需的时钟控制信号的电路。时钟电路一般由晶体振荡器、晶振控制芯片和电容组成。在时钟信号控制下,AT89C51单片机的内部电路严格地按时序执行指令进行工作,而指令执行中各个信号在时间上的关系就是由时序所体现的。 在执行指令时,在程序存储器中CPU首先取出需要执行的指令操作码,然后进行译码,并由时序电路产生一系列控制信号完成指令所给定的操作。AT89C51单片机各功 15 能部件的运行都以时钟控制信号为基准,有序的进行地工作。因此,时钟频率能够对单片机的速度造成很重要的影响,时钟电路的质量也会直接影响到单片机系统的运行时的稳定性。一般来说,钟电路设计分两种方式,一种是内部时钟方式,另一种是外部时钟方式。本设计使用内部时钟方式如图4-5: 图4-5 内部时钟电路 89C51内部有一个用于构成振荡器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器。电路中电容C1、C2的大小会对振荡器频率的高低,振荡器的稳定性和起振的快速性有所影响。晶体振荡频率的范围一般在1.2~12MHZ。晶体的频率越高,系统的时钟频率越高,单片机的运行速度也就越快。但反过来,运行速度快对存储器的速度要求就高,对印制电路板的工艺要求也高,即要求线间的寄生电容要小。 4.5 键盘输入部分 由于本设计所用到的按键具有多种功能,数量较多,不适合用独立按键式键盘,采用的是矩阵式按键键盘。矩阵式键盘也成行列式键盘,它由行线和列线组成,按键位于行、列的交叉点上。本设计中使用的这个4*4键盘可以构成一个16个按键的键盘。它不但能完成密码的输入,还能作特别功能键使用,例如清空显示功能,更改密码等。键盘的每个按键功能在程序设计中设计。键盘及与单片机引脚接法如图4-6所示: 16 图4-6 键盘输入原理 4.6 密码存储部分 用EEROM芯片AT24C02存储密码。EEPROM使用电信号编程,同时是用电信号擦除的ROM芯片。对EEPROM的读写操作与RAM存储器的操作几乎没有什么差别,不过写入的速度慢一些,但断电后仍能保存信息。 AT24C02存储容量为2Kb,操作时有两种不同的寻址方式:芯片寻址和片内子地址寻址。 芯片寻址方式:AT24C02的芯片地址为1010,地址控制字格式1010A2A1A0R/W。其中A2,A1,A0为可编程地址选择位。A2,A1,A0的引脚接高、低电平后得到确定的三位编码,与1010形成7位编码,即为该器件的地址码。R/W为该芯片读写控制位,该位为0,表示芯片进行写操作。 片内子地址寻址方式:芯片寻址可对内部256B中任一个进行读/写操作,其寻址范围为00~FF,一共256个寻址单位。其接线如图4-7所示: 17 图4-7 密码存储电路原理 4.7 显示部分 为了使密码锁的密码显示效果更加人性化,便于操作,本设计的显示部分由液晶显屏LCD1602取代普通的八段数码管来完成。系统开机后,显示器一直处于初始状态,等待密码的输入。当对密码锁进行开锁操作时,按下键盘上的数字键“0”~“9”来进行密码的输入。每按下一个数字键后,会在显示器上显示一个“*”字符,这是为了保护密码,输入多少位就会显示多少个“*”。当密码输入完成以后,接着按下确认键。如果输入的密码正确,LCD会显示“true”,否则,LCD显示屏会显示“error”来表示密码输入有误。此时,P2.0口输出的是低电平,电子密码锁不能被打开。通过LCD显示屏,可以清楚的判断出锁所处的状态 。 其显示部分引脚接口如图4-8所示: 图4-8 显示电路原理 18 4.8 报警部分 报警部分由喇叭电路组成,当有键按下时,每按一下,喇叭响一次,当密码输入 错误时,单片机的P2.1引脚为低电平,喇叭发出噪鸣声报警。如图4-9所示: 图4-9 报警电路原理 19 第5章 软件的设计与实现 软件是整个控制系统的核心部分,它具有很强的灵活性,可以根据不同的系统需求进行更改。在硬件结构一定的情况下,通过改变编程就能实现不同的功能。智能密码锁所具有的功能主要由软件来完成。 5.1 软件系统的总体设计 系统上电后会首先完成系统的初始化工作,然后根据事先设定好的进行执行程序。在本系统中,软件结构采用模块化设计方法,主要包括密码锁主程序、初始化程序、键功能程序、键盘扫描程序、密码比较模块、密码修改模块、掉电存储模块、LCD显示程序、密码对开锁、密码错误报警等。 5.2 主程序流程图 主程序对模块进行初始化,而后调用密码输入子程序、密码比较子程序、判断密码是否输入正确。 具体流程:插上电源后,系统自动调入初始密码,然后进行键盘检测。若发现有按键按下,将输入的密码与初始密码进行比较。 (1)如果输入密码正确,显示屏显示“true”开锁。开锁后,可以通过按下取消键关闭开锁状态,进入系统初始化状态;或者可以通过再次输入正确的密码,按下修改键,进入密码修改程序。 (2)如果输入密码与初始化密码不同,检测它是否与“1”、“3”、“1”、“4”、“2”、“0”相同,若相同,则强制将初始密码写入AT24C02存储。 (3)如果输入密码与以上都不同,则输入错误,显示“error”,同时蜂鸣器响三秒,报警。如果连续错误输入三次,蜂鸣器持续报警,键盘进入锁定状态,可以按下复位键进入系统初始化状态。 20 主程序流程图如图5-1所示: 开始 错误次数>=3次,手动复位 初始化 错误次数<2 键盘扫描 , 出错报警 返回初始化 N N Y 与初始密码开锁 与131420相 相比相同, 比相同, Y N 强制密码输入旧密码 初始化 Y 原密码相 返回初始修改密码 同, 化 N N 出错报警 图5-1 系统主程序流程 21 5.3 键功能程序流程图 系统初始化后进行键盘扫描,若有按键按下,判断按键类型。 键功能流程如图5-2所示: 键功能程序 Y 密码输入程序 键值=0~9, N Y 确认开锁程序 键值=确认, N Y 取消当前操作程序 键值=取消, N Y 修改密码程序 键值=修改, N 进入对应流程 图5-2 键功能流程图 22 第六章 结论 本设计从经济实用的角度出发,采用美国Atmel公司的单片机AT89C51与低功耗CMOS型EEPROM AT24C02作为主控芯片与数据存储器单元,结合外围的矩阵键盘输入、LCD1602液晶显示屏显示、报警等电路并用C语言编写主控芯片的控制程序,研制了一款可以多次更改密码同时兼具报警功能的智能密码锁。设计完全可行并且可以达到设计要求。该电路设计还具有按键有效提示,输入错误提示,控制开锁电平,控制报警电路,修改密码等多种功能。本设计安全性强,灵活性高,价格经济,特别适用于办公室、私人住所及酒店等场所。智能锁取代机械锁是一个必然的趋势,因为智能锁有强大的技术优势与安全保障,我相信,智能密码锁会让更多的人更放心地在更多的场合使用,也会让我们的未来更加安全。 23 参考文献 [1] 张毅刚,彭喜元.单片机原理与应用设计[M].北京:电子工业出版社,2012. [2] 童诗白,华成英,模拟电子技术基础[M].北京:高等教育出版社,2000. [3] 阎石主著.数字电子技术基础[M].北京:高等教育出版社,2003. [4] 张云,周明辉,周海林,等.基于AT89S51的多功能电子密码锁设计[J].电子设计工程,2010, 18(6):23-25. [5] 陈丹萍.基于AT89S51单片机的电子密码锁设计[J].大众科技,2010(6):45-46. [6] 田晓翠,李林英.基于单片机AT89C51电子密码锁的设计[J].无线互联科技,2013(10):94. [7] 余锡存.单片机原理及接口技术[M].西安:西安电子科技大学出版社,2000. [8] 李全利.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2004. [9] 薛均义,张彦斌.MCS-51系列单片微型计算机及其应用[M].西安:西安交通大学出版社, 2005. [10] 徐爱钧,彭秀华.单片机高级语言C51应用程序设计[M].北京:北京航空航天大学出版社, 2006. [11] 郭天祥.51单片机C语言教程―入门、提高、开发、拓展全攻略[M].北京:电子工业出版社,2009. [12] 周向红.51系列单片机应用与实践教程 [M].北京:北京航天航空大学出版社,2008. [13] 李学海.经典80C51单片机轻松入门与上手[M].北京:清华大学出版社,2009. [14] 周润景,张丽娜.基于Proteus的电路及单片机系统设计与仿真[M].北京:北京航天航空出版社,2006. [15] 陈爱钧,彭秀华.Keil Cx51 V7.0单片机高级语言编程与μVision2应用实践[M].北京:电子工业出版社,2004. [16] 于永,戴佳,刘波.51单片机C语言常用模块与综合系统设计实例精讲[M].北京:电子工业出版社,2008. [17] 王东峰,王会良,董冠强.单片机C语言应用100例[M].北京:电子工业出版社,2009. 24 致 谢 经过几个月的忙碌和工作,毕业设计已经接近完成。由于本人经验的匮乏,在进行设计时,有许多考虑不完善的地方,如果没有导师的悉心指导,以及一起工作的同学们的支持,想要完成这个设计是非常困难的。经过这次的毕业设计,我在处理方案上得到了许多启发,极大的提高了自己的动手能力。 四年的大学生活马上就要结束了,在这段难忘的光阴中,我有许多美好的回忆。非常感谢我的大学,它不仅教会我更多的知识,同时也教会我做人的道理,让我从一个稚嫩的高中生变成一个成熟的青年。同时,毕业设计完成之际,我由衷地感谢陈俊峰老师对我的帮助和指导,感谢寝室的兄弟们,在我遇到各种各样复杂问题的时候,给予我鼓励和帮助,使我的分析问题和解决问题能力有了很大的提高。同时,感谢通信工程学院的所有老师在四年里对我的悉心教导,是你们的付出,让我自己有了更高的提升。最后,感谢在大学期间认识我和我认识的所有人,有你们的伴随,才有我大学生活的丰富多彩。谢谢~ 25 附 录 附件1:英文原文及中文翻译 英文原文 The Design of Infrared Remote Control Electronic Code Lock Tianxing Meng, Lanlan Yu School of Electric and Electronic Engineering Shandong University of Technology School of Electric and Electronic Engineering, Shandong University of Technology, 255049 Zibo, China mtx0936@163.com Abstract: The lock used a microcontroller as the core of the control. It was consist of two major components: the infrared remote control launching system and the infrared remote control receiver system, including a microcomputer control and display, many other modules such as unlock and alarm, and so on. The design of password lock includes hardware system design and software system design. The key technical indicators are: the lock opening, password storage, the effective protection of user's password, auto-alarm if the wrong password, unlock the keyboard of the machine, remote unlocking and other functions. AT89C51 microcontroller was used to program instruction for the achievement of the software. Been tested, the system can achieve the above functions. Key-Words: infrared remote control, microcontroller, unlock 1 Introduction The rapid development of electronic technology has brought great changes to the old lock production, producing many kinds of advanced locks, such as voice-activated locks, magnetic locks, password locks, remote locks, fingerprint locks and on. At the moment, the main directions of the lock system development [1] at home and abroad are: contact password lock system, non-contact-type password lock system, intelligent identification lock system, 26 but there are a corresponding different shortcomings. For example: contact-type password lock system low cost, small size, the card itself need no power, but less convenient and contact wear. Because of infrared remote control was used in this lock system, there are many advantages: miniature remote control transmitter is easy and inexpensive; high anti interference, and less disoperation, low power consumption, including other advantages, such as fast response infrared transmission, high transmission efficiency, stable and reliable operation . Based on these advantages, this lock can be widely used in civil doors, warehouse doors. The system is an infrared remote controlled electronic lock with functions of a local and remote unlocking, using microcomputer AT89C51 [2] as a core component of this design, according the infra-red remote control theory and MCU serial transmitter and receiver functions. The block diagram of the system was shown in Figure 1. The basic functions design of the remote lock is divided into five parts such as choosing a password, password show, unlocking of the machine key, password error alarm and remote unlocking. 2 The Design of Hardware Circuit 2.1 The Design of infrared remote control transmitter IR transmit / receive control circuits are achieved by the AT89C51 microcontroller with simple circuit, selectable output control method and very practical [5]. The specific work process is as follows: 27 Launch: First, sent back the data from the serial transmit port P3.1 to the P1.1 port for internal modem, sent out from the P1.2 port, and then fired out through the infrared emitting diodes, firing distance is about 10m. Receipt: The infrared receiver head matched with the launch is used. , sent out the data launched to the serial port 3.0, and then the system will confirm whether the send data are consistent with the receive data, yes will unlock, no will give up. The design of Infrared remote control transmitter [3] is shown in Figure 2. 2.2 The Design of machine key unlocking circuit The machine key unlocking circuit is shown in Figure 3, AT89C51 is the core of this circuit, P0 mouth and P1.0, P1.1, P1.2 are connected with the keyboard of this machine externally. P3.0 port is connected with the infrared remote receiver head externally, P1.3 port with alarm signal amplifier used to enlarge the alarm signal to drive speakers, P1.4 port with unlocking electromagnetic drive circuit, P1.5 with password selection keys, there are two sets of passwords in EPROM memory, P2 with digital tube, used to show whether the key is pressed, P1.7port is connected with drive control circuitry to control the power supply of LM386, meaning that only the alarm, LM386 can supply power, power outages usually, This greatly reduces the current consumption. 28 This circuit is consist of remote control transmitters, receivers, keyboards, monitors etc., this machine uses 10 keys as a password input keys, using the remote control lock at the same time [4].Features are following: (1) when no remote control signal is received, enter a password though the keyboard, if the five valid password entered correctly, press "#" to confirm, P1.4 will output high to enable electromagnetic locks move to complete the unlock .At the same time, the circuit enters extended state, 5 seconds later, the circuit will automatically be restored to the original state of the latch. (2) When the five valid passwords are entered correctly, but did not press the "#" key to confirm, then the circuit will automatically give up and return to the initial locking status. (3)The 5 valid password must be entered in according with the order, error order or the wrong password would not fit the lock if "#" was not confirmed, and five-second alarm signal 29 will be issued to remind the user. (4) If 3 consecutive wrong password, there will be a long time alarm, then only reset button can return the system to the original state. (5)When enter the password,, the circuit will start automatic timing if the first password was entered correctly, the intervals of between two password number when input should be within 3 seconds. Otherwise, it will be processed as input time-out; the system will automatically give up and return to the initial state. 2.3 Remote unlocking works When you select the way of remote unlocking, this machine key will be blocked. As long as the user pressed the button on P1.0 port of AT89C51 with the remote controller in the hand, there will be digits issued from the P1.2 port on the AT89C51, the sending process is as follows: First 5FH was sent from the P3.1, and then back to the P1.1 port for internal modulation, the rule of the modulation is modulate when "0" level,"1" level not, finally, sent the modulated data through the P1.2 mouth , sent out remote control signals with a wavelength of 940nm infrared light through infrared light-emitting diodes. In the machine control circuit, there is a receive head matched with infrared light-emitting diode in the P3.0 port of the AT89C51,then received optical signals are converted to electrical signal data. Finally, compare the data with the original data set in internal systems and confirm that if the same will be holding its lock, and if not then abandon the lock. 3 The Design of Software program System software design uses C51 as programming language to realize the remote control of electronic locks. The main program flow chart is shown in Figure 4. 4 Conclusions In this paper, an infrared remote control electronic locks was designed and implemented, the main technical indicators are: the lock opening, password storage, the effective protection of user's password, auto-alarm if the wrong password, unlock the keyboard of the machine, remote unlocking and other functions. Because of infrared remote control used in this lock system, there are many advantages: Infrared launching device use 30 infrared light-emitting diodes, miniature remote control transmitter is easy and inexpensive; use digital signal coded modulation 31 to improve anti-interference when signal are transmitted, less disoperation , low power consumption, including other advantages, such as fast response infrared transmission, high transmission efficiency, stable and reliable operation .Based on these advantages, this lock can be widely used in civil doors and warehouse doors. References: [1] Fenzl Heinz, Kliner Alois. ELECTRONIC LOCK SYSTEM: CONVENIENT AND SAFE. Journal article. 1987, 22(4):150-153. [2] Guangfei Li. The example instruction of singlechip course design. Beijing: Beijing University of Aeronautics publishing company, 2004. [3] Yongxiong Pan, He Sha, Xiangyang Liu. Practical teaching materials of electronic circuit CAD. Xi’an: Xi’an electronic science and technology university publishing company, 2001. [4] Ur Rehman, Ejaz. Simple electronic lock uses single-transistor circuit. Journal article. 2003, 51(11):67. 32 中文翻译 红外遥控电子密码锁的设计 Tianxing Meng, Lanlan Yu 电气与电子工程学院 山东理工大学 淄博市,中国 mtx0936@163.com 摘要:锁用单片机作为控制核心。它是由两个主要部分组成: 红外遥控发射系统和红外遥控接收系统,包括微机控制和显示,许多其它模块如开锁和报警,等等。设计密码锁包括硬件系统设计和软件系统设计。关键技术指标有:锁开启,密码存储,有效保护用户的密码,如果输错密码会自动报警, 解锁键盘,遥控开锁等其他功能。 AT89C51单片机是用来使程序指令实现的软件。经测试,该系统可以实现上述功能。 关键词:红外遥控器,单片机,解锁 1引言 电子技术的飞速发展给以往锁的生产带来了巨大的改变,生产多种先进的锁,如声控锁,磁力锁,密码锁,遥控锁和指纹锁。目前,锁定系统开发[1]在国内和国外的主要方向是:接触密码锁系统,非接触式密码锁系统,智能识别门锁系统,但也有相应的不同的缺点。例如:接触式密码锁系统成本低,体积小,卡本身无需电源,但不太方便,接触磨损。由于红外遥控器是在这个锁系统中使用,也有许多优点:微型遥控容易操作,费用低廉;高的抗干扰性,操作错误少,低功耗,包括其他的优点,如快速响应红外传输,传输效率高,运行稳定可靠。基于这些优势,该锁可广泛应用于民用门,仓库门。 该系统是一个红外遥控电子锁与本地和远程开锁的功能,采用微电脑单片机AT89C51 [ 2 ]作为本设计的核心组成部分,根据红外线遥控原理和单片机串行发送器和接收器的功能。该系统的框图如图1所示。 遥控锁的基本功能设计被分成五个部分,如选择密码,密码显示,解锁键盘,密码错误报警,远程开锁。 33 红外接头 键盘 红 外 发 射 显示器 器 报警 AT89C51 复位 电磁锁 晶体振荡器 图1. 原理 2硬件电路的设计 2.1红外遥控发射器的设计 红外发射/接收控制电路是通过AT89C51单片机实现的,电路简单,可选输出控制方法,非常实用[ 5 ]。具体工作过程如下: 发射:首先,从串口发送端口P3.1将数据发回给内部调制解调器的P1.1口,从P1.2端口发送出去,然后通过红外发光二极管发射出去,发射距离是10米左右。 接收:使用匹配发送数据的红外线接收头,送出数据到串口3.0中,然后系统会自动确认发送的数据是否与获得一致的数据,一致将解锁,没有会放弃解锁。红外遥控发射器的设计[3]如图2所示。 34 图2发射电路的原理 2.2机械钥匙开锁电路的设计 机键解锁电路如图3所示,AT89C51是该电路的核心,P0口和P1.0,P1.1,P1.2都与本机的键盘外部连接。P3.0端口与红外遥控接收头外部连接,连接报警信号扩音器的P1.3口用于扩大报警信号到驱动扬声器,P1.4端口连接电磁开锁驱动电路,P1.5端口连接密码选择键,有两套密码存储在可擦除可编程只读寄存器中,P2连接数码管,用来显示键是否被按下,P1.7端口连接驱动控制电路来控制LM386的电源,这意味着只有报警,LM386可以提供电源,断电通常,这大大降低了电流消耗。 35 图3解锁电路 该电路包括遥控发射器,接收器,键盘,显示器等方面,该机采用10键作为密码输入键,同时使用遥控锁[4],特点是以下几点 (1)当没有接收到遥控信号,通过键盘输入密码,如果五个有效的密码输入正确,按“,”键确认,P1.4将输出高电平,使电磁锁移动到完成解锁。在同时,电路进入扩张状态,在5秒后,电路将自动恢复到锁存器的初始状态。 (2)当在5有效的密码被输入 正确,但没有按“,”键确认, 那么电路会自动放弃并返回到初始锁定状态。 (3)5个有效的密码必须按顺序输入,如果没有按“#”键确认,错误的命令或错误的密码将不会开锁,并且五秒后会发出报警信号来提醒用户。 36 (4)如果连续输入3次错误的密码,会有长时间的报警,然后只有按下复位键可以将系统恢复到初始状态。 (5)当输入密码,该电路将开始自动计时,如果正确地输入了第一个密码,输入第两个密码号的时间间隔应该是在3秒内。否则,它会被处理为输入超时,系统会自动放弃并返回到初始状态。 2.3遥控解锁 当您选择遥控开锁的方式,单片机上按键将被锁定。只要用户按下AT89C51的P1.0口上的按钮则会连接上手中的遥控器,将有来自于AT89C51的P1.2端口发出的码字,发送过程如下: 首先,从P3.1送出5FH,然后再返回到内部调制的P1.1端口,调制的规则当收到“0”时调制,收到“1”时不调制。最后,通过P1.2口传送经调制的数据,通过红外发光二极管发出的遥控信号为940nm的红外光的波长。在机器的控制电路,有一个接收头匹配AT89C51上的P3.0端口的红外发光二极管,则把接收到的光信号转换为电信号的数据。最后,在内部系统的原始数据集的数据进行比较,并确认,如果相同,则解开密码锁,如果不同的话放弃开锁。 3软件程序设计 系统的软件设计采用C51编程语言来实现远程控制的电子密码锁。主程序流程图如图4所示。 37 图4程序流程 4结论 本文设计与实现了一个红外遥控电子密码锁,它主要技术指标有:开锁,密码存储,有效保护用户的密码,输错密码自动报警,解锁机器键盘,遥控开锁等的功能。因为这个锁系统使用红外遥控器,有很多优点:红外发射装置采用红外发光二极管,微型遥控发射器很容易操作并且价格便宜; 当信号被传输时,使用数字信号编码调制以提高抗干扰性,操作错误少,低功耗,同时包括其它的优点,如快速响应红外传输,传输效率高,运行稳定可靠。基于这些优势,该锁可广泛应用于民用门和仓库门。 38 参考文献: [1] Fenzl Heinz, Kliner Alois 电子锁系统:方便与安全。 期刊文章。 1987年,22(4):150-153 [2] 李光飞 单片机课程设计指导 北京:北京航空航天大学出版公司, 2004 [3] 潘永雄,沙河,刘向阳电子线路CAD实用教程 西安:西安电子科技大学出版社, 2001 [4] Ur Rehman, Ejaz 采用单晶体管电路简单的电子锁。期刊文章。2003,51(11):67。 39 附件 2:任务书 毕业设计任务书 ,基于单片机的智能密码锁的设计, 一、毕业设计目的 1(通过毕业设计来检验所学知识的实际应用系统设计的能力; 2(提高自学自纠、查找资料与进行科研实验的能力。 二、主要内容 1. 掌握单片机的使用与扩展; 2. 根据设计思路,设计智能密码锁的硬件结构电路,编写相应程序; 3. 实现输入正确密码开锁,错误密码报警,修改密码等功能; 4. 对设计的电路进行分析。 三、重点研究问题 1. 通过端口扩展单片机的功能; 2. 实现各个模块之间的联系; 3. 以单片机为主控芯片实现智能密码锁的功能。 四、主要技术指标或主要参数 1.密码位数:6位; 2.锁定键盘最大输入错误次数:三次; 3.工作电压:+5V。 五、基本要求 1.设计电路,编写代码,进行电路仿真; 2.做出符合设计功能的硬件失误; 3.翻译外文资料,要求不少于2000字; 六、其它,包括选题来源, 指导老师提供 指导教师: 年 月 日 40 附件3:开题报告 开题报告 基于单片机的智能密码锁的设计 题目名称 自选 课题来源 一、 课题意义 智能密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、报警、闭锁任务的电子产品。在安全防盗领域,完美的替代了传统的机械式密码锁,解决了机械式密码锁长久以来存在的密码量少、安全性能差的缺陷,使锁具在技术层面与性能优化上都有很大的提高。同时,大规模集成电路技术的成熟,尤其是是单片机的普及,出现了带微处理器的智能密码锁,通过不同的外接硬件,使锁具功能多样化,从而提高了安全性与可靠性,应用日益广泛。 二、 相关背景 所谓的智能密码锁,就是通过微电子技术、集成电路设计,同时使用大量的电子元器件,结合多种新颖有效的识别技术(包括指纹识别技主 要 术、锁体的机械设计、网络报警等),进行多元开发生产的综合型产品。 内 关于智能密码锁的研究从20世纪30年代就开始了,已经应用于当容 时的一些特殊场所。智能锁的密钥量极大,不仅通过芯片控制,也可以与精密的机械原理相融合。有了这样的双层保障,就可以减少或避免由于钥匙丢失或被盗窃后造成的安全隐患。人们只要记住自己所设定的密码,不需要随身携带钥匙,不需要担心遗失钥匙的情况,方便了人们的生活。因此人们愈发的欣赏这种方便安全的保护措施。20世纪80年代后,通过进一步的研发,智能锁专用集成电路已经出现在科研人员的手中,它的体积进一步缩小,可靠性有了大幅度提高,不过成本较高,比较适用于在要求安全措施较高的场合。显而易见,它的使用范围还有所局限,难以普及到大众生活中,所以对它的研究有一度的停滞。到了20世纪90年代,日本、美国、意大利、韩国、德国、加拿大以及我国的台湾、香港等地的微电子技术和通信技术有了较大的科研进展,这一进步为密码 41 锁的后续发展提供了技术上的有力援助,从而奠定了密码锁向实际应用普及的发展方向。到了21世纪初,在西方的一些国家里,密码锁技术相比着更加先进,拓展的使用功能更加多样化。例如,人们把电子密码锁广泛应用于智能门禁系统中从而实现大门的管理,不仅更加安全,同时也更加可靠了。 我国开始对密码锁进行的前期科学研究是在90年代初期。随着国家的快速发展,国力的不断增强,我国在微电子技术与信息技术的研究中也有所建树。从20世纪初的技术水平和市场认可程度看,最被人们广泛欢迎与接受的是键盘式电子密码锁。该产品安全性能高,价格低廉,主要应用于私人储物如保险箱、公司财务如保险柜和银行的金库等,同时也可以应用于保管箱和运钞车。由于这种密码锁的优点突出,很有市场推广价值,因此科研投入高。这种锁很快的克服了初期的性能稳定差等缺点,变得越来越实用,愈发的受到人们的欢迎。 智能密码锁的种类繁多,例如数码锁、指纹锁、磁卡锁、IC卡锁、生物锁、遥控式电子密码锁、卡片式密码锁等。当代社会,由于生物特征技术发展迅速,除了一些近期难以被克服的体积、价格、材料等方面的缺点外,生物特征防盗锁在应用方面的前景被人们普遍看好。这是因为人体生物特征例如指纹、虹膜、DNA等一些含有字符、图形图像和时间等电子生物信息要素均可成为唯一的开锁钥匙,通过对这些辨识度高、特征性强的信息的自由组合,能够大幅度提高电子防盗锁保密特性。同时,对信息的组合使用也能够更多方面的扩展电子防盗的方法,使功能更加丰富。 21世纪初,接触式卡的技术成熟、价格低廉,应用也较为广泛;不过非接触式卡使用更加隐蔽、方便,大有后来居上之势。它不仅可以作为钥匙,还包含多项个人的信息特征,可以用于入门、开锁、存储、付费等,这种一卡多用的方法给持卡人带来了便利,它特别适合金融业注重“验明正身”的行业特点,而且储存信息量大是此种智能锁的优势。不过同时存在一些缺点,使用这类防盗锁,需要谨慎的保管卡,尤其当遗失卡时为了防止信息的泄露与经济的损失,须尽快取消对该卡的授权。 42 在技术层面上,我国密码锁整体水平尚处于国际上70年代左右,高端智能密码锁的成本还很高,市场上仍以按键电子锁为主。不过在生物特征防盗锁和卡片钥匙式电子锁方面,已引进国际先进生产水平。由于高端密码锁商业市场结构尚未形成,技术还不成熟,国内自行研制开发的多功能电子锁,应用还不广泛。 三、 理论分析 本设计主要由单片机AT89C51、矩阵键盘、密码存储芯片AT24C02和液晶显示器LCD1602等部分构成。其中矩阵键盘用于输入密码和进行功能的实现。用户通过连接单片机的矩阵键盘输入密码,然后单片机对用户通过键盘输入的密码与保存在AT24C02芯片中的密码进行对比,从而判断密码是否正确,然后将引脚的高低电平传到开锁电路或者报警电路,从而选择控制开锁还是报警。在实际使用时只需要将单片机的负载由继电器换成控制密码锁开关的电磁铁吸合线圈即可。 各模块功能如下: (1)(矩阵键盘输入模块:分为从“0”~“9”共10个密码输入按键与几个功能按键,用于完成密码的输入与修改功能; (2)(显示模块:用于完成对输入密码正确与否状态显示及操作提示功能; (3)(报警电路:用于完成输错密码时候的报警功能; (4)(密码存储模块:可以使修改过的密码断电后仍能保存在芯片; (5)(电源模块:用于对系统电路提供+5V的直流电压。 一、 硬件系统设计 本密码锁系统硬件电路是由AT89C51单片机、LCD1602液晶显示、 采取的主要存储器AT24C02、矩阵键盘电路以及控制报警电路5个模块组成的。 技术路线或 方法 43 二、 软件系统的设计 系统上电后会首先完成系统的初始化工作,然后根据事先设定好的进行执行程序。在本系统中,软件结构采用模块化设计方法,主要包括密码锁主程序、初始化程序、键功能程序、键盘扫描程序、密码比较模块、密码修改模块、掉电存储模块、LCD显示程序、密码对开锁、密码错误报警等。 44 3—5周:查找资料 6—9周:进行方案设计,电路的仿真以及程序编写 10—11周:焊接电路板,进行调试硬件 12周:完善论文 时间安排 13周:准备毕业答辩 指导教师意 见 签 名: 年 月 日 备注 45 附件4:原理图 46 附件5:实物图 47 附件6:程序 #include #include #define LCM_Data P0 #define uchar unsigned char #define uint unsigned int #define w 6 //定义密码位数 sbit lcd1602_rs=P2^5; sbit lcd1602_rw=P2^6; sbit lcd1602_en=P2^7; sbit Scl=P3^4; //24C02串行时钟 sbit Sda=P3^5; //24C02串行数据 sbit ALAM = P2^1; //报警 sbit KEY = P2^0; //开锁 sbit open_led=P2^2; //开锁指示灯 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,0xFB,0xF7}; //控盘扫描控制表 unsigned char code start_line[] = {"password: "}; unsigned char code name[] = {"===Coded Lock==="}; //显示名称 unsigned char code Correct[] = {" correct "}; //输入正确 unsigned char code Error[] = {" error "}; //输入错误 unsigned char code codepass[]= {" pass "}; unsigned char code LockOpen[] = {" open "}; //OPEN unsigned char code SetNew[] = {"SetNewWordEnable"}; unsigned char code Input[] = {"input: "}; //INPUT unsigned 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 InputData[6]; //输入密码暂存区 48 unsigned char CurrentPassword[6]={1,3,1,4,2,0}; //当前密码值 unsigned char TempPassword[6]; unsigned char N=0; //密码输入位数记数 unsigned char ErrorCont; //错误次数计数 unsigned char CorrectCont; //正确输入计数 unsigned char ReInputCont; //重新输入计数 unsigned char code initpassword[6]={0,0,0,0,0,0}; //=====================5ms延时============================== void Delay5Ms(void) { unsigned int TempCyc = 5552; while(TempCyc--); } //===================400ms延时============================== void Delay400Ms(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;i<125;i++) {;} } } void Nop(void) //空操作 { _nop_(); _nop_(); _nop_(); _nop_(); 49 } /*起始条件*/ void Start(void) { Sda=1; Scl=1; Nop(); Sda=0; Nop(); } /*停止条件*/ 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 50 { temp=Data; Scl=0; Nop(); if((temp&0x80)==0x80) Sda=1; else Sda=0; Scl=1; temp=Data<<1; Data=temp; BitCounter--; } while(BitCounter); Scl=0; } /*读一字节的数据,并返回该字节值*/ uchar Read(void) { uchar temp=0; uchar temp1=0; uchar BitCounter=8; Sda=1; do{ Scl=0; Nop(); Scl=1; Nop(); if(Sda) temp=temp|0x01; else temp=temp&0xfe; if(BitCounter-1) { temp1=temp<<1; temp=temp1; } BitCounter--; } while(BitCounter); return(temp); } void WrToROM(uchar Data[],uchar Address,uchar Num) { 51 uchar i; uchar *PData; PData=Data; for(i=0;i 函数 excel方差函数excelsd函数已知函数     2 f x m x mx m      2 1 4 2拉格朗日函数pdf函数公式下载 ,后面经常调用---------------------- void delay(uint xms)//延时函数,有参函数 { 52 uint x,y; for(x=xms;x>0;x--) for(y=110;y>0;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(uchar dat)//***液晶写入数据函数**** { lcd1602_rs=1;//数据/指令选择置为数据 lcd1602_rw=0; //读写选择置为写 P0=dat;//送入数据 delay(1); lcd1602_en=1; //en置高电平,为制造下降沿做准备 delay(1); lcd1602_en=0; //en由高变低,产生下降沿,液晶执行命令 } //-------------------------初始化------------------------- void lcd_init(void) { write_1602com(0x38);//设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据 write_1602com(0x0c);//开显示不显示光标 write_1602com(0x06);//整屏不移动,光标自动右移 write_1602com(0x01);//清显示 } //==============将按键值编码为数值========================= unsigned char coding(unsigned char m) { unsigned char k; switch(m) { case (0x18): k=1;break; case (0x28): k=2;break; case (0x48): k=3;break; case (0x88): k='A';break; 53 case (0x14): k=4;break; case (0x24): k=5;break; case (0x44): k=6;break; case (0x84): k='B';break; case (0x12): k=7;break; case (0x22): k=8;break; case (0x42): k=9;break; case (0x82): k='C';break; case (0x11): k='*';break; case (0x21): k=0;break; case (0x41): k='#';break; case (0x81): k='D';break; } return(k); } //==================按键检测并返回按键============================ unsigned char keynum(void) { unsigned char row,col,i; P1=0xf0; if((P1&0xf0)!=0xf0) { Delay5Ms(); Delay5Ms(); if((P1&0xf0)!=0xf0) { row=P1^0xf0; //确定行线 i=0; P1=a[i]; //精确定位 while(i<4) { if((P1&0xf0)!=0xf0) { col=~(P1&0xff); //确定列线 break; //已定位后提前退出 } else { i++; P1=a[i]; } } } else 54 { return 0; } while((P1&0xf0)!=0xf0); return (row|col); //行线与列线组合后返回 } else return 0; //无键按下时返回0 } //================= 一声提示音,表示有效输入======================== void OneAlam(void) { ALAM=0; Delay5Ms(); ALAM=1; } //============== 二声提示音,表示操作成功======================== void TwoAlam(void) { ALAM=0; Delay5Ms(); ALAM=1; Delay5Ms(); ALAM=0; Delay5Ms(); ALAM=1; } //========================三声提示音,表示错误======================== void ThreeAlam(void) { ALAM=0; Delay5Ms(); ALAM=1; Delay5Ms(); ALAM=0; Delay5Ms(); ALAM=1; Delay5Ms(); ALAM=0; Delay5Ms(); ALAM=1; } //==========显示输入的N个数字,用H代替以便隐藏================= void DisplayOne(void) { 55 // DisplayOneChar(9+N,1,'*'); write_1602com(yi+5+N); write_1602dat('*'); } //=======================显示提示输入========================= void DisplayChar(void) { unsigned char i; if(pass==1) { //DisplayListChar(0,1,LockOpen); write_1602com(er); for(i=0;i<16;i++) { write_1602dat(LockOpen[i]); } } else { if(N==0) { //DisplayListChar(0,1,Error); write_1602com(er); for(i=0;i<16;i++) { write_1602dat(Error[i]); } } else { //DisplayListChar(0,1,start_line); write_1602com(er); for(i=0;i<16;i++) { write_1602dat(start_line[i]); } } } } void DisplayInput(void) { unsigned char i; if(CorrectCont==1) 56 { //DisplayListChar(0,0,Input); write_1602com(er); for(i=0;i<16;i++) { write_1602dat(Input[i]); } } } //========================重置密码========================= void ResetPassword(void) { unsigned char i; unsigned char j; if(pass==0) { pass=0; DisplayChar(); ThreeAlam(); } else { if(ReInputEn==1) { if(N==6) { ReInputCont++; if(ReInputCont==2) { for(i=0;i<6;) { if(TempPassword[i]==InputData[i]) //将两次输入的新密码作 对比 i++; else { //DisplayListChar(0,1,Error); write_1602com(er); for(j=0;j<16;j++) { write_1602dat(Error[j]); } ThreeAlam(); //错误提示 pass=0; 57 ReInputEn=0; //关闭重置功能, ReInputCont=0; DisplayChar(); break; } } if(i==6) { //DisplayListChar(0,1,ResetOK); write_1602com(er); for(j=0;j<16;j++) { write_1602dat(ResetOK[j]); } TwoAlam(); //操作成功提示 WrToROM(TempPassword,0,6); //将新密码写入24C02存储 ReInputEn=0; } ReInputCont=0; CorrectCont=0; } else { OneAlam(); //DisplayListChar(0, 1, again); //显示再次输入一次 write_1602com(er); for(j=0;j<16;j++) { write_1602dat(again[j]); } for(i=0;i<6;i++) { TempPassword[i]=InputData[i]; //将第一次输入的数据暂 存起来 } } N=0; //输入数据位数计数器清零 } } } } 58 //============输入密码错误超过三过,报警并锁死键盘====================== void Alam_KeyUnable(void) { P1=0x00; { ALAM=~ALAM; Delay5Ms(); } } //===============取消所有操作================== void Cancel(void) { unsigned char i; unsigned char j; //DisplayListChar(0, 1, start_line); write_1602com(er); for(j=0;j<16;j++) { write_1602dat(start_line[j]); } TwoAlam(); //提示音 for(i=0;i<6;i++) { InputData[i]=0; } KEY=1; //关闭锁 ALAM=1; //报警关 operation=0; //操作标志位清零 pass=0; //密码正确标志清零 ReInputEn=0; //重置输入充许标志清零 ErrorCont=0; //密码错误输入次数清零 CorrectCont=0; //密码正确输入次数清零 ReInputCont=0; //重置密码输入次数清零 open_led=1; s3_keydown=0; key_disable=0; N=0; //输入位数计数器清零 } //=================确认键,并通过相应标志位执行相应功能================= void Ensure(void) { unsigned char i,j; RdFromROM(CurrentPassword,0,6); //从24C02里读出存储密码 if(N==6) 59 { if(ReInputEn==0) //重置密码功能未开启 { for(i=0;i<6;) { if(CurrentPassword[i]==InputData[i]) { i++; } else { ErrorCont++; if(ErrorCont==3) //错误输入计数达三次时,报警并锁定键盘 { write_1602com(er); for(i=0;i<16;i++) { write_1602dat(Error[i]); } do Alam_KeyUnable(); while(1); } else { TR0=1; //开启定时 key_disable=1; //锁定键盘 pass=0; break; } } } if(i==6) { CorrectCont++; if(CorrectCont==1) //正确输入计数,当只有一次正确输入时,开锁, { //DisplayListChar(0,1,LockOpen); write_1602com(er); for(j=0;j<16;j++) { write_1602dat(LockOpen[j]); } 60 TwoAlam(); //操作成功提示音 KEY=0; //开锁 pass=1; //置正确标志位 TR0=1; //开启定时 open_led=0; //开锁指示灯亮 for(j=0;j<6;j++) //将输入清除 { InputData[i]=0; } } else //当两次正确输入时,开启重置密码功能 { //DisplayListChar(0,1,SetNew); write_1602com(er); for(j=0;j<16;j++) { write_1602dat(SetNew[j]); } TwoAlam(); //操作成功提示 ReInputEn=1; //允许重置密码输入 正确计数器清零 CorrectCont=0; // } } else //========当第一次使用或忘记密码时可以用131420对其密码初始化============ { if((InputData[0]==1)&&(InputData[1]==3)&&(InputData[2]==1)&&(InputData[3]==4) &&(InputData[4]==2)&&(InputData[5]==0)) { WrToROM(initpassword,0,6); //强制将初始密码写入24C02存储 //DisplayListChar(0,1,initword); //显示初始化密码 write_1602com(er); for(j=0;j<16;j++) { write_1602dat(initword[j]); } TwoAlam(); Delay400Ms(); TwoAlam(); N=0; } else { 61 //DisplayListChar(0,1,Error); write_1602com(er); for(j=0;j<16;j++) { write_1602dat(Error[j]); } ThreeAlam(); //错误提示音 pass=0; } } } else //当已经开启重置密码功能时,而按下开锁键, { //DisplayListChar(0,1,Er_try); write_1602com(er); for(j=0;j<16;j++) { write_1602dat(Er_try[j]); } ThreeAlam(); } } else { //DisplayListChar(0,1,Error); write_1602com(er); for(j=0;j<16;j++) { write_1602dat(Error[j]); } ThreeAlam(); //错误提示音 pass=0; } N=0; //将输入数据计数器清零,为下一次输入作准备 operation=1; } //==============================主函数======================= void main(void) { unsigned char KEY,NUM; unsigned char i,j; P1=0xFF; TMOD=0x11; TL0=0xB0; 62 TH0=0x3C; EA=1; ET0=1; TR0=0; Delay400Ms(); //启动等待,等LCM讲入工作状态 lcd_init(); //LCD初始化 write_1602com(yi);//日历显示固定符号从第一行第0个位置之后开始显示 for(i=0;i<16;i++) { write_1602dat(name[i]);//向液晶屏写日历显示的固定符号部分 } write_1602com(er);//时间显示固定符号写入位置,从第2个位置后开始显示 for(i=0;i<16;i++) { write_1602dat(start_line[i]);//写显示时间固定符号,两个冒号 } write_1602com(er+9); //设置光标位置 write_1602com(0x0f); //设置光标为闪烁 Delay5Ms(); //延时片刻(可不要) N=0; //初始化数据输入位数 while(1) { if(key_disable==1) Alam_KeyUnable(); else ALAM=1; //关报警 KEY=keynum(); if(KEY!=0) { if(key_disable==1) { second=0; } else { NUM=coding(KEY); { switch(NUM) { case ('A'): ; break; case ('B'): ; break; case ('C'): ; break; case ('D'): ResetPassword(); break; //重新设置密码 case ('*'): Cancel(); break; //取消当前输入 63 case ('#'): Ensure(); break; //确认键, default: { //DisplayListChar(0,1,Input); write_1602com(er); for(i=0;i<16;i++) { write_1602dat(Input[i]); } operation=0; if(N<6) //当输入的密码少于6位时,接受输入并保存,大于6位时则无效。 { OneAlam(); //按键提示音 //DisplayOneChar(6+N,1,'*'); for(j=0;j<=N;j++) { write_1602com(er+6+j); write_1602dat('*'); } InputData[N]=NUM; N++; } else //输入数据位数大于6后,忽略输入 { N=6; break; } } } } } } } } //*********************中断服务函数*********************************** void time0_int(void) interrupt 1 { TL0=0xB0; TH0=0x3C; //TR0=1; countt0++; if(countt0==20) { 64 countt0=0; second++; if(pass==1) { if(second==1) { open_led=1; //关指示灯 TR0=0; //关定时器 TL0=0xB0; TH0=0x3C; second=0; } } else { if(second==3) { TR0=0; second=0; key_disable=0; s3_keydown=0; TL0=0xB0; TH0=0x3C; } else TR0=1; } } } 65 附件7:元件清单 1、9X15cm万用板 2、51单片机+IC座 3、1602液晶显示屏 4、按键 5、12M晶振 6、22P瓷片电容 8、DC电源座 9、开关 10、4.7K、电阻 11、5V继电器 13、发光二极管 14、精密可调电位器 15、单排座 16、单排针 17、导线 18、USB电源线 19、SS8550三极管 20、10K 电阻 21、10u 电解电容 22、 蜂鸣器 23、 排阻4.7K 24、AT24C02+IC座 66
本文档为【智能密码锁毕业设计论文】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_637320
暂无简介~
格式:doc
大小:615KB
软件:Word
页数:89
分类:生活休闲
上传时间:2017-12-26
浏览量:306