




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
- 33 -摘要 随着科技和人们的生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统机械锁由于构造简单,被撬事件屡见不鲜;电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。 本设计以单片机AT89C51作为密码锁监控装置的检测和控制核心,分为主机控制和从机执行机构,实现钥匙信息在主机上的初步认证注册、密码信息的加密、钥匙丢失报废等功能。根据51单片机之间的串行通信原理,这便于对密码信息的随机加密和保护。而且采用键盘输入的电子密码锁具有较高的优势。采用数字信号编码和二次调制方式,不仅可以实现多路信息的控制,提高信号传输的抗干扰性,减少错误动作,而且功率消耗低;反应速度快、传输效率高、工作稳定可靠等。软件设计采用自上而下的模块化设计思想,以使系统朝着分布式、小型化方向发展,增强系统的可展性和运行的稳定性。测试结果表明,本系统各项功能已达到本设计的所有要求。 随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。 随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产品的主流。 关键词:51单片机;密码锁;单片机设计,电子锁目录1 目录 1 课题设计目标. 2 2 总体设计方案. 2 2.1 设计思路 . 2 2.2 方案确立 . 2 3 硬件电路方框图. 3 3.1 单片机及其最小系统 . 3 3.1.1 复位电路的设计. 3 3.1.2时钟电路的设计 . 4 3.2 密码锁电路 . 5 3.2.1 按键电路的设计. 5 3.2.2 LCD显示电路 . 6 4 程序设计. 84.1 模块介绍 . 85 课程设计总结. 9 6 参考文献. 107 附 录. 11 附录一 总电路原理图 . 11附录二用lochmaster绘制的电子密码锁图像 . 12 附录三电子密码锁的实物图 . 12 附录四元器件清单 . 13 附录五 源程序清单 . 15 1、课题设计目标1、设计任务:本设计采用单片机为主控芯片,结合外围电路,组成电子密码锁,用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,密码输入错误将不能打开锁。2、方案总体设计2.1 设计思路 该电路是一种采用以AT89S52为核心的单片机控制方案。 利用单片机灵活的编程设计和丰富的IO端口,及其控制的准确性,不但能实现基本的密码锁功能,还能根据实际需要添加调电存储、声光提示功能。 2.2 方案确立 (1)为了实现密码的保密性,采用一个44的矩阵式键盘可以任意设置用户密码,从而提高了密码的保密性。 (2)采用LCD显示单元,提高了可读性,提供良好的人机界面。 3、硬件电路方框图 电路由两大部分组成:AT89S51单片机及其外围电路和密码锁电路。密码锁电路包含,矩阵键盘输入、LCD指示电路、报警控制电路、AT24C02掉电存储电路。其原理方框图如图3.1所示。 3.1 单片机及其最小系统 3.1.1 复位电路的设计 复位是单片机的初始化操作。单片机启运运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。该复位电路采用按键电平复位式复位电路。当单片机已在运行当中时,按下复位键S后松开,在复位引脚RET(9脚)脚持续出现24个振荡器脉冲周期(即2个机器周期)的高电平信号将使单片机复位。也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。如图3.2所示。 图3.2 复位电路 3.1.2时钟电路的设计 冲的驱动下的进行的,如果单片机的时钟电路停止工作,晶振停振,那么单片机也就停止运行了。当采用内部时钟 时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉时,连接方法如下图所示,在晶振引脚XTAL1(19脚)和XTAL2(18)脚,引脚之间接入一个11.0592MHZ晶振,两个引脚对地分别再接入一个电容即可产生所需的时钟信号,电容的容量一般在几十皮法,如20PF。如图3.3所示。 图3.3 时钟电路 3.2 密码锁电路 3.2.1 按键电路的设计 为了加强密码的保密性,采用一个 44 的矩阵式键盘可以任意设置用户密码,1-16位长度,从而提高了密码的保密性,同时也能减少与单片机接口时所占用的I/O口线的数目节省了单片机的宝贵资源,在按键比较多的时候,通常采用这种方法。其原理图如图3.4所示。 图3.4 矩阵键盘电路 每一行与每一列的交叉处不相同,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N根行线与M根列线,即可组成具有N M 个按键的矩阵键盘。 在这种行列式矩阵键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就是要识别哪一个按键被按下。对键的识别方法通常有两种,一种是通用的组行扫描查询法,另一种是速度较快的线反转法。此系统中,我们采用线反转法。首先辨别键盘中有无按键被按下,在单片机I/O口向键盘送全扫描字然后读入行线状态来判断。具体方法是,向行线输出全扫描字00H,把全部列线置成低电平,然后将列线的电平状态读入累加器A中。如果有按键被按下,总会有一根行线电瓶被拉至低电平从而使行线不全为1。判断键盘中哪一个按键被按下通常是通过将列线逐列至低电平后,检查行输入状态来实现的。方法是,依次给列线送低电平然后检查所有行线状态,如果全为1,则所按下的按键不在此列,如果不全为1,则所按下的按键必在此列,而且是在与零电平行线相交的交点上的那个按键。10个数字键用来输入密码,另外2个功能键分别是:确认、取消。其中退格键的功能是当输入密码错误的时候,清除前面已经输入的数据,重新输入。确认键的功能是确认输入的密码。按键功能表按键键名功能说明09键数字键输入密码E键确认确认密码F键退格退出 3.2.2 LCD显示电路 本系统设计的显示电路是为了给使用者以提示而设置的。因为系统具有账户管理系统使用LCD可以为用户提供更友好的人机界面,故选用LCD1602作为显示器件。开锁时,按下键盘上的开锁按键后,利用键盘上的数字键0-9输入密码,每按下一个数字键后在显示器上显示一个*,输入多少位就显示多少个*。当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD显示“OK”,单片机其中P3.0引脚会输出低电平,使三极管T2导通电磁铁吸合,继电器开关跳转,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“Enter please”,P3.0输出的是高电平,电子密码锁不能打开。通过LCD显示屏,可以清楚地判断出密码锁所处的状态。 图3.5 显示器电路 显示器主要用于显示以下几个字符指示如图3.6所示。 图3.6(a)开机状态 图3.6(b) 等待输入状态 图3.6 (c) 密码输入正确状态 4、程序设计 4.1 模块介绍 本设计将密码锁软件分为以下几个模块(程序见附录程序清单) (1)主程序模块 主程序主要完成系统及外围电路的初始化,控制LCD根据按键操作进行各个状态的转化,实现密码锁的人机交互界面。 (2)键盘驱动及键盘输入程序 主要包括键盘扫描的程序,根据按键的布局进行符合操作习惯的键值映射键盘操作到数据的转换。 (3)LCD1602驱动 包括液晶屏的初始化程序和字符显示,字符串显示等基本函数,供主程序调用 。(4)AT24C02存取程序 包括I2C总线的读写时序模拟控制及读写程序。 主程序流程图如图4.1所示: 图4.1主程序流程图 5、课程设计总结 在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想,永远只能是构想,永远无法升级为设计。其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如Proteus制图,C语言等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。最后,要做好一个课程设计,就必须做到,在设计程序之前,对所用单片机的内部结构有一个系统的了解知道该单片机内有哪些资源,要有一个清晰的思路和一个完整的的软件流程图,在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路,要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便,在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。另外,这次课程设计让我感到了团队合作的重要性。在团队中我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励。一周多的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。 6、参考文献参考文献: 1 张天凡. 完全手册-51单片机C语言开发详解M.电子工业出版社2008 2 李群芳. 单片微型计算机与接口技术M.北京电子工业出版社2008 3 赵景波. Protel DXP实用教程M.人民邮电出版社2009 4 丁明亮唐前辉. 51单片机应用设计与仿真-基于Keil C与ProteusM. 北京航空航天大学出版社2009 5 Atmel.AT89S51 Data Sheet 6 ShareWave.LCD1602器件手册 7 Atmel. AT24C02 Data Sheet 7、附录: 附录一:总电路原理图附录二:用lochmaster绘制的电子密码锁图像 附录三:电子密码锁的实物图 附录四:元器件清单名称型号数量备注单片机AT89C511电阻6电阻2排阻1液晶显示器1瓷片电容2电解电容1按键16晶振1单排插针 4发光二级管2USB接口1垫片及底座1排母1附录五:源程序清单 #include #define uint unsigned int #define uchar unsigned char #define KEY P1 /键盘输入端口 #define No_key 20 /无按键时的返回值 #define lcddata P0 /1602的数据输入端口 sbit lcden= P22; sbit lcdrs= P20; sbit lcdrw= P21; sbit light= P30; sbit light1= P31; uchar j ; /用来统计输入 个数的全局变量 uchar aa; /用来在定时器中计数的 全局变量 uchar code table= Hello!; uchar code table1= OK! ; uchar code table2=Enter please: ; uchar code key_table16 = 1,2,3,10, 4,5,6,11, 7,8,9,12, 0,13,14,15 ; uchar password=2,0,1,0,9,3 ; /设定初始密码 uchar save6; /保存输入的数据 uchar conflag ; /确认标志 uchar lockflag; /锁键盘标志 uchar startflag; /开始标志 void delay(uint z); /延时子函数 void wright_com(uchar com); /写指令函数 void wright_data(uchar date) ; /写数据函数 void init(); /初始化 void display_OK(); / 显示OK void delete(); /删除输入的最后一个数 uchar keyscan() ; /带返回值的键盘扫描程序 void enter_code(uchar t); /输入密码函数把输入的数据存入数组中并在屏幕上显示相应的东西, void confirm(); /确认密码对不对把输入的数据与密码逐一对比完全一样刚正确 void succeed_an(); /输入密码成功时的 响应, void fail_an(); /输入密码 失败时 响应 void lockkey(); /锁键盘三秒 void reset(); /复位函数 void display_enter(); /显示输入 void main(void) uchar temp; init(); while(1) if(lockflag) temp=keyscan(); / 锁键期间也要进行键盘扫描 if(temp!=No_key) /重新记时三秒 aa=0; /重新在定时器中计数 else temp=keyscan(); /反复扫描输入等待随时输入 if(temp!=No_key) /有按键按下才进行下面的操作 if(temp=10) reset(); startflag=1; /开始标志置位 if(startflag) enter_code(temp); /每扫描一次键盘就要进行一次处理保存输入的数值 if(temp=13) /按下确认键盘就要进行密码确认 confirm(); /进行确认判断 if(conflag) /密码确认为正确 succeed_an(); /密码正确作出相应的反应 else fail_an(); /密码错误作相应反应 if(temp=14) delete(); /作删除操作 /* 显示enter*/ void display_enter() uchar num; wright_com(0x80); for(num=0;num13;num+) wright_data(table2num); /* 显示OK*/ void display_OK() uchar num; wright_com(0x80); for(num=0;num13;num+) wright_data(table1num); /* 删除最后一个*/ void delete() wright_com(0x80+0x40+j); /确定删除对象 wright_data( ); /显示空格即为删除 save-j=0; /删除后数据清零 wright_com(0x80+0x40+j); /为下次输入数据时写好位置必须是在最后一个后面 /* 对各种变量进行复位*/ void reset() uchar num; display_enter(); wright_com(0x80+0x40); /擦除屏幕上的显示 for(num=0;num=0&t10) if(j=0) wright_com(0x80+0x40) ; /第一输入时要先写入地址指令否则无法显示 wright_data(*) ; else wright_data(*) ;/不是第一个输入则不用再写地址 savej+=t; /保存输入的数据 /*校对密码以确定是不是正确的*/ void confirm() uchar k; for(k=0;k=60) /三秒到了 aa=0; /清零可以方便下次再使用 light1=1; /关闭警报 lockflag=0; /标志清零解除键锁方便下次使用 /*初始化*/ void init() uchar num; /*定时器初始化*/ TMOD=1; TH0=(65536-50000)/256; TL0=(65536-50000)%256; ET0=1; EA=1; /开启总中断 TR0=1;/把定时器关闭 /*1602初始化*/ lcdrw=0; /这个必须要置 零否则无法正常显示 lcden=0; wright_com(0x38) ; /初始化 wright_com(0x0c) ; /打开光标 0x0c不显示光标 0x0e光标不闪0x0f光标闪 wright_com(0x01) ; /清显示 wright_com(0x80) ; for(num=0;num0;x-) for(y=110;y0;y-) ; /*4x4矩阵键盘扫描函数*/ uchar keyscan() uchar temp,num=No_key; /num的初值要为无键盘按下时的返回值 /*扫描第一行*/ KEY=0xfe; temp=KEY; temp=temp&0xf0; /读出高四位 while(temp!=0xf0) delay(5); /延时消抖 temp=KEY; temp=temp&0xf0; while(temp!=0xf0) /确认确实有按键按下 temp=KEY; switch(temp) /根据这八个电平可以确定是哪个按键按下 case 0xee:num=1; break; case 0xde:num=2; break; case 0xbe:num=3; break; case 0x7e:num=10; break; while(temp!=0xf0) /等待松手 temp=KEY; temp=temp&0xf0; /*扫描第二行*/ KEY=0xfd; te
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 6.4.1统计图的选择说课稿 2024-2025学年北师大版数学七年级上册
- 2024-2025学年新教材高中历史 第九单元 当代世界发展的特点与主要趋势 第23课 和平发展合作共赢的时代潮流(1)教学说课稿 新人教版必修《中外历史纲要(下)》
- 公司工装定制加工合同3篇
- 墙壁批白工程方案(3篇)
- 农场草坪修整工程方案(3篇)
- 千万工程规划方案(3篇)
- 濮阳仓库照明工程方案(3篇)
- 公寓房出租合同模板3篇
- 马场升级改造工程方案(3篇)
- 2025年城市排水系统改造与升级可行性研究报告
- 胰腺炎超声诊断表现
- 精神科专科监护技能课件
- 2025年小学生“学宪法、讲宪法”网络知识竞赛题库及参考答案
- 艾灸直播 教学课件
- 伤口造口专科护理新进展
- 装修装饰报价单范文
- 药店内部各项管理制度
- 高层建筑无人机巡检系统施工方案
- 卫生心理健康课件
- 中建领料管理制度
- 医院培训课件:《精神科暴力特征及实战技巧》
评论
0/150
提交评论