基于单片机的电子密码锁设计课程设计

上传人:仙*** 文档编号:132834027 上传时间:2022-08-09 格式:DOC 页数:26 大小:377KB
收藏 版权申诉 举报 下载
基于单片机的电子密码锁设计课程设计_第1页
第1页 / 共26页
基于单片机的电子密码锁设计课程设计_第2页
第2页 / 共26页
基于单片机的电子密码锁设计课程设计_第3页
第3页 / 共26页
资源描述:

《基于单片机的电子密码锁设计课程设计》由会员分享,可在线阅读,更多相关《基于单片机的电子密码锁设计课程设计(26页珍藏版)》请在装配图网上搜索。

1、郑州科技学院单片机课程设计题 目 基于单片机的电子 密码锁设计 学生姓名 顾梦晓 专业班级 11级通信工程2班 学 号 51046 院 (系) 信息工程学院 指引教师 周喜 完毕时间 01月16日 郑州科技学院单片机课程设计任务书专业 11级通信工程 班级 2班 学号 51046 姓名 顾梦晓 一、设计题目 基于单片机的电子密码锁设计 二、设计任务与规定(1)本设计为避免密码被窃取在输入密码时屏幕上显示8。(2)设计开锁密码位为六位密码的电子密码锁。(3)可以在密码对的时显示“1HELLO”,密码错误时显示 “2ERROR”,输入密码的位数时显示为8的个数。(4)44的矩阵键盘中涉及0-9的数

2、字键确认键和消除键的功能键。(5)本产品具有报警功能,当输入密码错误时蜂鸣器响(6)在密码输入过程中,若输入错误,可以运用“C”键删除刚刚输入的错误的数字。在输入密码的过程中可以随时对输入的密码进行修改。三、重要参照文献1 何宏主编.单片机原理与接口技术. M北京:国防工业出版社. . 072 赵益、徐晓林、周振峰. 电子密码锁的系统原理. M北京:清华大学出版社. . 3 张培仁.基于C语言编程 MCS- 51单片机原理与应用.北京:清华大学出版社. . 12四、设计时间 年01月 16 日 至 年 01月 16 日 指引教师签名: 年 月 日 目 录1 电子密码锁的背景12 总体设计方案的

3、拟定12.1 电子密码锁设计规定12.2 总体设计方案选定23 系统硬件设计23.1 设计原理23.2 单片机STC89C52简介33.4七段数码管显示屏部分63.5 键盘设计73.6 蜂鸣器模块74 系统软件设计84.1 主程序模块85 系统制作及调试95.1 焊接注意事项95.2 硬件调试问题及解决措施96 结论10参照文献11附录1:实物图12附录2:元件清单13附录3:电路原理图14附录4:程序151 电子密码锁的背景随着社会物质财富的日益增长,如何实现家庭防盗这一问题也变的特别的突出,而锁自古以来就是扼守门户的铁将军,人们对它规定甚高,即要安全可靠地防盗,又要使用以便。目前普遍使用的

4、机械锁构造简朴、使用以便、价格便宜。但在使用过程中暴露了诸多缺陷。随着人们生活水平的提高,电子密码防盗作为防盗卫士的作用日趋重要。电子密码锁用密码替代钥匙,不仅省去了佩戴钥匙的烦恼,也从主线上解决了一般门锁保密性差的缺陷。该电子密码锁运用单片机作为主控核心,单片机(AT89S51)所具有的特殊功能使得电子密码锁的保密性能大大加强,这样就可以有效的避免多次试探密码的也许性。随着单片机和其他智能芯片的进一步开发防盗锁将实现智能化,这将是锁的安全性能大大提高。本系统实现密码一次输入的提示功能,若密码输入不对的将发出“嘀嘀”的报警声,引起她人警惕。同步可添加外围设备实现远程报警(如添加继电器一类设备可

5、以连接到主人的电话上,是主人懂得家里有人非法操作,及时报警)。若密码输入对的将发出“叮咚”的门铃声。本系统使用的单片机所具有强大的功能可以实现智能控制用来完毕密码的输入、判断和比较从而执行相应的开锁显示或报警等功能。2 总体设计方案的拟定2.1 电子密码锁设计规定(1)本设计为避免密码被窃取在输入密码时屏幕上显示8。(2)设计开锁密码位为六位密码的电子密码锁。(3)可以在密码对的时显示“1HELLO”,密码错误时显示 “2ERROR”,输入密码的位数时显示为8的个数。(4)44的矩阵键盘中涉及0-9的数字键确认键和消除键的功能键。(5)本产品具有报警功能,当输入密码错误时蜂鸣器响(6)在密码输

