电子密码锁设计(参考范文)

合集下载

电子密码锁设计方案

电子密码锁设计方案

电子密码锁设计方案背景介绍随着科技的不断进步和人们安全意识的增强,电子密码锁越来越受到人们的关注和喜爱。

电子密码锁通过使用密码或其他身份验证方式,代替传统的钥匙,提供了更高的安全性和便利性。

本文将详细介绍电子密码锁的设计方案。

设计目标电子密码锁设计方案的目标是满足以下需求:1.高安全性:保护用户的财产和隐私信息不受到未授权的访问。

2.方便使用:提供便捷的密码输入方式,并且易于管理和维护。

3.灵活可扩展:支持多种密码输入方式,以适应不同用户的需求。

设计原理电子密码锁的设计基于以下原理:1.用户身份验证:用户需要提供正确的密码才能解锁。

可以使用数字密码、指纹、声音等多种身份验证方式。

2.加密算法:为了确保密码的安全性,设计一个强大的加密算法对用户的密码进行保护。

3.门锁控制:根据用户身份验证的结果,控制电子门锁的开闭状态。

设计流程电子密码锁的设计流程包括:1.用户身份注册:用户首次使用电子密码锁时,需要进行身份注册。

注册过程中,用户需要提供相关身份信息,并设置一个密码。

2.身份验证:用户在解锁电子密码锁时,需要输入正确的密码进行身份验证。

系统将对输入的密码进行比对,如果验证通过,则开启门锁。

3.控制门锁:根据用户的身份验证结果,控制电子门锁的开闭状态。

如果验证通过,则门锁开启,用户可以进入;否则门锁保持关闭。

设计方案1. 身份注册在首次使用电子密码锁之前,用户需要完成身份注册。

注册流程如下:•用户进入电子密码锁的注册模式,按照提示完成身份信息的录入。

•用户设置一个初始密码,并进行验证。

设计方案可以提供多种密码设置方式,例如数字密码、指纹等。

•注册完成后,用户的身份信息和密码将被存储在电子密码锁的存储设备中,以便后续的身份验证。

2. 身份验证用户通过输入密码进行身份验证。

验证流程如下:•用户进入电子密码锁的解锁模式,系统提示输入密码。

•用户输入密码,并进行验证。

•系统对用户输入的密码进行比对,如果验证通过,则开启门锁;否则提示密码错误。

电子密码锁设计(参考范文).

电子密码锁设计(参考范文).

北海职业学院毕业设计 (论文) 2012 -2013 学年度电子信息工程系(部) 应用电子技术专业题目学生姓名学生班级指导教师起止日期2012 年10 月日北海职业学院毕业设计 (论文)任务书系(部)专业班级姓名学号指导教师职务(称)20年月日北海职业学院学生毕业设计(论文)成绩鉴定表电子密码锁设计作者:xxx【摘要】随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点,本设计使用ATMEL公司的AT89S52实现一基于单片机的电子密码锁的设计。

本文介绍一种基于单片机和串行EEPROM的智能密码锁,是密码锁设计中比较简单的一种,其主要功能有键盘输入、LED数码管显示、加密、修改密码、密码检测、错误报警等简单易懂、使用方便、安全性能高等。

本设计采用AT89S52单片机为芯片主体,采用AT24C08为掉电存储器的芯片。

这种芯片稳定性高,成本低。

它是采用AT89S52单片机和AT24C08串行EEPROM,通过AT89S52模拟I2C 总线和AT24C08通讯,实现密码锁的功能。

【关键词】AT89S52 AT24C08 密码锁矩阵键盘第一章引言在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

电子密码锁毕业设计

电子密码锁毕业设计

电子密码锁毕业设计电子密码锁毕业设计近年来,随着科技的不断发展,电子密码锁作为一种新型的安全设备,逐渐成为人们生活中不可或缺的一部分。

作为一名大学生,我也对电子密码锁产生了浓厚的兴趣,并决定将其作为我的毕业设计主题。

首先,我对电子密码锁的基本原理进行了深入的研究。

电子密码锁主要由密码输入模块、控制模块和电机驱动模块组成。

通过密码输入模块,用户可以输入自己设定的密码。

控制模块负责接收用户输入的密码,并与预设的密码进行比对,如果输入正确,则通过电机驱动模块控制锁的开关。

这种设计简单而高效,能够有效地保护用户的财产安全。

接下来,我开始着手设计我的电子密码锁。

我决定采用微控制器作为控制模块,并使用数字密码键盘作为密码输入模块。

为了增加系统的稳定性和安全性,我还添加了指纹识别模块和蓝牙模块。

通过指纹识别模块,用户可以使用自己的指纹进行解锁,这种方式更加方便快捷。

而蓝牙模块则可以实现手机远程开锁的功能,用户只需通过手机发送指令,即可控制电子密码锁的开关。

这种设计不仅提高了用户的使用便利性,同时也增加了系统的安全性。

在设计过程中,我遇到了许多挑战。

首先是如何保证系统的稳定性和安全性。

为了解决这个问题,我进行了大量的实验和测试,不断优化系统的设计。

其次是如何提高系统的响应速度。

通过对系统的硬件和软件进行优化,我成功地将响应时间缩短到了毫秒级别。

最后是如何保证系统的可靠性。

我进行了多次的测试和模拟,确保系统在各种条件下都能正常工作。

在完成设计后,我进行了一系列的实验和测试。

通过对系统的各项指标进行评估,我发现我的电子密码锁在安全性、稳定性和响应速度等方面都达到了预期的要求。

同时,我还对系统进行了实际应用测试,得到了用户的积极反馈。

他们对电子密码锁的使用体验非常满意,并对我的毕业设计表示了赞赏和肯定。

通过这次毕业设计,我不仅深入了解了电子密码锁的原理和设计方法,还提高了自己的动手实践能力和解决问题的能力。

