基于msp430的数字密码锁

合集下载

一款基于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 条 内核 指 令

基于MCU msp430f5438A芯片的多功能智能门禁锁设计

基于MCU msp430f5438A芯片的多功能智能门禁锁设计

基于MCU msp430f5438A芯片的多功能智能门禁锁
设计
1、简介
 安全被越来越多的受到重视,门禁锁越来越普及,而且需求越来越复杂,有几个人必须同时刷卡才能进入;有的只有在规定时间段才能进入;有的第一个门锁关上之后,才能刷第二个门锁。

 普通门禁锁不能实现需求的多样性,所以设计一种智能门锁通过网络连接服务器,通过上位机软件在服务器的配置,来实现多种需求。

本作品系统方案如下
 (1)门禁锁和服务器采用网络通讯,UDP协议,增加实时性。

 (2)门禁锁通过控制继电器来控制门锁开关。

 (3)服务器和软件采用LAMP(linux+apache+mysql+php)架构,提高安全和稳定性。

毕业设计(论文)-基于msp430单片机的无线报警锁设计[管理资料]

毕业设计(论文)-基于msp430单片机的无线报警锁设计[管理资料]

基于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)前言近二三十年来,自动识别技术在全球范围内得到了迅猛的发展,初步形成了一个涵盖条码识别技术,射频设别技术,生物特征识别技术,图像识别技术以及磁识别技术等的计算机,光,电,通信和网络技术为一体的高技术学科。

[MSP430学习笔记] 430加密总结

[MSP430学习笔记] 430加密总结

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次就能将其破解。

基于CycloneII和MSP430的网络数据加密实现

基于CycloneII和MSP430的网络数据加密实现

基于CycloneII和MSP430的网络数据加密实现
1 引言
随着信息技术和网络化进程的发展,网络通信安全问题日益突出。

现场
可编程门阵列(FPGA)以其自身设计灵活、可靠性高的优点广泛应用于加密领域。

硬件实现的加密算法不占用计算机资源.加密过程完全与外部总线隔离,具有
较高的数据保护能力。

算法可灵活改变,具有较强的独立性。

加密机由单片机,FPGA 和El 通信接口组成。

FPGA 内部算法由VHDL 语言编写。

该系统适用于要求数据安全较高的场合,其终端可为计算机,银行POS 机等,提供数据传输的安全性和保密性。

2 流加密解密原理及算法
2.1 流加密解密原理
流密码由密钥和密码算法两部分组成,密钥一般存储在加解密设备内部,在数据传输前已设置完成。

密码算法在较长时间内是不变的。

在同步流密码中,只要发送端和接收端有相同的密钥和内部状态,就能产生相同的密钥流。

数据传输时,加密端和解密端使用同一个初始密钥,加密时密码流与明
文相异或得到密文,同时每隔一定时间加入同步数据;解密时以同步模式产生
的密文与密码流进行异或得到明文,同步模式采用63 位Gold 码。

整个加解密过程与发送数据格式如图1 所示。

在发送密文中加入初始同步码,接收端利用Gold 码的三值特性检测Gold 码实现同步数据。

对接收数据流和Gold 码做互相关运算,相关结果满足Gold 码的三值特性,说明当前数据流是发送端加入的
同步Gold 码.标志为密文的起始,然后调用解密算法对后续的密文解密,恢
复传输的数据。

基于MSP430的非接触式指纹IC卡门禁系统的设计

基于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标签底部带有一个小按钮,若 有人试图剥离标签或有任何异常发生时,按钮 会自动弹起,随之警报响起和警示灯开始闪烁。

基于MSP430芯片的密码锁软件设计

基于MSP430芯片的密码锁软件设计
徐志雄
【期刊名称】《自动化与信息工程》
【年(卷),期】2009(030)003
【摘要】文章介绍了一个新型超低功耗的密码锁控制系统的软件编程.
【总页数】3页(P38-39,42)
【作者】徐志雄
【作者单位】广州市光机电工程研究开发中心
【正文语种】中文
【中图分类】TP3
【相关文献】
1.基于单片机芯片STC89C52的指纹密码锁系统 [J], 蔡兴;蔡久评;
2.基于单片机芯片STC89C52的指纹密码锁系统 [J], 蔡兴;蔡久评
3.基于MSP430的超低功耗电子密码锁设计 [J], 陈冲冲
4.基于MSP430无线遥控密码锁 [J], 周龙飞;马民;周玉潇;金晶
5.基于MSP430G2553的智能防夹密码锁设计 [J], 薛晶晶; 刘珂; 刘丽丽; 杨延宁因版权原因,仅展示原文概要,查看原文内容请购买。

