电子密码锁的设计.doc

上传人:laozhun 文档编号:3989170 上传时间:2023-03-30 格式:DOC 页数:26 大小:665.50KB
返回 下载 相关 举报
电子密码锁的设计.doc_第1页
第1页 / 共26页
电子密码锁的设计.doc_第2页
第2页 / 共26页
电子密码锁的设计.doc_第3页
第3页 / 共26页
电子密码锁的设计.doc_第4页
第4页 / 共26页
电子密码锁的设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《电子密码锁的设计.doc》由会员分享,可在线阅读,更多相关《电子密码锁的设计.doc(26页珍藏版)》请在三一办公上搜索。

1、课 程 设 计 说 明 书题目:基于单片机的密码锁设计二级学院年级专业学 号学生姓名指导教师教师职称讲师目 录目 录1第1章 系统整体方案设计11.1 设计目标11.2 主控部分的选择1第2章 硬件系统设计32.1 系统芯片介绍22.1.1单片机AT89C51功能介绍22.1.2存储芯片AT24C02介绍22.2 硬件电路设计22.2.1 晶振电路2第3章 软件程序设计43.1 主程序流程图63.2 按键软件设计63.2.1 按键功能程序流程图63.3 密码设置软件设计73.3.1 密码设置程序流程图73.4 开锁软件设计83.4.1 开锁程序流程图8第 4 章 系统仿真、调试及结论114.1

2、 Proteus软件简介94.2 进入 Proteus ISIS104.3 工作界面104.4 各模块的电路图及说明124.4.1 电子密码锁系统主模块AT89C51单片机124.4.2 电子密码锁系统的键盘模块124.4.3 电子密码锁系统的显示模块134.4.4 电子密码锁系统的晶振复位电路134.4.5电子密码锁系统的掉电存储及报警电路144.4.6程序仿真144.4.7 程序14致 谢21参考文献22第1章 系统整体方案设计1.1 设计目标本设计采用AT89C51单片机为主控芯片,结合外围电路矩阵键盘、液晶显示器LCD1602和密码存储AT24C02等部分组成。其中矩阵键盘用于输入数字

3、密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,组成的电子密码锁系统,能够实现:(1)、总共可以设置8位密码,每位密码值范围为1-8;(2)、用户可以自行设定和修改密码;(3)、每个密码按键时都有声音提示;(4)、若键入的8位开锁密码不完全正确时,则报警5s;(5)、密码连续错3次要报警1min,期间输入密码无效;(6)、密码输入正确才能开锁,开锁时有1s的提示音;(7)、密码键盘上只允许有8个密码按键。锁内有备用电池,只有内部上 电复位

4、时才能设置或修改密码,因此,仅在门外按键是不能修改或设 置密码的;(8)、密码设定完毕后要有2s的提示音。主控芯片输入电路显示电路存储模块输出电路晶振电路系统整体设计框图1.2 主控部分的选择选用单片机作为系统的核心部件,实现控制与处理的功能。单片机具有资源丰富、速度快、编程容易等优点。利用单片机内部的随机存储器(RAM)和只读存储器(ROM)及其引脚资源,外接液晶显示(LCD),键盘输入等实现数据的处理传输和显示功能,基本上能实现设计指标。第2章 硬件系统设计2.1 系统芯片介绍2.1.1单片机AT89C51功能介绍AT89C51是51系列单片机的一个型号,它是Atmel公司生产的。AT89

5、C51是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用STC公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的STC89C52单片机可提供许多较复杂系统控制应用场合。2.1.2存储芯片AT24C02介绍AT24C02是美国Atmel公司的低功耗CMOS型EPROM,内含2568位存储空间,具有工作电压宽(2.55.5 V)、擦写次数多(大于10000次)、写入速度快(小于10 ms)、抗干扰能力强、数据不易丢失

6、、体积小等特点。而且他是采用了IC总线式进行数据读写的串行器件,占用很少的资源和I/O线,并且支持在线编程,进行数据实时的存取十分方便。AT24C02中带有的片内地址寄存器。每写入或读出一个数据字节后,该地址寄存器自动加1,以实现对下一个存储单元的读写。2.2 硬件电路设计本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。其中矩阵键盘用于输入数字密码和进行各种功能的实现。由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警。2.2.1 晶振电路AT89C51

