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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

电子科技学院课程设计论文文档格式.docx

1、 随着人们生活水平的提高,如何进行防盗这一问题变得尤为突出,传统的机械锁由于其构造简单,被撬的事件屡见不鲜。电子锁由于其保密性高,使用灵活性好,安全系数高,更具人性化等特点得到迅速的推广。 电子锁,它也是以51系列单片机为核心,利用单片机的编程来操纵单片机IO口电平的准确变化,不但能够实现差不多的密码锁功能,还能够进行密码的存储。假如在要求较高的情况还能够利用通信功能来实现远程通信,从而达到远程操纵的功能。再配以相应硬件电路,完成密码的设置、存贮、识别和显示、报警信号等功能。单片机接收键入的密码,并与存贮在EEPROM中的密码进行比较,假如密码正确,那么点亮led灯模拟开锁;假如密码不正确,那

2、么同意操作人员重新输入密码,最多可输入三次;假如三次都不正确,那么会发出报警声,同时关闭显示锁死,假如要是不记得了密码后,锁将不能够再打开,就只能通过往24C02中重新写入程序,从而达到恢复初始的值,也不至于因为密码的不记得而是电子锁报废。1.1显示模块选择方案与论证 方案一:用led数码管显示,价格相对来说较廉价一些,能够降低成本,且驱动程序简单。但硬件连接会相对复杂,同时数码管只能进行数字和简单的字母显示,不能很到位的显示出要显示的内容。 方案二:用1602液晶显示,价格比方案一要略微的高一些,驱动程序也相关于更加的复杂些。但能够很好的显示字符。 因此为了达到一个更好的显示效果,因此选择了

3、第一种显示方法。1.2输入模块选择方案与论证 方案一:用独立按键进行输入,编写程序是程序比较简单但较啰嗦,会浪费许多IO口。用矩阵键盘进行输入,矩阵键盘的扫描程序理解起来要困难一点,但能够节省IO口。因此选择第二方案,更加的合适一些。2.3电路设计最终方案确定综以上所述:选择以矩阵键盘作为输入,1602作为显示的方案。第二章:主操纵器与外围器件2.1 STC89C52单片机 ST89C52是一种低功耗、高性能CMOS 8位微操纵器,与工业80C51产品指令和引脚完全兼容。并具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位

4、定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,ST89C52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,同意RAM、定时器/计数器、串口、中断接着工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.2 AT24C02 2.2.1 AT24C02是采纳I2C总线标准的常用串行EEPROM存储芯片,AT24C02它具有2Kbits的存储容量,有一个8字节的页写缓冲器,有专门的写保护功能。图1.直插封装引脚图 表1.引脚功能表3.2.1 AT24C02的读写操作图2.读时

5、序字节写时序入AT24C02的那一个字节。主机在收到从机另一个应答信号后,再发送数据到其内部字节地址说明的存储单元。AT24C02再次应答,并在主机产生停止信号后开始内部数据的擦写。在内部擦写的过程中,AT24C02不对主机有任何的请求。图3.页写时序图4.马上地址读时序图5.选择性读时序选择性读。选择性读操作同意主机对24C02寄存器的任意字节进行读操作。主机首先通过发送起始信号、从机地址和它想读取的字节数据的地址、执行一个伪写操作。在24C02应答之后,主机重新发送起始信号和从机地址,如今R/W位置1,24C02响应并发送应答信号,然后输出所要求的一个8字节数据,主器件不发送应答信号但产生

6、一个停止信号。图6.连续读时序图7.AT24C02的连接电路2.31602液显2.3.1引脚功能说明第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时能够通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择, RS=1:选择数据寄存器,RS=0:选择指令寄存器。第5脚:R/W为读写信号线, 当RW=1:时进行读操作,RW=0:时进行写操作。 当RS=RW=0能够写入指令或者显示地址, 当RS=0,RW=1时能够读忙信号, 当RS=1,R/W=0:时能够写入数据。第6脚:E端为使能端, 当E端由高电平跳变成低电平时,液晶模块执行

7、命令。图8.1602显示电路3.3.2指令说明表2.1602指令功能表1指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,I/D=1:右移,I/D=0:左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平那么无效。指令4:显示开关操纵。D:操纵整体显示的开与关 D=1:表示开显示,D=0:表示关显示C:操纵光标的开与关 C=1:表示有光标,C=0:表示无光标B:操纵光标是否闪烁 B=1:闪烁,B=0:不闪烁。指令5:光标或显示移位 S/C=1:时移动显示的文字,S/C=0:时移动光标。指

