ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:154.80KB ,
资源ID:26994320      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26994320.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字式密码电子锁电路设计.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字式密码电子锁电路设计.docx

1、数字式密码电子锁电路设计课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 数字式密码电子锁电路设计 初始条件: 本设计既可以使用集成电路和必要的元器件等。本设计也可以使用单片机系统构建数字密码电子锁。自行设计所需工作电源。电路组成原理框图见图1,数字密码锁的实际锁体一般由电磁线圈、锁栓、弹簧和锁柜构成。当线圈有电流时,产生磁力,吸动锁栓,即可开锁。反之则不开锁。 图1 数字式电子锁电路原理框图要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。2、技术要求:课程设计中,锁体用LED代替(如“绿灯亮”表示开锁,“红灯亮”

2、表示闭锁)。其密码为方4位(或8位)二进制代码(代码自设定)。开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开。当开锁密码与存储密码不一致时,可重复进行,若连续三次未将锁打开,电路则报警并实现自锁。(报警动作为响1分钟,停10秒)选择电路方案,完成对确定方案电路的设计。计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。安装调试设计电路。3、查阅至少5篇参考文献。按武汉理工大学课程设计工作规范要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。时间安排:1、 2012 年 7 月 1 日集中,作课设具体实施计划与课程设计报告格式的要求说明。2、 2012 年 7 月

3、 1 日,查阅相关资料,学习电路的工作原理。2、 2012 年 7 月 2 日 至 2012 年 7 月 3 日,方案选择和电路设计。2、 2012 年 7 月 4 日 至 2012 年 7 月 5 日,电路调试和设计说明书撰写。3、 2012 年 7 月 6 日上交课程设计成果及报告,同时进行答辩。课设答疑地点:鉴主14楼实验室。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日摘要本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。系统能完成开锁、超时报警、超次锁定、声光提示、修改用户密码基本的密码锁的功能。依据实际的情况还可以添加管理员解密、调电存储、遥控功能。本系统成

4、本低廉,功能实用关键词:电子密码锁,单片机系统,液晶显示,密码检验1绪论随着人们生活水平的提高,家庭防盗这一问题越来越引人注目,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。设计本课题时构思了两种方案:一种是用以MSP430为主控芯片的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。考虑到数字电路方案电路复杂,控制度比较低,难以满足现在的安全需求,所以本设计采用前一种方案。本次课程设计就是利用所学的数字电路知识,忽略复杂的实物锁体器件的驱动,简单模拟实现数字密码锁原理功能,从而复习相关知

5、识,达到理论与实践相结合的目的。2设计内容及要求2.1 设计的初始条件及主要任务课程设计中,锁体用LED代替(如“绿灯亮”表示开锁,“红灯亮”表示闭锁)。其密码为方4位(或8位)二进制代码(代码自设定)。开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开。当开锁密码与存储密码不一致时,可重复进行,若连续三次未将锁打开,电路则报警并实现自锁。(报警动作为响1分钟,停10秒)选择电路方案,完成对确定方案电路的设计。计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。安装调试设计电路。2.2 设计思路本次的设计任务,运用集成逻辑器件组成的门电路也可以完成,但是考虑到输入信号的数量

6、、逻辑判断的复杂度可以预知其数字逻辑电路会是相当复杂的。而运用具有可以写入程序,按程序完成相关逻辑判断、电平控制的单片机芯片则会大大降低系统的复杂度,因此基于单片机来完成此次设计成为了总体设计方案的首选。本设计使用的是MSP430单片机,该单片机芯片功能齐全,体积小,性价比高,使用该芯片可以轻易完成该设计任务。配合上外围电路独立按键、1602液晶、蜂鸣器和LED灯构成整个系统。实物电路体积小巧,结构精简。设计从总体可以分为硬件与软件两个部分。在硬件部分中,由单片机最小系统、1602液晶显示模块、按键控制模块和声光报警模块几个部分构成,其相关控制关系如图2.1;在软件部分中,由按键键值读取、16