基于MSP432单片机的电子密码锁设计与实现

基于MSP432单片机的电子密码锁设计与实现电子密码锁的使用越来越广泛,它方便安全地替代了传统的物理锁。

本文将介绍基于MSP432单片机的电子密码锁的设计与实现。

首先,我们将简要介绍MSP432单片机的特性,然后详细说明电子密码锁的设计流程,最后给出实际实现的示范。

MSP432单片机是德州仪器(TI)公司推出的一款低功耗、高性能的ARM Cortex-M4F系列单片机。

它具备丰富的外设接口和高度集成的功能,非常适合用于电子密码锁的设计与实现。

设计一个电子密码锁的关键步骤如下:1. 系统需求分析:首先,我们需要明确电子密码锁的功能要求。

比如,密码锁是否需要具备安全性强的密码保护、是否需要防暴力破解等。

2. 硬件设计:根据系统需求,选择合适的硬件组件,如键盘、LCD屏幕、电池等,并将它们与MSP432单片机进行连接。

3. 软件设计:编写相应的程序代码,实现电子密码锁的逻辑控制。

在设计中,我们将采用按键扫描、密码验证、锁定/解锁功能等技术手段。

4. 系统调试与优化:完成硬件连接和软件编写后,对电子密码锁进行系统调试,确保其功能正常。

此外,对系统进行优化,提升性能和稳定性。

下面将详细介绍电子密码锁的设计与实现。

1. 系统需求分析在系统需求分析阶段,我们应该明确电子密码锁的基本功能。

例如,我们可以设置一个4位数字密码,并使用LCD显示屏显示输入密码的状态。

此外,我们还可以增加一些扩展功能,如多用户密码管理。

2. 硬件设计硬件设计是电子密码锁实现的基础。

我们可以选择一个合适的键盘作为输入设备,并通过引脚连接到MSP432单片机。

同时,我们还需要选择一个LCD屏幕用于显示密码输入的状态。

最后,电池或者电源适配器可以为系统提供电力。

3. 软件设计软件设计是电子密码锁设计中最关键的一步。

首先,我们需要编写按键扫描的代码,以便获取用户输入的密码。

然后,通过密码验证算法比对用户输入密码和预设密码是否匹配。

最后,根据密码验证的结果,控制锁的状态进行锁定或解锁。

基于MSF430无线遥控密码锁

这种方案设计的遥控器具 有体积小、 功 耗 低、稳 定 性 好,并且在一定范围内不受 障碍 物 限 制 等 优 点。
1 MSP430 单片机简介 MSP430 单片机采用 16 位的总线 , 外
设和内存统一编址 , 寻址范围可达 64K, 还 可 以 外 扩展 存 储 器,具 有 统 一 的中断 管 理 , 具 有 丰富 的片上 外围模 块 , 片内有 精 密 硬 件 乘 法器、两 个 16 位 定 时 器、一 个 14 路 的 12 位 的 模 数 转 换 器、一 个 看 门 狗、6 路 P 口、两 路 U S A R T 通 信 端口、一 个 比 较 器、一 个 D C O 内 部 振 荡 器 和 两 个 外 部 时 钟 , 支 持 8M 的 时 钟。由 于 为 F L A S H 型 , 则可以在线对单片机进行调试和下 载 , 且 JTAG 口直 接和 FET(FLASH E MUL AT ION T O OL) 的相连 , 不须另 外的仿真工具 , 方便实用 ,可以在超低功 耗模式下工作 , 对环境和人体的辐射小 , 测量结果为 100m W 左右的功 耗 ( 电流 为 14m A 左右 ), 可靠性能 好 , 加强电干扰 运 行 不 受 影 响,适 应 工业 级 的 运 行 环 境 , 适 合与做手 柄 之类 的自动 控 制 的 设 备 . 我们 相信 M S P430 单片 机 将 会在工程 技 术应 用中得以广泛应 用 [2]。
无 线 接 收电 路 采 用超 再 生 接 收电 路, 它 的 工 作 电 压 为 5 V,静 态 电 流 4 m A,接 收 灵 敏 度 为 - 105d b m,频 率 稳 定 度 为 ±2 0 0 k H Z。接 收天 线 为 2 5 ~ 3 0 c m 的 导 线,最好能 竖 立 起 来。