6、入过程中,若输入错误,可以运用“C”键删除刚刚输入的错误的数字。在输入密码的过程中可以随时对输入的密码进行修改。2.2 总体设计方案选定采用一种是用以STC89C52为核心的单片机控制方案。选用单片机STC89C52 作为本设计的核心元件,运用单片机灵活的编程设计和丰富的IO端口,及其控制的精确性,实现基本的密码锁功能。在单片机的外围电路外接输入键盘用于密码的输入和某些功能的控制,外接四位数码管实现显示功能。可以看出方案二控制灵活精确性好且保密性强还具有扩展功能,根据现实生活的需要本次设计采用此方案。3 系统硬件设计3.1 设计原理本系统硬件设计由单片机(AT89S51)部分、44行列式键盘部

7、分、四联七段共阴数码管部分、报警器部分4个部分所构成。主控器件是单片机,通过连接单片机的矩阵键盘输入密码,后通过单片机对顾客输入的密码与自己保存的密码进行对比,从而判断密码与否对的,然后控制引脚的高下电平传到开锁电路或者报警电路控制开锁还是报警。本系统共有两部分构成,即硬件部分与软件部分。其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分构成,软件部分相应的由主程序、初始化程序、晶体管显示程序、键盘扫描程序、启动程序、关闭程序、键功能程序、密码设立程序、EEPROM读写程序和延时程序等构成。3.2 单片机STC89C52简介89C52是INTEL公司

8、MCS-51系列单片机中基本的产品,它采用ATMEL公司可靠的CMOS工艺技术制造的高性能8位单片机,属于原则的MCS-51的HCMOS产品。 表3-1 STC89C52功能特性原则MCS-51内核和指令系统片内8kROM(可扩大64kB外部存储器)32个双向I/O口256x8bit内部RAM(可扩大64kB外部存储器)3个16位可编程定期/计数器时钟频率3.5-12/24/33MHz向上或向下定期计数器改善型迅速编程脉冲算法6个中断源 5.0V工作电压全双工串行通信口布尔解决器帧错误侦测 4层优先级中断构造自动地址辨认 兼容TTL和CMOS逻辑电平空闲和掉电节省模式PDIP(40)和PLCC

9、(44)封装形式STC89C52引脚简介VCC:供电电压。GND:接地。1、P0口:P0口为一种8位漏级开路双向I/O口,名称为P0.0P0.7。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。本系统中把 “单片机系统”区域中的P0.0端口用导线连接到报警器上,用来提示密码输入的对的或错误并发出相应的声音。2、P1口:P1口是一种内部提供上拉电阻的8位双向I/O口,名称为P1.0P1.7。P1口的输出缓冲器可驱动(吸取或输出电流)4个TTL逻辑门电路。本系统中把“单片机系统”区域中的P1.0P1.7用导线连接到数码管显示屏的一端。用

10、来实现数码管的显示。P2口:P2口为一种内部上拉电阻的8位双向I/O口,名称为P2.0P2.7 。本系统中把“单片机系统”区域中的P2.0P2.7用导线连接到三极管的一端通过三极管放大输入到数码管显示屏上。本系统中由“单片机系统”区域中的P1口和P2口共同来完毕数码管的显示。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,名称为P3.0P3.7。本系统中把单片机系统中P3.0-P3.3和P3.4-P3.7端口分别连接到的44行列式键盘中的四条横线、四条竖线上,用来完毕密码的输入。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储

11、器时,地址锁存容许的输出电平用于锁存地址的地位字节。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两/PSEN有效。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。 图3-2 STC89C52 引脚图最小系统涉及单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处在正常的运营状态。(1) 时钟电路STC89C52单片机的时钟信号一般有两种方式产生:一是内部时钟方式,二是外部时钟方式。内部时钟方式如图3-3所示。在STC89C52单片机内部有一振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外

12、接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图3-3 STC89C52内部时钟电路(2) 复位电路当在STC89C52单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST(9)端与电源Vcc接通而实现的。图3-4 STC89C52复位电路3.4七段数码管显示屏部分七段LED显示屏由7个发光二极管构成,其中7个长条形的发光管排列成“日”字形,如上图所示,由七个发光二极管构成的七段显示屏。如再加一种贺点形的发:共阴和共阳构造的LED显光管在显示屏的右下角作