7、02液晶显示函数、延时模块、密码读取模块、密码设置模块、密码比较模块、密码找回模块、声光状态模块等几部分组成。系统整体框架图如下:MSP430单片机LCD1602显示电路独立按键控制电路声光指示电路Flash掉电存储图2.2 系统整体框架图3模块硬件电路设计3.1 单片机最小系统此为一个单片机最小系统,其有P1P6六组I/O口,可以进行相关的电平状态读取与控制操作。最小系统中使用了两个晶振,32768Hz的低速晶振和8MHz的高速晶振,为系统提供可选择的时钟源。由于MSP430单片机工作电压为3.3V,故最小系统中使用了输出3.3V的稳压电路。最小系统电路图如图3.1所示:图3.1单片机最小系

8、统3.2 独立按键本设计使用了三个独立按键进行电路设计控制,硬件结构简单,免去了矩阵键盘的大体积,通过程序控制可以通过独立按键输入2进制和10进制数,使用方便。其电路图如图3.2所示:图3.2 独立按键电路3.3 1602液晶显示图3.3为1602液晶的引脚分布。1,2为液晶显示供电,3接滑动变阻器改变3的相对电位,调节显示对比度。4,5,6为液晶的控制端,其中5脚是使能端,为方便使用,直接将其接地让其有效工作。714为液晶的数据输入端,15、16为液晶背光的电源接口。17,18可以悬空不接。图3.3 1602液晶显示3.4 声光显示光显示有红绿两种颜色的发光二极管组成,负极接单片机引脚,正极

9、结一个限流电阻后接地。当单片机输出高电平,其不亮,当单片机输出低电平,二极管点亮。(图略)声信号告警有长鸣蜂鸣器与一个三极管、电阻组成,三极管在单片机的控制下驱动蜂鸣器正常工作。长鸣蜂鸣器,在给予有效电平时可以不间断的以一定的频率发出蜂鸣。如图3.4所示:图3.4 蜂鸣器工作电路4模块软件程序设计4.1 独立按键键值读取模块独立按键接在P1口的低三位,由于只用了三个独立按键,所以每个按键有多种功能,这需要在软件中设置一些标志变量,在不同的状态下不同的标志变量置位,按键的功能也随之发生改变。比如在输入密码的时候其中两个按键是用来输入2进制值,当找回密码时那两个按键的功能又变成了输入十进制值。按键

10、的读取是通过MSP430单片机的P1口的外部中断读取的,按下按键,IO口接收一个下降沿,触发中断,再根据各IO的高低电平,判断所按下按键,从而可以读取按键值。4.2 1602液晶显示模块1602具有三个工作状态控制端,调节他们的高低变化配合数据口的信息,可以显示216的字母或者数字,通过子函数可以实现检测初始化LCD、写指令到LCD、LCD状态、LCD清屏、输入一个字节数据到LCD、LCD光标定位到x处、LCD光标归位、输入一个字符到LCD、输入一个字符串到LCD等功能。4.3 密码输入及读取模块密码的读取是在密码输入的界面状态下进行的,在其他界面下按键不能输入密码。输入过程中密码的显示是“*

11、”号,从而有保密的功能。四位二进制数输入完成时密码读取功能也同时完成。4.4 密码比较模块密码读取完毕后系统就会自动进行密码比较,当四位二进制输入值和设定密码的四位二进制值都相同时,密码正确,显示开锁成功;当不相等时,密码错误,自动回到密码重新输入状态,在此状态下可以再次输入密码。但是,当三次密码都错误时密码锁便会锁住,不能再次输入密码,在此时只能使用找回密码功能。4.5密码找回模块当密码输入错误的时候可以进行找回密码,找回密码的过程实际上就是一个回答密保问题的过程,本设计在程序中设定了一个密保问题是“My birthday? ”,当开锁者在此时界面下输入“0829”四位十进制数即可找回密码,

12、找回的密码显示在1602液晶上;但是,如果在找回密码的过程中回答错误锁体便会终极锁住,不能再次输入任何值,也不能再次找回密码,只能通过复位程序恢复。4.6 密码修改模块为了达到修改密码的目的,在输入密码正确时可以进入修改密码界面,在此界面下可以输入四位二进制密码。同样为了保密,输入密码过程中同样是显示“*”。输完四位二进制密码后还需再次输入密码以确定修改密码,只有当两次输入的密码一样密码才会被修改,否则需要重复确认修改密码。4.7 声光状态模块本模块通过读取相关控制变量,控制声光部件的状态。当闭锁状态点亮红灯,开锁状态点亮绿灯;当需要进行异常告警时,利用延时函数周期性的变换蜂鸣器的响静。鸣响状

