网站大量收购闲置独家精品文档,联系QQ:2885784924

C语言STCC单片机电子密码锁的设计与仿真.docVIP

C语言STCC单片机电子密码锁的设计与仿真.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言STCC单片机电子密码锁的设计与仿真

基于C语言STC89C52单片机电子密码锁的设计与仿真 来源:维库 作者: ? 摘 要:介绍一种通过 Protues 软件成功仿真的电子密码锁的实现过程。它采用高可靠性的STC89C52单片机来实现*和密码酌识别,采用具备IC接田的EPROM芯片来完成密码的聋储,通过l602液吊显示器提示程序运行状态和使用步骤,利用蜂鸣器模拟报警,发光二极管模拟锁的开关。该系统用C语言编写程序,与汇编语言相比具备更好的移植性和可读性,便于修改和增减功能。   0、引言   电子密码锁是现代生活中常用的加密工具。它克服了机械式密码锁密码量少、安全性能差的缺点,尤其是的智能电子密码锁;不仅具有电子密码锁的功能”还可引人智能化管理功能,从而使密码锁具有更离的安全性和可靠性。   电子密码锁通常使用ARM和单片机控制,单片机相对ARM实现较为简单,功能较为完善,因此使用单片机控制较多。用单片机控制的窖码锁常使用汇编语言编写程序,显示器多数用。而本文所介绍的电子密犸锁使用移植性及可读性强的高级语言C语言编写,便于修改和增减功能蚤同时采用显示清楚数码管,功率消耗小而且寿命长的 液晶显示器,显示更加直观,使用更加方便。从经济实用的角度出发,采用STC89C52单片机设计出一种具有密码设置、报警和防止多次试探密码功能的电子密码锁,通过Protues软件成功地进行了仿真。   1、系统工作原理   本系统以STC89C52单片机为核心,使用4X4矩阵键盘作为数据输人方式,驱动1602显示器提示程序运行过程和*的步骤。本系统的密码判断过程如下:   当使用者输人6位密码后按下BESURE键,单片机通过密码逐个比较,如果输入的6位蜜码和设定的密码完全相同,那么能成功驱动*模拟灯将锁打开。若输入6位密码与设定的密码不相同,按下BESURE键后,模拟灯不亮,可以按BACK键重新输入。由于输入密码过程中难免输入失误,如果密码输错,可直接攒下BACK键重新输入,但是系统不允许无限次地按BACK 键,以免密码被套用,当3次密码输入都错误,单片机将驱动蜂鸣器报警。并且本系统输入密码还有呓间限制,在规定的时阍内没有将正确密码输入也会报警。   修改密码功能如下:当密码输人正确后,按下SET键可新设置密码。每设定一位新密码,单片机将其送给EPROM,当6位新密码都输入完毕,系统将自动回到程序开始,重新读取密码并保存,使用者需输人新的密码才能将锁打开。   2、系统设计 ?????? 使用的元器件有:核心芯片STC89C52、存储芯片AT24C02、液晶显示1602、矩阵键盘、报警蜂鸣器、独立按键(摸拟门的开关)、发光二极管(模拟锁的开关)和三极管(放大电流)。 ?   2.1 硬件支持     2.2 软件设计   本系统软件包插主程序模块、甯码比较判断模块、修改密码模块、键盘扫描模块、液晶显示模块及定时程序等模块。系统程序流程如图1所示。 ?图1 系统程序流程图  2.2.1 主程序模块   主租序主要用于定义全局变量,给全局变量赋初值,初始化EPROM,启动定时器以及从AT24C02中读取密码, 为整个程序提供数据。   2.2.2 密码比较判断模块   该模块的功能是将键盘输入的密码利用IF语句与设定的密码进行逐个比较,若密码完全正确则*;若不正确,则按下BACK键,重新输入密码,每按下BACK键一次,输人次数将自加1,当3}fi都出错则报警。   2.2.3 密码修改模块   在窖码输入正确情况下,可以按下SET对密码进行重新设置,每设定一位就将密码送给AT24C02存储起来,当设置6位密码完毕后,系统将自动跳到程序开始,调用新设置的辚码。   STC89C52向AT24C02写入密码子程序:void wrtte_byte(uchar date)  STC89C52 从 AT24C02读取密码子程序: ?   2.2.4 键盘扫描模块   该模块具备功能有:逐列扫描键盘确实被按键的具体位置、判断键盘上有无键按下、消除抖动、判断闭合的键是否释放等功能。   2.2.5定时模块   本模块用于对密码输入时间控制。在程序运行时首先对定时器进行了初始化,从按下PUT IN键开始,系统开始计时,当输入的时间达到规定的时间将立即报警。   2.2.6 液晶显示模块   此模块包括液晶初始化、命令的输入、显示数据的输入。其中命令 用于控制液晶状态是否显示光标,光标是否闪烁,是否清除原来数据以及显示的具体位置。数据显示主要是将要显示的信息安需要准时显示出来。 3 系统仿真   为了方便程序高度。本文采用了 Protues 仿真,仿真图如图2所示。 ?   3.1系统介绍   图2中U1为STC89C52是个系统的核心,编写的程序以二进制的文件导入其中;U2为AT24C02,第5和第

文档评论(0)

ipad0a + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档