MSP430单片机的加密熔断器设计

MSP430单片机的加密熔断器设计引言MSP430 系列单片机是德州仪器(TI)公司推出的一款16 位超低功耗单片机。

它能够在1.8~3.6 V 电压、1 MHz 频率的条件下运行,耗电电流在0.1~400μA。

在运算速度上,MSP430 系列单片机能在8 MHz 晶振的驱动下,实现125 ns 的指令周期。

16 位的数据宽度、125 ns 的指令周期以及多功能的硬件乘法器相配合,能实现数字信号处理的某些算法(如FFT 等)。

在整合方面,MSP430 系列单片机将大量的CPU 外围模块集成在片内,有如下一些模块:看门狗(WDT)、模拟比较器、串口、硬件乘法器、液晶驱动器、10 位/12 位/14 位ADC、端口0~6、基本定时器。

其中定时器A、B 均带有多个捕获/比较寄存器,同时可实现多路PWM 输出;模拟比较器与定时器配合,可方便地实现ADC;液晶驱动多达160 笔段;硬件ADC 模块在小于10 μs的速率下实现10~14 位的高速、高精度转换,同时提供采样/保持与参考电压;端口0、1、2 能够接收外部上升沿或下降沿的中断输入。

MSP430 系列单片机的开发调试有多种技术方案,其中以JTAG 和BOOTSTRAP(简称“BSL”)方式最为方便。

对于Flash 型的MSP430 单片机初期开发进行的仿真,只需要1 台PC 机和1 个JTAG 控制器即可实现。

进入产品级开发阶段,为了保护用户代码,烧断Flash 的保护熔丝以后就无法再通过JTAG 口访问单片机,这时用户对Flash 中的程序再进行检查或更新就只能通过BOOT-STRAP 进行。

不用担心用户代码会泄露,BOOTSTRAP 提供了32 字节256 位的密码保护,能完全确保代码的安全性。

1 熔断加密原理MSP430 系列单片机采用JTAG(实际上称为IEEE1149.1 或边界扫描)接。

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

基于msp430f149的数字密码锁摘要在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

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

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替了传统的机械式密码锁,电子密码锁具有安全性高、成本低、功耗低、易操作等优点。

在本次萌芽计划电子设计制作中,我们采用TI公司生产的msp430作为主控芯片,结合外围的矩阵键盘输入、LCD显示、蜂鸣器报警和LED显示等,用C语言编写主控芯片程序,设计了一款可以数字字母混合密码输入,具有报警功能的数字密码锁。

关键词:数字密码锁 msp430 报警目录目录 (2)第一章系统方案设计与论证 (4)方案比较 (4)方案设计与论证 (5)设计框图 (6)第二章主要元器件介绍 (6)Msp430f149 (6)LCD1602液晶显示器 (9)LM7805 (11) (12)第三章系统硬件结构设计 (14)单片机电路 (14)矩阵键盘电路 (15)复位单路 (16)LCD显示电路 (16)LED显示电路 (16)报警电路 (17)电源电路 (17)第四章系统软件设计 (18)主程序流程图 (18)功能按键软件设计 (20)密码设置软件设计 (21)第五章实验分析 (23)测试方法 (23)测试分析 (23)第五章总结 (23)附录 (24)附录一整体电路图 (24)附录二 PCB封装图 (25)附录三部分程序 (25)第一章系统方案设计与论证方案比较方案一:以STC89C52单片机为电子密码锁系统核心,使用4*4矩阵键盘作为数据输入方式,驱动LCD1602显示器提示程序运行过程和开锁的步骤,利用AT24C02芯片实现掉电存储。