13、态下,响250ms,停250ms;鸣响状态保持50s后,静止10s,后继续进入鸣响状态,如此反复。在三次密码错误时发生异常告警,找回密码后告警停止。4.8系统软件流程图 综合以上模块,得到系统软件流程图如图4.8所示: 图4.8 总程序流程图图4.8.1 总程序流程图5模块组合调试按照前述模块进行设计,制作实物电路、编写软件程序代码,然后进行相关调试。5.1 硬件调试由于使用了单片机,所以硬件电路比较简单,故调试过程比较顺利。5.2 软件调试由于这个系统主要部分是软件程序,比较复杂,所以在软件调试过程中出现了一些问题,如有时不能读取按键键值,有时不能退出某个状态界面,但是通过不断调试,所有问题

14、都已经解决,软件调试成功。6系统调试 综合硬件电路和软件程序进行调试,最后系统成功地实现了开锁、闭锁、修改密码、找回密码和声光报警功能。达到并超额完成了课程设计的要求。7心得体会本次课程设计不仅仅是对于一学期数字电子技术课程学习的一个简单考核,更是是我们在数电方向、电子方向继续学习深造的一个无尽动力。在完成课程设计的过程中,遇到了一些问题,经过不断地修改,问题都被解决。同时,自己的知识也一点点地提升。这次课程设计也让我对我自己所学习专业有了更多的兴趣,我相信在接下来的时间里我会更加努力地学习专业知识,争取能够在专业内有所建树。参考文献1 伍时和等数字电子技术基础北京:清华大学出版社,2009.

15、42 张天凡等51单片机C语言开发详解北京:电子工业出版社,2008.63 马忠梅等单片机的C语言应用程序设计北京:北京航空航天大学出版社,2007.14 梅丽凤等. 单片机原理及接口技术. 北京: 清华大学出版社;北京交通大学出版社,2004.25 谭浩强.C程序设计(第三版)北京:清华大学出版社,2005.7附录: 数字式密码电子锁程序源代码1主函数:/*-* Created by: Xu Yuanchun* Created date: 2012.06.02* Version: V1.0* Descriptions: The main.c of trick lock*/#include#d

16、efine uchar unsigned char#define uint unsigned int#define ulint unsigned long int#includecoded_lock.hconst uchar table1_0 = Enter password:;const uchar table2_0 = _ ;const uchar table1_1 = _ _ ;const uchar table2_1 = Welcome! ;const uchar table1_2 = Wrong password ;const uchar table2_2 = Enter again

17、! ;const uchar table1_3 = -_- -_- ;const uchar table2_3 = LOCK ;const uchar table1_4 = Find password? ;const uchar table2_4 = 0:No 1:Yes ;const uchar table1_5 = Change password?;const uchar table1_6 = My birthday? ;const uchar table2_7 = Succeed ;const uchar table1_8 = Bye Bye ;const uchar table1_9

18、= Congratulation!;const uchar table2_9 = Password: 0000 ;const uchar table1_10 = New password: ;const uchar table1_11 = Make sure: ;const uchar table2_12 = Unequal ;uchar ps4,ps_14;uchar num,function,busy;uchar location;uchar errorcount;uchar lockflag; / Flag definationuchar unlockflag;uchar answerf

19、lag;uchar startflag;uchar errorflag;uchar succeedflag;uchar changeflag;uchar sureflag;uchar changedflag;uchar temp4,answer4;uint ms,s;void Delayms(uint z) / Delay about 1 ms uint x,y; for(x =z; x 0; x-) for(y =1000; y0; y-);void Clock_Mode() / Select 8 Mhz XT2 for SMCLK uchar i; WDTCTL = WDTPW + WDT

