




免费预览已结束,剩余22页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
i 单片机系统开发与应用实习报告单片机系统开发与应用实习报告 选题名称选题名称: 单片机电子密码锁 系(院)系(院): 专专 业业: 班班 级级: 姓姓 名名: 学学 号号: 指导教师指导教师: 学年学期学年学期: 2009 2010 学年 第 2 学期 2010年 5 月 30 日 设计任务书设计任务书 ii 课题课题 名称名称 设计设计 目的目的 1.总共 8 位密码,可以修改 2.先要设置密码 3.然后键入密码,错误则报错 4.正确则开锁 实验实验 环境环境 1windows 2000 以上操作系统; 2protel 99se 和 keil 环境; 任务任务 要求要求 1.利用课余时间去图书馆或上网查阅课题相关资料,深入理解课题含义及 设计要求,注意材料收集与整理; 2.在第 14 周末之前完成预设计,并请指导教师审查。通过后方可进行下一 步工作; 3.按指导书要求设计软件,实现设计的功能,并显示正确的结果; 4.要求形成稳定的程序软件,可以运行,方可申请参加答辩; 工作进度计划工作进度计划 序号序号起止日期起止日期工工 作作 内内 容容 12010.3.162010.5.18 在预设计的基础上,进一步查阅资料,完成硬件电 路设计和焊接。 22010.5.192010.5.25编写软件代码, 调试与完善。 32010.5.252010.5.28 测试程序,优化代码,增强功能,撰写课程设计报 告。 42010.5.282010.5.28 提交软件代码、硬件电路成果和设计报告,参加答 辩。 指导教师(签章):指导教师(签章): 年年 月月 日日 摘要: iii 在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及 一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常 需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的 不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使 用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、 成本低、功耗低、易操作等优点。 随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、ic 卡辨认) 已在国内外相继面世。但是这些产品的特点是针对特定的指纹和有效卡,只能适用于 保密要求的箱、柜、门等。而且指纹识识别器若在公共场所使用存在容易机械损坏, ic 卡还存在容易丢失、损坏等特点。加上其成本较高,一定程度上限制了这类产品的 普及和推广。鉴于目前的技术水平与市场的接收程度,电子密码锁是这类电子防盗产 品的主流。 关键词: at89c51;密码锁;密码二次确 目目 录录 iv 第第 1 1 章章 绪论绪论1 1.1背景1 1.2电子锁1 1.3电子密码锁的特点1 1.4电子密码锁的发展趋势2 第第 2 2 章章 系统总体设计系统总体设计2 2.1系统结构3 2.2 系统组成3 2.3 系统可行性分析3 第第 3 3 章章 硬件电路设计硬件电路设计4 3.1单片机 at89c51 简介4 3.1.1 主要特性4 3.1.2 管脚说明4 3.1.3 震荡特性6 3.1.4 芯片擦除6 3.2复位电路6 3.3 振荡电路6 3.4 数码管7 3.5 led8 3.6 蜂鸣器8 3.7 完整电路图9 3.8 使用到的元器件列表10 第第 4 4 章章 软件程序设计软件程序设计11 4.1软件设计流程图11 4.2 具体功能软件实施.12 4.3 代码. 14 第第 5 章章 总结总结21 第第 6 6 章章 参考文参考文献献22 第第 7 7 章章 教师评语教师评语23 1 第第 1 1 章章 绪论 1.11.1背景背景 随着社会物质财富的日益增长,安全防盗已成为社会问题。而锁自古以来就是把 守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是 制锁者长期以来研制的主题。目前国内,大部分人使用的还是传统的机械锁。然而, 眼下假冒伪劣的机械锁泛滥成灾,互开率非常之高。所谓互开率,是各种锁具的一个 技术质量标准,也就是1把钥匙能开几把锁的比率。经国家工商局、国家内贸局、中国 消协等部门对锁具市场的调查,发现个别产品的互开率居然超标26倍。 为何弹子锁的“互开率”会如此之高?据有关专家人士剖析,弹子锁质量好坏主 要取决于弹子数量的多少以及弹子的大小,而弹子的多少和大小受一定条件的限制。 此外,即使是一把质量过关的机械锁,通过急开锁,甚至可以在不损坏锁的前提下将 锁打开。机械锁的这些弊端为一种新型的锁-电子密码锁,提供了发展的空间。 1.2电子锁 电子锁是采取电子电路控制,以电磁铁或者卫星电机和锁体作为执行装置的机电 一体化锁具,相比传统的机械锁具,电子锁不使用金属钥匙,保密性、精度都有很大 提高。 电子锁的发明思路,源自古代发明的自动机械,例如古希腊数学家赫伦的液压自 动门,中国古代诸葛亮的木牛流马,它们以重力或蒸汽压力驱动,最广泛的用途乃是 用在古代墓道的地下机关。电子工业的诞生,使得以微小电量驱动机械成为可能,于 是有了电子锁一日千里的跃进。 1.3电子密码锁的特点 电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的 闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基 于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程 来实现的。其性能和安全性已大大超过了机械锁,主要特点如下: 1保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。 2 2密码可变。 用户可以经常更改密码,防止密码被盗,同时也可以避免因人员 的更替而使锁的密级下降。 3误码输入保护。当输入密码多次错误时,报警系统自动启动,防止试探密码。 1.4电子密码锁的发展趋势 从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁, 该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。键盘 式电子密码在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记 在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记) ,难以被窃 (除非自己泄露) 。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来, 或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了 可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优 点、克服弱点,键盘式电子密码也在不断发展中,如“任意设定密码”技术使得被授权人 可以根据自己的需要或喜好设定密码,常用常新;而“自动更改密码”技术使得本次输入 的密码将自动更改成下次应输入的密码,更改的规律不为他人所知,因而不怕旁观者 窥测;独出心裁的“键盘乱序显示”技术使得键盘上的固定键位每次显示出的字符不固定, 并且显示的窄小角度只能由操作者正面看得到,因而即使旁观者看见操作动作也难以 窥测出密码;“多重密码设定”技术使得单组密码不一定有效,适合多人分权使用,需要 输入两组以上的密码才被认可,大大提高了保密性,如果限定输入这些密码的先后顺 序或时间区段,则保密性还可提高。在输入密码的过程中,为了限制试探密码的企图, 通常输入错误码若干次或若干时间内输入不正确,即“封锁”键盘,不再接受输入操作。 总之,尽管新式电子防盗锁层出不穷,但键盘式电子密码防盗锁不仅在市场上居于主 流地位,而且,还经常作为其他类型电子防盗锁的辅助输入手段。 第第 2 2 章章 系统总体设计 3 2.12.1系统结构系统结构 at89c51 数码管 蜂鸣器 led 按键 复位电路 图 21 2.22.2 系统组成系统组成 如图 21 所示系统主要由 at89c51(51 系列)、数码管、蜂鸣器、led、键盘、复 位电路等组成。 2.32.3 系统可行性分析系统可行性分析 系统工作原理分析:使用 at59c51 单片机、led、蜂鸣器等。提示输入密码;当 密码输入完毕时,对输入密码与设定的密码进行比较,若密码正确则提示锁打开;若 密码不正确,则报错。若连续 3 次输入不正确,则发出警报声同时锁定键盘。 为了防止恶意尝试,系统才用若连续输入 3 次错误密码则发出报警声,且锁定键 盘,可以提高系统的安全系数,同时也能够保护合法用户的正常使用。 第第 3 3 章章 硬件电路设计硬件电路设计 3.13.1 单片机单片机 at89c51at89c51 简介简介 at89c51 是美国 atmel 公司生产的低电压,高性能 cmos8 位单片机,片内含 4k 电源 4 bytes 的可反复擦写的只读程序存储器(eprom)和 128bytes 的随机存取数据序存器 (ram) ,器件采用 atmel 公司的高密度/非易失性存储技术生产,兼容标准 mcs-51 指 令系统,片内置通用 8 位中央处理器(cpu)和 flash 存储单元,at89c51 单片机为许 多嵌入式控制系统提供了一种灵活行高且价廉的方案。 3.1.1 主要特性 8031 cpu 与 mcs-51 兼容 4k 字节可编程 flash 存储器(寿命: 1000 写/擦循环) 全静态工作:0hz-24khz 三级程序存储器保密锁定 128*8 位内部 ram 32 条可编程 i/o 线 两个 16 位定时器/计数器 6 个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 3.1.23.1.2 管脚说明管脚说明 vcc:供电电压。 gnd:接地。 p0 口:p0 口为一个 8 位漏级开路双向 i/o 口,每脚可吸收 8ttl 门电流。当 p1 口 的管脚第一次写 1 时,被定义为高阻输入。p0 能够用于外部程序数据存储器,它可以 被定义为数据/地址的第八位。在 fiash 编程时,p0 口作为原码输入口,当 fiash 进 行校验时,p0 输出原码,此时 p0 外部必须被拉高。 p1 口:p1 口是一个内部提供上拉电阻的 8 位双向 i/o 口,p1 口缓冲器能接收输出 4ttl 门电流。p1 口管脚写入 1 后,被内部上拉为高,可用作输入,p1 口被外部下拉为 低电平时,将输出电流,这是由于内部上拉的缘故。在 flash 编程和校验时,p1 口作 为第八位地址接收。 p2 口:p2 口为一个内部上拉电阻的 8 位双向 i/o 口,p2 口缓冲器可接收,输出 4 个 ttl 门电流,当 p2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并 因此作为输入时,p2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。 p2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,p2 口输出地址 的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器 进行读写时,p2 口输出其特殊功能寄存器的内容。p2 口在 flash 编程和校验时接收高 5 八位地址信号和控制信号。 p3 口:p3 口管脚是 8 个带内部上拉电阻的双向 i/o 口,可接收输出 4 个 ttl 门电 流。当 p3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于 外部下拉为低电平,p3 口将输出电流(ill)这是由于上拉的缘故。 p3 口也可作为 at89c51 的一些特殊功能口,如下表所示: 管脚 备选功能: p3.0 rxd(串行输入口) p3.1 txd(串行输出口) p3.2 /int0(外部中断 0) p3.3 /int1(外部中断 1) p3.4 t0(记时器 0 外部输入) p3.5 t1(记时器 1 外部输入) p3.6 /wr(外部数据存储器写选通) p3.7 /rd(外部数据存储器读选通) p3 口同时为闪烁编程和编程校验接收一些控制信号。 rst:复位输入。当振荡器复位器件时,要保持 rst 脚两个机器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。 在 flash 编程期间,此引脚用于输入编程脉冲。在平时,ale 端以不变的频率周期输出 正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时 目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ale 脉冲。如想禁 止 ale 的输出可在 sfr8eh 地址上置 0。此时, ale 只有在执行 movx,movc 指令是 ale 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ale 禁止,置位 无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周 期两次/psen 有效。但在访问外部数据存储器时,这两次有效的/psen 信号将不出现。 /ea/vpp:当/ea 保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不 管是否有内部程序存储器。注意加密方式 1 时,/ea 将内部锁定为 reset;当/ea 端保 持高电平时,此间内部程序存储器。在 flash 编程期间,此引脚也用于施加 12v 编程 电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。 xtal2:来自反向振荡器的输出。 3.1.33.1.3 震荡特性震荡特性 xtal1 和 xtal2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振 6 荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,xtal2 应不接。有 余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何 要求,但必须保证脉冲的高低电平要求的宽度。 3.1.43.1.4 芯片擦除芯片擦除 整个 perom 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ale 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空 存储字节被重复编程以前,该操作必须被执行。 此外,at89c51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软 件可选的掉电模式。在闲置模式下,cpu 停止工作。但 ram,定时器,计数器,串口和 中断系统仍在工作。在掉电模式下,保存 ram 的内容并且冻结振荡器,禁止所用其他 芯片功能,直到下一个硬件复位为止。 3.23.2 复位电路复位电路 图 32 时钟电路工作后,在 rest 管脚上加两个机器周期的高电平,芯片内部开始进行初 始复位(如图 32) 。 3.33.3 振荡电路振荡电路 7 图 33 本设计晶振选择频率为 12mhz,电容选择 30pf 如图(33)。经计算得单片机工 作胡机器周期为: 12(112m)=1us。 3.43.4 数码管数码管 图 34 本设计采用两个 4 位 8 段共阴极数码管。由于由单片机直接驱动的直流电流不够, 数码管亮度显得不足,所以加上三极管 s9013 用以放大电流。 因为 led 数码管合适的驱动电流大约为 9ma 到 20ma 左右,为了适 led 数码管工作 电流在 10ma 左右,具体计算如下: ib=(5v-1.4v-0.7v)/27k=0.110-3a ie= ib(+1)=10 ma 使用的 9013 的放大倍数 为 100. 8 图5 3.53.5 ledled 图 36 由于 led 使用 p0 口驱动要加上上拉电阻如图 36。 3.63.6 蜂鸣器蜂鸣器 图 37 由于蜂鸣器使用 p0 口驱动要加上上拉电阻如图 37。 9 3.73.7 完整电路图完整电路图 图 38 10 3.8 使用到的元使用到的元器器件列表件列表 元器件规格/型号数量 四位八段共阴数码管3461afr1-b101 四位八段共阴数码管sr420361 三极管sr90138 三极管s9651 电阻27k8 电阻10k 电阻1k 电解电容0.47uf/50v1 瓷片电容30pf2 单片机at89c511 表 39 第第 4 章章 软件程序设计软件程序设计 本系统程序部分使用 c 语言编写,c 语言是一种高级程序设计语言,它的优点是 简洁明了、可移植性高。 提示输入密码;当密码输入完毕时,对输入密码与设定的密码进行比较,若密码 正确则提示锁打开;若密码不正确,则报错。若连续 3 次输入不正确,则发出警报声 同时锁定键盘。 为了防止恶意尝试,系统才用若连续输入 3 次错误密码则发出报警声,且锁定键 盘,可以提高系统的安全系数,同时也能够保护合法用户的正常使用。 4.1软件设计流程图软件设计流程图 11 开始 输入密码 正确否? 开锁 判断按键 lock modify 键 上锁 结束 输入密码 正确否? 输入新密码 再次输入 一致否? 修改密码 yes no no yes no yes 图 41 4.2 具体功能软件实施具体功能软件实施 4.2.14.2.1 开始等待流程开始等待流程 12 开始 嘟的一声 判断是否 有按键? 结束 no yes 图 42 4.2.24.2.2 密码检查功能密码检查功能 本系统使用数组 password6存储密码,系统初始化对数组负值 password6 5,6,7,9,10,11相当于键盘上的 1,2,3,4,5,6。输入密码的时候,先将输入的 每一位密码分别放置在数组 check6中,然后再将 check6与 password6的每一位 分别对照。若每一位都相等,密码检查通过。 13 开始 输入一位密码, 数码管显示 “” k=6? k=0 按键为 cel? 结束 yes no no yes 图 43 4.34.3 代码代码 #include/声明调用了 reg52.h 单片机特征库 #define uchar unsigned char/定义 #define uint unsigned int sbit spk=p37;/定义蜂鸣器端口 sbit act=p32;/将单片机的 p3.2 口用 act 来关联,以后对 act 的操作就是对 p3.2 口 的操作 bit ok_flag;/定义标志位,bit=1 位 static uchar indata8;/定义静态全局变量 static uchar status=0x01; static uchar l,m; 14 uchar i,j; void bp(); void delay(); void password_set(); void password_in(); void main()/主函数 bp();/初始化 1s 音提示 password_set(); for (i=0;i22;i+) bp();/密码设置完成长音提示 l=0; while(l3) password_in(); if(!ok_flag) act=0; for(i=0;i8;i+) bp();/开锁长音提示 act=1; l=0; else l+; 15 for(i=0;i40;i+) bp();/报警 5s ok_flag=0; for(i=0;i24;i+) for(j=0;j200;j+) bp();/报警 1min l=0; void password_set(void)/密码设置 m=0; while(m8) switch(status) case 0x01: if(p1=0xff) status=0x01; else 16 delay(); status=0x02; break; case 0x02: if(p1!=0xff) bp();/按键后短音提示 indatam=p1;/保存设置密码 m+; status=0x01; break; default:break; m=0; void password_in(void)/密码输入 17 m=0; while(m8) switch(status) case 0x01: if(p1=0xff) status=0x01; else delay(); status=0x02; break; case 0x02: if(p1!=0xff) bp();/短音提示 if(p1!=indatam) ok_flag=1; 18 m+; status=0x01; break; default:break; m=0; void bp(void)/蜂鸣器 spk=0;/置低电平 for(i=0;i250;i+) for(j=0;j124;j+) spk=spk;/取反 spk=1;/置高电平 void delay(void)/延迟 19 for(i=0;i20;i+) for(j=0;j125;j+); 20 总结总结 通过这次课程设计,让我复习了很多学过的旧知识,同时锻炼了自己的动手能力 和查阅资料。尤其是解决在实际中解决排查问题的能力。 1.在设计中,我学到了如何使用 c 语言对单片机进行编写程序,熟悉了使用 keil 软件,并且加深了对单片机的编程技巧。 2.在做这个设计的过程中,我遇到了不少的问题。这锻炼了我筛选、查阅资料,并 将理论结合到自己的设计中的能力。一步一步的排除故障原因,找到故障的原因
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人教版八年级数学下册《17.1勾股定理》同步测试题及答案
- 2025届山东省德州市八校七下数学期末考试模拟试题含解析
- 移动应用开发中的常见问题与解决策略的试题及答案
- 企业合规性与战略风险管理的未来研究试题及答案
- 广东省江门市台山市2025届数学七下期末质量检测模拟试题含解析
- 促进跨部门合作的具体措施计划
- 在线教育平台的技术实现与挑战的试题及答案
- 法学概论考试中的数据保护法律与试题及答案
- 建立平台学校社团平台计划
- 2025年数字转型与公司战略试题及答案
- 机场运营效率提升策略与创新模式-洞察阐释
- 安徽省1号卷A10联盟2025届高三5月最后一卷生物试题及答案
- 网络安全等级保护备案表(2025版)
- 共情研究的历史发展及其当前状况分析
- 《拥抱健康拒绝烟草》课件
- 《绿色建筑评价》课件 - 迈向可持续建筑的未来
- 2025年湖南九年级物理(BEST湘西州联考)(含答案)
- 济南幼儿师范高等专科学校招聘真题2024
- 以患者为中心的医教融合模式在提升医疗服务质量中的应用研究
- 制氢技术与工艺课件:液氢
- (2025)全国小学生“学宪法、讲宪法”活动知识竞赛题库及答案
评论
0/150
提交评论