方案二:以msp430f149单片机为电子密码锁系统核心,使用4*4矩阵键盘作为数据输入方式,驱动LCD1602显示器提示程序运行过程和开锁的步骤。

方案比较:msp430f149单片机性能比STC89C52单片机高,且I/O口远多于STC89C52单片机,方便更好的利用多余的I/O口扩充其他功能。

因此本次设计选择方案二。

方案设计与论证由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。

一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。

在开发过程中单片机还受到:开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。

基于以上因素本设计选用单片机msp430f149作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。

在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602显示器用于显示作用。

当用户需要开锁时,先输入密码,如果密码输入正确则开锁或设置新密码,不正确显示密码错误重新输入密码,当三次密码错误则发出报警;当用户需要修改密码时,先按下键盘设置键后输入新密码,新密码输入后再次输入新密码,两次输入一致则密码修改成功。

设计框图第二章主要元器件介绍Msp430f149MSP430是TI公司新开发的一类具有16位总线的带FLASH 的单片机,由于其性价比和集成度高,受到广大技术开发人员的青睐。

它采用16位的总线,外设和内存统一编址,寻址范围可达64K,还可以外扩展存储器。

具有统一的中断管理,具有丰富的片上外围模块,片内有精密硬件乘法器、两个16位定时器、一个14路的12位的模数转换器、一个看门狗、6路P口、两路USART通信端口、一个比较器、一个DCO内部振荡器和两个外部时钟,支持8M 的时钟。

由于为FLASH 型,则可以在线对单片机进行调试和下载,且JTAG口直接和FET(FLASH EMULATION TOOL)的相连,不须另外的仿真工具,方便实用,而且可以在超低功耗模式下工作,对环境和人体的辐射小,测量结果为100mw左右的功耗(电流为14mA左右),可靠性能好加强电干扰运行不受影响,适应工业级的运行环境,适合与做手柄之类的自动控制的设备。

LCD1602液晶显示器本设计采用LCD液晶显示屏显示。

其具有体积小、功耗低、界面美观大方等优点,这里使用YB1602液晶屏,1602显示模块用点阵图形显示字符,显示模式分为2行16个字符。

它具有16个引脚,其正面左起为第一脚,如下图所示:第一脚GND:接地。

第二脚VCC:+5V电源。

第三脚VO:对比度调整端。

使用时通过接一个10K的电阻来调节。

第四脚RS:寄存器选择信号线。

第五脚RW:读写信号线。

第六脚E:使能端,当E由高电平跳变为低电平时执行命令。

第7~14脚:8位数据线D0~D7。

第十五脚BLA:背光电源正极输入端。

第十六脚BLK:背光电源负极输入端。

表 LCD1602操作指令1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。

1602通过D0~D7的8位数据端传输数据和指令。

LM7805电源电路采用普通可调电源供电,该电源不含稳压器,所以在设计中需要用稳压器进行稳压,我们选用LM7805来获得稳定的+5V直流电压,LM7805引脚排列和典型应用如下图:LM7805引脚和典型应用LM7805电气参数本设计中msp430需采用电源供电,因此需用将已稳压成5v的直流稳压成。

是一个正向低压降稳压器,在1A电流下压降为。

AMS1117引脚图AMS1117电气参数第三章系统硬件结构设计单片机电路以TI公司的msp430f149单片机为主控芯片,CPU电路十分简单,只需供电部分和晶振部分。

单片机电路矩阵键盘电路4*4矩阵键盘电路由16个轻触开关加上4个1k的上拉电阻构成,通过P1口接入单片机。

矩阵键盘电路复位单路单片机在RESET端加一个大于20ms正脉冲即可实现复位,上电复位和按钮组合的复位电路如下:复位电路在系统上电的瞬间,RST与电源电压同电位,随着电容的电压逐渐上升,RST 电位下降,于是在RST形成一个正脉冲。

当人按下按钮K17时,使电容C7通过R8迅速放电,待K17弹起后,C7再次充电,实现手动复位。

LCD显示电路本设计采用LCD1602液晶显示屏进行显示,可同时实现数字与字母混合密码的显示以及各种提示的显示。