7、引脚XTAL1和XTAL2与晶体振荡器及电容C2、C1按图所示方式连接。晶振、电容C2C3及片内与非门(作为反馈、放大元件)构成了电容三点式振荡器,振荡信号频率与晶振频率及电容C1、C2的容量有关,但主要由晶振频率决定,范围在033MHz之间,电容C2、C3取值范围在530pF之间。根据实际情况,本设计中采用12MHZ做系统的外部晶振。电容取值为20pF。晶振电路原理图2.2.2存储电路存储电路AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IC总线

8、接口进行操作,有一个专门的写保护功能。采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10Ua(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。 2.2.3 键盘输入电路由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个4*3键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。键盘的每个按键功能在程序设计中设置 。其大体功能(

9、看键盘按键上的标记)及与单片机引脚接法如图所示:键盘输入原理图2.2.4 显示电路为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。只有按下键盘上的开启按键后,显示器才处于开启状态。同理只有按下关闭按键后显示器才处于关闭状态。否则显示器将一直处于初始状态,当需要对密码锁进行开锁时,按下键盘上的开锁按键后利用键盘上的数字键1-8输入密码,每按下一个数字键后在显示器上显示一个F,输入多少位就显示多少个F。当密码输入完成时,按下确认键,如果输入的密码正确的话, LCD子显示“RIGHT”,单片机其中P2.0引角会输出低电平,使三极管T2导通,电磁铁吸

10、合,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“ERROR”,P2.0输出的是高电平,电子密码锁不能被打开。通过LCD显示屏,可以清楚的判断出密码锁所处的状态 。1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm其显示部分引脚接口如图所示:显示电路原理图2.2.5 报警电路报警部分由陶瓷压电发声装置及外围电路组成,加电后不发声,当有键按下时,“叮”声,每按一下,发声一次,密码正确时,不发声直接开锁,当密码输入错误时,单片机的P2.1引脚为低电平,三极管T3导喇叭

11、发出噪鸣声报警。如图所示:报警电路原理图2.2.6 开锁电路通过单片机开锁执行机构,电路驱动电磁锁吸合,从而达到开锁的目的。其原理如图所示。电磁锁单片机微控制器开锁驱动电路返回NY密码正确?密码锁开锁机构示意图当用户输入的密码正确时,单片机便输出开门信号,送到开锁驱动电路,然后驱动电磁锁,达到开门的目的。其实际电路如图所示。电路由驱动和开锁两级组成。由D1、R12、Q1组成驱动电路,其中Q1可以选择普通的小功率三极管如8050、9018都可以满足要求。D1是开锁指示灯;由D2、C5组成开锁。其中D2、C5是为了消除电磁锁可能产生的反向高电压以及可能产生的电磁干扰。电磁锁的选用要视情况而定,但是

12、吸合力要足够且有一定的余量。第3章 软件程序设计本系统软件设计由主程序、初始化程序、LCD显示程序、键盘扫描程序、键功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。3.1 主程序流程图如图所示为主程序流程图,开始接上电源,程序进行初始化设置,然后在键盘上输入密码,此系统进行键盘扫描,密码正确,开锁成功,密码错误3次出错报警,选择是否修改密码,若要修改密码,先输入旧密码密码,密码正确后设置新密码,错误时报警,需要两次确认新密码,确认后,密码修改成功,否则结束最终返回。然后启动程序,进行保护,再次在键盘上输入密码,系统进行扫描,如果和之前一样,则执行相同程序,如不是,则执行另一种程序

13、。开开始 开始始初始化次数加1输入密码密码正确?返返回回NYY开锁程序开锁?N修改密码?次数3?报警程序修改程序YNNY开始返回主程序流程图3.2 按键软件设计3.2.1 按键功能程序流程图如图为按键功能流程图,在按键当中,有与输入、开锁、清除、设置、确认的程序相对应的按键,并按顺序与输入的数相比较,当输入正确时,进入密码程序,错误时进行清除,输入两次新密码正确时,可进行重新设置密码,最后确认程序。开开始始键值输入?键值开锁?键值清除?键值设置?键值确认?密码输入程序设置程序清除程序开锁程序确认程序YYYYYNNNN返回N开始返回按键功能流程图3.3 密码设置软件设计3.3.1 密码设置程序流

14、程图如图为密码设置流程图,开始按下设置键,输入旧密码,如果错误累计三次,进行报警程序。如输入正确,可以修改密码,确认后再次输入新密码,如两次输入一样,则更改成功。如果两次输入的新密码不一样,则修改密码失败,重新返回设置新密码。输入旧密码N按下设置键开始开始所输入旧密码正确?输入次数加1报警程序N返返回回次数3?输新密码Y再次输新密码Y设设置置成功NY两次新密码输入相同?开始返回设置成功密码设置流程图3.4 开锁软件设计3.4.1 开锁程序流程图如图为开锁流程图,开始时按开锁键,输入密码,如果输入正确,则开锁成功。如果输入错误累计达到三次,则执行报警程序。初始化按开锁键输入密码按确认键所输入密码

15、正确?Y开锁开锁开始输入次数加1次数3?报警程序返回返NYN开始开锁返回开锁流程图第 4 章 系统仿真、调试及结论4.1 Proteus软件简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和数字电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:6

16、8000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和电路分析于一身的仿真软件,功能极其强大。本章介绍Proteus ISIS软件的工作环境和一些基本操作。4.2 进入 Proteus ISIS双击桌面上的ISIS 6 Profess

17、ional图标或者单击屏幕左下方的“开始”“程序”“Proteus 7.2 Professional” “ISIS 7.2 Professional”,出现如图所示Proteus启动时的屏幕4.3 工作界面Proteus ISIS的工作界面是一种标准的Windows界面,如图所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。Proteus ISIS的工作界面运行Proteus程序后,进入软件的主界面。通过左侧工具栏中的P(从库中选择元件命令)命令,在Pick Devices 左侧窗口中选择所

18、需元件的关键字,然后放置元件并调整方向和位置以及参数设置,进行连线。最后载入hex文件后可以进行模拟仿真,可以全速运行也可以单步调试运行。Keil51界面在利用Proteus进行仿真的条件下,通过不停的调试与改正,显示屏LCD1602不能显示任何内容,最后还是不能实现密码锁的功能,其Proteus仿真如图所示。Proteus仿真图4.4 各模块的电路图及说明4.4.1 电子密码锁系统主模块AT89C51单片机 电子密码锁系统主模块AT89C51单片机在软件中的图如图所示:AT89C51单片机引脚图4.4.2 电子密码锁系统的键盘模块 电子密码锁系统的键盘模块在软件中的图如图所示:键盘输入模块4

19、.4.3 电子密码锁系统的显示模块电子密码锁系统的显示模块在软件中如图所示:密码显示模块4.4.4 电子密码锁系统的晶振复位电路电子密码锁系统的晶振复位电路在软件中的图如图所示:晶振及复位电路4.4.5电子密码锁系统的掉电存储及报警电路电子密码锁系统的掉电存储及报警电路在软件中的图如图所示:报警电路 4.4.6程序仿真4.4.7 程序#includesbit p1_0=P10;sbit p1_7=P17;Unsigned char led_tab8=0xff,0xff,0xff,0xff,0xff,0xff,0x86,0x8c;unsigned char code led_pos8=0xfe,

20、0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char key6=1,2,3,4,5,6;unsigned char in_key6=0,0,0,0,0,0;unsigned char key_num;void delay_nms(unsigned int n) unsigned int i,j; for(i=0;in;i+); for(j0;j123;j+);void beep(void) unsigned char i; for(i=0;i200;i+) p1_7=p1_7; delay_nms(50); void open(void) unsig

21、ned char i; p1_0=0; for(i=0;i200;i+) delay_nms(1000); p1_0=1;void display(void) unsigned char i; for(i=0;i8;i+) P0=0xff; P2=led_posi; P0=led_tabi; delay_nms(2); unsigned char key_scan(void) unsigned char temp; P3=0xf0; delay_nms(1); temp=P30xf0; switch(temp) case 0x10:key_num=0; break; case 0x20:key

22、_num=1; break; case 0x40:key_num=2; break; default:break; P3=0x0f;delay_nms(1);temp=P30x0f;switch(temp) case 0x01:key_num+=0;break; case 0x02:key_num+=3;break; case 0x04:key_num+=6;break; case 0x08:key_num+=9;return(key_num);void shiftl(void) led_tab5=led_tab4; led_tab4=led_tab3; led_tab3=led_tab2;

23、led_tab2=led_tab1; led_tab1=led_tab0; led_tab0=0xbf;void shiftr(void) led_tab0=led_tab1; led_tab1=led_tab2; led_tab2=led_tab3; led_tab3=led_tab4; led_tab4=led_tab5; led_tab5=0xff;int main(void) unsigned char key_cnt=0; p1_0=1; while(1) display( );P3=0xf0;if(P3!=0xf0) key_num=key_scan( ); if(key_num=

24、0x0a) if(key_cnt=0) P0=0xff; beep( );else shiftr(); key_cnt-; while(P3!=0x0f) display(); else if(key_num=0x0b) while(P3!=0x0f) display( ); if(in_key0=key0)&(in_key1)&(in_key2=key2)&(in_key3=key3)&(in_key4=key4)&(in_key5=key5) P0=0xff;open( );led_tab0=0xff; led_tab1=0xff;led_tab2=0xff;led_tab3=0xff;l

25、ed_tab4=0xff;led_tab5=0xff;led_tab6=0x86;led_tab7=0x8c;key_cnt=0; else P0=0xff;beep( );led_tab0=0xff; led_tab1=0xff;led_tab2=0xff;led_tab3=0xff;led_tab4=0xff;led_tab5=0xff;led_tab6=0x86;led_tab7=0x8c;key_cnt=0; else if(key_cnt=6)P0=0xff;beep( );led_tab0=0xff; led_tab1=0xff;led_tab2=0xff;led_tab3=0xf

26、f;led_tab4=0xff;led_tab5=0xff;led_tab6=0x86;led_tab7=0x8c;key_cnt=0;else shiftl( ); in_keykey_cnt=key_num; key_cnt+;while(P3!=0x0f) display( ); return 0;致 谢在这大学的最后一页里,我要感谢的人很多,首先要感谢我的指导老师刘丹娟老师为我指点迷津,帮助我开拓研究思路,虽然刘丹娟老师平日里工作繁多,但在我做课程设计的每个阶段,都给予我悉心的指导和帮助,关心我每个阶段所做的工作。当然,还要感谢寝室的兄弟们在我完成论文的过程中给予我的帮助和鼓励,也是他

27、们陪我度过这三年的生活。现在即将挥别我的学校、老师、同学,还有我的大学生活,虽然依依不舍,但是对未来的路,我充满了信心。最后,感谢在大学期间认识我和我认识的所有人,有你们伴随,才有我大学生活的丰富多彩,绚丽多姿!参考文献1 陈志旺 李亮.51单片机快速上手【J】.机械工业出版社. 20092 黄惟公 单片机原理与应用技术【J】.西安电子科技大学出版社. 20123 倪志莲 单片机系统设计与制作【J】.机械工业出版社.2004新余学院课程设计(论文)任务书二级学院:机械工程学院 学 号学生姓名专业(班级)设计题目基于单片机的密码锁设计设计技术参数(1)、总共可以设置8位密码,每位密码值范围为1-

28、8;(2)、用户可以自行设定和修改密码;(3)、每个密码按键时都有声音提示;(4)、若键入的8位开锁密码不完全正确时,则报警5s;(5)密码连续错3次要报警1min,期间输入密码无效;(6)密码输入正确才能开锁,开锁时有1s的提示音;(7)密码键盘上只允许有8个密码按键。锁内有备用电池,只有内部上电复位时才能设置或修改密码,因此,仅在门外按键是不能修改或设置密码的;(8)密码设定完毕后要有2s的提示音。设计要求1、 用proteus软件实现仿真。2、 写出不少于4000字的课程设计报告。工作量一周工作计划11月24号上午,指导老师进行课程设计安排,讲解具体要求。11月24号下午-11月25号,

29、学生到图书馆查阅资料,并形成初步设计思路。11月25-26号在单片机实验室进行电路设计、软件编程和课程设计报告的书写。11月27号上午完善阶段。11月28号下午答辩。参考资料1 李华,王思明,张金敏,单片机原理及应用.兰州:兰州大学出版社,2001:11-120.2 顾滨,单片微计算机原理开发与应用.北京:高等教育出版社,2000:67-81.3 李广弟,单片机基础.北京:北京航空航天大学出版社,1994:45-56.4康华光,电子技术基础数字部分(第四版) 北京:高等教育出版社出版指导教师签字刘丹娟教研室主任签字说明:此表一式叁份,学生、指导教师、二级学院各一份。2014年11 月 23日 新余学院课程设计评审意见表指导教师评语:成绩: 指导教师: 年 月 日答辩小组评语:成绩: 评阅人: 年 月 日课程设计总成绩:答辩小组成员签字:年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号