基于MSP430的电子密码锁设计
一款基于MSp430单片机指纹密码锁系统的设计

西南交通大学 , 2 0 l 6 .
【 5 】 谢 亮 . 基 于 信 息 熵 和 改 进 粒 子群 算 法 的 医 学 图像 分 割 方
法研究 [ J 】 .半导体光电 , 2 0 1 6 , 3 7 ( 0 6 ) : 8 9 4 -8 9 8 .
款 基 于 MS p 4 3 O单片 机 指 纹 密码 锁 系统 的设 计
[ 3 ] Ke n n e d y J ,E b e r h a r t r C. P a r t i c l e S wa r m O p t i mi z a t i o n [ C ] .
Pr o c e e di ngs o f I EEE I n t e r na t i o na l Co nl e r e nc e o n N e ur 体 改 为 1 5 . 1 5点 阵 ,
内置 字 库 增 加 为 G B 2 3 1 2国标 一 、 二 级简 体 汉 字 字 库 及 前 1 6
区 字符 ( 1 6 . 1 6点 阵 ) 。
图 1系 统 结 构
1 . 2 硬 件 介 绍
1 . 2. 1 M SP 43 0 F5 41 9
 ̄ I S P 4 3 0 F 5 4 1 9进 行 通 信 。
【 ( ) 屏接 口
( 1 ) 光 标 功 能 : 写 入 光 标 功 能 指 令 后 , 光 标 会 在 下 一
个 输 入 的字 符 或 汉 字 的下 一 地 址 位 显 示 ( 不 在 最 后 显 示 的 字
符 或汉 字 下 方 )。可 根 据 需要 对 光 标 闪烁 效 果 和光 标 长 度 ( 8
M S P 4 3 0 f 5 4 1 9 系 列单 片机 ( M C U )是一个 1 6 位 、 采 用 了精 简 指 令 集 ( R I S C )结 构 的 M C U ;简 便 的 2 7 条 内核 指 令
基于MSP430的智能化指纹车锁系统的设计与实现

基于MSP430的智能化指纹车锁系统的设计与实现
冯峰;许可;张志强;刘志刚
【期刊名称】《电脑知识与技术》
【年(卷),期】2017(013)009
【摘要】以一种MSP430为核心处理器的低成本、智能化的指纹自行车锁系统.该系统解决传统自行车锁存在着的操作不便,安全性欠佳等问题所设计的.借用智能手机上的指纹识别模块来担负指纹采集、对比、搜索等功能;选用HC05蓝牙通讯模块为指纹锁与手机建立可靠连接.与此同时,本文提出了密码指纹并行解锁方案与蜂鸣器自动报警方案.最后,在电路设计与软件方面进行了的低功耗设计.实际测试结果表明,本智能化指纹车锁系统使用便捷,可行性高.
【总页数】2页(P155-156)
【作者】冯峰;许可;张志强;刘志刚
【作者单位】沈阳建筑大学信息与控制工程学院,辽宁沈阳 110168;沈阳建筑大学信息与控制工程学院,辽宁沈阳 110168;沈阳建筑大学信息与控制工程学院,辽宁沈阳 110168;沈阳建筑大学信息与控制工程学院,辽宁沈阳 110168
【正文语种】中文
【中图分类】TP311
【相关文献】
1.基于AS602的智能指纹锁系统设计与实现 [J], 杨争辉;李多;叶桦
2.基于云服务的智能指纹锁系统设计与实现 [J], 黄晓林; 林梓锋
3.基于STC89C52单片机的指纹密码锁系统设计与实现 [J], 杨朋飞; 聂亮; 陈靖; 蔡长龙
4.基于stm32的嵌入式智能自动锁车系统的设计与实现 [J], 张沛轩;许钟煌;叶兆恒;苏嘉俊;赵越;叶港峰;杨楚明
5.基于STM32智能指纹锁控制系统设计与实现 [J], 王彰云
因版权原因,仅展示原文概要,查看原文内容请购买。
基于MCU msp430f5438A芯片的多功能智能门禁锁设计

基于MCU msp430f5438A芯片的多功能智能门禁锁
设计
1、简介
安全被越来越多的受到重视,门禁锁越来越普及,而且需求越来越复杂,有几个人必须同时刷卡才能进入;有的只有在规定时间段才能进入;有的第一个门锁关上之后,才能刷第二个门锁。
普通门禁锁不能实现需求的多样性,所以设计一种智能门锁通过网络连接服务器,通过上位机软件在服务器的配置,来实现多种需求。
本作品系统方案如下
(1)门禁锁和服务器采用网络通讯,UDP协议,增加实时性。
(2)门禁锁通过控制继电器来控制门锁开关。
(3)服务器和软件采用LAMP(linux+apache+mysql+php)架构,提高安全和稳定性。
毕业设计(论文)-基于msp430单片机的无线报警锁设计[管理资料]
![毕业设计(论文)-基于msp430单片机的无线报警锁设计[管理资料]](https://img.taocdn.com/s3/m/1b07ce7a6529647d272852f9.png)
基于MSP430单片机的无线报警锁设计摘要本系统是一个基于单片机的短距离无线报警系统,主要由阅读器(reader)和电子标签(tag)两大部分组成。
其中,阅读器部分为此系统的主体,考虑到系统成本问题,此次设计中采用电子标签来模拟阅读器。
系统设计采用单片机加射频芯片的方式,其中,单片机选用美国TI公司的MSP430F2232,,此系统为一简单的通信系统。
系统利用阅读器与电子标签之间来回传输的数据,再结合特定的报警装置外围电路,从而达到无线报警的目的。
关键字:RFID MSP430 nRF905 无线通信单片机Wireless alarming design based on MSP430 MCUABCTRCACTThe system is a short distance wireless alarming system based on single chip machine MSP430 series. It consists of two parts: the reader part and the tag part. Certainly, the reader is the main part. Considering the cost factor, the system adopts a simple tag to stimulate the reader part. The system operates in the form of MCU and Radio chip. The core MCU is MSP430F2232 from TI company in America, and the Radio chip is nRF905 from Nordic corporation in Norway. Generally speaking, the system is just a simple communication system. The system utilizes the data transmitted between the reader and the tag, and combines the peripheral circuits of alarming equipment to achieve the goal of wireless alarming.Key Word:RFID MSP430 NRF905 Wireless CommunicationMCU目录前言 (1)第一章绪论 (2)课题背景 (2)无线射频识别技术概述 (2)课题进展 (4)后话 (4)第二章芯片简介 (5)单片机芯片MSP430F2232 (5)射频芯片N RF905 (6) (9)GFSK数据调制 (10)第三章系统硬件设计 (12)系统硬件组成 (12)系统电路设计 (12)第四章系统软件设计 (20)程序语言介绍 (20) (20) (20) (20)C语言程序设计流程 (20)MSP430F2232编程基础简介 (21) (21)MSP430F2232寄存器介绍 (21)程序流程图 (24)系统源代码 (27) (27)第五章系统仿真调试 (28) (28) (29) (29)结论 (30)参考文献 (31)致谢 (32)前言近二三十年来,自动识别技术在全球范围内得到了迅猛的发展,初步形成了一个涵盖条码识别技术,射频设别技术,生物特征识别技术,图像识别技术以及磁识别技术等的计算机,光,电,通信和网络技术为一体的高技术学科。
毕业设计(论文)_基于plc电子密码锁设计[管理资料]
![毕业设计(论文)_基于plc电子密码锁设计[管理资料]](https://img.taocdn.com/s3/m/c8cca6f6eff9aef8951e06ee.png)
一、题目:基于PLC电子密码锁设计二、内容与要求:,专业知识及基本技能来分析和解决实际问题的能力。
,在指导老师的帮助下完成毕业设计。
,完成电子密码锁的设计,本设计要求易于操作,安全系数高,使用方便等优点。
三、设计(论文)起止日期:任务下达日期:年月日完成日期:年月日指导教师签名:年月日四、教研室审查意见:教研室负责人签名:年月日基于PLC电子密码锁设计摘要本设计是采用西门子PLC来设计密码程序的,程序中应用到了近20个计数器。
设计的密码锁外观图类似于银行取款机台上的键盘。
给人感觉就和那种输入密码的过程一样。
其实不然,本设计中采用了计数器控制的特点,每个计数器的次数设定为几次那么所对应的按键就要按几次。
本设计分为开锁环节和解锁环节,开锁环节设定六个按键有效,解锁环节设定了七个按键有效,这样一来设定的开锁密码位数就大于等于六位了,解锁密码位数就大于等于七位。
要看计数器设定的次数而定。
如果密码锁报警的话必须先输入解锁密码,后输入开锁密码方能开锁。
关键词PLC 电子密码锁梯形图Based on PLC electronic combination lock designAbstract The design is used to design the password Siemens PLC program, the program applied to nearly 20 counter. The combination lock appearance design similar to a bank on the ATM figure of the keyboard. Give a person feel and that kind of input password as the process. Actually otherwise, the design with the characteristics of the counter control, the number of times each counter set for several times so of the corresponding key to be a few times. This design is divided into the lock and unlock link link, the lock link set six key effective, unlock the link set seven key effective, so the unlock password digits set was bigger than the equal to six, unlock password was bigger than the equal to seven digits. To see the number of counter set and decide. If the combination lock alarm words must first input unlock password input unlock password can unlock after.Keywords:PLC electronic Locks ladder Diagram目录引言 (1)第1章电子密码锁的背景及应用 (2) (2) (2)电子密码锁的性能特点 (2)电子密码锁的电路组成部分 (3)电子密码锁的应用 (3)第2章密码锁的硬件设计 (4)S7—200PLC的系统组成 (4)S7—200 的系统基本构成 (4)主机单元 (4)控制要求 (5)I/O的确定 (5)存储容量的选择 (6)I/O模块的选择 (6)I/O口分配表 (6)PLC外部接线图 (8)第3章密码锁的软件设计 (9)梯形图 (9)第4章程序设计的局限性和优点 (19)结论 (20)致谢 (21)参考文献 (22)引言PLC具有控制能力强、可靠性高、使用灵活方便和易于编程、扩张、通信等一系列优点,是当今及今后工业控制的主要手段和控制核心,因此PLC技术、数控计数、计算机辅助设计、计算机辅助生产以及机器人技术、已并列为现代工业生产自动化的四大支柱。
[MSP430学习笔记] 430加密总结
![[MSP430学习笔记] 430加密总结](https://img.taocdn.com/s3/m/00ff15c45fbfc77da269b110.png)
MSP430单片机常见加密总结1、为什么要加密,如何加密?当您的产品推向市场的时候,您的竞争对手就开始盯上它了,如果您的产品硬件很容易被模仿,而且您使用的MSP430单片机没有被加密的话,那么您辛辛苦苦的劳动成功就很容易成为您竞争对手的产品了,使用JTAG调试工具FET虽然可以将程序下载到芯片内部,但只有使用专业编程器能够防止程序被窃取。
2、JT AG、BSL、BOOTLOADER、熔丝的区别和关系是什么?JTAG接口能够访问MSP430单片机内部所有资源,通过JTAG可以对芯片进行程序下载、代码调试、内存修改等等,通过JTAG还能烧断加密熔丝,熔丝一旦被烧断,JTAG接口绝大部分功能失效,就再也不能通过它进行编程了。
BSL接口是利用芯片内部驻留的bootloader程序实现的自编程,通过特定的时序使得CPU进入bootloader代码断,然后利用每个MSP430芯片内部都有的Timer A构成一个软件串口来与上位机通讯,这样可以将代码下载到芯片内部。
实现BSL除了JTAG接口的一些引脚外,还需要用到两个TA0功能引脚,因此在设计产品时如果需要加密,则应该考虑将这两个引脚也连出来。
注意:A、要烧断熔丝(加密)必须使用JTAG接口;B、烧断熔丝后只能通过BSL 或者用户代码来实现编程更新。
3、BSL的验证密码是怎么回事?BSL也能读出芯片内部的代码,这样可以实现编程后的校验等功能。
通过BSL擦除所有Flash信息时不需要验证密码,但是要进一步操作,就得输入32字节密码进行验证。
BSL 的协议规定这32字节密码为芯片FLASH区域的最高32字节,也就是程序的16个中断向量,如果您拥有这段程序的最后32字节,就能通过BSL将芯片内部所有代码读取出来。
4、为什么要使用高级加密?32字节的密码看似几乎完全没可能使用穷举法来实现破解,但是各位别忘了,msp430的16个中断向量未必每一个都用到了,没用到的中断向量为0xffff,如果您的程序只用到了复位向量,那么破解者只需尝试最多32768次(中断向量为偶数,所以除以2)就能将其破解,另外,如果芯片本身Flash容量较小,比如4K字节,那么破解者只需尝试最多2K次就能将其破解。
基于MSP430的非接触式指纹IC卡门禁系统的设计

MFRC531支持 ISO/IEC14443A/B的所 有 层 和 MIFARE经 典协议,以及与该标准兼容的标准。支持高速 MIFARE非接触式通信波特率。内部的发送器部分不需 要增加有源电路就能够直接驱动近操作距离的天线 (可达100mm)。接收器部分提供一个坚固而有效的 解调和解码电路,用于ISO14443A兼容的应答器信号。 数 字 部 分 处 理 ISO14443A帧 和 错 误 检 测 ( 奇 偶 &CR C)。此外,它还支持快速CRYPTO1加密算法,用于 验证M IFARE系列产品。与主机通信模式有8位并行和 SPI模式,用户可根据不同的需求选择不同的模式,这 样给读卡器/终端的设计提供了极大的灵活性。在本系 统中,与主机通信模式选用SPI模式(如图2所示), 同时可以节约CPU的IO口资源。
图3 Rc531的天线设计
2、指纹识别模块 本设计中采用了西安紫牛信息技术有限公司推出 的业界第一个“可编程指纹模块”B IG1080P-A指纹识 别模块。它是由32位高性能可编程处理器、活体指纹 采集芯片和指纹识别核心固件等构成的一个独立的嵌 入式指纹识别系统。该指纹模块具有250枚指纹存储能 力,具备1S以内的指纹比对性能,支持1∶1和1∶N两 种比对模式,能够任意兼容各类指纹传感芯片。它具 有两种工作模式:一是独立工作模式,二是从属工作 模式(如图4所示)它的TXD和RXD分别和MSP430的 UART0连接进行串口通讯。BIG1080P-A的UART是一 个标准的通用异步收/发的接口,接口支持的速率 115200bps。
美RFID公司GAO推出带警报功能的RFID标签
GAORFID推出的2.4GHz有源RFID标签GAO 127005,这款标签在有人试图损毁标签时可发出 警报。GAO127005标签底部带有一个小按钮,若 有人试图剥离标签或有任何异常发生时,按钮 会自动弹起,随之警报响起和警示灯开始闪烁。
基于MSP432单片机的电子密码锁设计与实现

基于MSP432单片机的电子密码锁设计与实现电子密码锁的使用越来越广泛,它方便安全地替代了传统的物理锁。
本文将介绍基于MSP432单片机的电子密码锁的设计与实现。
首先,我们将简要介绍MSP432单片机的特性,然后详细说明电子密码锁的设计流程,最后给出实际实现的示范。
MSP432单片机是德州仪器(TI)公司推出的一款低功耗、高性能的ARM Cortex-M4F系列单片机。
它具备丰富的外设接口和高度集成的功能,非常适合用于电子密码锁的设计与实现。
设计一个电子密码锁的关键步骤如下:1. 系统需求分析:首先,我们需要明确电子密码锁的功能要求。
比如,密码锁是否需要具备安全性强的密码保护、是否需要防暴力破解等。
2. 硬件设计:根据系统需求,选择合适的硬件组件,如键盘、LCD屏幕、电池等,并将它们与MSP432单片机进行连接。
3. 软件设计:编写相应的程序代码,实现电子密码锁的逻辑控制。
在设计中,我们将采用按键扫描、密码验证、锁定/解锁功能等技术手段。
4. 系统调试与优化:完成硬件连接和软件编写后,对电子密码锁进行系统调试,确保其功能正常。
此外,对系统进行优化,提升性能和稳定性。
下面将详细介绍电子密码锁的设计与实现。
1. 系统需求分析在系统需求分析阶段,我们应该明确电子密码锁的基本功能。
例如,我们可以设置一个4位数字密码,并使用LCD显示屏显示输入密码的状态。
此外,我们还可以增加一些扩展功能,如多用户密码管理。
2. 硬件设计硬件设计是电子密码锁实现的基础。
我们可以选择一个合适的键盘作为输入设备,并通过引脚连接到MSP432单片机。
同时,我们还需要选择一个LCD屏幕用于显示密码输入的状态。
最后,电池或者电源适配器可以为系统提供电力。
3. 软件设计软件设计是电子密码锁设计中最关键的一步。
首先,我们需要编写按键扫描的代码,以便获取用户输入的密码。
然后,通过密码验证算法比对用户输入密码和预设密码是否匹配。
最后,根据密码验证的结果,控制锁的状态进行锁定或解锁。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MSP430的电子密码锁设计一、预期性能指标1、(1)密码通过键盘输入,若密码正确,则将锁打开。
(2)报警、锁定键盘功能。
密码输入错误数码显示器会出现错误提示,若密码输入错误次数超过 3 次,LED红灯亮并且锁定键盘。
2、密码锁设计的关键问题是实现密码的输入、清除、更改、开锁等功能:(1)密码输入功能:按下一个数字键,一个“-”就显示在最右边的数码管上,再输入时显示数码管向右移动一个。
(2)密码清除功能:当按下清除键时,清除前面输入的所有值,并清除所有显示。
(3)开锁功能:当按下开锁键,系统将输入与密码进行检查核对,如果正确锁打开,否则不打开。
二、工作原理1、工作原理概述利用MSP430单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
此次课程设计是以以前学过的msp430F149 单片机为核心,加上一些外围模块来实现电子锁应该具有的基本功能。
单片机灵活的编程设计和丰富的IO 端口,及其控制的准确性,不但能实现基本的密码锁功能,还能添加调电存储、声光提示甚至添加遥控控制功能,为其功能的扩展提供便利。
由于条件的限制此次实验只实现其基本功能,锁的开启关闭与锁定以二极管的发光来模拟,密码的输入用4X4 键盘替代,功能键用键盘上对应的10 以后的数字代替,这实现了在条件有所限制的情况下以有限的资源模拟电子锁的功能。
输入密码用矩形键盘,包括数字键和功能键。
LED 数码管显示输入密码,用uln2003A 驱动数码管发光且控制哪一位显示数码,用430 的P4 脚控制各位显示器分时进行显示。
用发光二极管代替开锁的电路,发光表示开锁锁定。
输入密码错误次数超过3 次,系统蜂鸣器响,发出警报。
打开电源后,显示器显示“0000”,设原始密码为“1234”,只要输入此密码便了开门。
这样可预防停电后再来电时无密码可用。
按“C”键,清除显示器为“000000”。
欲重新设定密码,先输入密码在案“*”。
输入密码,再按“D”键。
若密码与设定密码相同,则开门。
否则显示器清为“0000”。
软件的设计主要包括键盘键值的读取,LED 显示程序,密码比较程序和报警程序2、设计方案与原理框图(1)主要的设计实施过程:第一步,选用 msp430单片机,以及选购其他电子元器件(电阻(100欧、150欧、2K欧等)、发光二极管、三极管、数码管(阴极)、ULN2003AG芯片、按键、电线、PADS9.3软件、MATLEB软件、焊接电路板一块)。
第二步,使用PADS9.3软件设计硬件电路原理图,并设计 PCB图完成人工布线。
第三步,焊接电路第四步,MATLEB软件编写单片机的 C 语言程序、仿真、软件调试。
第五步,联合软、硬件调试电路板,完成本次设计。
(2)原理框图:3、原理框图的说明用户根据数码管显示使用键盘输入密码,输入密码时用户可以按相应的功能键来进行不同的操作控制,按键A 可以删除上一次输入的一位密码,按键B 确认密码,按键C 可以再“锁开”的状态下修改原始密码。
用户输入完密码后,单片机将用户输入的密码与真的密码进行比较,如果正确就开锁,如果不正确提示用户再次输入密码并累加密码输入错误的次数,当密码输入错误的次数大于3 时就发出警报,如果从新输入正确的密码则将累加器清零。
在输入密码正确锁开的状态下,按功能键C,就可以输入新的密码,新的密码需要进行二次确认,如果前后两次输入的密码一致单片机则保存新输入的4 位数字作为密码。
三、硬件设计1、器件选型选用 msp430单片机,以及选购其他电子元器件(电阻(100欧、150欧、2K 欧等)、发光二极管、三极管、数码管(阴极)、ULN2003AG芯片、按键、电线、PADS9.3软件、MA TLEB软件、焊接电路板一块)。
2、参数匹配键盘通过阻值为10 千欧的电阻与单片机的引脚可直接相连。
数码管的驱动电流很大,不能直接与单片机相连,选用可以同时驱动8 路500mA电流的uln2003a 芯片驱动数码管显示。
3、原理图及PCB图(包括PADS软件使用)(1)键盘电路设计Msp430单片机接口相对本次设计较多,故,采用独立按键的接法,一个按键占用一条I/O线的数目。
下图(为电路按键按键一组(4个)的解法):键盘处理程序首先执行等待按键并确认有无按键按下的程序段。
当确认有按键按下后,下一步就要识别哪一个按键按下。
对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的中断响应法。
(2)LED显示电路显示电路是为了给使用者以提示而设置。
MSP430单片机驱动数码管发光显示数码和控制位选信号,以完成显示功,能显示电路的电路。
原理图如图:数码管的a,b,c,d,e,f,g,dp八个管脚,接在单片机的P4口八个口上,ULN2003的4个IN脚接在P3.7-P3.4口,用来控制那个数码管亮。
(3)msp430单片机的接口电路通过把MATLEB软件编写的单片机 C 语言程序,烧到单机芯片中,来运行功能、响应按键、控制输出。
(4)开锁和报警电路用发光二极管代替电磁锁,来反应单片机运行的功能。
电路图如下图:绿灯亮表示电子锁已经打开;红灯亮表示密码输入错误;黄灯亮表示设置密码阶段,允许修改密码;白灯亮表示单片机已锁且正常工作。
(5)ULN2003AG电路ULN2003AG是提高控制信号的驱动能力(即驱动芯片),用来作输出瑞驱动,单片机通过控制ULN2003AG的输入来控制是哪一个数码管亮。
(6)PCB图软件设计1、软件框图(1)键盘扫描(2)LED显示(3)密码比较与报警2、流程图4、设计体会这是一次理论结合实践的课程设计,而且对于实践的要求特别强,需要接触实际的器件和电路,查阅相关资料,并动手设计电路图和PCB图,这次硬件电路的设计,让我学会了用PADS 软件自己去设计一块满足要求的电路板,在老师的示范下,一步一步的按照要求如何画原理图。
刚刚开始时,使用软件还不熟练,有的地方画错了而不自知,或者不知道怎么样画,随着对软件的熟悉,和别的同学请教,慢慢掌握了技巧,比如器件它实际的形状和在电路板上的实际焊接,比如元器件如何画封装,画完图后还检查出很多不知道如何修改的电气错误,请教别人之后,就换种方法画,把错误一点点的改正,最终达到良好的设计效果,修改过程中是比较繁琐的,要耐着性子,细心认真的修改才行,当最终设计完成后心里是非常自豪和有成就感的。
不仅学习了新知识,加强了动手能力,还养成了越是繁琐的工作越要细致的好习惯。
说明键盘采用行列式矩阵键盘,键盘处理程序首先执行等待按键并确认有无按键按下的程序段,采用中断响应法响应即在有按键按下时中断处理程序才会执行,节省电量。
LED显示采用动态扫描显示,一次只显示一个数码管,不同时刻在不同位的数码管上显示相应的数字,但是更新的频率为2ms,所以显示的效果与静态一样。
按不同的功能键会调出不同的处理程序,实现相应的功能。
四、调试试验1、试验验证方法设计完硬件后,完成软件的设计,把程序烧录进单片机,就可以直接测试。
首先,正确的输入4 位密码,锁开在锁开的状态下按下修改密码键,两次真确输入新的密码,按确定键输入新密码,所重新打开连续输入错误的密码3 次,键盘锁定2、遇到问题及解决方法新输入的密码无法同时显示,由于数码管只由一个口8 线控制显示,所以显示时一个时间只能显示同一数字。
解决方法:使用动态显示,修改程序。
在没有开锁的情况下按修改密码键的时候仍然可以修改。
解决办法:无论什么时候按键,首先提示输入以前的密码,如果正确才让修改。
有时候会忘记自己的密码。
解决办法:在修改密码的时候,连续两次输入新的密码,两次输入的密码一致时,才保存新的密码。
在未完全输入密码时,按其他的功能键,有时候系统也会去相应,造成系统发生错误。
解决办法:在输入密码时(解锁或者修改密码),屏蔽其他中断,直到输入完毕,按确定键为止。
五、总结分析1、性能分析密码锁的基本功能:解锁,密码修改,电路报警,基本实现。
密码设计的是四位十进制密码,碰巧打开的机会很少。
由于缺少掉电保护,所以在断电后,再次开启的时候,前面的操作会失效。
而且有可能在修改密码后,出现密码复原现象。
2、试验结果分析实验过程中,规范的输入密码,开锁,修改密码都会成功。
当不按规范输入时,程序有时会出错,数码管出现乱码,需要断电后再开启才能恢复正常。
修改完密码后断电,再开启,密码依旧是没有修改的密码。
连续输入错误密码3 次系统会报警10 秒,且键盘锁定。
结果分析:程序编的不是很完善,缺少错误处理措施。
硬件没有断电保护电路,无法记忆前序操作六、自我评价1、设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾这两个星期的课程设计,我发现自己收获很大,学到很多的东西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,更重要的是养成了细致耐心的处理复杂枯燥工作的习惯,刚刚开始时确实遇到很多困难,但随着一项一项的解决,自己也受到了很大的磨练。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,才能做出有用、实用的东西来,提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,由于第一次做,有很多不懂的,错误的。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,通过这次课程设计之后,把以前所学过的书重新翻了出来,温习以前的相关内容。
最终顺利的完成了任务。
2、进一步改进措施通过这次课程设计,我学到了很多。
首先在设计之前要想好自己要设计什么,设计的东西要达到什么标准,有什么要求,在这次设计过程中我们小组就犯了这样的错误,在选题上没有彻底了解选题的内容,在做到一定程度后发现自己做不下去了,就只能改变选题了。
设计必须要有一个清晰地思路,要有一个大体的框架。
最初设计的时候,老是觉得设计过于复杂,到现在想一下,整个系统分为键盘,显示,系统,开锁模块是非常容易清晰的。
程序的设计必须依据硬件电路,还有就是要考虑各种意外情况,增加错误处理程序这样的系统才能稳定,接下来的改进措施应该注重电子锁的安全性、稳定性进行设计,还可以加上一些人性化设计。
七、附录1、软件和硬件工作时的图片报警中的图片2、程序主程序:/*********************************************** 程序功能:电子锁------------------------------------------------跳线设置:将跳线座J3 上的短路帽拔下------------------------------------------------测试说明:按动K1~K16 按键,观察数码管显示,聆听按键时蜂鸣器是否发声************************************************/ #include <msp430x14x.h>#include "Boa rdConfig.h"#include "Keypad.h"#include "gdata.h"uint num;ucha r a[4];/*******************报警函数*******************/ void alert(void ){long int i;P6OUT = 0; //蜂鸣器报警for(i = 99999; i > 0; i--);P6OUT |= BIT7;num++;}/**********************************************//********************主函数********************/void ma in(void){uint j,x,fla g,fla g1;long int i;num=0;fla g=0; //标记新一轮输入fla g1=0; //改码a[0]=1; a[1]=2; a[2]=3; a[3]=4;//初始密码值BoardConfig(0x80); //打开数码管、流水灯,关闭电平转换WDTCTL = WDT_ADL Y_1_9; //设置内部看门狗工作在定时器模式,1.9ms 中断一次IE1 |= WDTIE; //使能看门狗中断P2DIR = 0xff; //LED 显示P4DIR = 0xff;P5DIR = 0xff; //设置P2,P4,P5 的IO 方向为输出P6DIR |= BIT7;P2OUT = 0xff;P4OUT = 0x00; //设置P4,P5 的输出初值P5OUT = 0xff;P6OUT |= BIT7; //蜂鸣器对应IO 设置为输出_EINT(); //打开全局中断Init_Keypad();for(j=0;j<4;j++) //初始显示为“AAAA”Dispbuf[j] = 10;j=0;while(1){if(num>2){P1DIR = 0x00;P1OUT |= 0x00;P6OUT = 0;P2OUT ^= 0xff;for(i=999999;i>0;i--);P6OUT |= BIT7;P2OUT = 0xff;P1DIR = 0xf0; //P1.0~P1.3 设置为输入状态, P1.4~P1.7 设置为输出状态P1OUT |= 0xf0; // P1.4~P1.7 输出高电平num=0;}Key_Event();if(key_Fla g == 1) //按键已释放{key_Fla g = 0;if((key_val==12)||(key_val==14)||(key_val==15)) //容错{fla g=1;alert();for(j=0;j<4;j++)Dispbuf[j] = 10;j=0;}if(key_val==11) //取消密码{fla g=1;for(j=0;j<4;j++)Dispbuf[j] = 10;j=0;}/*GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGG*/if(fla g1==2) //改码{P2OUT ^= 0xff;for(i = 2000; i > 0; i--);P2OUT = 0xff; //提示灯a[j]=key_val;if(j==4){fla g=1; //fla g1=0;for(j=0;j<4;j++)Dispbuf[j] = 10;j=0;}}if(key_val==13) //改码的另一个条件{P2OUT ^= 0xff;for(i = 2000; i > 0; i--);P2OUT = 0xff; //提示灯fla g=1;fla g1+=1;for(j=0;j<4;j++)Dispbuf[j] = 10;j=0;} if(fla g1!=2)fla g1=0; //若两条件不同时满足,则取消/*GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGGGGGG*/if(j==4) //验证密码{fla g=1;if(key_val==10){if(a[0]==Dispbuf[0]){if(a[1]==Dispbuf[1]){if(a[2]==Dispbuf[2]){if(a[3]==Dispbuf[3]){P2OUT ^= 0xff;for(i = 99999; i > 0; i--);P2OUT = 0xff;fla g1=1; //改码的一个条件num=0;} else alert();} else alert();} else alert();} else alert();}else alert();for(j=0;j<4;j++)Dispbuf[j] = 10;j=0;}if(fla g==0){Dispbuf[3-j] = key_val; //Dispbuf[]为一数组,用于存放键值switch(3-j){case 2:x=Dispbuf[2];Dispbuf[2]=Dispbuf[3];Dispbuf[3]=x;break;case1:x=Dispbuf[1];Dispbuf[1]=Dispbuf[2];Dispbuf[2]=Dispbuf[3];Dispbuf[3]=x;break; case0:x=Dispbuf[0];Dispbuf[0]=Dispbuf[1];Dispbuf[1]=Dispbuf[2];Dispbuf[2]=Dispbuf [3];Dispbuf[3]=x;break;} j++;} elsefla g=0;P6OUT = 0; //蜂鸣器响一声for(i = 2000; i > 0; i--);P6OUT |= BIT7;}}}/*******************************************函数名称:watchdog_timer功能:看门狗中断服务函数,在这里输出数码管的段选和位选信号参数:无返回值:无********************************************/#pragma vector=WDT_VECTOR__interrupt void watchdog_timer(void){P5OUT = 0xff;P4OUT = scandata[Dispbuf[cnt]]; //输出段选信号P5OUT &= ~(1 << (cnt+2)); //输出位选信号cnt++; //位计数变量在0~4 之间循环if(cnt == 4) cnt = 0;}。