同时,我也意识到科技的发展给我们的生活带来了巨大的改变,我们应该积极拥抱科技,并将其运用到实际生活中,为人们带来更多的便利和安全。

电子密码锁设计方案

电子密码锁设计方案

电子密码锁设计方案电子密码锁是一种以电子技术为基础的智能门锁系统,它通过电子芯片和密码输入来实现对门锁的开启和关闭,具备高安全性和便捷性的特点。

下面是一种电子密码锁的设计方案。

1. 硬件设计:- 使用单片机作为控制核心,可选择常见的ARM、AVR等型号。

- 采用芯片级密码芯片,实现密码输入和验证的功能。

- 使用继电器或电子开关控制门锁的开启和关闭。

- 采用LCD显示屏或LED指示灯显示输入密码和开锁状态。

- 使用电池或电源适配器供电。

2. 软件设计:- 编写单片机的固件程序,实现密码输入、验证和开锁的逻辑。

- 设计密码管理系统,包括密码的设置和修改功能。

- 添加防撬警报系统,当门锁被非法破坏时触发报警。

- 支持远程控制,通过手机或电脑连接网络,实现远程开锁和密码管理的功能。

- 添加开锁日志记录,记录每次开锁的时间和密码,以便追踪和管理。

3. 安全性设计:- 使用多种加密算法对密码进行加密存储,防止密码泄露。

- 设计密码错误次数限制机制,连续输入错误密码达到一定次数后自动锁定一段时间。

- 采用物理隔离设计,防止针对针脚的攻击。

- 添加声音提示系统,当输入错误密码或开锁时间超过设定范围时发出警报,防止他人盗窃或篡改密码。

4. 用户友好性设计:- 设计人性化的界面,使用按键输入密码,并在显示屏或指示灯上显示输入的密码和开锁状态。

- 支持多种开锁方式,包括密码、指纹和刷卡等,方便用户选择。

- 提供密码保护功能,每次输入密码后自动清空密码,防止他人偷看。

- 支持语音提示功能,给予用户使用指导和提示。

以上是一种电子密码锁的设计方案,通过合理的硬件和软件设计,可以实现高安全性和便捷性的目标。

但需要注意,电子密码锁的设计和制造需要考虑到产品的稳定性、可靠性和成本等因素,并且还要充分测试和验证设计的各项功能。

基于单片机电子密码锁设计论文

基于单片机电子密码锁设计论文

第1节引言1.1 电子密码锁概述随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。

而锁自古以来就是把守门的铁将军,人们对它要求甚高,即要求可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。

传统的门锁既要备有大量的钥匙,又要担心钥匙丢失后的麻烦。

另外,如:宾馆、办公大楼、仓库、保险柜等,由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多便。

随着单片机的问世,出现了带微处理器的密码锁,它除具有电子密码锁的功能外,还引入了智能化、科技化等功能。

从而使密码锁具有很高的安全性、可靠性。

目前西方发达国家已经大量应用智能门禁系统,可以通过多种的更加安全更加方便可靠的方法来实现大门的管理。

但电子密码锁在我国的应用还不广泛,成本还很高,希望通过不断地努力使电子密码锁能够在我国及居民日常生活中得到广泛应用,这也是一个国家生活水平的体现。

很多行业的许多地方都要用到密码锁,随着人们生活水平的提高,如何实现家庭或公司的防盗这一问题也变的尤其突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜,再者,普通密码锁的密码容易被多次试探而破译,所以,考虑到单片机的优越性,一种基于单片机的电子密码锁应运而生。

电子密码锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲睐。

设计本课题时构思的方案:采用以AT89C2051为核心的单片机控制方案;能防止多次试探而不被破译,从而有效地克服了现实生活中存在的许多缺点。

1.2 本设计主要任务(1)共8位密码,每位的取值范围为1~8。

(2)用户可以自行设定和修改密码。

(3)按每个密码键时都有声、光提示。

(4)若键入的8位开锁密码不完全正确,则报警5秒钟,以提醒他人注意。

(5)开锁密码错3次要报警10分钟,报警期间输入密码无效,以防窃贼多次试探密码。

(6)键入的8位开锁密码完全正确才能开锁,开锁时要有1秒的提示音。

(7)密码键盘上只允许有8个密码按键和1个发光管。

电子密码锁总体设计方案

电子密码锁总体设计方案

电子密码锁总体设计方案一、项目背景随着科技的不断发展,电子密码锁越来越受到人们的青睐。

这种锁具有高安全性、方便使用等优点,被广泛应用于家庭、商业、公共场所等各个领域。

为了增加电子密码锁的竞争力和适用性,我们团队决定开发一款全新的电子密码锁,并设计出一套完整的总体设计方案。

二、需求分析通过市场调研和用户访谈,我们得出了以下对于电子密码锁的需求:1、安全性高:电子密码锁主要用于保护私人空间,因此安全性是第一位的需求。

2、易于使用:电子密码锁应该方便用户使用,操作简单,无需太多的技术知识。

3、可靠性高:电子密码锁需要保证长时间的使用寿命,并且能够保证在不同环境下的稳定性。

4、适用性广:电子密码锁应该适用于不同的场所和用途。

基于以上需求,我们可以确定电子密码锁的主要设计目标是安全性,其次是易用性、可靠性和适用性。

三、系统设计1、整体架构设计电子密码锁的整体架构分为硬件和软件两大部分。

硬件主要包括锁芯、智能控制模块和供电模块;软件主要包括用户身份验证模块、指令识别模块和日志模块。

整个系统的主要流程如下:用户输入密码-> 系统识别密码-> 打开锁芯-> 记录开门日志。

2、硬件设计(1)锁芯设计锁芯是电子密码锁最核心的部分,其质量和技术水平决定着锁的安全性和可靠性。

