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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

智能密码锁单片机课程设计报告书.docx

1、智能密码锁单片机课程设计报告书等级:工程学院 课 程 设 计课程名称 单片机技术与应用 课题名称 智能电子密码锁 专 业 自动化 班 级学 号姓 名指导教师 晓秀、王迎旭 2013年 12月 09日工程学院课 程 设 计 任 务 书课程名称 单片机原理与应用 课 题 智能密码锁设计 专业班级 自 动 化1191 学生 学 号 指导老师 审 批 任务书下达日期 2013年 12月 2日 任务完成日期 2013年 12月 15日设计容与设计要求设计容:本课题是要发设计一种基于单片机控制的智能电子密码锁,主要功能有:按用户使用要求可设置、修改密码,遥控或按键开锁,错误报警、显示等辅助功能。密码可设4

2、8位,并可在线修改并存储;密码输错3次应有报警信号提示,并有特殊密码解除;出开锁时外的时候,要求显示的是时间;信号可以通过继电器输出。设计要求:1)根据课题要求,确定智能电子密码锁的硬件; 2)进行系统的硬件设计;3)完成必要的参数计算与元器件选择;4)完成应用程序设计;5)进行单元电路与应用程序的调试;主 要 设 计 条 件1、MCS-51单片机实验操作台1台;2、PC机与单片机调试软件,仿真软件proteus;3、开发板1块; 4、制作工具1套;5、系统设计所需的元器件。 说 明 书 格 式封面课程设计任务书第1章 概述(课题设计的要求、目的与意义)第2章 系统总体方案选择与说明(系统硬件

3、电路设计框图与工作原理)第3章 硬件电路设计(各部分电路设计、原理、参数计算、I/O分配等)第4章 应用软件设计(流程图、算法等)*第5章 系统仿真调试第6章 硬件调试与结果分析(开发板焊接、性能测试、结果、操作说明)第7章 结束语(系统设计小结:已完成的工作、效果、特色、不足与展望)致参考文献 附录A 系统硬件电路原理图附录B 程序清单评分表进 度 安 排设计时间为两周第一周星期一、上午:布置课题任务,讲课与课题介绍 下午:借阅有关资料,总体方案讨论星期二、确定总体设计方案星期三、硬件模块方案设计星期四、软件模块方案设计星期五 小系统焊接与调试;第二周星期一、各硬件模块设计星期二、各软件模块

4、设计星期三、各软件模块设计星期四、写说明书星期五、上午:写说明书,整理资料下午:交设计资料,答辩参 考 文 献参考文献1 王迎旭等.单片机原理与与应用M 机械工业.2012年2 龚建伟、熊光明等.Visual.c.Tubor.c串口通信M 3 康华光等.模拟电子技术 第五版M 高等教育 2011年4 杜树春等.单片机C语言M 航空航天大学第1章 概述1.1 课题设计要求1.1.1 设计容:本课题是要发设计一种基于单片机控制的智能电子密码锁,主要功能有:按用户使用要求可设置、修改密码,遥控或按键开锁,错误报警、显示等辅助功能。密码可设48位,并可在线修改并存储;密码输错3次应有报警信号提示,并有

5、特殊密码解除;出开锁时外的时候,要求显示的是时间;信号可以通过继电器输出。1.1.2设计要求:根据课题要求,确定智能电子密码锁的硬件;进行系统的硬件设计;完成必要的参数计算与元器件选择;完成应用程序设计;进行单元电路与应用程序的调试;1.2 课题设计目的与意义学会灵活运用单片机,包括编程、下载和运行等,学会使用keil和protues编程和仿真。通过本次课题设计真正的掌握单片机的设计和运用技术。学会IIC虚拟总线、矩阵键盘、LCD1602的编程方法与使用第2章 系统总体设计方案与说明2.1 系统硬件设计框图根据本系统设计的要求,以STC89C52RC单片机为核心设计了LCD1602显示电路,按

6、键电路,AT24C02的IIC虚拟总线电路,蜂鸣器报警电路,指示灯显示电路,继电器模拟开锁电路。同时也包括了单片机的最小系统(复位电路、晶振电路、电源电路)。图2.1 系统结构图2.2 系统硬件工作原理系统由单片机最小系统、1602液晶显示电路、矩阵键盘按键、LED显示电路和蜂鸣器报警电路等组成本电路是由STC89C52RC单片机为控制核心,具有与8051系列单片机完全兼容的效果。51单片机为CPU,进行对外围电路的控制,当有密码输入时,检测所输入的密码是否正确,如果正确则CPU发送信号给显示电路,显示解锁信息,同时继电器打开,指示灯亮,表示解锁。如果密码错误,1602提示错误,如果输入三次密

