DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 102|回复: 0
打印 上一主题 下一主题

基于STC89C52单片机的电子密码锁设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:38:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 引言
  以往个人资料保存、部门文件档案多用机械锁,需携带多把钥匙,使用极不方便,钥匙丢失后安全性差。
  随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对门锁的使用要求、增加其安全性,电子密码锁应运而生,它具有防试探按键输入,智能控制上锁、报警、修改密码等多种功能f1剖。鉴于以往单片机的内部程序存储器不能由单片机自身修改,要完成修改密码功能,多采用片外串行E2PRoM实现。宏基公司生产的STC89系列单片机,高速、低功耗、新增在系统/在应用可编程(ISP,IAP)功能,使不具有E2PRoM的单片机具有了E2PRoM的功能,可以在线对现场历史数据的存储功能,适用于一些需经常改变数据的应用产品(如计费器、门禁系统等)及需远距离改变设备参数的产品(遥控设备等)。采用STC89C52单片机设计的电子密码锁,利用内部E2PROM资源,不需要外接程序存储器就能完成修改密码等多种功能,并且保密性高、成本低、简单易行,符合住宅、部门办公安全要求。
  1 设计思路及软硬件实现
  电子密码锁工作时分为两种工作状态,分别是正常状态和锁定状态。锁定状态时,输出锁定信号,供外部执行机构使用,实现上锁功能;正常状态时,锁定信号消失,供外部执行机构使用,允许用户进行密码修改。
  电子密码锁设计分硬件和软件部分。硬件电路见图1,包括稳压、晶振、复位、3×4键盘、指示灯、报警和电机驱动电路。软件编程思路如图1所示。




  用1个无符号字符型数组Val—Code和1个无符号字符型变量Val—Num来存放键盘输入的数据大小和输入个数。程序启动或复位后,清空数组Val—Code和变量Val—Num,并初始化定时器、报警器;进入锁定状态时,启动报警功能,如发现用户按下“开锁”键,则读入从微键盘输入的数字序列,更新数组Val Code和变量Val Num;然后比较数组Val Code与单片机内部E2PRoM中的密码是否相同,如密码相同则开锁、执行开锁动作、输出开锁信号、进入正常状态,否则继续等待用户开锁(为防止非法用户恶意多次试探密码,可在程序中设置当连续三次输入错误密码后自动报警。直至开锁后解除)。在正常状态时,可以进行重新设置密码、上锁等操作。重新设置密码时,首先验证原始密码,如相同则可进行密码更改,然后将新密码保存至单片机。内部E2PROM中。
  2 STC89C52单片机内部E2PROM及使用
  2.1 STC89C52RC单片机内部E2PROM
  在STC89C52单片机中有2 kB的E2PROM存储器,分8个扇区,每个扇区512 B,擦写次数可达10万次以上,写入数据有效保存时间可达100年。片内DataFlash(E2PROM)地址如表1所示。




  2.2 相关特殊功能寄存器
  与使用STC89C52RC单片机内部E2PROM有关的特殊功能寄存器见表2。



                          
                       
                          
                               

  2.2.1 ISP CONTR控制寄存器
  ISP CONTR控制寄存器的功能见表3。




  ISPEN:功能允许位。0禁止改变FI.ASH内容;1允许改变内容。
  SWBS:软件选择从用户区启动还是从ISP启动。
  0从用户区启动;1从ISP启动。
  SWRST:软件复位操作。0不操作;1产生软件系统复位,硬件自动清零。
  读、写、擦除扇区时间由控制寄存器设置。




  2.2.2 ISP TRIG命令触发寄存器
  在ISP CONTR最高位ISPEN=1时,对ISPTRIG先写46H,再写B9H,读写E2PROM的命令才会生效。
  2.2.3 ISP CMD命令寄存器
  ISP CMD对读写或擦除FLASH进行控制,其功能见表4。




  2.2.4 ISP—DATA,ISP—ADDRH,ISP—ADDRL
  使用单片机内部FLASH E2PROM写入数据或擦除数据时,需要用专门的存储器存放处理的数据和地址,ISP DATA用来存放数据,ISP ADDRH用来存放地址高字节,ISP ADDRL用来存放地址低字节。
                          
                       
                          
                               
  2.2.5 特殊功能寄存器的声明




  2.3主要功能模块
  2.3.1 允许FLASH E2PROM的操作




  2.3.2 禁止FLASH E2PROM操作,清除有关寄存器




  2.3.3读单片机内部E2PROM




  2.3.4 写单片机内部E2PROM




  2.3.5 擦除单片机内部E2PROM扇区




  3 结语
  采用STC89C52单片机设计的电子密码锁,实现智能电子密码锁的控制功能,克服了机械密码锁密码量少的缺点;采用内部E2PROM保存密码,比采用片外E2PROM具有更高的安全性、可靠性,可广泛用于家居、办公等智能控制系统中。


                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-27 20:24 , 耗时 0.093014 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表