我们会采用B级锁芯,其中的地球磁性旋转芯技术现已成熟,同时还要采用不锈钢筒体,增加锁体的防腐蚀能力。

(2)智能控制模块智能控制模块主要为电子密码锁提供控制逻辑和安全保护措施。

智能控制模块应具有以下特点:①支持用户输入密码并进行验证。

②支持中央控制器。

③防盗功能,如语音通知、警报等。

(3)供电模块供电模块应支持锂电池和安全电源线,锂电池可在外部充电,同时具备过电流和过充电保护。

3、软件设计(1)用户身份验证模块用户身份验证模块是电子密码锁中最为重要的模块,用于验证持有者身份,只有经过验证的用户输入密码后才可以打开电子密码锁。

本模块需要考虑加密算法的安全性,采用数字证书等措施提高密码传输的安全性和可靠性。

#电子密码锁(本科毕业设计完整版)

#电子密码锁(本科毕业设计完整版)

人生最大的幸福,是发现自己爱的人正好也爱着自己。

基于单片机的电子密码锁设计摘要在日常的生活和工作中住宅和部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决若使用传统的机械式钥匙开锁人们常需携带多把钥匙使用极不方便且钥匙丢失后安全性即大打折扣在安全技术防范领域具有防盗报警功能的电子密码锁逐渐代替了传统的机械式密码锁电子密码锁具有安全性高、成本低、功耗低、易操作等优点本文从经济实用的角度出发采用美国Atmel公司的单片机AT89S51作为主控芯片和数据存储器单元结合外围的矩阵键盘输入、LCD液晶显示、报警、开锁等用C语言编写的主控芯片控制程序和EEPROM AT24C02读写程序相结合并用Keil软件进行编译设计了一款可以多次更改密码具有报警功能的电子密码控制系统这种密码锁的电路设计具有防试探按键输入、智能控制上锁、开锁、报警、修改密码等多种功能密码长度可变、保密性强、灵活性高、使用日益广泛关键词密码锁单片机报警 LCD显示Design of Electric Password Lock Based on MCUABSTRACTIn the daily life and the workthe way to the house's and department's safe guardunit's document filethe financial reporting as well as some individual material preservation almost need many locks. If we use tradition mechanical key to openthe people often must carry many keysbut it is not extremely convenient. If the key lostthe security will decline greatly. In the safety work guard domainthe lock with security warning function electronic combination have replaced the traditional mechanical combination lock graduallythe electronic combination lock have the highly securitythe lowly costthe lowly power wastageeasy to operate and so on merits.This article is based on the economical and practical point of viewuses the United States Atmel Corporation AT89S51 microcontroller as a master chip and the data memory unitit combines with the external matrix keyboard inputLCD digital displayalarmunlock and so on circuitsdominates by the C programming language chip EEPROM of the control procedures and carries on the translation with Keil softwarethe password can be changed many timesthe electronic the password control also has the alarming function.This password lock circuit design has anti-test button inputintelligent control lockunlockalarm and change the password multiple functions. Password length can be changed great security and high flexible than othersit is widely used.Key Words: Password lock; MCU; Alarm; LCD Display目录摘要第一章绪论1.1电子密码锁简介 (1)1.2电子密码锁的发展趋势 (1)1.3本设计所要实现的目标 (2)1.4设计方案简介 (2)第二章主要元器件介绍2.1主控芯片AT89S51 (3)2.1存储芯片AT24C02 (6)2.3 LCD1602显示器 (7)2.4 晶体振荡器 (8)第三章硬件系统构成3.1设计原理.............................................................................. (10)3.2电路总体构成 (10)3.3电源输入电路 (11)3.4键盘输入电路 (12)3.5密码存储电路 (12)3.6复位电路.............................................................................. (13)3.7晶振电路.............................................................................. (14)3.8显示电路.............................................................................. (14)3.9报警电路.............................................................................. (15)3.10开锁电路 ............................................................................. .15第四章软件系统设计4.1主程序流程图 (17)4.2按键软件设计 (18)4.3密码设置软件设计 (19)4.4开锁软件设计 (20)第五章调试和实现5.1硬件调试 ............................................................................. . (21)5.2软件调试 ............................................................................. . (21)5.3 Pruteus仿真 (22)结论和展望致谢参考文献附录第一章绪论1.1 电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工作从而控制机械开关的闭合完成开锁、闭锁任务的电子产品它的种类很多有简易的电路产品也有基于芯片的性价比较高的产品现在使用较广的电子密码锁是以芯片为核心通过编程来实现的其性能和安全性已大大超过了机械锁其特点如下:1) 保密性好编码量多远远大于弹子锁随机开锁成功率几乎为零2) 密码可变用户可以随时更改密码防止密码被盗同时也可以避免因人员的更替而使锁的密级下降3) 误码输入保护当输入密码多次错误时报警系统自动启动4) 无活动零件不会磨损寿命长5) 使用灵活性好不像机械锁必须佩带钥匙才能开锁6) 电子密码锁操作简单易行一学即会1.2 电子密码锁的发展趋势日常生活和工作中住宅和部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决目前门锁主要用弹子锁其钥匙容易丢失;保险箱主要用机械密码锁其结构较为复杂制造精度要求高成本高且易出现故障人们常需携带多把钥匙使用极不方便且钥匙丢失后安全性即大打折扣针对这些锁具给人们带来的不便若使用机械式钥匙开锁为满足人们对锁的使用要求增加其安全性用密码代替钥匙的密码锁应运而生由于电子器件所限以前开发的电子密码锁其种类不多保密性差最基本的就是只依靠最简单的模拟电子开关来实现的制作简单但很不安全在后为多是基于EDA来实现的其电路结构复杂电子元件繁多也有使用早先的20引角的2051系列单片机来实现的但密码简单易破解随着电子元件的进一步发展电子密码锁也出现了很多的种类功能日益强大使用更加方便安全保密性更强由以前的单密码输入发展到现在的密码加感应元件实现了真真的电子加密用户只有密码或电子钥匙中的一样是打不开锁的随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁出于安全、方便等方面的需要许多电子密码锁已相继问世但这类产品的特点是针对特定有效卡、指纹或声音有效且不能实现远程控制只能适用于保密要求高且供个人使用的箱、柜、房间等由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息组合使用这些信息能够使电子防盗锁获得高度的保密性如防范森严的金库需要使用复合信息密码的电子防盗锁组合使用信息也能够使电子防盗锁获得无穷扩展的可能使产品多样化对用户而言是"千挑百选、自得其所"可以看出组合使用电子信息是电子密码锁以后发展的趋势1.3 本设计所要实现的目标本设计采用单片机为主控芯片结合外围电路组成电子密码锁用户想要打开锁必先通过提供的键盘输入正确的密码才能将锁打开密码输入错误有提示为了提高安全性当密码输入错误三次将报警密码可以有用户自己修改设定锁打开后才能修改密码修改密码之前必须再次输入就的密码在输入新密码的时候要二次确认以防止误操作1.4 设计方案简介采用以单片机为核心的控制方案由于单片机种类繁多各种型号都有其一定的使用环境因此在选用时要多加比较合理选择以期获得最佳的性价比一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素基于以上因素本设计选用单片机AT89S51作为本设计的核心元件利用单片机灵活的编程设计和丰富的I/O端口及其控制的准确性实现基本的密码锁功能在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制外接AT24C02芯片用于密码的存储外接LCD1602显示器用于显示作用当用户需要开锁时先按键盘开锁键之后按键盘的数字键0-9输入密码密码输完后按下确认键如果密码输入正确则开锁不正确显示密码错误重新输入密码当三次密码错误则发出报警;当用户需要修改密码时先按下键盘设置键后输入原来的密码只有当输入的原密码正确后才能设置新密码新密码输入无误后按确认键使新密码将得到存储密码修改成功第二章主要元器件2.1主控芯片AT89S51单片机AT89S51功能介绍AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM-Falsh Programmable and Erasable Read Only Memory)的低电压高性能CMOS8位微处理器俗称单片机该器件采用ATMEL高密度非易失存储器制造技术制造和工业标准的MCS-51指令集和输出管脚相兼容由于将多功能8位CPU和闪烁存储器组合在单个芯片中ATMEL的AT89S51是一种高效微控制器为很多嵌入式控制系统提供了一种灵活性高且价廉的方案AT89S51芯片引脚图如图2-1所示主要特性:·和MCS-51 兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明:下面按其引脚功能分为四部分叙述这40条引脚的功能1、主电源引脚VSS和VSSAT89S51芯片引脚图VSS--(40脚)接+5V电压;VSS--(20脚)接地2、外接晶体引脚XTAL1和XTAL2XTAL1(19脚)接外部晶体的一个引脚在单片机内部它是一个反相放大器的输入端这个放大器构成了片内振荡器当采用外部振荡器时对HMOS单片机此引脚应接地;对SHMOS单片机此引脚作为驱动端XTAL2(18脚)接外晶体的另一端在单片机内部接至上述振荡器的反相放大器的输出端采用外部振荡器时对HMOS单片机该引脚接外部振荡器的信号即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS此引脚应悬浮3、控制或和其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP①RST/VPD(9脚)当振荡器运行时在此脚上出现两个机器周期的高电平将使单片机复位推荐在此引脚和VSS引脚之间连接一个约8.2k的下拉电阻和VSS引脚之间连接一个约10μF的电容以保证可靠地复位VSS掉电期间此引脚可接上备用电源以保证内部RAM的数据不丢失当VSS主电源下掉到低于规定的电平而VPD在其规定的电压范围(5±0.5V)内VPD就向内部RAM提供备用电源②ALE/PROG(30脚):当访问外部存贮器时ALE(允许地址锁存)的输出用于锁存地址的低位字节即使不访问外部存储器ALE端仍以不变的频率周期性地出现正脉冲信号此频率为振荡器频率的1/6因此它可用作对外输出的时钟或用于定时目的然而要注意的是每当访问外部数据存储器时将跳过一个ALE脉冲ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路对于EPROM单片机(如8751)在EPROM编程期间此引脚用于输入编程脉冲(PROG)③PSEN(29脚):此脚的输出是外部程序存储器的读选通信号在从外部程序存储器取指令(或常数)期间每个机器周期两次PSEN有效但在此期间每当访问外部数据存储器时这两次有效的PSEN信号将不出现PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入④EA/VPP(引脚):当EA端保持高电平时访问内部程序存储器但在PS(程序计数器)值超过0FFFH(对851/8751/80S51)或1FFFH(对8052)时将自动转向执行外部程序存储器内的程序当EA保持低电平时则只访问外部程序存储器不管是否有内部程序存储器对于常用的8031来说无内部程序存储器所以EA脚须常接地这样才能只选择外部程序存储器对于EPROM型的单片机(如8751)在EPROM编程期间此引脚也用于施加21V的编程电源(VPP)4.控制或和其它电源复用引脚 RST/VpdALE/PROGPSEN 和EA/VppRST/Vpd 当振荡器运行时在此引脚上出现两个机器同期的高电平(由低到高跳变)将使单片机复位在 VSS掉电期间此引脚可接上备用电源由 Vpd向内部 RAM提供备用电源以保持内部RAM中的数据ALE/PROG 正常操作时为ALE功能(允许地址钱存)提供把地址的低字节锁存到外部锁存器ALE引脚以不变的频率(振荡周期的1/6)周期性地发出正脉冲信号因此它可用作对外输出的时钟或用于定时目的但要注意每当访问外部数据存储器时将跳过一个 ALE脉冲ALE端可以驱动(吸收或输出电流)八个 LSTTL电路对于 EPROM型单片机在 EPROM编程期间此引脚接收编程脉冲(PROG功能)PSEN 外部程序存储器读选通信号输出端在从外部程序存储器取指令(或数据)期间;PSEN 在每个机器周期内两次有效 PSEN 同样可以驱动八个LSTTL输入EA/Vpp EA为内部程序存储器和外部程序存储器选择端当EA为高电平时访问内部程序存储器(PS值小于4K)当EA为低电平时则访问外部程序存储器对于EPROM型单片机在EPROM编程期间此引脚上加21VEPROM编程电源(Vpp)5、输入/输出(I/O)引脚P0、P1、P2、P3(共32根)①P0口(39脚至32脚):是双向8位三态I/O口在外接存储器时和地址总线的低8位及数据总线复用能以吸收电流的方式驱动8个LS型的TTL负载②P1口(1脚至8脚):是准双向8位I/O口由于这种接口输出没有高阻状态输入也不能锁存故不是真正的双向I/O口P1口能驱动(吸收或输出电流)4个LS型的TTL负载对8052、8032P1.0引脚的第二功能为T2定时/计数器的外部输入P1.1引脚的第二功能为T2EX捕捉、重装触发即T2外部控制端对EPROM编程和程序验证时它接收低8位地址③P2口(21脚至28脚):是准双向8位I/O口在访问外部存储器时它可以作为扩展电路高8位地址总线送出高8位地址在对EPROM编程和程序验证期间它接收高8位地址P2可以驱动(吸收或输出电流)4个LS型的TTL负载④P3口(10脚至17脚):是准双向8位I/O口在MSS-51中这8个引脚还用于专门功能是复用双功能口P3能驱动(吸收或输出电流)4个LS型的TTL负载作为第一功能使用时就作为普通I/O口用功能和操作方法和P1口相同作为第二功能使用时各引脚的定义如表所示值得强调的是P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能表2-1 P3口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)2.2 存储芯片AT24C02如图2-2为AT24C02的芯片引脚图图2-2 AT24C02的芯片引脚图特点:低压和标准电压运行模式- 2.7 (VCC = 2.7V to 5.5V)- 1.8 (VCC = 1.8V to 5.5V)内建128x8存储序列2线制串行接口双向数据传送协议100kHz(1.8V2.5V2.7V) 和400kHz(5V)兼容写同步时钟(最大10ms)高可靠性极限:1M写时钟周期数据保存:100年不断推进的芯片等级扩大了设备的可用温度范围AT24C02提供电可擦除的串行1024位存储或可编程只读存储器(EEPROM)128字(8位/字) 芯片在低压的工业和商业使用中进行了最优化设备操作:CLOCK 和DATA变化:SDA管脚通常外部要拉高SDA管脚上的数据只能在SCL低期间改变数据在SCL高期间改变定义为一个开始或停止信号开始状态:在任何操作之前必须有一个开始信号----在SCL为高时SDA上产生一个下降沿停止状态: SCL为高时SDA产生一个上升沿是停止信号停止信号后将停止所有通信在一个读的序列之后停止信号将让EEPROM进入备用电源模式2.3 LCD16022显示器液晶显示模块已作为很多电子产品的通过器件如在计算器、万用表、电子表及很多家用电子产品中都可以看到显示的主要是数字、专用符号和图形1602型LCD显示模块具有体积小功耗低显示内容丰富等特点1602型LCD可以显示2行16个字符有8位数据总线D0-D7和RSR/WEN三个控制端口工作电压为5V并且具有字符对比度调节和背光功能接口信号说明:1602型LCD的接口信号说明如表2-2所示表2-2 LCD1602接口信号说明符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D015BLA背光源正极8D1数据16BLK背光源负极1602型LCD主要技术参数:显示容量:16×2个字符芯片工作电压:4.5-5.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.95×4.35(W×H)mm1602型LCD基本操作程序如下表所示:表2-3 LCD1602基本操作程序读状态输入RS=LR/W=HE=H输出D0-D7=状态字写指令输入RS=LR/W=LD0-D7=指令码E=高脉冲输出无读数据输入RS=HR/W=HE=H输出D0-D7=数据写数据输入RS=HR/W=LD0-D7=数据E=高脉冲输出无2.4晶体振荡器晶体振荡器简称晶振其作用在于产生原始的时钟频率这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率以声卡为例要实现对模拟信号44.1kHz或48kHz的采样频率发生器就必须提供一个44.1kHz或48kHz的时钟频率如果需要对这两种音频同时支持的话声卡就需要有两颗晶振但是现在的娱乐级声卡为了降低成本通常都采用SCR将输出的采样频率固定在48kHz但是SRC会对音质带来损害而且现在的娱乐级声卡都没有很好地解决这个问题现在使用最广泛的是石英晶体振荡器石英晶体振荡器是一种高精度和高稳定度的振荡器石英晶体振荡器也称石英晶体谐振器它用来稳定频率和选择频率是一种可以取代LC谐振回路的晶体谐振元件石英晶体振荡器广泛地使用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中为数据处理设备产生时钟信号和为特定系统提供基准信号在单片机中为其提供时钟频率石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片它可以是正方形、矩形或圆形等)在它的两个对应面上涂敷银层作为电极在每个电极上各焊一根引线接到管脚上再加上封装外壳就构成了石英晶体谐振器简称为石英晶体或晶体、晶振其产品一般用金属外壳封装也有用玻璃壳、陶瓷或塑料封装的只要在晶体振子板极上施加交变电压就会使晶片产生机械变形振动此现象即所谓逆压电效应当外加电压频率等于晶体谐振器的固有频率时就会发生压电谐振从而导致机械变形的振幅突然增大第三章硬件系统设计3.1 设计原理本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成其中矩阵键盘用于输入数字密码和进行各种功能的实现由用户通过连接单片机的矩阵键盘输入密码后经过单片机对用户输入的密码和自己保存的密码进行对比从而判断密码是否正确然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可当然也可以用继电器的常开触点去控制电磁铁吸合线圈本系统共有两部分构成即硬件部分和软件部分其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成图3-1 电子密码锁原理框图3.2 电路总体构成在确定了选用什么型号的单片机后就要确定在外围电路其外围电路包括电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成根据实际情况键盘输入部分选择4*4矩阵键盘显示部分选择字符型液晶显示LCD1602密码存储部分选用AT24C02芯片来完成其原理图如图3-2所示:图3-2 电路总体结构图3.3 电源输入电路密码锁主要控制部分电源需要用5V直流电源供电其电路如图3-3所示而5V电源输入时往往伴有杂波所以加一个2.2uF的电容滤波这样输出的电压一般能满足要求图3-3 电源输入电路原理图3.4 键盘输入电路由于本设计所用到的按键数量较多而不适合用独立按键式键盘采用的是矩阵式按键键盘它由行线和列线组成也称行列式键盘按键位于行列的交叉点上密码锁的密码由键盘输入完成和独立式按键键盘相比要节省很多I/O口本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用比如清空显示功能等键盘的每个按键功能在程序设计中设置其大体功能(看键盘按键上的标记)及和单片机引脚接法如图3-4所示:图3-4 键盘输入原理图3.5 密码存储电路AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片采用两线串行的总线和单片机通讯电压最低可以到2.5V额定电流为1mA静态电流10Ua(5.5V)芯片内的资料可以在断电的情况下保存40年以上而且采用8脚的DIP封装使用方便其电路如图3-5所示图中1、2、3脚是三条地址线用于确定芯片的硬件地址在AT89S51上它们都能接地第5脚和第8脚分别为正、负电源AT24C02中带有片内地址寄存器每写入或读出一个数据字节后该地址寄存器自动加1以实现对下一个储存单元的读写所有字节均以单一操作方式读取3.6 复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态并从这个状态开始工作例如复位后PC=0000H使单片机从第-个单元取指令无论是在单片机刚开始接上电源时还是断电后或者发生故障后都要复位在复位期间(即RST为高电平期间)P0口为高组态P1-P3口输出高电平;外部程序存储器读选通信号PSEN无效地址锁存信号ALE也为高电平根据实际情况选择如图2-8所示的复位电路该电路在最简单的复位电路下增加了手动复位按键在接通电源瞬间电容C1上的电压很小复位下拉电阻上的电压接近电源电压即RST为高电平在电容充电的过程中RST端电压逐渐下降当RST端的电压小于某一数值后CPU脱离复位状态由于电容C1足够大可以保证RST高电平有效时间大于24个振荡周期CPU能够可靠复位增加手动复位按键是为了避免死机时无法可靠复位当复位按键按下后电容C1通过R5放电当电容C1放电结束后RST端的电位由R11和R15分压比决定由于R11<<R15 因此RST为高电平CPU处于复位状态松手后电容C1充电RST端电位下降CPU脱离复位状态R11的作用在于限制按键按下瞬间电容C1的放电电流避免产生火花以保护按键触电图3-6 复位电路原理图3.7 晶振电路AT89C51引脚XTAL1和XTAL2和晶体振荡器及电容C2、C1按图3-7所示方式连接晶振、电容C2/C3及片内和非门(作为反馈、放大元件)构成了电容三点式振荡器振荡信号频率和晶振频率及电容C1、C2的容量有关但主要由晶振频率决定范围在0~33MHz之间电容C2、C3取值范围在5~30pF之间根据实际情况本设计中采用12MHZ做系统的外部晶振电容取值为20pF图3-7 晶振电路原理图3.8 显示电路为了提高密码锁的密码显示效果能力本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成只有按下键盘上的开启按键后显示器才处于开启状态同理只有按下关闭按键后显示器才处于关闭状态否则显示器将一直处于初始状态当需要对密码锁进行开锁时按下键盘上的开锁按键后利用键盘上的数字键0-9输入密码每按下一个数字键后在显示器上显示一个*输入多少位就显示多少个*当密码输入完成时按下确认键如果输入的密码正确的话LCD子显示"RIGHT"单片机其中P2.0引角会输出低电平使三极管T2导通电磁铁吸合电子密码锁被打开。