7、码错误,则报警,同时锁住键盘。只有通过PC机才能解除警报。在解锁状态下,可以查看用户信息。当上锁时,显示时间,每次显示的时间都存入24C02,以便下次上锁继续从此时间显示,在这期间是不能输入密码的。当输入密码的时候想取消上次操作,可以按下取消键撤销。如果忘记密码,可以通过PC机初始化密码。第3章 硬件电路设计3.1 I/O端口分配表对于本系统设计的需求和图2.1的系统结构图,其端口分配如表3-1所示。 表3-1 I/O端口分配表 P0.0P0.71602 D0D7 P3.524C02 SDAP2.0P2.7矩阵键盘 P3.61602 E P3.21602 RS P3.7蜂鸣器 P3.31602

8、 RW P1.7LED和继电器 P3.424C02 SCK RXD、TXD PC串口线3.2 时钟电路设计时钟电路是采用部时钟电路,晶体频率是采用12MHZ的石英晶体,两个30pf的瓷电容谐振,机器周期为1us。分别接在单片机的18和19管脚,电路图如图3.2所示。 图3.2 时钟电路3.3 复位电路设计该系统设计是采用的按键上电复位电路,其中电阻是采用10K,22uF的电解电容,还有一个按键产生按键复位接在单片机机的第9管脚。其电路图如图3.3所示。图3.3按键上电复位电路3.4 显示电路设计本系统设计所用的是背光的液晶1602,其作用是显示用户的当前操作。LCD1602是一个16列2行的显

9、示屏。 其中数据管脚D0D7接单片机的P0P3管脚,寄存器选择管脚RS接单片机的P3.2管脚, 读写管脚R/W接P3.3,使能管脚E接P3.6。电源正极VDD和背光正极A接VCC,电源负极VSS和背光负极K接GND,对比度管脚VEE接一个电位器来调节对比度。其电路图如图3.4所示(由于仿真图的原因图中的电源管脚、电位器、背光正负极为画出) 图3.4 LCD1602液晶显示电路3.5 按键电路设计根据本系统设计的结构图,需要用到16个键,作用和功能分别为10个数字键、修改密码、查看用户信息、解锁、上锁、确定、撤销。为了节省单片机的I/O口,采用44的矩阵键盘方式,即键盘组合方式是4行4列。其中行

10、由上到下依次接P2.0P2.3,列由左到右依次接P2.4P2.7。其功能和作用如图3.5所示。图3.5 矩阵键盘按键电路 3.6 报警电路设计当密码输错三次时,系统要求产生一个报警信号,用一个蜂鸣器来实现这一功能。由P3.7引出接NPN三极管来控制三极管的导通与截止, 三极管的发射极接100的电阻。其电路图如图3.6所示。 图3.6 蜂鸣器报警电路3.7 模拟开锁电路和指示灯电路设计根据本系统设计要求要以一个继电器模拟开锁开关,当开锁的时候就可以产生一个开锁的信号,由P1.7引出接继电器,同时接一个指示灯的阴极来表示已开锁。其电路图如图3.7所示。 图3.7 继电器模拟开关电路第4章 应用软件

11、设计根据本系统设计需要实现的功能,采用了模块化编程。因此设计了主程序,还有若干子程序。其中主程序负责扫描键盘,负责对键盘的输入的命令进入子程序进行处理。所有的子程序包括判断密码子程序,上锁子程序,修改密码子程序,查看用户信息和报警子程序。 图4 软件设计总流程图 判断密码子程序的算法: 将原密码读出存在一个数组b中,也将其长度存在一个变量longth中,将输入的密码也存在一个数组a中。当按下确定键,两个数组比较是否相等。 上锁子程序算法:启用定时器中断,定时一秒变量sec加一,然后判断秒是否到60,再判断分是否到60,之后就分秒时都存入24C02的地址20,21,22当中。 修改密码子程序算法