LCD显示电路LED显示电路接红色LED灯,密码错误时显示;接绿色LED灯,密码正确开锁时显示;接蓝色LED灯,设置密码时显示。

LED显示电路报警电路按键时蜂鸣器会实时鸣叫;当密码三次输入错误时,长时间蜂蜜报警;密码输入正确时蜂鸣器产生提示音。

报警电路电源电路本设计采用9v电池供电,先由LM7805稳压至5v,再由稳压到给电路供电。

电源电路第四章系统软件设计主程序流程图开始接上电源,程序进行初始化设置,然后在键盘上输入密码,此系统进行键盘扫描,密码错误3次出错报警,密码正确,选择开锁或修改密码,若要修改密码时,需要两次确认新密码,确认后,密码修改成功,否则结束。

开始初始化次数加1返回NY开锁程序 开锁N修改密码次数>3报警程序修改程序 YNNY主程序流程图功能按键软件设计在按键当中,有与转换、清除、开锁、设置的程序相对应的按键。

功能按键程序软件流程图 密码设置软件设计开始按下设置键,输入新密码后,再次输入新密码,如果两次输入一样,则输入成功。

如果两次输入的新密码不一样,则修改密码失败。

密码设置软件流程图第五章实验分析测试方法按下电源开关,屏幕显示”PASSWORD”,输入10位密码,屏幕实时显示密码,并伴有实时提示音,若密码错误,屏幕显示”ERROR“,随后显示”PASSWORD”,再次输入密码,密码三次输入错误,清屏,亮红灯并伴有长时间蜂鸣。

若输入密码正确,蜂鸣器产生提示音,屏幕显示”A_unlock B_set”,若按下开锁键,亮绿灯,显示”UNLOCK”;若按下设置键,亮黄灯,显示”NEW CODE”,输入10位新密码,显示”INPUT AGAIN”,再次输入新密码,若两次新密码输入一致,显示”SUCCEED”,若两次新密码输入不一致,则显示”FAILE”。

输入密码时,可通过清除键清除已输入密码,可通过转换键实现数字与字母和字母大小写之间的转换。

测试分析测试结果与我们预想的一致,但由于程序中使用了go-to语句,使得输入不是很稳定,需要一定的反应时间。

第五章总结总的来说,这次“萌芽计划”对我们三个都是一个挑战,因为我们三人的基础都不一样,有的基本为零,而有的却早已参加了多次科创活动。

对于萌芽而言,我们三个无论是谁都无法独自完成。

这更挑战了我们的合作能力。

在技术上,我们基础好的带动基础差的,尽可能的让他学会东西,基础好的也不断提升自己,用更高端的技术来实现功能。

通过这次竞赛,我们三个都提高了很多,这次的萌芽计划也为我们日后的科创道路打下了厚实的基础。

当然,我们也有很多不足之处,比如说粗心大意,导致我们浪费了很多工程和时间,还有因为懒惰,是我们没有做到尽善尽美。

但有了这次经历,我想我们三个在以后会做的越来越好。