8、令6:功能设置命令DL: DL=1:为4位总线,DL=0:为8位总线 N=0:单行显示,N=1:双行显示 F=0:显示5x7的点阵字符,F=1:显示5x10的点阵字符。表3.1602功能指令表2指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,BF=1:表示忙,如今模块不能接收命令或者数据,BF=0:表示不忙。指令10:写数据。指令11:读数据。2.3.3读写操作时序图图9.读操作时序图图10.写操作时序图2.3.4初始化常用指令写指令38H:显示模式设置设置16X2显示5X7点阵,8位数据接口。写指令08H:显示关闭写指令01H:显示清

9、屏写指令06H:显示光标移动设置写一个字符后地址指针加1写指令0CH:显示开及光标设置2.4矩阵键盘矩阵键盘和独立按键的接法有很大的区别,但它们扫描的方法在本质上是一样的。独立按键是通过一端接地,通过单片机去扫描判断是否有按键按下。如检测到有IO端口为低时,那么说明有按键按下。而矩阵键盘上面的按键两端分为行和列都接在单片机上,是通过人为的让其一端行或列为高或为低来进行扫描,再反操作列或行。在通过列和行的总体情况判断是否有按键按下。矩阵键盘的电路连接图如下:图11.矩阵键盘电路连接图2.5其他外围电路2.5.1单片机复位电路图12.复位电路在系统运行的过程中,有时可能对系统需要进行复位,为了幸免

10、对硬件系统经常加电和断电造成的损害,设计了手动的复位电路。如下图。这种电路的设计,在系统的运行过程中需要复位时,只需使开关闭合,在RST端就会出现一定时间的高电平信号,从而使单片机实现复位。3.5.2单片机晶振电路图13.晶振电路单片机必须在时钟的驱动下才能进行工作。MCS-51系列单片机内部都有一个时钟振荡电路,只需外接晶振源,就能产生一定频率的时钟信号送到单片机的内部的各个单元,决定单片机的工作速度。如图确实是内部时钟工作方式的电路图,这是一种常用的方式。这种方式是外界振荡源,本设计就采纳这种外接晶振的方法。电路中的两个电容的作用有两个:一是关心振荡器起振C1C2的值大,起振的速度慢;反之

11、,速度快。;二是对振荡器的频率起到微调的作用C1C2的值大,频率略有减少,反之,频率略有提高。C1C2的值采纳20pF。2.5.3提示电路图14.提示电路提示电路要紧由蜂鸣器报警电路和led灯指示电路组成。当密码输入正确时,蜂鸣器发出滴的一声,当密码输入错误的时候蜂鸣器发出短暂23秒的延时的报警声,当密码输入错误超过三次以上时蜂鸣器发出较长的报警声。Led灯是用来指示模拟锁的状态的,led亮了代表锁是打开状态,相反的灯不亮的话确实是代表锁是关闭状态。第三章功能与程序流程图3.1软件功能简述1、密码更改功能:首先,系统应该有一个默认的初始密码(123456),这是在开机的时候就差不多自己拥有的。

12、更改功能要紧是为了满足需要,自行对初始密码进行修改。该功能要做的确实是将新输入的密码作为新的密码。必须实在锁关闭的状态下2、密码输入功能:用户输入密码。该功能要做的确实是将输入的密码与原始的密码进行一个对比,假如一致的话就开锁。3、取消功能:要紧用于在误输后能够即使的取消并更改。4、断电密码保护:将输入的密码存储在24C02中,当断电后再次上电时将密码读出来。就能保证原来的密码的不丢失。5、LCD显示功能:当进行某一项操作后,LCD上有提示字符,同时LED闪烁提示(要紧是为了模拟锁的开与关),蜂鸣器开始产生相应的声音。3.2恢复原始密码程序在使用的过程中难免会有不记得密码,或者是因为操作方法不

13、对导致密码错乱的时候,因此我们制作了一个能够恢复初始值123456的函数类似于常常说的刷机。如此就能够就更更句人性化一点,不至于使整个东西不能再用。#include“AT24C02.h”ucharpassword16=1,2345600;voidmain()for(i=0;i16;i+)writeadd(23,passwordi)3.3功能操作说明板子上的纸片是作为提示作用的,用于显示按键的功能。一上电之后能够直截了当输密码,也能够更改密码需要在闭锁的状态下进行。改密码需要之前的密码,只有在原始密码输入正确的前提下才能输入新的密码,假如三次不正确那么会关闭系统同时蜂鸣器会进行报警。具体的操作能

14、够按照显示提示进行。按键的操作能够参照附录1中的按键功能分配图示。3.4主函数流程图图15.主函数流程图致谢首先我们要感谢刘清华老师的大力关心和支持。在整个电子设计和论文设计过程当中,为我的课程设计带来了很大关心,从论文设计的选题,构思到最后定稿以及后续的修改校正的各个环节给予细心的指导,使我得以最终完成论文设计。同时在我们完成课程设计的过程中提供了许多指导性的意见,使我们受益匪浅。在此,我衷心感谢刘老师给予我的关心和教育。此外,衷心感谢我们小组的其他成员以及所有对本课题的研究设计和论文撰写有过关心的同学,因为有大伙的共同努力才使得本次课程设计能够实顺利的完成,大伙都辛苦了。参考文献1郭天祥.