13、为显示小数点用,则构成八段LED显示屏。它能显示多种数字及部份英文字母。LED显示屏有两种不同的形式:一种是8个发光二极管的阳极都连在一起的,称之为共阳LED显示屏;另一种是8个发光二极管的阴极都连在一起的,称之为共阴LED显示屏图3-5 STC89C52复位电路3.5 键盘设计 本设计就采用行列式键盘。2和4,1和3各为一对通断按钮。本设计使用2和4引脚。各行2引脚相串联分别连接单片机的P1.0-P1.4引脚。各列4引脚相串联分别连接单片机的P1.5-P1.7引脚。图3-6 键盘整体模框图3.6 蜂鸣器模块蜂鸣器驱动电路涉及三个部分:三极管、蜂鸣器、限流电阻。蜂鸣器为发声元件,在其两端施加直

14、流电压(有源蜂鸣器)就可以发声。三极管Q1起开关作用,其基极的低电平使三极管饱和导通,使蜂鸣器发声;而基极高电平则使三极管关闭,蜂鸣器停止发声。图3-7 蜂鸣器电路 4 系统软件设计4.1 主程序模块本系统软件设计由主程序、初始化程序、数码管显示程序、键盘扫描程序、键功能程序、密码设立程序、EEPROM读写程序和延时程序等构成。N Y Y开始系统初始化、密码设立输入密码、按键辨认对的?密码比较 开门、数码管显示、铃音提示 终 止数码管显示、报警清除密码 图4-1 主程序的流程图4.2 软件调试在硬件支持的环境下,用proteus设计好的电路,Keil编好的程序编译成芯片可辨认的hex文献,运用

15、PC机写进proteus程序图芯片内进行仿真测试,并对其浮现的错误进行修改。5 系统制作及调试5.1 焊接注意事项LCD的注意事项:(1)焊接LCD基板时,将其小心、平衡地插入万用板插孔焊接,以避免损坏基板也比较美观。(2)焊接时,基板不适宜长时间置于焊锡蒸汽中,焊接时间保持在10秒以内。(3)显示屏表面保护膜直到焊接完毕再揭掉,以免污染显示屏表面。单片机焊接注意事项:STC89C52单片机芯片相比较而言是脆弱的,因此需要使用芯片底座,一切焊接结束之后下载好程序再把单片机插入底座。其她的电子器件焊接注意事项:5.2 硬件调试问题及解决措施本设计在焊接调试时遇到的问题以及解决措施:数码管显示屏焊

16、接时的问题:(1)接通电源后,Lcd显示不亮,调节电路之后,显示亮度合适。(2)接通电源后不能正常运营,推断也许是程序浮现问题。重新下载程序,可以运营。6 结论我们刚开始决定做这个课题时,感觉对此摸不透头绪,可以说是一头雾水,毫无经验可言。题目拟定后来开始做这个设计。我们小组先是进行了收集资料,选择方案,拟定要用到的器件然后手工绘制简朴的原理图以及编写程序。之后我们分工合伙,一人主攻对各个器件的原理、功能以及器件各引脚的分布、作用。一人主攻熟悉仿真软件和程序编译、下载。一人主攻实物焊接。虽然各有主攻方向但遇到问题时仍然是互相探讨商量。在做课程设计的过程中原理图绘制颇费了点劲但最后还是做到了,理

17、论上可以实现。接下来是焊接部分,这块完毕的不久,只是在显示焊接上有点问题,经调节之后,可正常运营。通过这次的课程设计,发现自己对于编程这块欠缺太多,对C理解和运用不够深。而在原理图和焊接方面比较纯熟,遇到的问题可以解决。也明白做一件事需要耐心和知识,再者就是查资料和合伙。细心的坚持下去就可以做到想做的事。在后来的学习工作中仍然需要努力,加油向上。参照文献1 何宏.单片机原理与接口技术.M北京:国防工业出版社. .07. 10502 谢宜仁.单片机实用技术问答.M北京:人民邮电出版社.02. 801213 梁丽.电子密码锁的计算机仿真设计.M 北京:国防工业出版社. . 45804 赵益、徐晓林