电子密码锁总体设计方案

电子密码锁总体设计方案

电子密码锁系统总体设计详细文档题目:电子密码锁的设计组号:第八组小组成员:王新恒(S120131106)牛庆渝(S120102007)于秀玲(S120101212)黄志辉(S120131021)2012年11月15日目录第一篇绪论 (1)一、引言 (1)1、编写目的 (1)2、背景介绍 (1)二、功能需求设计 (2)1、任务和目标 (2)2、功能需求简述 (2)第二篇设计概述 (5)一、详细设计方案的选择及设计思路概述 (5)1、设计方案的选择 (5)2、初步设计思路概述 (6)二、设计方法和技术条件 (7)1、设计原则 (7)2、应用的技术分析 (7)3、设计者当前已具备的技术条件 (7)4、设计重点难点 (8)第三篇系统总体设计方案确认 (9)一、单片机模块 (9)1、主要特性 (9)2、主要接口说明 (10)二、键盘矩阵模块 (11)三、显示模块 (12)四、报警模块 (12)五、电子时钟模块 (13)1、概述 (13)2、引脚介绍 (14)六、通信传输模块 (14)1、通信传输原理概述 (14)2、电平转换电路 (15)第四篇系统程序设计 (17)一、总体程序设计流程 (17)1、程序功能 (17)2、系统程序设计总流程 (17)二、各个模块系统程序设计流程 (18)1、显示初始化模块程序设计 (19)2、密码比较功能模块程序设计 (20)3、键盘输入模块程序设计 (23)4、电子时钟显示模块程序设计 (27)5、密码修改模块程序 (31)6、报警模块程序设计 (39)7、通信(虚拟)模块程序设计 (40)附录 (43)一、电路原理图 (43)二、 Proteus仿真图 (44)三、 PCB板图 (45)四、源程序 (45)第一篇绪论一、引言1、编写目的编写总体设计说明书的目的是为了说明对密码锁系统总体设计的考虑,包括程序的基本流程、输入/输出设计、模块设计、运行设计、硬件的总体设计和系统出错处理设计等,以便为密码锁的具体设计制作和仿真提供理论基础和指导方向,主要就是为编写程序提供依据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北海职业学院毕业设计 (论文)2012 -2013 学年度电子信息工程系(部) 应用电子技术专业题目学生姓名学生班级指导教师起止日期2012 年10 月日北海职业学院毕业设计 (论文)任务书系(部)专业班级姓名学号指导教师职务(称)20年月日北海职业学院学生毕业设计(论文)成绩鉴定表电子密码锁设计作者:xxx【摘要】随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点,本设计使用ATMEL公司的AT89S52实现一基于单片机的电子密码锁的设计。