20、HOLD; / Stop WDT BCSCTL1 &= XT2OFF; / Activate XT2 high freq xtal do IFG1 &= OFIFG; / Clear OSCFault flag for (i = 0xFF; i 0; i-); / Time for flag to set while (IFG1 & OFIFG); / OSCFault flag still set? BCSCTL2 |= SELM_2 + SELS; / SMCLK = XT2 (8Mhz) HF XTAL (safe)void Timer_A_Init() CCR0 = 8000; / I

21、nterrupt every 1/1000 s TACTL = TACLR + MC_1 + TASSEL_2;/ Up mode, SMCLKvoid Alarm() uchar i; for(i = 0; i 10; i+) Ab0; Delayms(1000); Ab1; Delayms(1000); /*Part:LCD*/void LCD_Operation_Init() uchar i; Write_Com(0x80); for(i = 0; i 16; i+) Write_Date(table1_0i); Write_Com(0x80+0x40); for(i = 0; i 16

22、; i+) Write_Date(table2_0i); void LCD_Operation_Enter() Write_Com(0x80+0x40+6+location); Write_Date(*);void LCD_Operation_Unlock() uchar i; Write_Com(0x80); for(i = 0; i 16; i+) Write_Date(table1_1i); Write_Com(0x80+0x40); for(i = 0; i 16; i+) Write_Date(table2_1i); void LCD_Operation_EnterAgain() u

23、char i; Write_Com(0x80); for(i = 0; i 16; i+)void LCD_Operation_Question() uchar i; Write_Com(0x80); for(i = 0; i 16; i+) Write_Date(table1_6i); Write_Com(0x80+0x40); for(i = 0; i 16; i+) Write_Date(table2_0i); void LCD_Operation_Answer(uchar i) Write_Com(0x80+0x40+6+location); Write_Com(0x0f); Writ

24、e_Date( i + 0x30); Write_Com(0x80+0x40+6+location);void LCD_Operation_Succeed() uchar i; Write_Com(0x80); for(i = 0; i 16; i+) Write_Date(table1_1i); Write_Com(0x80+0x40); for(i = 0; i 16; i+) Write_Date(table2_7i); void LCD_Operation_Congratulation() uchar i; Write_Com(0x80); for(i = 0; i 16; i+) W

25、rite_Date(table1_9i); Write_Com(0x80+0x40); for(i = 0; i 11; i+) Write_Date(table2_9i); Write_Date(ps0 + 0x30); Write_Date(ps1 + 0x30); Write_Date(ps2 + 0x30); Write_Date(ps3 + 0x30); Write_Date( );void LCD_Operation_Bye() uchar i; Write_Com(0x80); for(i = 0; i 16; i+) Write_Date(table1_8i); Write_C

26、om(0x80+0x40); for(i = 0; i 16; i+) Write_Date(table2_3i); /*/void Reset() errorcount = 0; lockflag = 0; unlockflag = 0; answerflag = 0; startflag = 0; errorflag = 0; succeedflag = 0; changeflag = 0; Write_Com(0x0c); /*Part:Flash*/void Flash_Init() FCTL2 = FWKEY + FSSEL0 + FN4 + FN3; / MCLK/25 for F

27、lash Timing Generatorvoid Flash_Write() / Write bj and waveform to flash uchar i; uchar *Flash_ptr; / Flash pointer Flash_ptr = (uchar *) 0x1080; / Initialize Flash pointer FCTL1 = FWKEY + ERASE; / Set Erase bit FCTL3 = FWKEY; / Clear Lock bit *Flash_ptr = 0; / Dummy write to erase Flash segment FCT

28、L1 = FWKEY + WRT; / Set WRT bit for write operation for(i = 0;i 4;i+) *Flash_ptr+ = psi; FCTL1 = FWKEY; / Clear WRT bit FCTL3 = FWKEY + LOCK; / Set LOCK bitvoid Flash_Read() / Read bj and waveform from flash uchar i; uchar *Flash_ptrA; Flash_ptrA = (uchar *) 0x1080; / Initialize Flash segment A pointer FCTL1 = FWKEY; / Set Erase bit FCTL3 = FWKEY + LOCK; / Clear Lock bit for(i = 0;i 4;i+

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1