单片机密码锁设计
单片机 电子密码锁设计(全)
《单片机原理及应用》课程设计报告课题名称电子密码锁学院自动控制与机械工程专业电气工程及其自动化班级x x x x学号x x x x x姓名x x x x x时间x x x x x x x x x x x x x x x目录摘要 (2)一、设计任务及要求............... 错误!未定义书签。
1.1、设计任务 ....................... 错误!未定义书签。
1.2、设计要求 ....................... 错误!未定义书签。
二、系统总体结构及工作原理....... 错误!未定义书签。
2.1系统总体结构..................... 错误!未定义书签。
2.2 系统总体结构及电路图............. 错误!未定义书签。
三、各模块电路设计............... 错误!未定义书签。
3.1 AT89C51简介..................... 错误!未定义书签。
3.2 模块电路 ........................ 错误!未定义书签。
四、软件设计..................... 错误!未定义书签。
4.1 主程序流程图 .................... 错误!未定义书签。
4.2、子程序代码 ..................... 错误!未定义书签。
五、调试说明..................... 错误!未定义书签。
六、总结......................... 错误!未定义书签。
七、参考文献..................... 错误!未定义书签。
八、附录源程序源代码清单…………………………错误!未定义书签。
摘要本次设计介绍了基于单片机电子密码锁的设计,该设计硬件主要由AT89C51最小系统、矩阵电路、LCD显示电路、电源电路和报警电路等几部分组成。
软件主要由C语言编程。
该密码锁由单片机技术,通过矩阵电路设置、修改密码、保护密码,并由LCD显示密码输入,从而实现对密码的设置、保护。
基于单片机的智能密码锁的设计
基于单片机的智能密码锁的设计基于单片机的智能密码锁设计随着科技的发展和人们安全意识的提高,密码锁在保护个人和家庭安全方面扮演着越来越重要的角色。
传统的机械密码锁由于易受破解和安全性较低的限制,已经无法满足现代安全需求。
基于单片机的智能密码锁作为一种新型的安全产品,具有更高的可靠性和安全性,逐渐得到了广泛关注。
本文将介绍基于单片机的智能密码锁的设计,包括其工作原理、设计思路、实验验证和总结。
一、密码锁概念与原理密码锁是一种通过输入正确的密码来控制锁的开启和关闭的装置。
它主要由密码输入装置、控制装置和执行机构三部分组成。
其工作原理是:用户输入正确的密码后,控制装置将与预设的密码进行比较,如果一致,则发送信号给执行机构,打开锁;如果不一致,则发出警报或拒绝操作。
二、基于单片机的智能密码锁设计1、选择合适的单片机基于单片机的智能密码锁设计第一步是选择合适的单片机。
考虑到性能、价格和易用性等因素,我们选择了常用的8051单片机。
该单片机功能强大、价格适中,且易于编程和调试。
2、设计密码锁的功能模块根据需求分析,我们需要设计以下功能模块:键盘输入、密码比较、LED显示、电机驱动和报警模块。
键盘输入用于用户输入密码;密码比较用于将输入的密码与预设的密码进行比较;LED显示用于显示当前状态和输入的密码;电机驱动用于控制电机的运转;报警模块用于在密码错误时发出警报。
3、编写程序代码根据设计的功能模块,我们需要编写程序代码来实现各个模块的功能。
程序主要包括初始化、键盘输入处理、密码比较、LED显示、电机驱动和报警模块等部分。
其中,密码比较是关键部分,需要编写相应的算法来实现。
4、实现密码锁的具体功能在完成程序编写后,我们需要将程序下载到单片机中,并通过调试来确保各个模块能够正常工作。
在实现密码锁的具体功能时,需要注意以下几点:1、确保输入的密码与预设的密码一致才能打开锁;2、当连续输入错误密码超过设定次数时,应自动锁定密码锁,防止恶意破解;3、应设置一个复位按钮,以便在忘记密码或出现其他异常情况时进行重置;4、可以根据需求增加其他功能,如语音提示、网络控制等。
单片机密码锁设计
单片机密码锁设计工作过程1.按键设置6位密码,输入密码,通过单片机判断,若密码正确,通过则锁打开,显示open!2.首次使用时输入:131420,对密码进行初始化,当显示:initpassword,证明密码初始化完成,此时的密码为:000000。
设计思想(1)本设计为了防止密码被窃取要求在输入密码时在LCD屏幕上显示*号。
(2)设计开锁密码位六位密码的电子密码锁。
(3)能够LCD显示在密码正确时显示open!,密码错误时显示ERROR,输入密码时显示initpassword。
(4)实现输入密码错误超过限定的三次电子密码锁定。
(5)4×4的矩阵键盘其中包括0-9的数字键和A-D的功能键(6)本产品具备报警功能,当输入密码错误时蜂鸣器响并且LED灯亮。
(7)密码可以由用户自己修改设定(只支持6位密码),修改密码之前必须再次输入密码,在输入新密码时候需要二次确认,以防止误操作自锁开关说明自锁开关电路中起到电源的开关作用,常开的其中一脚接DC电源插口电源脚,常开的另一脚接电路的VCC自锁开关原理图自锁开关硬件图上拉电阻介绍其实排阻就是由8个电阻组成的,其中一端全部接在一起,103为8个10K电阻,102为8个1K电阻,他们在电路中起到“上拉”的作用,又称上拉电阻。
上拉就是将不确定的信号通过一个电阻嵌位在高电平,电阻同时起限流作用,下拉同理.上拉是对器件注入电流,下拉是输出电流,弱强只是上拉电阻的阻值不同,没有什么严格区分,对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
上拉,就是把电位拉高,比如拉到VCC下拉,就是把电压拉低,拉到GND一般就是刚上电的时候,端口电压不稳定,为了让他稳定为高或低,就会用到上拉或下拉电阻。
有些芯片内部集成了上拉电阻(如单片机的P1、2、3口),所以外部就不用上拉电阻了。
但是有一些开漏的(如单片机的P0口),外部必须加上拉电阻。
单片机指纹密码锁毕业设计
单片机指纹密码锁毕业设计1. 什么是单片机指纹密码锁单片机指纹密码锁是一种电子门锁系统,它使用集成在单片机芯片上的指纹识别技术和密码输入功能,实现对门锁的访问控制。
用户可以通过输入正确的密码或者将指纹与已注册的指纹进行比对来解锁门锁。
这种锁具有高安全性和方便性,适用于各种需要保护的场所,如家庭、办公室和商店等。
2. 单片机指纹密码锁的工作原理是什么单片机指纹密码锁的工作原理主要分为三个部分:指纹模块、密码输入模块和控制模块。
指纹模块负责采集和存储用户的指纹信息。
当用户将手指放在指纹传感器上时,指纹模块会对指纹进行扫描并提取关键特征信息。
然后,它会将提取的特征信息与已存储的指纹模板进行比对,以确定是否匹配。
如果匹配成功,指纹模块会发送信号给控制模块,表示门锁可以解锁。
密码输入模块负责接收用户输入的密码。
用户可以通过键盘或者其他输入设备输入密码。
密码输入模块将接收到的密码与事先存储的正确密码进行比对,如果匹配成功,则发送信号给控制模块。
控制模块是单片机芯片,它负责整个单片机指纹密码锁系统的逻辑控制。
当控制模块接收到指纹模块或者密码输入模块发送的解锁信号后,它会打开电磁锁或者其他解锁机制,让用户能够进入被保护的区域。
3. 单片机指纹密码锁的优点是什么单片机指纹密码锁具有以下几个优点:首先,安全性高。
通过指纹识别技术,单片机指纹密码锁可以准确地识别用户的指纹,大大降低了被非法进入的风险。
同时,密码输入模块也可以提供备用的解锁方式,增加了安全性。
其次,方便性高。
用户只需要将手指放在指纹传感器上或者输入正确的密码,即可快速解锁门锁。
相比传统的钥匙锁,单片机指纹密码锁更加方便快捷。
另外,可靠性强。
单片机指纹密码锁采用先进的技术和稳定的电子元件,具有较高的可靠性和耐用性。
它可以抵御一些常见的攻击手段,如暴力破解密码等。
最后,可扩展性好。
单片机指纹密码锁可以通过与其他安全系统集成,如门禁系统或监控系统,提供更全面的安全保障。
基于单片机电子密码锁设计论文
第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. 系统设计原理与方案指纹密码锁的设计基于单片机技术,其核心原理在于将指纹识别技术与密码验证功能集成于一个紧凑、安全的系统中。
单片机作为控制核心,负责处理指纹识别模块采集的指纹信息,并与预设的指纹数据库进行比对,同时管理密码输入与验证过程。
系统设计方案包括硬件设计和软件设计两部分。
硬件设计主要涉及单片机的选型、指纹识别模块的集成、密码输入界面的设计以及锁体控制模块的搭建。
单片机应选用性能稳定、功耗低、具有足够处理能力的型号,以满足系统实时性和安全性的要求。
指纹识别模块需选用高精度、高识别率的型号,以确保指纹信息的准确采集与比对。
密码输入界面应设计简洁、易操作,方便用户输入密码。
锁体控制模块则负责控制锁的开关状态,确保在验证通过后才能解锁。
软件设计方面,主要包括指纹识别算法的实现、密码验证逻辑的设计以及单片机控制程序的编写。
指纹识别算法需考虑算法的准确性、速度和稳定性,以应对不同环境和用户的使用需求。
基于52单片机电子密码锁的设计
1、电阻和电容的选择:为了确保电路的稳定性和可靠性,我们选用了常见 的贴片电阻和电容,并根据实际需求进行合理布局。
2、单片机的连接方式:将STC89C52单片机与输入键盘、LED显示和开锁机构 通过合适的接口进行连接,实现密码的输入、显示和开锁功能。
软件编程
本设计的软件编程采用C语言,主要包括以下几个部分:
二、基于STC89C52单片机的电 子密码锁
1、材料和方法实现基于STC89C52单片机的电子密码锁需要准备以下材料和 设备:
1、STC89C52单片机
2、液晶显示屏(LCD)
3、键盘输入模块
4、报警模块
5、电源模块
6、门禁系统主板
实验设计方法主要包括以下步骤:
1、电路连接:根据设计要求,将单片机、液晶显示屏、键盘输入模块、报 警模块等连接起来。
1、密码设定:用户可以通过键盘输入模块设定6位数字密码,密码可随时修 改。
2、密码验证:当用户输入密码时,系统会自动验证密码是否正确。如果密 码正确,则单片机控制门禁系统主板打开门锁;如果密码错误,系统会发出报警 提示,同时锁定键盘输入和开锁功能,保护系统不被恶意攻击。
3、开锁功能:当密码验证通过后,门锁会自动打开,同时液晶显示屏会显 示“开锁成功”字样。如果需要记录开锁信息,可以通过扩展串口将开锁信息传 输到计算机或云平台进行存储和分析。实验结果表明,基于STC89C52单片机的电 子密码锁具有较高的安全性和便利性。
基于52单片机电子密码锁的设 计
01 设计思路
002 软件设计 04 调试与优化 06 参考内容
随着社会的进步和科技的发展,人们越来越注重生活的安全性和便捷性。电 子密码锁作为一种新型的安全防护设备,具有高安全性、使用方便等优点,逐渐 被广泛应用于家庭、办公室等领域。本次演示将基于52单片机设计一款电子密码 锁,以实现输入密码的安全保护功能。
单片机密码锁设计带原理图电路图
单片机密码锁设计(汇编语言-)带原理图电路图-2016(总14页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--单片机密码锁设计(汇编语言)带原理图电路图什么是密码锁电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
硬件设计基于AT89C51为核心的单片机控制的电子密码锁设计。
本设计能完成开锁,修改密码,密码错误报警,LCD显示密码等基本的密码锁功能。
设计的电路框如图1。
电路的功能单元设计1.单片机AT89C51组成基本框图单片机引脚介绍P0:P0口是一个漏极开路的8位双向I/O口。
在访问片外存储器时P0分时提供低8位地址线和8位双向数据线。
当不接片外存储器或不扩展I/O口时,P0可作为一个通用输入/输出口。
P0口作输入口使用时,应先向口锁存器写“1”,P0口作输出口时,需接上拉电阻。
P1:P1口是一个内部提供上拉电阻的8位双向I/O口,因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁存器写“1”。
P2:P2口也是一个内部提供上拉电阻的8位双向I/O口,在访问片外存储器时,输出高8位地址。
P3:P3口除了一般的准双向通用I/O口外,还有第二功能。
VCC:+5V电源VSS:接地 ALE:地址锁存器控制信号。
在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。
此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
/PSEN:外部程序存储器读选通信号。
在读外部ROM时,/PSEN有效(低电平),以实现外部ROM单元的读操作。
/EA:访问程序存储控制信号。
当/EA信号为低电平时,对ROM的读操作限定在外部程序存储器;当/EA信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。
基于51单片机的密码锁设计报告
基于51单片机的密码锁设计报告一、引言随着科技的不断发展,安全问题越来越受到人们的关注。
密码锁作为一种常见的安全防护设备,在保护个人财产和隐私方面发挥着重要作用。
本设计报告介绍了一种基于 51 单片机的密码锁系统,该系统具有成本低、可靠性高、操作简单等优点,适用于家庭、办公室等场所。
二、系统总体设计(一)设计目标设计一个基于 51 单片机的密码锁系统,实现以下功能:1、密码输入与验证功能。
2、密码修改功能。
3、错误输入次数限制及报警功能。
4、开锁状态指示功能。
(二)系统组成本系统主要由 51 单片机、矩阵键盘、液晶显示屏(LCD)、电磁锁驱动电路、报警电路等组成。
1、 51 单片机作为核心控制器,负责处理密码输入、验证、修改等操作,并控制其他模块的工作。
2、矩阵键盘用于输入密码和执行相关操作。
3、 LCD 显示屏用于显示系统状态和提示信息。
4、电磁锁驱动电路用于控制电磁锁的开关。
5、报警电路在密码输入错误次数超过限制时发出报警信号。
三、硬件设计(一)51 单片机选型本设计选用 STC89C52 单片机,该单片机具有丰富的 I/O 口资源、较高的性价比和良好的稳定性。
(二)矩阵键盘设计矩阵键盘采用 4×4 行列式结构,通过扫描的方式获取按键值。
(三)LCD 显示屏接口设计选用 1602 液晶显示屏,通过并行接口与单片机连接,实现数据的传输和显示。
(四)电磁锁驱动电路设计电磁锁采用直流电源供电,通过三极管驱动电路控制其开关。
(五)报警电路设计报警电路采用蜂鸣器实现,当密码输入错误次数超过限制时,单片机输出高电平驱动蜂鸣器发声报警。
四、软件设计(一)主程序流程系统上电后,首先进行初始化操作,包括单片机端口初始化、LCD 初始化等。
然后进入密码输入状态,等待用户输入密码。
用户输入密码后,进行密码验证,如果密码正确,则打开电磁锁,并显示开锁成功信息;如果密码错误,则记录错误次数,并显示错误提示信息。
基于单片机的电子密码锁设计
基于单片机的电子密码锁设计
电子密码锁是一种常用的智能锁具,它使用数字密码代替传统的钥匙,能够提供更高的安全性和方便性。
基于单片机的电子密码锁能够实现简单的密码输入、校验和控制逻辑,下面是一种基于单片机的电子密码锁设计方案。
硬件部分:
1、MCU:选择一款高性价比的8位单片机,如AT89C51,具备足够的存储空间、操作速度和通用IO口。
2、键盘:选用16键或12键矩阵键盘,提供数字、字母和功能键,可灵活设置密码。
3、数码管:用于显示输入密码和状态信息,一般采用4位共阳数码管。
4、电路保护:此处需添加过流保护、短路保护、反向保护以及过压保护等电路。
5、电源:选择电池供电模式,例如4节AA碱性电池并联,以保证足够的电量和使用寿命。
软件部分:
1、键盘输入检测:通过IO口扫描矩阵键盘输入状态,检测按下的键位并读取对应键值,避免误触。
2、密码存储:将设定好的开锁密码存储在MCU内部的Flash或EEPROM中,以保证密码安全并避免意外丢失。
3、密码校验:将输入的数字密码与存储的密码进行比较,如一致则允许开锁,否则拒绝开锁并显示“密码错误”。
4、状态显示:通过4位共阳数码管显示输入密码、开锁状态、警报状态等信息,方便用户操作。
5、警报功能:若输入错误密码超过规定次数,则触发警报,并向指定手机号或邮箱发送警报信息。
总之,基于单片机的电子密码锁设计需要合理安排硬件和软件功能,充分保证安全性和可靠性,并考虑升级和扩展的可能性。
单片机课程设计-密码锁-附截图
设计一个具有特定功能的密码锁。
该密码锁上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。
该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。
; 40H-45H 按键缓冲区,用于存放键码值; 50H-55H 显示缓冲区,用于存放要显示的段码; 70H-75H 密码区保存区,用于存放密码; 30H 单个单元存放段码地址(即存放50-55); 31H 单个单元存放键码地址(即存放40-45); 21H.0位判断是否按下了修改密码键K2; 21H.1位修改密码时用于判断是否正确输入了原密码; 21H.2位产生初始P. 只要有键按下,则该位置1,否则置0来不断输出P.ORG 0000HSJMP MAINORG 0030HMAIN:MOV SP,#60HMOV P2,#01H ;用来产生P.0的位控MOV R1,#70H ;密码区,初始密码为六个8T: MOV @R1,#08HINC R1CJNE R1,#76H,TACALL PPAJMP FIRSTPP: MOV R0,#50H ;显示缓冲区首地址Q: MOV @R0,#0FFH ;“灭”段码INC R0CJNE R0,#56H,Q ;让8个显示缓冲区初始值为“灭”状态,后面按一次则赋一次值MOV 30H,#4FH ;段码地址临时MOV 31H,#3FH ;按键后存放键码的缓冲区首地址ACALL DLRETPQ:MOV P0,#0CH ;输出P.ACALL DLRET;下面实现按键功能FIRST:ACALL DIRACALL KEY ;调用键处理函数K1: JNB ACC.0,K2 ;K1键确定键判0 转移MOV 30H,#4FH ;段码地址临时MOV 31H,#3FH ;按键后存放键码的缓冲区首地址JB 21H.0,KK ;按了K2改密键,再K1,则表示修改密码,FUN0改密函数LJMP FUN1KK: CLR 21H.0LJMP FUN0K2: JNB ACC.1,K3 ;K2键改密码,但必须在输入原密码之后修改,而且要修改两次才确定修改ACALL PP ;调用函数让数码显示管灭JNB 21H.1,FIRST ;如果21H.1为0,表示未输入原密码SETB 21H.0ACALL DIRAJMP FIRSTK3: JNB ACC.2,K4 ;K3ACALL DIRINC 31HMOV R0,31H MOV @R0,#03H AJMP FIRST洞洞板/万能板成品图片左下角有地址-有录像K4: JNB ACC.3,K5 ;K4ACALL DIRINC 31HMOV R0,31HMOV @R0,#04HAJMP FIRSTK5: JNB ACC.4,K6 ;K5ACALL DIRINC 31HMOV R0,31HMOV @R0,#05HAJMP FIRSTK6: JNB ACC.5,K7 ;K6ACALL DIRINC 31HMOV R0,31HMOV @R0,#06HAJMP FIRSTK7: JNB ACC.6,K8 ;K7ACALL DIRINC 31HMOV R0,31HMOV @R0,#07HAJMP FIRSTK8: JNB ACC.7,FIRST ;K8ACALL DIRINC 31HMOV R0,31HMOV @R0,#08HAJMP FIRSTKS:MOV A,P1CPL ARETKEY: ACALL KSJNZ AGAIN ;有键闭合则转向再次判断AJMP EXTI ;无键闭合则转向结束AGAIN:ACALL DIR ;延时16毫秒ACALL DIRACALL KSJNZ LKP ;两次判断有键闭合,则转向按键键值判断;MOV A,20HAJMP EXTI ;第二次判断无键闭合,则转向结束LKP:SETB 21H.2 ;有键闭合JB ACC.0,LK1 ;要排除K1和K2键,因为那是作为确认和修改密码的,不是密码值JB ACC.1,LK1LK0:INC 30H ;有键闭合,显示缓冲区地址加1MOV R0,30HMOV @R0,#0BFH ;有键闭合,则让显示缓冲区状态为横杠LK1:PUSH ACCLK: ACALL DIR ;判断是否键起ACALL KSJNZ LKPOP ACCEXTI:JB 21H.2,TTACALL PQTT: RETDIR: MOV R0,#50H ;50H为显示缓冲区首地址N1: MOV P2,#80H ;位控制MOV P0 ,@R0 ;输出段控码ACALL DL ;延时1毫秒N2: INC R0MOV A,P2RR AMOV P2,AMOV P0,@R0 ;输出横杠线ACALL DLN3: INC R0MOV A,P2RR AMOV P2,AMOV P0,@R0 ;输出横杠线ACALL DLN4: INC R0MOV A,P2RR AMOV P2,AMOV P0,@R0 ;输出横杠线ACALL DLN5: INC R0MOV A,P2RR AMOV P2,AMOV P0,@R0 ;输出横杠线ACALL DLN6: INC R0MOV A,P2RR AMOV P2,AMOV P0,@R0 ;输出横杠线ACALL DLN7: INC R0MOV A,P2RR AMOV P2,AMOV P0,#0FFH ;输出横杠线ACALL DLN8: INC R0MOV A,P2RR AMOV P2,AMOV P0,#0FFH ;输出横杠线ACALL DLEXTI0:RET;延时一毫秒函数DL: MOV IE,#00HMOV TMOD,#10H ;工作方式1,MOV TH1,#0FCH ;延时程序延时一毫秒MOV TL1,#18HSETB TR1STEP1:JBC TF1,STEP2AJMP STEP1STEP2:CLR TR1RETFUN0:MOV R2,#06HMOV R0,#40H ;修改密码把40H-45H里的内容放到70H-75H里面去MOV R1,#70HH: MOV A,@R0MOV @R1,AINC R0INC R1DJNZ R2,HMOV R0,#50HZ: MOV @R0,#0F9H ;输出1表示密码修改正确INC R0CJNE R0,#56H,ZACALL DIRAJMP FIRSTFUN1:MOV R0,#40H ;输入的键码MOV R1,#70H ;密码区W: MOV A,@R0SUBB A,@R1JNZ NO_SAME ;非0就转移不相等就转移INC R0INC R1MOV A,@R0SUBB A,@R1JNZ NO_SAMEINC R0INC R1MOV A,@R0SUBB A,@R1JNZ NO_SAMEINC R0INC R1MOV A,@R0SUBB A,@R1JNZ NO_SAMEINC R0INC R1MOV A,@R0SUBB A,@R1JNZ NO_SAMEINC R0INC R1MOV A,@R0SUBB A,@R1JNZ NO_SAMESAME:MOV R0,#50HZ2: MOV @R0,#0F9H ;输出1表示密码正确INC R0CJNE R0,#56H,Z2ACALL DIR;ACALL PP ;如果有这条语句,则显示1后立刻消失SETB 21H.1AJMP FIRSTNO_SAME:MOV R0,#50HY: MOV @R0,#0C0H ;输出0表示密码错误INC R0CJNE R0,#56H,YACALL DIRAJMP FIRSTEND毕业论文题目:基于单片机的电子密码锁的设计专业:通信工程摘要单片机已经在家电领域中得到了广泛的应用,而且在安全密保方面,具有防盗报警功能的电子密码锁逐渐取代了传统的机械密码锁,克服了机械密码锁密码过少的安全性问题。
基于单片机的密码锁设计
基于单片机的密码锁设计(LCD1602显示)一任务要求设计一种基于单片机的密码锁。
通过4*4矩阵键盘输入,在LCD1602显示。
密码正确LCD1602显示正确密码,错误的话显示错误字符。
二硬件要求2.1 硬件总体框图图2-1 系统框图本设计采用4*4的矩阵键盘作为输入,STC89C52单片机作为主机,蜂鸣器组成发声系统。
根据系统拟达到的总体功能,将其划分为以下功能模块:4*4矩阵输入、、运算主机、输出设备等。
系统整体框图如图。
电子密码锁的核心器件是单片机,它是整个系统的“心脏”,由它来处理和运算输入信号,协调各功能模块的正常工作,考虑到系统的功能和经济性等因素,采用的是当今流行的性价比较高的STC89C52。
输出设备选用通用的1602LCD液晶显示模块,具有很好的显示特性,单5V电源电压,低功耗、长寿命、高可靠性,内置192种字符(160个5×7点阵字符和32个5×10点阵字符),具有64个字节的子定义字符RAM,可自定义8个5×8 点阵字符或四个5×11点阵字符,采用STN、半透、正显显示方式,4位或8位并口的通讯方式。
2.2 主要电路设计2.2.1 单片机核心模块电路设计AT89C52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
大多数指令使用1个或2个时钟周期执行。
使用双DPTR扩展标准8051结构。
8051CPU的主要外围包括;1、内部数据RAM2、外部数据空间3、特殊功能寄存器4、CPU时钟分屏器2.2.2 继电器电路当由4*4矩阵键盘输入的6位密码与单片机RAM里面的6位密码完全一致时,继电器指示灯亮,显示继电器动作。
2.2.3 蜂鸣器电路当用键盘输入密码时,每输入一个数字蜂鸣器响一次。
输入的密码不正确时,蜂鸣器短时响一会儿。
单片机密码锁课程设计
单片机密码锁课程设计一、课程目标知识目标:1. 学生能够理解单片机的基本原理,掌握密码锁设计的硬件组成和工作原理。
2. 学生能够运用C语言编写简单的程序,实现密码锁的功能。
3. 学生了解密码锁的安全性,掌握基本的安全防护措施。
技能目标:1. 学生能够独立完成单片机密码锁的硬件连接,具备实际操作能力。
2. 学生能够运用所学知识,编写和调试程序,实现密码锁的开锁和关锁功能。
3. 学生能够通过小组合作,分析问题,解决问题,提高团队协作能力。
情感态度价值观目标:1. 学生培养对单片机及电子制作的兴趣,激发创新精神。
2. 学生树立安全意识,认识到技术在实际应用中的重要性。
3. 学生在团队协作中,学会尊重他人,提高沟通表达能力。
课程性质:本课程为实践性课程,结合理论知识,培养学生的动手操作能力和实际应用能力。
学生特点:学生处于初中阶段,对新鲜事物充满好奇,具备一定的逻辑思维能力,但实践经验不足。
教学要求:教师需注重理论与实践相结合,引导学生主动探究,关注学生的个体差异,提高学生的实践操作能力。
在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。
1. 理论知识:- 单片机原理与结构:介绍单片机的基本组成、工作原理及功能。
- C语言基础:讲解C语言的基本语法、数据类型、运算符、控制结构等。
- 密码锁原理:分析密码锁的硬件组成、工作原理及安全性。
2. 实践操作:- 硬件连接:指导学生完成单片机、键盘、显示模块等硬件的连接。
- 程序编写:教授学生编写密码锁程序,实现开锁、关锁等功能。
- 调试与优化:引导学生分析程序运行过程中出现的问题,并进行调试和优化。
3. 教学大纲:- 第一周:单片机原理与结构学习,C语言基础学习。
- 第二周:密码锁原理学习,讨论密码锁的安全性。
- 第三周:硬件连接,小组合作进行程序编写。
- 第四周:程序调试与优化,总结与反思。
4. 教材章节:- 单片机原理与结构:教材第1章。
- C语言基础:教材第2章。
基于单片机的电子密码锁设计
基于单片机的电子密码锁设计在平时生活中,密码锁是一种常见的安全设备,被广泛应用于家庭、办公室等场所。
随着科技的进步,传统的机械密码锁已经不能完全满足人们对安全性和便捷性的需求。
为了提高密码锁的安全性和好用性,许多基于单片机的电子密码锁被设计出来。
本文将介绍一种,并详尽说明其工作原理和实现过程。
1. 设计思路基于单片机的电子密码锁的设计目标是提高安全性和便捷性。
传统的机械密码锁容易被暴力破解,而且若果密码被泄露,需要更换整个锁体。
因此,接受电子密码锁可以提供更高的安全性和便利的密码管理功能。
2. 系统组成基于单片机的电子密码锁主要由以下几个部分组成:(1)输入模块:用于输入密码的设备,可以是键盘、触摸屏等。
(2)单片机控制模块:使用单片机作为核心控制器,接收输入密码并进行验证。
(3)驱动模块:通过驱动模块对电子锁进行控制开关。
(4)显示模块:以LED或LCD等形式显示相关信息。
(5)电源模块:为电子密码锁系统提供电能供应。
3. 工作原理基于单片机的电子密码锁的工作原理如下:(1)初始状态下,用户可以通过输入密码进行解锁或锁定。
输入模块接收用户输入的密码。
(2)输入模块将密码发送给单片机控制模块。
(3)单片机控制模块使用事先设定的密码进行比对。
若果密码匹配,单片机控制模块将发出控制信号给驱动模块。
(4)驱动模块接收到控制信号后,将依据信号的指示打开或关闭电子锁。
(5)同时,单片机控制模块会发出指令给显示模块,将结果显示给用户。
4. 实现过程基于单片机的电子密码锁的实现过程如下:(1)选择合适的单片机,如AT89C51。
(2)设计电路板,将输入模块、单片机控制模块、驱动模块、显示模块和电源模块毗连在一起。
(3)编写单片机的控制程序,实现密码验证和控制信号的生成。
(4)制作密码锁外壳,将电子密码锁系统组装在一起。
(5)测试电子密码锁的各个功能是否正常。
5. 应用和进步基于单片机的电子密码锁由于其高安全性和便捷性已经得到广泛应用。
基于单片机的电子密码锁设计
基于单片机的电子密码锁设计一、电子密码锁的工作原理电子密码锁主要由输入模块、控制模块、存储模块和执行模块组成。
用户通过输入模块(如键盘)输入密码,控制模块(单片机)对输入的密码进行处理和判断,并与存储模块中预先设定的密码进行比对。
如果输入密码正确,控制模块将向执行模块发送开锁指令,实现开锁;如果输入密码错误,则执行相应的错误处理操作,如报警、锁定等。
二、硬件设计(一)单片机的选择在本设计中,选用了_____型号的单片机。
该单片机具有性能稳定、功耗低、接口丰富等优点,能够满足电子密码锁的控制需求。
(二)输入模块输入模块采用了矩阵键盘,通过行列扫描的方式获取用户输入的密码。
矩阵键盘具有按键数量多、占用端口少的特点,能够有效节省单片机的资源。
(三)存储模块为了存储预设的密码,选用了_____型号的EEPROM芯片。
EEPROM具有掉电不丢失数据的特性,能够保证密码的安全性和可靠性。
(四)显示模块为了给用户提供反馈信息,使用了_____型号的液晶显示屏。
可以显示开锁状态、输入错误提示等信息。
(五)执行模块执行模块包括电磁锁和报警装置。
当输入密码正确时,单片机控制电磁锁打开;当输入密码错误次数超过设定值时,启动报警装置。
三、软件设计(一)主程序流程系统上电后,首先进行初始化操作,包括单片机端口初始化、EEPROM读取预设密码等。
然后进入密码输入等待状态,当检测到有按键输入时,进行密码处理和判断,并根据判断结果执行相应的操作。
(二)密码输入处理在密码输入过程中,对输入的按键进行去抖处理,防止误判。
同时,对输入的密码进行加密处理,提高密码的安全性。
(三)密码比对将输入的密码与存储在EEPROM中的预设密码进行比对。
比对过程中,采用逐位比较的方式,确保密码的准确性。
(四)错误处理当输入密码错误时,记录错误次数。
如果错误次数超过设定值,则启动报警装置,并锁定键盘一段时间,防止暴力破解。
四、系统调试与测试(一)硬件调试首先检查电路连接是否正确,有无短路、断路等情况。
基于单片机的数字密码锁毕业设计
基于单片机的数字密码锁毕业设计简介本文档介绍了基于单片机的数字密码锁的毕业设计。
数字密码锁是一种常见的电子锁,由一组数字按钮和控制电路组成,用户可以使用预设的数字密码来解锁。
本毕业设计通过使用单片机控制电路,实现了一个简单而可靠的数字密码锁系统。
设计目标本毕业设计的目标是设计并实现一个基于单片机的数字密码锁系统,具体要求如下:1.可以设置和修改数字密码。
2.包含输入数字密码、解锁成功和解锁失败等状态指示。
3.具备密码保护功能,连续3次错误输入将触发报警。
4.低功耗设计,使用电池供电。
系统组成基于单片机的数字密码锁系统由以下几个主要部分组成:1.单片机控制电路:负责控制整个系统的工作。
2.数字按钮组:用于输入密码。
3.显示屏:用于显示状态指示和密码输入。
4.报警器:在密码错误次数达到一定次数后触发警报。
下面将逐一介绍这几个部分的原理和设计。
单片机控制电路本设计中选择了常用的ATmega328P单片机作为控制核心。
ATmega328P是一款功能强大的8位微控制器,具备多个GPIO引脚、I2C接口和EEPROM存储器,适合应用在本数字密码锁系统中。
控制电路主要负责以下几个任务:1.按钮输入检测:通过GPIO引脚读取用户输入的密码。
2.软件逻辑控制:根据用户的输入和预设密码,判断是否解锁成功。
3.状态指示:通过GPIO引脚控制显示屏上的状态指示灯。
数字按钮组数字按钮组由多个数字按钮组成,每个按钮分别对应数字0-9。
用户通过按下不同的按钮来输入密码。
按钮组的原理比较简单,每个按钮与GPIO引脚相连,按下按钮时,相应的GPIO引脚会变为低电平。
显示屏显示屏用于显示数字密码的输入状态和解锁结果。
对于本设计,可以选择使用数码管或者液晶显示屏。
数码管相对简单,通过GPIO引脚控制不同段来显示数字或字符。
而液晶显示屏则需要驱动芯片来实现显示。
报警器报警器用于报警功能。
在用户连续3次输入错误密码后,控制电路会触发报警器,发出声音或者闪烁指示灯来提示用户。
基于单片机的指纹密码锁系统设计
参考内容
基于单片机的指纹密码锁是一种集成了生物识别技术和嵌入式系统技术的安 全装置。它通过采集并比对指纹信息来决定是否授予访问权限。这种密码锁具有 很高的安全性和便捷性,因此在家庭、办公场所、工业等领域得到了广泛应用。
指纹密码锁的发展可以追溯到20世纪90年代,当时人们开始研究生物识别技 术在安全领域的应用。随着科技的发展和人们安全意识的提高,指纹密码锁逐渐 普及。现在,指纹密码锁已经成为市场上的主流产品,需求量不断增长。
指纹密码锁是一种利用指纹识别技术来控制锁的开启与关闭的设备。它通过 采集用户的指纹信息并存储在芯片中,在开锁时进行比对,以判断是否为合法用 户。单片机作为控制核心,负责处理指纹信息、控制开关门等操作。
设计指纹密码锁的主要步骤包括硬件设计和软件设计。硬件设计主要包括指 纹采集模块、控制开关和报警模块等的设计。软件设计主要涉及指纹信息的采集、 存储和比对等操作。具体步骤如下:
1、选取合适的单片机作为控制核心,例如STM32系列单片机。
2、安装指纹采集模块,并连接单片机。该模块可采用光学或电容式指纹识 别技术。
3、设计控制开关,连接单片机,实现通过单片机的控制进行开关门操作。 4、添加报警模块,如遇到非法入侵,通过单片机控制触发报警系统。
5、在单片机中编写控制程序,实现指纹信息的采集、存储和比对等功能。
总之,基于单片机的指纹密码锁是一种非常实用的安全装置,具有很高的安 全性和便捷性。随着科技的不断进步和应用场景的不断扩展,我们有理由相信它 将成为未来安全领域的重要发展方向。
参考内容二
在当今社会,随着科技的不断发展,人们对于自身财产的安全性越来越重视。 其中,门锁作为保护家庭或重要场所的第一道防线,历来受到广泛。传统门锁存 在被钥匙遗忘、复制钥匙等风险,因此,指纹密码锁作为一种新兴的安全防护设 备,逐渐进入人们的视野。本次演示将介绍一种基于单片机的指纹密码锁的设计。
基于单片机AT89S52单片机的密码锁设计
基于单片机AT89S52单片机的密码锁设计一、系统总体设计方案本密码锁系统主要由 AT89S52 单片机、矩阵键盘、液晶显示屏(LCD)、存储芯片、报警模块和开锁电路等组成。
用户通过矩阵键盘输入密码,单片机对输入的密码进行处理和判断,并将结果显示在LCD 屏上。
如果输入的密码正确,单片机控制开锁电路打开锁具;如果密码错误,系统会发出报警信号,并记录错误次数。
当错误次数超过设定值时,系统将锁定一段时间,以防止非法入侵。
二、硬件设计1、单片机最小系统AT89S52 单片机是整个系统的核心,它负责控制和协调各个模块的工作。
单片机最小系统包括单片机芯片、晶振电路和复位电路。
晶振电路为单片机提供时钟信号,复位电路用于系统的初始化和异常情况下的复位操作。
2、矩阵键盘矩阵键盘用于输入密码,采用 4×4 的矩阵式键盘布局,共 16 个按键,分别代表数字 0-9、确认键和删除键等。
通过扫描键盘的行和列,可以确定用户按下的按键值,并将其传输给单片机进行处理。
3、液晶显示屏(LCD)LCD 显示屏用于显示系统的工作状态和提示信息,如输入密码、密码正确、密码错误等。
本系统选用 1602 液晶显示屏,它具有体积小、功耗低、显示内容丰富等优点。
4、存储芯片存储芯片用于存储密码信息,选用 EEPROM 芯片 AT24C02。
EEPROM 具有掉电不丢失数据的特点,可以保证密码信息的安全性和可靠性。
5、报警模块报警模块由蜂鸣器和发光二极管组成,当密码输入错误次数超过设定值时,蜂鸣器发出报警声音,发光二极管闪烁,以提醒用户和起到威慑作用。
6、开锁电路开锁电路由继电器和电磁锁组成,当单片机判断输入的密码正确时,输出控制信号使继电器闭合,从而接通电磁锁的电源,打开锁具。
三、软件设计1、主程序流程系统上电后,首先进行初始化操作,包括单片机端口初始化、LCD 初始化、存储芯片初始化等。
然后进入密码输入等待状态,当用户按下按键时,读取按键值并进行相应的处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机密码锁设计什么是密码锁电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
硬件设计基于AT89C51为核心的单片机控制的电子密码锁设计。
本设计能完成开锁,修改密码,密码错误报警,LCD 显示密码等基本的密码锁功能。
设计的电路框如图1。
图一电路的功能单元设计1.单片机AT89C51组成基本框图开锁控制电路AT89C51单片机矩阵 键盘 控制指示电路LCD 显示电路报警控制电路单片机引脚介绍P0:P0口是一个漏极开路的8位双向I/O 口。
在访问片外存储器时P0分时提供低8位地址线和8位双向数据线。
当不接片外存储器或不扩展I/O 口时,P0可作为一个通用输入/输出口。
P0口作输入口使用时,应先向口锁存器写“1”,P0口作输出口时,需接上拉电阻。
P1:P1口是一个内部提供上拉电阻的8位双向I/O 口,因此它作为输出口使用时,无需再外接上拉电阻,当作为输入口使用时,同样也需先向其锁存器写“1”。
P2:P2口也是一个内部提供上拉电阻的8位双向I/O 口,在访问片外存储器时,输出高8位地址。
P3:P3口除了一般的准双向通用I/O 口外,还有第二功能。
VCC :+5V 电源 VSS :接地ALE :地址锁存器控制信号。
在系统扩展时,ALE 用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。
此外,由于ALE 是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
/PSEN :外部程序存储器读选通信号。
在读外部ROM 时,/PSEN 有效(低电平),以实现外部ROM 单元的读操作。
/EA :访问程序存储控制信号。
当/EA 信号为低电平时,对ROM 的读操作限定在外部程序存储器;当/EA 信号为高电平时,对ROM 的读操作是从内部程序存储器开始,并可延至外部程序存储器。
RST :复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用完成单片机的复位初始化操作。
XTAL1和XTAL2:外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
P0 AT89C51 CPU程序存储器 ROM并行接口串行接口 数据存储器 RAM中断系统定时器/计数器时钟电路 P3P1 P2TxD INT0 RxDINT1T0 T1外中断内中断2.单片机外围电路设计(1)单片机复位电路:采用按键手动复位方式中的电平复位方式,复位电平是通过使RST 端经电阻与VCC电源接通而实现的。
(2)单片机时钟电路:AT89C51内部有时钟电路,需外接石英晶体和微调电容,本设计的晶振频率为11.0592MHz。
3.矩阵键盘的设计本设计中用到4*4的键盘。
键盘扫描方式,键盘的列线与P1口的低4位相接,行线与P1口的高3位相接。
首先使P1.0为低电平“0”,其余三根列线为高电平“1”,读行线状态。
如果行线都为高电平状态,则P1.0这列上没键按下,如果读出的行线不全为高电平状态,则为低电平的行线与P1.0相交的键处于闭合状态。
如果P1.0上没有键闭合,接着使P1.1为低电平,其余列线为高电平,用同样的方法检查P1.1这列上有没有按键闭合。
一直到使P1.3为低电平扫描完成。
这一过程称为一次扫描过程。
由于按键是利用机械触电的合、断原理,存在弹性的影响,机械触点在闭合及断开瞬间均有抖动过程,从而使电压信号波动,为了保证CPU对键的稳定闭合仅作一次键输入处理,必须采用消除抖动影响。
本设计采用软件办法,在检测到有键按下时,执行一个延时程序后,确认该键是否保持闭合状态电平。
若仍保持闭合状态电平,则确认该键处于闭合状态,从而消除抖动影响。
若有按键被按下时,就将该按键译码出来,本设计采用双重循环做计数编号,当某一按键按下时,其按键编号便是计数编号,有关按键编号,扫描信号及读取按键数据返回码整理如表1。
编号按键数据输入码P1.7 P1.6 P1.5 P1.4 扫描输出信号P1.3 P1.2 P1.1 P1.0所侦测的按键0 1 1 1 0 1 1 1 0 K0 键1 1 1 0 1 1 1 1 0 K1 键2 1 0 1 1 1 1 1 0 K2 键3 0 1 1 1 1 1 1 0 K3 键4 1 1 1 0 1 1 0 1 K4 键5 1 1 0 1 1 1 0 1 K5 键6 1 0 1 1 1 1 0 1 K6 键7 0 1 1 1 1 1 0 1 K7 键8 1 1 1 0 1 0 1 1 K8 键9 1 1 0 1 1 0 1 1 K9 键10 1 0 1 1 1 0 1 1 K10 键11 0 1 1 1 1 0 1 1 K11 键表14.电路总体设计下面是本次实验的程序;******************************************************* ;以下8个字节存放8位数码管的段码LED_BIT_1 EQU 30HLED_BIT_2 EQU 31HLED_BIT_3 EQU 32HLED_BIT_4 EQU 33HLED_BIT_5 EQU 34HLED_BIT_6 EQU 35HLED_BIT_7 EQU 36HLED_BIT_8 EQU 37H;以下6个字节存放初始密码WORD_1 EQU 38HWORD_2 EQU 39HWORD_3 EQU 3AHWORD_4 EQU 3BHWORD_5 EQU 3CHWORD_6 EQU 3DH;以下6个字节存放用户输入的6位密码KEY_1 EQU 3EHKEY_2 EQU 3FHKEY_3 EQU 40HKEY_4 EQU 41HKEY_5 EQU 42HKEY_6 EQU 43H;****************************************************** CNT_A EQU 44HCNT_B EQU 45HKEY_CNT EQU 46H ;已输出的密码位数LINE EQU 47H ;按键行号ROW EQU 48H ;按键列号VAL EQU 49H ;键值;****************************************************** ;以下为初始化程序,包括数据存储空间初始化,设置初始密码ORG 00HSJMP STARTORG 0BHLJMP INT_T0START: MOV CNT_A,#00H ;程序初始化MOV CNT_B,#00HMOV KEY_CNT,#00HMOV LINE,#00HMOV ROW,#00HMOV VAL,#00HSETB P1.0MOV LED_BIT_1,#00H ;段码存储区清0MOV LED_BIT_2,#00HMOV LED_BIT_3,#00HMOV LED_BIT_4,#00HMOV LED_BIT_5,#00HMOV LED_BIT_6,#00HMOV LED_BIT_7,#79HMOV LED_BIT_8,#73HMOV KEY_1,#00H ;输入密码存储区清0MOV KEY_2,#00HMOV KEY_3,#00HMOV KEY_4,#00HMOV KEY_5,#00HMOV KEY_6,#00HMOV WORD_1,#6 ;设置初始密码为"123456"MOV WORD_2,#5MOV WORD_3,#4MOV WORD_4,#3MOV WORD_5,#2MOV WORD_6,#1MOV TMOD,#01HMOV TH0,#(65536-700)/256MOV TL0,#(65536-700)/256MOV IE,#82HA0: LCALL DISP;*********************************************************** ;以下为键盘扫描程序,计算键值并存入VALLSCAN: MOV P3,#0F0H ;扫描行码L1: JNB P3.0,L2LCALL DLY_SJNB P3.0,L2MOV LINE,#00HLJMP RSCANL2: JNB P3.1,L3LCALL DLY_SJNB P3.1,L3MOV LINE,#01HLJMP RSCANL3: JNB P3.2,L4LCALL DLY_SJNB P3.2,L4MOV LINE,#02HLJMP RSCANL4: JNB P3.3,A0LCALL DLY_SJNB P3.3,A0MOV LINE,#03HRSCAN: MOV P3,#0FH ;扫描列码C1: JNB P3.4,C2MOV ROW,#00HLJMP CALCUC2: JNB P3.5,C3MOV ROW,#01HLJMP CALCUC3: JNB P3.6,C1MOV ROW,#02HCALCU: MOV A,LINE ;计算键值MOV B,#03HMUL ABADD A,ROWMOV VAL,A;************************************************** ;以下为按键处理程序,对不同的按键作出响应CJNE A,#0AH,J1 ;是否为"CLR"键MOV R1,KEY_CNTCJNE R1,#00H,J2LCALL ALARM_1LJMP STARTJ2: LCALL SHIFTRDEC KEY_CNTW00:LCALL DISP ;等待按键抬起MOV A,P3CJNE A,#0FH,W01LJMP A0W01:MOV A,P3CJNE A,#0F0H,W02LJMP A0W02:SJMP W00J1: MOV A,VALCJNE A,#0BH,J3 ;判断是否为"ENTER"键MOV R1,KEY_CNTCJNE R1,#06H,J4MOV A,WORD_1 ;比较密码CJNE A,3EH,J5MOV A,WORD_2CJNE A,3FH,J5MOV A,WORD_3CJNE A,40H,J5MOV A,WORD_4CJNE A,41H,J5MOV A,WORD_5CJNE A,42H,J5MOV A,WORD_6CJNE A,43H,J5CLR P1.0LCALL DLY_LLJMP FINIJ5: LCALL ALARM_2LJMP STARTJ4: LCALL ALARM_1LJMP STARTJ3: INC KEY_CNT ;按下数字键MOV A,KEY_CNTCJNE A,#07H,K1LCALL ALARM_1W10:LCALL DISP ;等待按键抬起MOV A,P3CJNE A,#0FH,W11LJMP STARTW11:MOV A,P3CJNE A,#0F0H,W12LJMP STARTW12:SJMP W10LJMP STARTLJMP STARTK1: LCALL SHIFTLW20:LCALL DISP ;等待按键抬起MOV A,P3CJNE A,#0FH,W21LJMP A0W21:MOV A,P3CJNE A,#0F0H,W22LJMP A0W22:SJMP W20LJMP A0ALARM_1:SETB TR0 ;操作错误报警JB TR0,$RETALARM_2:SETB TR0 ;密码错误报警JB TR0,$LCALL DLY_LRET;************************************************** ;定时器中断服务程序,用于声音报警INT_T0:CPL P1.7MOV TH0,#(65536-700)/256MOV TL0,#(65536-700)/256INC CNT_AMOV R1,CNT_ACJNE R1,#30,RETUNEMOV CNT_A,#00HINC CNT_BMOV R1,CNT_BCJNE R1,#20,RETUNEMOV CNT_A,#00HMOV CNT_B,#00HCLR TR0RETUNE: RETI;************************************************** ;段码,输入密码左移子程序SHIFTL: MOV LED_BIT_6,LED_BIT_5MOV LED_BIT_5,LED_BIT_4MOV LED_BIT_4,LED_BIT_3MOV LED_BIT_3,LED_BIT_2MOV LED_BIT_2,LED_BIT_1MOV LED_BIT_1,#40HMOV KEY_6,KEY_5MOV KEY_5,KEY_4MOV KEY_4,KEY_3MOV KEY_3,KEY_2MOV KEY_2,KEY_1MOV KEY_1,VALRET;************************************************** ;段码,输入密码右移子程序SHIFTR: MOV LED_BIT_1,LED_BIT_2MOV LED_BIT_2,LED_BIT_3MOV LED_BIT_3,LED_BIT_4MOV LED_BIT_4,LED_BIT_5MOV LED_BIT_5,LED_BIT_6MOV LED_BIT_6,#00HMOV KEY_1,KEY_2MOV KEY_2,KEY_3MOV KEY_3,KEY_4MOV KEY_4,KEY_5MOV KEY_5,KEY_6MOV KEY_6,#00HRET;************************************************** ;以下为数码显示子程序DISP: CLR P2.7MOV P0,LED_BIT_8LCALL DLY_SSETB P2.7CLR P2.6MOV P0,LED_BIT_7LCALL DLY_SSETB P2.6CLR P2.5MOV P0,LED_BIT_6LCALL DLY_SSETB P2.5CLR P2.4MOV P0,LED_BIT_5LCALL DLY_SSETB P2.4CLR P2.3MOV P0,LED_BIT_4LCALL DLY_SSETB P2.3CLR P2.2MOV P0,LED_BIT_3LCALL DLY_SSETB P2.2CLR P2.1MOV P0,LED_BIT_2LCALL DLY_SSETB P2.1CLR P2.0MOV P0,LED_BIT_1LCALL DLY_SSETB P2.0RET;********************************************** DLY_S: MOV R6,#10D1: MOV R7,#250DJNZ R7,$DJNZ R6,D1RETDLY_L: MOV R5,#100D2: MOV R6,#100D3: MOV R7,#248DJNZ R7,$DJNZ R6,D3DJNZ R5,D2RETFINI: NOPEND程序流程图主程序开始正确密码正确与否I/O口初始化,LCD初始化执行主控循环LCD显示错误消息;蜂鸣器产生响警示。