本文介绍一种基于单片机和串行EEPROM的智能密码锁,是密码锁设计中比较简单的一种,其主要功能有键盘输入、LED数码管显示、加密、修改密码、密码检测、错误报警等简单易懂、使用方便、安全性能高等。

本设计采用AT89S52单片机为芯片主体,采用AT24C08为掉电存储器的芯片。

这种芯片稳定性高,成本低。

它是采用AT89S52单片机和AT24C08串行EEPROM,通过AT89S52模拟I2C总线和AT24C08通讯,实现密码锁的功能。

【关键词】AT89S52 AT24C08 密码锁矩阵键盘第一章引言在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。

但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。

而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。

加上其成本较高,一定程度上限制了这类产品的普及和推广。

鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。

本次设计使用ATMEL公司的AT89S52实现一基于单片机的电子密码锁的设计第二章方案论证设计本课题时构思时考虑到数字电路方案原理过于简单,而且不能满足现在的安全需求,所以本文采用一种是用以AT89S52为核心的单片机控制方案。

以AT89S51为核心的单片机控制方案利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能。

其原理方框图如图2-1所示。

图2-1单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级。

第三章硬件设计3.1 功能模块3.11开锁电路设计通过单片机送给开锁执行机构,将P3.5置低电平,密码正确指示灯亮,从而达到开锁的目的。

