欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    密码锁.docx

    • 资源ID:9360313       资源大小:776.57KB        全文页数:30页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    密码锁.docx

    1、密码锁第1章 系统总体方案设计1.1 密码锁技术的发展趋势在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技

    2、术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏,IC卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗

    3、产品的主流。1.2 课题设计任务设计一个具有特定功能的密码锁。该密码锁上电或按键复位后能自动显示系统提示符“204”, 进入准备工作状态。该密码锁具有系统原始密码888888,用户可以设定并存储用户密码,密码输入时应处于保密显示状态,密码输入正确时应显示密码输入正确提示信息,否则,显示密码输入错误提示信息。1.3 功能设计要求设计一个具有特定功能的密码锁。该密码锁上电或按键复位后能自动显示系统提示符“z04”(学生班级与学号简码), 进入准备工作状态。按下开始按钮后,显示P.用户可以输入密码;输入8位密码后,按确定键。输入正确显示d,显示d后可按修改键修改密码,按修改密码键后显示E,代表用户可

    4、以设置一个8位的密码,修改密码后,按确认键则会显示c代表修改成功;若输入密码错误则显示F,并点亮二极管,按开始键又会进入密码读取,密码比较,密码可修改的流程中。1.4 设计方案及工作原理1.4.1 设计方案密码锁电路设计总体设计方框图如图1-1所示,密码锁采用单片机AT89S52,用8位LED共阳数码管显示。图1-1 总体设计方框图整体设计思路:按键接到单片机的P0口,P2口分别接数码管的段控和位控,蜂鸣器接到单片机的P3.1口线上,开始状态显示z04,当按下开始键b后,数码管最高位显示P.视为可以输入密码;每输入一个键显示一杠,当输入完8个键后按确定键a,若输入密码正确则显示d,密码输入正确

    5、时可按f键,按f键后显示E代表可输入修改密码;输入完8个密码后按a确定后,显示c,代表修改密码成功,按b键后回到P.,等待密码输入。若输入密码错误则显示F,蜂鸣器叫,二极管点亮,按开始键b后又显示P.,等待输入密码。该系统采用单片机AT89S52作为控制核心,该系统可以完成运输控制、信号识别及显示功能的实现。由于用了单片机,其技术比较成熟,应用起来比较方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能够方便进行功能的扩展和更改。AT89S52单片机特点:1、可靠性好:单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以“

    6、烧”写到ROM上,许多信号通道都在同一芯片上,故可靠性好。2、扩展性好:单片机有一般计算机所必须的器件,如总线、串并行的输入及输出引脚,可扩展为各种规模的微型计算机系统。3、控制功能强:单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳转指令。1.4.2 密码锁工作原理密码锁的工作原理是采用单片机最小系统,程序用动态显示组号。AT89S521单片机由微处理器,存储器,I/O口以及特殊功能寄存器SFR等部分构成。其存储器在物理上设计成数据存储器和程序存储器两个独立的空间,片内数据存储器有128个字节,片内程序存储器容量为4KB。AT89S52有4个八位并行I/O口:P0口,P1口,

    7、P2口和P3口,各接口均由接口锁存器,输出驱动器和输入缓冲器组成。P1口是唯一的单功能口,仅能够用作通用的数据输入/输出口。P3口是双功能口,除了具有数据输入/输出功能外,每条口线还具有第二功能,如P3.0口是串行输入口线,P3.1口是串行输出口线。在需要外部数据存储器和程序存储器扩展时,P0口可作为分时复用的低八位地址/数据总线,P2口可作为高八位的地址总线,P3口也可作为AT89S5的一些特殊功能口,同时为闪烁编程和编程校验接受一些控制信号。第2章 硬件系统设计2.1 硬件电路简介硬件电路应该能够完成以下功能:在用户输入密码的时候,密码为保密状态,当用户输入密码正确时可修改密码,修改后的密

    8、码能够使用,并给出输入密码正确的提示信息。密码输入错误时有提示信息,并还可以再次输入密码。P1.0-P1.7口线为4*4矩阵式键盘的信号输入口,其中b为开始键,a为确定键,f为修改密码键; P0.0-P0.7口为数码管的段选控制口;P2.0-P2.7口为数码管的位选控制口;二极管接P3口,P3.1口为蜂鸣器控制口,硬件电路如图2-1所示。图2-1 系统硬件电路图2.2 硬件系统各模块功能介绍2.2.1 矩阵键盘电路单元使用矩阵键盘,所以本设计就采用行列式键盘,同时也能减少键盘与单片机接口时所占用的I/O线的数目,在按键比较多的时候,通常采用这样方法。其原理如图2-2。图2-2 矩阵键盘每一条水

    9、平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有NM个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法:一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。如图2-2所示的44键盘,首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是:向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会

    10、有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是:依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。具体的功能设计如表2-1:表2-1 按键功能按 键09键b 键a 键f 键键 名数字键开始键确 定 键重设密码键2.2.2 显示电路单元采用两个八段的数码管显示,它是共阳极型的由低电平点亮数码管显示器。显示由P2.0-P2.7口输出的数字代码,段码采用同相驱动,输入端加低电平,选中的数码段被点亮。如图2-3所示:图2

    11、-3 显示单元电路2.2.3 蜂鸣音频电路单元AT89S52芯片外接有蜂鸣电路,用来发出报警声。蜂鸣器在用户输入密码为错误时报警信号。蜂鸣硬件电路比较简单,在P3.7口接上一只三极管、电阻和蜂鸣器即可,如图2-4所示:图2-4 蜂鸣音频电路2.2.4 复位电路单元外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个周期的高电平即可实现复位。硬件复位后的寄存器和存储器都可恢复到初始值。本设计的复位电路如图2-5所示:图2-5 复位电路2.2.5 二极管电路单元如图2-6将二极管的阳极共同接地,在需要做指示时,给低电平点亮。图2-6 二极管电路2.2.6 晶体振荡电路单元如图2-7晶振电路

    12、,使用12Mhz晶振,使单片机的机器周期为1us。图2-7 晶体振荡电路2.3 硬件电路元器件简介2.3.1 protel原理图 见附录B2.3.2 PCB图 PCB顶层布线图见附录C PCB顶层布线图见附录D2.3.3 元器件布局图 见附录E2.3.4 元器件清单见附录F第3章 软件系统设计3.1 占用单片机资源情况P1.0-P1.7是作为密码按键输入;P2.0-P2.76口为数码管的段选控制口;P3.1口为蜂鸣器控制口。该密码锁上电或按键复位后能自动显示系统提示符“204”, 进入准备工作状态。3.2 软件设计思路密码锁工作的主要过程是LED数码管提示开始输入密码,通过键盘输入密码,同时L

    13、ED显示密码输入情况,按下确认键后判断密码的正确性,作出开锁或报警处理。当输入密码正确时可修改密码。密码的设定,此程序的初始密码放在一个数组中,假设预设的密码为88888888共8位密码。由于采用4*4矩阵式键盘完成密码的输入,那么将a-f按键为功能键,0-9个按键为数字键。在输入过程中,输入以为密码显示一杠,接着根据显示杠的数目来确定输入密码的位数,直到8位密码都已经输入完毕;输入完后按确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。3.3 程序流程框图(1)系统主程序流程图如图3-1所示函数开始运行后显示204,按b键后显示P.,代表可输入密码,输完

    14、8个密码后等待确认键按下,确认键按下后调用mmchuli函数进行处理,然后有循环。函数结束。图3-1 系统主函数流程图(2)输入密码函数 如图3-2所示输入函数流程图,在输入密码时指定的密码键为0-9这十个数字,若输入其它符号,如a-f则为无效的密码。当输入的密码为0-9这十个数,把这些密码用一个table8保存。如果输入完后则返回。图3-2 输入密码函数流程图(3)密码处理函数 如图3-3所示为密码函数流程图,判断输入的密码与原来的密码是否相同,若相同,则输出输入密码正确的提示,此次设计采用显示d代表输入正确,在输入正确时可以修改密码,修改密码后提示输入正确并返回。若输入错误则显示错误信息,

    15、并蜂鸣器报警,二极管点亮,返回。图3-3 密码处理函数流程图 (4)键扫程序流程图如图3-4所示,先调键处理,再判断是否有键按下,如果没有键按下,则返回,如果有键按下,去抖延时5ms,再调键处理,如果没键按下就返回,如果有键按下,计算并保持键值,就保存键值并返回。(5)显示程序流程图如图3-5首先送段控来控制数码管的显示字形,接着再送位控来控制不同位的数码管显示。 图3-4 键扫函数流程图 图3-5 显示函数流程图第4章 操作与调试4.1软件调试软件调试的任务是利用AVR单片机ISP下载编程软件进行仿真调试,发现和纠正程序错误,同时也能发现仿真结果故障。程序的调试的基本步骤如下:1、硬件连接

    16、将下载线一端与计算机USB口相连,另一端10PIN插头插入目标电路板的ISP口,然后给目标板上电。连接过程一定要保证目标板和计算机可靠连接。2、下载软件的启动本软件为绿色,不需安装,打开文件夹avr_fighter,双击其中的可执行文件AVR_fighter即可。下载软件AVR_fighter FOR USBASP的主界面如图4-1:图4-1 AVR_fighter FOR USBASP的主界面3、下载软件的使用软件设置:在上数第二行菜单中选择“编程选项”。在“芯片选择”方框中选择单片机型号。这时可点击“读取”按钮来读取芯片的特征字,以验证硬件各部分是否正确。点击第一行菜单中“装FLASH”按

    17、钮,在弹出的窗口中选择“hex文件”并点击“打开”按钮。图4-2 装flash界面1 在“编程选项”方框中点击“ 编程”按钮,这时就会出现表示程序下载过程的进度条,接下来系统会提示写入成功。要擦除程序时只需单击“擦除”按钮即可。2 在“BOOTLOAD”及加密方框中可以设置加密位。AT89S51/52的加密请选择“Lock2或Lock3”。3 在“熔丝位”方框中可以设置熔丝位。4 “选项及操作说明”方框用来显示上述操作,并提示结果。5 点击“读FLASH”按钮可以读取单片机芯片内的内容,读取操作完成后,可以点击第二行菜单中选择“FLASH内容”按钮,在弹出的窗口中显示FLASH内容,这时可以对

    18、程序进行查看、编辑,并可保存到指定位置(*.BIN文件格式)。4.2 数码管实物仿真结果 1、显示“204”,程序复位或上电后默认显示“204”如图4-3。图4-3显示2042、按下8个密码后显示8“”,如图4-4所示图4-4 显示输入8位密码3、输入密码正确显示“d”,如图4-5图4-4 密码输入正确4.3仿真结论虽然该设计能满足基本的设计要求,但是目前,电子密码锁仍处在不断完善的过程中,同时密码锁的功能实现形式也是多种多样,不仅可以通过数字编码来实现,而且可以通过单片机控制来达到目的。由于时间与学识的限制,本课程设计的硬件电路系统中还有一些方面需要改进,所设计的密码锁不够高级,当用户觉得密

    19、码输入错误时无法修改,只能从新输入,本设计未设计一个复位键,造成了用户使用不便,若想获得更严谨的密码锁,还得努力研究。 总结与体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从画原理图、pcb板的布局以及画法、制板到编写程序、到软件调试,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但

    20、是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,每天编写程序,一编就编到凌晨,但当问题解决后心里无比的开心。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机c语言掌握得不好,通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利

    21、完成了,在设计中遇到了很多编程问题,在同学的帮助下,终于游刃而解,非常感谢!参考文献1单片微型计算机与接口技术(第3版), 北京:电子工业出版社, 2010.72单片机实用技术教程, 北京:人民邮电出版社. 2009.103何为民.低功耗单片微机系统设计M.北京:北京航空航天大学出版社,1994.4李华.MCS-51系列单片机实用接口技术M.北京:北京航空航天大学出版社,1996.5马忠梅,单片机的C语言Windows环境编程宝典M, 北京:北京航空航天大学出版社,2003.6 6李光飞,单片机C程序设计指导M,北京:北京航空航天大学出版社,2003.017马忠梅.单片机应用程序设计(第四版)

    22、M.北京:北京航空航天大学出版社,2006。附录A 密码锁总程序/*初始密码为8个8b为开始键 a为确定键 f为修改键 P.显示为可以输入密码 d显示为输入密码正确 E显示为可输入修改密码 F显示为输入密码错误 */ #include #include #define uchar unsigned char#define uint unsigned intsbit P3_1=P31;uchar v;uchar dis_code=0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58;/初始密码88888888uchar cjmm=0x50,0x50,0x51,0x51,

    23、0x52,0x52,0x53,0x53,0x54,0x54;/超级密码uchar code mm=0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59;/0-9/* 显示代码数组共阳代码表格,分别对应:0,1,2,3,4,5,6,7,8,9,P.,灭,d,e,c,- ,F*/uchar code table1=0xC0,0xF9,0xA4,0xB0, 0x99 ,0x92,0x82,0xF8, 0x80,0x90,0x0c,0xff,0xa1,0x86 ,0xc6,0xbf,0x8e;uchar led8=11,11,11,11,11,2,0,4,

    24、 ;uchar ledp8=10,11,11,11,11,11,11,11 ; /p点显示uchar ledd8=12,11,11,11,11,11,11,11; /d点显示uchar ledf8=16,11,11,11,11,11,11,11; /f点显示uchar table8;uchar n=0,i,x;/*函数名:delay(uint ms);功能:延时函数*/void delay(uint ms) uchar z; while(ms-) for(z = 0; z 120; z+); /*函数名:display();功能:显示函数*/void dey ( ) /延时1ms子函数 / u

    25、char i ;for(i=121;i!=0 ;i- ) void display( )uchar p , q ,m=7,c,wei=0xfe,ws=8;/ws为显示的位数,wei为位控 / while( ws ) c=ledm ; /位序送给c/ ws-; P2= wei ; P0=table1c; dey ( ) ; /显示延时/ p=wei7; wei=p|q ; /位控循环左移/ m-; /*函数名:keychuli();功能:键处理函数*/ uchar keychuli() P1=0xf0; /发全列0扫描码 P1=P1&0xf0; /若有键按下 return (P1); /键扫函数

    26、 uchar key()uchar scan,tmp,chizhi; /列,行 chizhi=keychuli(); if(chizhi!=0xf0) delay(5); / 延时去抖 chizhi=keychuli(); /延时再判键是否还按下 if(chizhi!=0xf0) scan=0xfe; while(scan&0x10)!=0) /逐列扫描 P1=scan; /输出列扫描码 if(P1&0xf0)!=0xf0) /本列有键按下 tmp=(P1&0xf0)|0x0f; return (scan)|(tmp); /还回键值 else scan=(scan1)|0x01; /列扫描码左

    27、移一位 return (0); /无键按下,还回0 /*函数名:srmm ();功能:输入密码函数*/void srmm() while(1) v=key( ); if(v=0x11|v=0x12|v=0x14|v=0x21|v=0x22|v=0x24|v=0x41|v=0x42|v=0x81 |v=0x82) delay(200); switch(v) case 0x11:tablen=mm0;break; case 0x21:tablen=mm1;break; case 0x41:tablen=mm2;break; case 0x81:tablen=mm3;break; case 0x12:tablen=mm4;break; case 0x22:tablen=mm5;break; case 0x42:tablen=mm6;break; case 0x82:tablen=mm7;break; case 0x14:tablen=mm8;break; case 0x24:tablen=mm9;break; default:break; x=ledn=15;display();delay(100); /显示一杠 n+; if(n=8) n=0;break; /*函数名:mmchuli();功能:密码处理函数*


    注意事项

    本文(密码锁.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开