18、、周振峰.电子密码锁的系统原理.M北京:清华大学出版社. .15.10145 房小翠、王金凤.单片机实用系统设计技术.M北京:国防工业出版社. 1999.06 .601286 张培仁.基于C语言编程 MCS-51单片机原理与应用.M北京: 清华大学出版社. .12.901607 龚运新.单片机C语言开发技术.M清华大学出版社. . 10. 5297附录1:实物图附录2:元件清单序号名称规格数量1线路板单面pcb板12按键12*1213数码管4位24电阻4.7K95电阻1K26电阻10K17排阻1k18三极管901299蜂鸣器110单片机STC89C52111电解电容10uf112瓷片电容30p

19、f213瓷片电容分104214集成电路插座40脚115晶振12m116发光二极管LED117按键6*612附录3:电路原理图附录4:程序#include unsigned char wl=1,2,3,4,5,6; unsigned char code wl1=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f;/扫描 unsigned char code wl2=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40,0x73,0xff;

20、 /数码管显示数字部分unsigned char code wl8=0x00,0x00,0x77,0x3f,0x77, 0x77,0x79,0x5b;/数码管显示2errorunsigned char code wl9=0x00,0x00,0x3f,0x38,0x38, 0x79,0x76,0x06;/数码管显示1hellounsigned char wl38=18,16,16,16,16,16,16,16; unsigned char wl4; unsigned char wl5; unsigned char wl6; unsigned char wl7;unsigned char zw;u

21、nsigned char zq; unsigned char wl7count; unsigned char wllen=6; unsigned char getwl6; bit wl7overflag; bit errorflag; bit rightflag; unsigned int second3; unsigned int aa,bb; unsigned int cc; bit wl8flag; bit alarmflag; bit hibitflag; unsigned char wl8a,wl8b; void main(void) unsigned char i,j; TMOD=

22、0x01; TH0=(65536-300)/256; TL0=(65536-300)%256; TR0=1; ET0=1; EA=1; while(1) /键盘输入部分 P3=0xff; P3_4=0; wl6=P3; wl6=wl6 & 0x0f; if (wl6!=0x0f) for(i=10;i0;i-) for(j=248;j0;j-); wl6=P3; wl6=wl6 & 0x0f; if (wl6!=0x0f) wl6=P3; wl6=wl6 & 0x0f; switch(wl6) case 0x0e: wl7=12; break; case 0x0d: wl7=13; break

23、; case 0x0b: wl7=14; break; case 0x07: wl7=15; break; wl6=P3; /P1_1=P1_1; if(wl7=0) & (wl710) if(wl7count6) wl7count=6; wl7overflag=1;/wl7 overflow else if(wl7=12)/delete wl7 if(wl7count0) wl7count-; getwlwl7count=0; wl3wl7count+2=16; else wl7overflag=1; else if(wl7=15)/enter wl7 if(wl7count!=wllen)

24、 errorflag=1; rightflag=0; second3=0; else for(i=0;i0;i-) for(j=248;j0;j-); wl6=P3; wl6=wl6 & 0x0f; if (wl6!=0x0f) wl6=P3; wl6=wl6 & 0x0f; switch(wl6) case 0x0e: wl7=11; break; case 0x0d: wl7=3; break; case 0x0b: wl7=6; break; case 0x07: wl7=9; break; wl6=P3; /P1_1=P1_1; if(wl7=0) & (wl710) if(wl7co

25、unt6) wl7count=6; wl7overflag=1;/wl7 overflow else if(wl7=12)/delete wl7 if(wl7count0) wl7count-; getwlwl7count=0; wl3wl7count+2=16; else wl7overflag=1; else if(wl7=15)/enter wl7 if(wl7count!=wllen) errorflag=1; rightflag=0; second3=0; else for(i=0;i0;i-) for(j=248;j0;j-); wl6=P3; wl6=wl6 & 0x0f; if

26、 (wl6!=0x0f) wl6=P3; wl6=wl6 & 0x0f; switch(wl6) case 0x0e: wl7=10; break; case 0x0d: wl7=2; break; case 0x0b: wl7=5; break; case 0x07: wl7=8; break; wl6=P3; /P1_1=P1_1; if(wl7=0) & (wl710) if(wl7count6) wl7count=6; wl7overflag=1;/wl7 overflow else if(wl7=12)/delete wl7 if(wl7count0) wl7count-; getwlwl7count=0; wl3wl7count+2=16; else wl7overflag=1; else if(wl7=15)/enter wl7 if(wl7count!=wllen) errorflag=1; rightflag=0; second3=0; else for(i=0;iwl7count;i+) if(getwli!=wli) i=wl7count; errorflag=1; rightflag=0; second3=0; goto a3; errorflag=0;

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!