其原理如图3-1所示。

图3-1密码锁开锁示意图3.12按键电路设计由于设计要求使用矩阵键盘,所以本设计就彩行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O口线的数目,在按键比较多的时候,通常采用这样方法。

每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有N×M个按键的键盘。

在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就要识别哪一个按键按下。

对键的识别通常有两种方法:一种是常用的逐行扫描查询法,另一种是速度较快的线反转法。

判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。

方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

按键的操作面板如图3-2所示。

共计数字键10个,功能键4个,键盘上还有2个指示灯和蜂鸣器。

图3-2按键操作面板示意图其中10个数字键用来输入密码,另外4个功能键分别是:A、B、C、D。

其中A键的功能是显示密码,B键的功能是确认输入的密码,C键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入,D是用来进入修改密码的状态。

上面的两个指示灯L1、L2、是用来指示操作的状态:L1是开门指示灯,正常的情况下无显示,当键盘动作且密码正确的时候,灯亮;L2是电源状态指示灯,当接通电源时,指示灯自动点亮,否则,灯灭。

面板上还有一个蜂鸣器,其功能是当用户输入密码错误时或密码输入错误次数超过了3次,鸣笛以示报警。

3.13显示电路设计本系统设计的显示电路是为了给使用者以提示而设置的,选择四位连体共阳的数码管,本系统的显示采用并行显示的方式,只使用单片机的两个口P0口和P2口,就可以完成单片机的显示功能,显示电路的电路原理图如图3-3所示,P0口完成段码显示,P2口完成位选功能。