12、:沿用判断子程序的算法,同时用变量step来记录执行到第几步。查看用户信息算法:不停的显示几个用户信息。报警子程序算法:错误三次将蜂鸣器接通,之后一直扫描是否接收到PC机解除警报的信号。4.1 主程序流程图用户输入密码,输入正确则开锁,错三次报警,接收到初始化信号则密码初始化为1234,判断是否按下了查看用户信息键,在密码输入正确的情况下观看用户信息。图如下: 图4.1 主程序流程图4.2 子程序流程框图4.2.1 判断密码子程序流程图图4.2.1判断密码子程序流程图4.2.2 上锁子程序流程图图4.2.2上锁子程序流程图4.2.3 修改密码子程序流程图图4.2.3 修改密码子程序流程图4.2

13、.4 查看用户信息子程序流程图 图4.2.4 查看用户子程序流程图4.2.5 报警子程序流程图 Y 图4.2.5 报警子程序流程图第5章 系统仿真5.1 系统仿真通过keil将源程序编译成16进制 HEX文件,再加入到C51单片机中。如下图所示。 图5.1.1 未运行时的仿真图 通过点击运行按钮之后,仿真图开始运行。图5.1.2 运行之后的仿真图第6章 硬件调试与结果分析6.1 硬件调试将keil编译生成的HEX16进制文件下载到单片机中,实物图如下 图6.1.1 正在输入密码 图6.1.3 查看用户信息 图6.1.4 修改密码输入旧密码界面 图6.1.5 修改密码输入新密码界面 图6.1.6

14、 修改密码成功界面图6.1.7 电脑初始化密码界面 图6.1.8 电脑解除警报界面6.2 系统性能与操作说明该密码锁的密码长度随用户自己设定(12位以),中间输错数字时可以撤销上次操作。在密码正确的情况下可以查看用户信息,在密码错误三次的情况下,蜂鸣器会报警,需要在电脑用正确的用户名才能解除警报。当忘记密码时,可以通过电脑用正确的用户名把密码初始化。软件程序中在设定密码的尾部加了个字符a,作为一个简单的加密工作。电源一接通,LCD1602液晶显示屏显示“Input Password” 用矩阵键盘扫描的方式进行查询按键,当按下的“确定”键,密码与所设定的密码相符合时,LCD1602显示“Unlo

15、ck”,同时继电器模拟接通,指示灯也亮表示解锁。解锁状态按下“查看用户信息键”的时候,可以循环查看用户信息。此时按下“解锁”键可以进入主界面,即输入密码的界面。按下了“修改密码”键,LCD1602显示“Old Password”,即输入旧密码,密码正确是才开始修改密码,LCD1602显示“New Password”, 两次输入一样则设置成功,LCD1602显示“Set Success”和你所设定的新密码,下次要输入的密码则需要新密码才能解锁。如果两次新密码设置不一样则表示设置不成功,LCD1602显示“Set fail”。 如果输入旧密码错误则显示“Error”,锁定键盘三秒后进入主界面。 按

16、下了“上锁”键,则LCD1602显示时间(由于缺少DS1302等时钟芯片,所以用总共上锁了多少时间来模拟显示时间)。在输入密码的过程中想取消上次所输入的一个数字时,按下“撤销”键,可以取消上次所输入的数字。如果输出三次密码则蜂鸣器报警。6.3 系统结果分析在实物的调试过程中,解除警报这个操作是我调试用的最长时间,刚开始每次解除警报之后,下次输入密码反应很慢,而且错三次之后不能准确报警,但是复位之后才能再次正确运行。因此我就想到了用软件复位,通过定义ISP_CONTR的SWRET位置1,使单片机复位,完美解决以上问题。在所有程序测试完成之后,以前还行,目前没有发现问题。第7章 系统设计总结本系统

17、可以随意修改密码(12位数字以的数字),查看用户信息,上锁显示时间,可以撤销很多上次输入。通过PC机才可以解除警报,当忘记密码时,可以用PC机初始化密码。其中程序里面的密码的后面加上字符a,从而起到一种简单的加密,以便存储的密码不再是单一的数字。本系统设计当中遇到主要问题如下解除警报。通过定ISP_CONTR的SWRET位置1,使单片机复位,完美解决问题。容易被破解密码。例如密码是1234,如果输入1234567,也能解锁。因此在程序里面自动在密码的后面加入了字符a,作为一个程序读取密码的结束标志,起到简单的加密。本系统的缺陷在与要用串口线和PC机相连,这样既不方便。希望将来能通过手机控制密码