附录附录一整体电路图附录二 PCB封装图附录三部分程序#include <>#include ""#include ""#include "子程序集.h"...."};uchar Fin[] = {"THIEF...THIEF.."};WDTCTL = WDTPW + WDTHOLD; //关闭看门狗LcdReset(); //初始化LCDInit_Keypad(); //初始化键盘端口P6DIR |= BIT7; //蜂鸣器P6OUT |= BIT7;P2DIR |= 0xff; //红灯-用于报警以及按键;绿灯-用于解锁、开锁;蓝灯-用于设置P2OUT |= 0xff;loop:DispNChar(0,0,15,PROX);DispNChar(2,1,12,PROX_1); //嘿嘿Delay400ms();LcdWriteCommand(0x01,1);DispNChar(3,0,9,Tishi); //显示提示文字Code_CIN_1();//子程序1 向数组C输入十位数字字母组合(最开始输入密码时)Comp();//子程序2 逐个比较数组C和数组D的元素Delay200ms();//用于显示延迟,否则看不到最后一位Unlock_j();//对比较结果进行分析判断,然后运行if(BACK <= 3) //密码输入错误小于三次再次输入goto loop; //程序有些不稳,需要慢慢按(GOTO的弊端)else{LcdWriteCommand(0x01,1); //大于三次后报警DispNChar(0,0,16,Fin);BACK = 0; //计数清零Buz_E();//报警;Delay400ms();Delay400ms();LcdWriteCommand(0x08,1); //之后会白屏,嘿嘿}}/*********************************************************************** *****函数名称:向C数组中输入十位密码输入密码阶段*****返回值:暂无*****功能:***********************************************************************/void Code_CIN_1(void){uchar Clear_1[] = {"PASSWORD:"};uint i,p,ref = 1;uchar fact,key;for(i = 0, p = 0; i <= 9;) //十位密码{Key_Event();if(key_Flag == 1){key_Flag = 0;fact = key_val;//这样会比较好switch(fact) //逻辑1-10用于实际0-9(需要key的转换)逻辑4为开锁键,只有密码正确有效,其余无效{case 1:Buz_O();//按键声if(ref == 1) //关系着数字与字母的转换(字母包含大小写)1为数字,2为小写,三为大写{key = 1;Disp1Char(3+i,1,0x30+key);//显示对应的是ACSSI码Code_C[p] = key;i++;p++;}else if(ref == 2){key = 0x31;Disp1Char(3+i,1,0x30+key);Code_C[p] = 0x30+key; //比较的时候是16进制的对应码i++;p++;}else if(ref == 3){key = 0x11;Disp1Char(3+i,1,0x30+key);Code_C[p] = 0x30+key;i++;p++;}break;case 2:Buz_O();if(ref == 1){key = 2;Disp1Char(3+i,1,0x30+key);Code_C[p] = key;i++;p++;}else if(ref == 2){key = 0x32;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}else if(ref == 3){key = 0x12;Disp1Char(3+i,1,0x30+key);Code_C[p] = 0x30+key;i++;p++;}break;case 3:Buz_O();if(ref == 1){key = 3;Disp1Char(3+i,1,0x30+key);Code_C[p] = key;i++;p++;}else if(ref == 2){key = 0x33;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}else if(ref == 3)key = 0x13;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}break;case 5:Buz_O();if(ref == 1){key = 4;Disp1Char(3+i,1,0x30+key);Code_C[p] = key;i++;p++;}else if(ref == 2){key = 0x34;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;else if(ref == 3){key = 0x14;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}break;case 6:Buz_O();if(ref == 1){key = 5;Disp1Char(3+i,1,0x30+key);Code_C[p] = key;i++;p++;}else if(ref == 2){key = 0x35;Disp1Char(3+i,1,0x30+key);Code_C[p] = 0x30+key;i++;p++;}else if(ref == 3){key = 0x15;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}break;case 7:Buz_O();if(ref == 1){key = 6;Disp1Char(3+i,1,0x30+key);Code_C[p] = key;i++;p++;}else if(ref == 2)key = 0x41;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}else if(ref == 3){key = 0x21;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}break;case 9:Buz_O();if(ref == 1){key = 7;Disp1Char(3+i,1,0x30+key);Code_C[p] = key;i++;p++;else if(ref == 2){key = 0x42;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}else if(ref == 3){key = 0x22;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}break;case 10:Buz_O();if(ref == 1){key = 8;Disp1Char(3+i,1,0x30+key);Code_C[p] = key;i++;p++;}else if(ref == 2){key = 0x43;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}else if(ref == 3){key = 0x23;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}break;case 11:Buz_O();if(ref == 1){key = 9;Disp1Char(3+i,1,0x30+key);Code_C[p] = key;i++;p++;}else if(ref == 2){key = 0x44;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}else if(ref == 3){key = 0x24;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}break;case 14:if(ref == 1){key = 0;Disp1Char(3+i,1,0x30+key);Code_C[p] = key;i++;p++;}else if(ref == 2){key = 0x45;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}else if(ref == 3){key = 0x25;Disp1Char(3+i,1,0x30+key); Code_C[p] = 0x30+key;i++;p++;}case 4:break;//这两个键需正确后再用 case 8:break;case 12:if(i < 9)//。

相关文档
最新文档