电路设定:当密码输入错误次数达到三次以上时,显示”E”,当无输入\断电时,则关闭显示,当忘记密码,输错密码,判断密码正确无误时,可通过功能键进行显示更改密码及判断。

图3-3显示器原理图3.14 AT24C08断电存储单元的设计断电存储单元的作用是在电源断开的时候,存储当前设定的信息。

AT24C08是ATMEL 公司的8KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。

其电路如图3-4所示。

图3-4断电存储电路原理图由于AT24C08的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。

每当设定一次单价,系统就自动调用存储程序,将单价信息保存在芯片内;当系统重新上电的时候,自动调用读存储器程序,将存储器内的单价等信息,读到缓存单元中,供主程序使用。

3.15 总体设计总框图图3-5总体设计框图3.2 原理图3.3 PCB图第四章软件设计4.1 程序流程图图4-1 主程序流程图图4-2 修改密码流程图图4-3 键盘程序流程图图4-4 24c08程序流程图4.2 程序实现功能.该主要由三部分组成:4×4矩阵键盘接口电路、密码锁的控制电路、输出八段显示电路。

另外系统还有LED提示灯,报警蜂鸣器等,可分为以下几个模块:垣残壁(1)主程序模块主程序主要完成初始化、检查有无按键按下、以及调用显示等等,其流程图如4-1所示。