15、51单片机C语言教程.电子工业出版社2 谭浩强.C程序设计.清华大学出版社3陆旭明.单片机设计应用和仿真.北京大学出版社4王振红、张常年.综合电子设计和实践.清华大学出版社5朱春平.单片机应用技术.中国劳动社会保障出版社6刘守义.单片机应用技术.西安电子科技大学出版社7李全利.单片机原理和应用技术.高等教育出版社8华成英、童诗白.模拟电子技术基础.高等教育出版社9谢嘉奎.电子线路.高等教育出版社10求是科技.单片机典型模块设计实例导航.人民邮电出版社附录1物料清单与按键分布图示元件名称数量16021块STC89C521片按钮按键17个瓷片电容2个AT24C02极性电容1个10uf电阻假设干三极

16、管1个pnp蜂鸣器1个Led灯1个红万能板USB线1根单行排座表4.物料清单48退格159确认26关锁输入37未用改密表5.按键分布附录2AT24C02驱动程序#ifndef_24C02_h_ #define_24C02_h_#defineucharunsignedchar#defineuintunsignedintsbitSDA=P26;sbitSCL=P27;/*微秒级延时,用于I2C总线操作*/voiddelays();/*延时函数*/voiddelayms(uintxms)uinti,j;xms;for(j=0;j121;j+);/*总线初始*/voidinits()SCL=1;del

17、ays();SDA=1;/将数据线和时钟线都拉高来释放总线/*起始信号*/voidstart()SDA=0;/*停止信号*/voidstop()/*应答信号*/voidrespons()uchari; /等待SDA拉低,拉低后那么不成立,while(SDA=1)&(i250)i+;/否那么一直等到一定时间后默认应答SCL=0;/*写一个字*/voidwritebyte(uchardat)uchari,temp;temp=dat;8; SCL=0; /低电平,使数据能过发生改变 temp=temp1; SDA=CY; /将数据传给数据线 delays(); SCL=1; /高电平时,数据稳定,写

18、数据 delays(); /数据线在不用的情况下将其释放/*读一个字*/ucharreadbyte()uchari,k; SDA=1; for(i=0; SCL=1; k=(k1|SDA); SCL=0; delays(); returnk;/*往AT24C02里面写数据*/voidwriteadd(ucharaddress,uchardate)start();writebyte(0xa0); /写地址并说明接下来的确实是写操作respons();writebyte(address);writebyte(date);stop();/*ucharreadadd(ucharaddress)/读数据

19、uchardate;writebyte(0xa1); /改变方向,需要重新进行开始,写地址并说明接下来是读操作date=readbyte();returndate;#endif附录3主函数代码#include/头文件string.h/包含字符串复制的头文件#include“24C02.h”#defineucharunsignedchar /用uchar代替unsignedchar#defineuintunsignedint/用uint代替unsignedintsbitRS=P20; /P20为数据命令选择选择sbitRW=P21; /读写标志sbitEN=P22; /使能sbitLED=P10

20、; /灯亮灭表示门开关sbitBUZ=P24; /定义蜂鸣器voidcompare(); /比较函数声明voidclr(); /清除函数声明uchary=0,key,equal=17,m=0;temp,f=0;/定义变量staticUcharpassword16=ucharbuf16=ucharclear16=/定义字符数组ucharcodeenter=“Inputapassword”;ucharcodekeys=“Enter”;ucharcodewrong=“Tryagain.”;ucharcoderight=“Thelockisopen”;ucharcodebye=“Byebye!”;uc

21、harcodenew=“newpassword”;ucharcodeinit=“initialpassword”;ucharcodesuc=“setsuccess”;/定义字符串数组voiddelay(uintx)/延时 ucharj; uinti; for(i=0;x; for(j=0;110;j+)/延时约一毫秒 ;ucharkeyscan() /键盘扫描函数,将相应的键值返回uchari,j,temp,scan=0xef,0xdf,0xbf,0x7f;4;i+) /列扫描 P3=scani;emp=0x01; j+) /行扫描 if(!(P3&temp) /判断是那一列 return(i+j*4); temp=1; return16;/写命令voidWcom(ucharinst)RS=0;/写入命令 RW=0; P0=inst; EN=1; delay(5); EN=0;/写数据voidWdata(uchardates)RS=1; P0=dates;/写入数据voidinitial()/1602初始化函数EN=0; Wcom(0x38); /两行显示,数据总线为八位。 Wcom(0x0c); /开显示器

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

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