18、锁,当错误三次时,只有用户通过 自己的手机发送短信才能解除警报和初始化密码。 参考文献参考文献1 王迎旭等.单片机原理与与应用M 机械工业.2012年2 龚建伟、熊光明等.Visual.c.Tubor.c串口通信M 3 康华光等.模拟电子技术 第五版M 高等教育 2011年4 杜树春等.单片机C语言M 航空航天大学附录A 系统硬件电路原理图附录B 程序清单/*AT24C02.c*/#include #include #include delay.h#define uchar unsigned charsbit SCL=P34; /定义串行时钟线sbit SDA=P35; /定义串行应答线voi

19、d init_24C02() /初始化24C02 SCL=1; _nop_(); /延时一个机器周期 SDA=1; _nop_();void start() SDA=1; _nop_(); SCL=1; _nop_(); SDA=0; /当时钟线为高电平时数据线拉低,AT24C02开始工作 _nop_(); SCL=0; /时钟线清零便于后续操作 _nop_();void stop() /停止信号 SDA=0; _nop_(); SCL=1; _nop_(); SDA=1; /当时钟线为高电平时,数据线拉高AT24C02停止 _nop_();void Write_Byte_24C02(ucha

20、r date) /写一个字节的数据 uchar i; for(i=0;i8;i+) /传送八位数据 date=date1; /每次传送一位 SCL=0; _nop_(); SDA=CY; _nop_(); SCL=1; _nop_(); /左移一位,将发送的最高位舍弃 SCL=0; _nop_(); SDA=1; _nop_(); /等待AT24C02的应答信号uchar Read_Byte_24C02() /读取一个字节数据 uchar i,j,result; SCL=0; _nop_(); SDA=1; for(i=0;i8;i+) /每次读取一位 _nop_(); SCL=1; _nop

21、_(); if(SDA=1) /读出高电平 j=1; else /读出低电平 j=0; result=(result0;ms-) for(i=0;i3;i+) for(j=0;j99;j+) ; void delay(unsigned char x) /x*0.14MS unsigned char i; while(x-) for (i = 0; i13; i+) /*单片码锁main.c*/#include #include #include dianzisuo.h#include 1602.h#define uchar unsigned char/sfr ISP_CONTR=0xe7; /

22、定义ISP特殊寄存器sbit Led=P10;bit Solve=0;bit ChuShi=0;bit led=0; /定义报警灯标识sbit bell=P37;sbit r=P01;uchar code t=1234a; /初始化密码为1234,a是密码的结束标志位uchar code numtable=0123456789;uchar h,fen,miao;uchar sec=0;uchar Warn=0;/*void soft_reset(void) (void (code *) (void) 0x0000) (); /程序从零开始执行*/void Bell_() uchar i=0,j

23、udge=0xff; Init_ser(); /TR0=1; while(1) /错误三次锁定键盘开始报警 bell=0; led=0; if(led) P1=(0xf0|Unlock); delay(200); delay(200); led=0; else led=1; P1=(0xff|Unlock); delay(200); delay(200); /Init_ser(); if(Solve=1) /接收到PC机发送的解除警报则解除警报 Solve=0; bell=1; Warn=0; delay(100); /延时一段时间等硬件做好准备 ISP_CONTR=0x20; /将SWRET

24、位置1,使单片机复位 /Init_Timer(); void Lock_Time() /bit Flag; uchar i,judge; uchar shi,ge; /十位和个位 Init_Timer(); /初始化时间设置 TR0=1; lcd_cmd(0x01); /清屏幕 lcd_cmd(0x0c); h=Read_24C02(20); fen=Read_24C02(21); miao=Read_24C02(22);while(1) if(miao=60) fen+; miao=0; / Flag=1; if(fen=60) h+; fen=0; /Flag=1; / Flag=0; s

25、hi=h/10; ge=h%10; lcd_cmd(0x80+4); lcd_date(numtableshi); lcd_date(numtablege); lcd_date(:); shi=fen/10; ge=fen%10; lcd_date(numtableshi); lcd_date(numtablege); lcd_date(:); shi=miao/10; ge=miao%10; lcd_date(numtableshi); lcd_date(numtablege); i=key_scan(); judge=keyHandle(i); Write_24C02(20,h); Write_24C02(21,fen); Write_24C02(22,miao); if(judge=u) Write_24C02(20,h); Write_24C02(21,fen); Write_24C02(22,miao); Init_ser(); Init(); Init_PM(); TR0=0; brea

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

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