(2)显示子程序由于是分屏显示数据,所以就要用到4个显示子程序,分别是:功能键显示密码状态子程序、修改密码显示子程序、判断密码输入正确提示子程序、密码输入错误次数超过3次后的锁定状态显示子程序,其流程图如4-2所示。

(3)键盘扫描及识别子程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回,其程序流程图如4-3所示。

(4)调电存储服务程序入的密码相比较。

当修改密码的时候,需要把输入的密码保存到AT24C08中,并实现断电保护,其流程图如4-4所示。

程序及部分说明#include <reg52.h>#include <intrins.h>unsignedchar b[14]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xff,0xff,0xff};unsigned char c[4];unsigned char a[4]={0xf1,0xf2,0xf4,0xf8},kk[8];unsigned char K,Key,ac,i,z,wr,ii; //ac表示数码管显示个数sbit scl = P2^6;sbit sda = P2^7;sbit P35 = P3^5;sbit P34 = P3^4;// 延时子程序void delay(unsigned char pp) //延迟时间等于pp*1ms{while(pp--){unsigned char j;for(j=0;j<126;j++); //j进行的内部循环,1次延迟8us,延迟1ms}}void delayNOP(){_nop_();_nop_();_nop_();_nop_();}//开始位void start(){sda = 1;delayNOP();scl = 1;delayNOP();delayNOP();}// 停止位void stop(){sda = 0;delayNOP();scl = 1;delayNOP();sda = 1;delayNOP();}//应答//void respons (){unsigned char i;scl=1;delayNOP();while((sda==1)&&(i<250))i++;scl=0;delayNOP();}//总线初始化//void init(){sda=1;delayNOP();scl=1;delayNOP();}//写字节//void write_byte(unsigned char date) {unsigned char i,temp;temp=date;for(i=0;i<8;i++){temp=temp<<1;scl=0;sda=CY;delayNOP();scl=1;delayNOP();}scl=0;delayNOP();sda=1;delayNOP();}//读字节//unsigned char read_byte(){unsigned char i,j,k;scl=0;delayNOP();sda=1;delayNOP();for(i=0;i<8;i++){scl=1;delayNOP();if(sda==1)j=1;elsej=0;k=(k<<1)|j;scl=0;delayNOP();}return k;}//写地址//void write_add(unsigned char address,unsigned char date) {start();write_byte(0xa0);respons();write_byte(address);write_byte(date);respons();stop();}//读地址//unsigned char read_add(unsigned char address){unsigned char date;start();write_byte(0xa0);respons();write_byte(address);respons();start();write_byte(0xa1);respons();date=read_byte();stop();return date;}//功能//void fun1()//功能键显示密码{for(z=0;z<ac;z++){P0=c[z];P2=read_add(wr++);c[3]=c[2];c[2]=c[1];c[1]=c[0];c[0]=read_add(i++);}}void fun2()//判断密码{if(((P0=read_add(i))!=(P0=c[i]))&&((P2=read_add(i))!=(P2=a[i]))) {P34=0;delay(100);ii++;}else{P35=0;}}void fun3()//删除功能键{for(K=10;K<11;K++) {c[0]=c[1];c[1]=c[2];c[2]=c[3];c[3]=b[K];}}void fun4()//更改密码确认键{if(P35==0){write_add(i,c[0]);write_add(wr,a[0]);delay(10);write_add(i+1,c[1]);write_add(wr,a[1]);delay(10);write_add(i+2,c[2]);write_add(wr,a[2]);delay(10);write_add(i+3,c[3]);write_add(wr,a[3]);delay(10);}}//显示//void display(){unsigned char i;{P0=c[i];P2=a[i];delay(1);}}//按键//unsigned char Keycan(void) //按键扫描程序 P1.0--P1.3为行线 P1.4--P1.7为列线{unsigned char rcode, ccode;P1 = 0xF0; // 发全0行扫描码,列线输入if((P1&0xF0) != 0xF0) // 若有键按下{delay(1); // 延时去抖动if((P1&0xF0) != 0xF0){rcode = 0xFE; // 逐行扫描初值while((rcode&0x10) != 0){P1 = rcode; // 输出行扫描码if((P1&0xF0) != 0xF0) // 本行有键按下{ccode = (P1&0xF0)|0x0F;while((P1&0xF0) != 0xF0); //等待键释放return ((~rcode) + (~ccode)); // 返回键编码}elsercode = (rcode<<1)|0x01; // 行扫描码左移一位}}}return 0; // 无键按下,返回值为0}void KeyDeal(unsigned char Key){if(Key!=0){switch(Key)case 0x11: K=0; break;case 0x21: K=1; break;case 0x41: K=2; break;case 0x81: K=3; break;case 0x12: K=4; break;case 0x22: K=5; break;case 0x42: K=6; break;case 0x82: K=7; break;case 0x14: K=8; break;case 0x24: K=9; break;case 0x44: K=10,fun1(); break;case 0x84: K=11,fun2(); break;case 0x18: K=12,fun3(); break;case 0x28: K=13,fun4(); break;default: break;}if(K<=9){c[3]=c[2];c[2]=c[1];c[1]=c[0];c[0]=b[K];ac++;if(ac>4)ac=4;}}}void main(){init(); // 24C08初始化while(1) // 键盘及显示{Key = Keycan(); //键盘扫描获取一次按键的编码0x11-0x88 KeyDeal(Key); //对扫描到的键盘编码进行转换处理,变成数据键盘0-9 display();if(ii==3){while(1); // 自锁键盘}}}第五章总结在没有做毕业设计以前,觉得毕业设计只是对知识的单纯总结,但是通过这次毕业设计发现自己的看法有点太片面,毕业设计(论文)不仅是对前面所学知识的一种检验,也是对自己能力的一种提高,通过这次课程设计使自己明白了原来的那点知识是非常欠缺的,要学习的东西还很多,通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。

相关文档
最新文档