基于STC89C52单片机的电子密码锁_李建波
基于STC89C52单片机的电子密码锁
李建波
(广东机电职业技术学院 广东广州 510515)
摘 要:为了提高个人资料、部门文件档案的保密性和安全性,采用高速、低功耗且具备ISP 、IA P 、内部E 2PROM 功能的
STC89C52单片机,设计了保密性更高的电子密码锁,并详细介绍STC89C52单片机内部E 2PROM 有关的特殊功能寄存器、
读写子程序。该电子密码锁的上锁、开锁、修改密码都在片内进行,不涉及外围芯片,减小了PCB 面积,降低故障率和成本,提高了可靠性、保密性,值得推广。
关键词:电子密码锁;STC89C52;E 2PROM ;保密性
中图分类号:TP368.1     文献标识码:B      文章编号:10042373X (2008)232154203
Design of Electronic Secure Code Lock B ased on STC89C52
L I Jianbo
(Guangdong Vocational College of Mechanical and Electrical Technology ,Guangzhou ,510515,China )
Abstract :In order to improve the security and safety of personal data ,archival departments ,a new electronic secure code lock with high security is designed based on STC89C52,which has ISP ,IA P ,Internal E 2PROM and high speed ,low 2power.The SFR and reading/writing/erasing sub 2routines of STC89C52Internal E 2PROM are introduced.The designed lock ,unlock and code modifying is done in internal E 2PROM ,hardware 2independent ,decreased PCB areas ,lower cost ,reducing the fault rate ,improving the reliability ,security and safety ,it is popularized.
K eywords :electronic secure code lock ;STC89C52;E 2PROM ;security
收稿日期:2008204222
基金项目:广东机电职业技术学院资助项目(Y J 200605)
桔子  以往个人资料保存、部门文件档案多用机械锁,需携带多把钥匙,使用极不方便,钥匙丢失后安全性差。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对
门锁的使用要求、增加其安全性,电子密码锁应运而生,它具有防试探按键输入,智能控制上锁、开锁、报警、修改密码等多种功能[124]。鉴于以往单片机的内部程序存储器不能由单片机自身修改,要完成修改密码功能,多采用片外串行E 2PROM 实现[5]。宏基公司生产的STC89系列单片
机,高速、低功耗、新增在系统/在应用可编程(ISP ,IA P )功能,使不具有E 2PROM 的单片机具有了E 2PROM 的功能[5],可以在线对现场历史数据的存储功
能,适用于一些需经常改变数据的应用产品(如计费器、门禁系统等)及需远距离改变设备参数的产品(遥控设备等)[6210]。采用STC89C52单片机设计的电子密码锁,利用内部E 2PROM 资源,不需要外接程序存储器就能完成修改密码等多种功能,并且保密性高、成本低、简单易行,符合住宅、部门办公安全要求。
1 设计思路及软硬件实现
电子密码锁工作时分为两种工作状态,分别是正常
状态和锁定状态。锁定状态时,输出锁定信号,供外部执行机构使用,实现上锁功能;正常状态时,锁定信号消失,供外部执行机构使用,实现开锁功能,并允许用户进行密码修改。
电子密码锁设计分硬件和软件部分。硬件电路见图1,包括稳压、晶振、复位、3×4键盘、指示灯、报
警和电机驱动电路。软件编程思路如图2所示
图1 硬件电路
用1个无符号字符型数组Val_Code 和1个无符号
字符型变量Val_Num 来存放键盘输入的数据大小和输入个数。程序启动或复位后,清空数组Val_Code 和变量Val_Num ,并初始化定时器、报警器;进入锁定状
4
51电子技术李建波:基于STC89C52单片机的电子密码锁
2008
态时,启动报警功能,如发现用户按下“开锁”键,则读入从微键盘输入的数字序列,更新数组Val_Code和变量Val_Num;然后比较数组Val_Code与单片机内部E2 2PROM中的密码是否相同,如密码相同则开锁、执行开锁动作、输出开锁信号、进入正常状态,否则继续等待用户开锁(为防止非法用户恶意多次试探密码,可在程序中设置当连续三次输入错误密码后自动报警,直至开锁后解除)。在正常状态时,可以进行重新设置密码、上锁等操作,重新设置密码时,首先验证原始密码,如相同则可进行密码更改,然后将新密码保存至单片机内部E2 2PROM中。
2 STC89C52单片机内部E2PR OM及使用
2.1 STC89C52RC单片机内部E2PROM
在STC89C52单片机中有2kB的E2PROM存储器,分8个扇区,每个扇区512B,擦写次数可达10万次以上,写入数据有效保存时间可达100年。片内Data Flash(E2PROM)地址如表1所示。
2.2 相关特殊功能寄存器
与使用STC89C52RC单片机内部E2PROM有关的特殊功能寄存器见表2。
2.2.1 ISP_CON TR控制寄存器
ISP_CON TR控制寄存器的功能见表3。
ISPEN:功能允许位。0禁止改变FL ASH内容; 1允许改变内容。
SWBS:软件选择从用户区启动还是从ISP启动。0从用户区启动;1从ISP启动。
  SWRST:软件复位操作。0不操作;1产生软件系统复位,硬件自动清零。
读、写、擦除扇区时间由控制寄存器设置
2 电子密码锁设计流程图
2.2.2 ISP_TRIG命令触发寄存器
描写雪的好段
在ISP_CON TR最高位ISPEN=1时,对ISP_ TRIG先写46H,再写B9H,读写E2PROM的命令才会生效。
2.2.3 ISP_CMD命令寄存器
除垢ISP_CMD对读写或擦除FLASH进行控制,其功能见表4。
表1 STC89C52RC单片机内部Data Flash(E2PR OM)地址
第1扇区第2扇区第3扇区第4扇区起始地址结束地址起始地址结束地址起始地址结束地址起始地址结束地址
2000H21FF H2200H23FF H2400H25FF H2600H27FF H 第5扇区第6扇区第7扇区第8扇区起始地址结束地址起始地址结束地址起始地址结束地址起始地址结束地址
2800H29FF H2A00H2BFF H2C00H2DFF H2E00H2FFF H
表2 与单片机内部E2PR OM有关的特殊功能寄存器
SFR地址名称76543210复位ISP_DA TA E2H数据寄存器11111111
ISP_ADDR H E3H地址高字节00000000
ISP_ADDRL E4H地址低字节00000000
ISP_CMD E5H命令寄存器-----MS2MS1MS0xxxx x000
ISP_TRIG E6H触发寄存器xxxx xxxx
大学生实习总结范文
ISP_CON TR E7H控制寄存器ISPEN SWBS SWRST--WT2WT1W T0000x x000
551《现代电子技术》2008年第23期总第286期  电子技术应用
表3 ISP_CONTR控制寄存器功能
系统时钟/M Hz    等待时间      机器周期   WT2W T1W T0读写擦除扇区
50006305471
10001116010942
200102212021885
400114324043769
表4 ISP_CMD命令寄存器功能
MS2MS1MS0操作模式
000待机模式
001读FLASH
010写FLASH
011擦除FLASH
2.2.4 ISP_DA TA,ISP_ADDR H,ISP_ADDRL
使用单片机内部FL ASH E2PROM写入数据或擦除数据时,需要用专门的存储器存放处理的数据和地址,ISP_DA TA用来存放数据,ISP_ADDR H用来存放地址高字节,ISP_ADDRL用来存放地址低字节。
2.2.5 特殊功能寄存器的声明
sf r ISP_DA TA =0x E2;
sf r ISP_ADDR H=0xE3;
sf r ISP_ADDRL=0x E4;
sf r ISP_CMD =0xE5;
sf r ISP_TRIG =0x E6;
sf r ISP_CON TR=0x E7。
2.3 主要功能模块
2.3.1 允许FLASH E2PROM的操作
void Enable_IA P(){
  EA=0;
  ISP_TRIG =0x46;//Enable   ISP_TRIG =0xB9;
  EA=1;}
2.3.2 禁止FLASH E2PROM操作,清除有关寄存器
void Disable_IA P(){
  ISP_CON TR=0x00;//Disable   ISP_CMD=0x00;
密云旅游  ISP_TRIG=0x00;
  ISP_ADDR H=0x00;
  ISP_ADDRL=0x00;}
2.3.3 读单片机内部E2PROM
uchar read_Byte(uint addr){
  ISP_CON TR=0x81;
  ISP_CMD =0x01;//read command   ISP_ADDR H=addr/0x0100;//high addr   ISP_ADDRL=addr%0x0100;//lower addr   Enable_IA P();//允许  Disable_IA P();//禁止  return(ISP_DA TA);}2.3.4 写单片机内部E2PROM
void write_Byte(uint addr,uchar ch){
  ISP_CON TR=0x81;
  ISP_CMD=0x02;
  ISP_DA TA=ch;
  ISP_ADDR H=addr/0x0100;//high addr   ISP_ADDRL=addr%0x0100;//lower addr   Enable_IA P();//允许  Disable_IAP();}//禁止2.3.5 擦除单片机内部E2PROM扇区
void Erase_Sector(uint addr){
  ISP_CON TR=0x81;
  ISP_CMD=0x03;
  ISP_ADDR H=addr/0x0100;//high addr   ISP_ADDRL=addr%0x0100;//lower addr   Enable_IA P();//允许  Disable_IAP();}//禁止3 结 语
采用STC89C52单片机设计的电子密码锁,实现智能电子密码锁的控制功能,克服了机械密码锁密码量少的缺点;采用内部E2PROM保存密码,比采用片外E2PROM具有更高的安全性、可靠性,可广泛用于家居、办公等智能控制系统中。
参 考 文 献
[1]郭海英.基于单片机的电子安全密码锁的设计[J].现代电
子技术,2005,28(13):95297.
[2]欧阳小东,李玲,安文源.基于A T89C51的激光密码锁的设
计[J].现代电子技术,2004,27(14):1022104.
[3]陈开文.基于A T89C51的安全密码锁应用设计[J].科技资
讯,2006(9):27228.
[4]周功明.基于A T89C2051单片机的防盗自动报警电子密码
锁系统的设计[J].绵阳师范学院学报,2007(5):1122115. [5]刘振海.一种基于单片机和串行E2PROM的智能密码锁
[J].微计算机信息,2007,23(35):1332134.
[6]姚永平.STC89C51RC/RD+系列单片机用户手册[EB/
OL].宏晶科技.u2memory,2006. [7]邬伟奇.STC89系列高性能单片机及其应用[J].微计算机
信息,2004,20(7):92294.
水电安装合同范本[8]郭稳涛,何怡刚,廖学坤.基于单片机STC89C58RD的电梯
智能语音系统设计[J].电子元器件应用,2007,9(12): 10212.
[9]吴杰,许忠仁,龚丽.STC单片机抽油机节能控制系统的研
制[J].计算机测量与控制,2007(3):3442346.
[10]邢矫健.增强型的STC89C51系列单片机简介[J].无线电,
2006(10):43244.
作者简介 李建波 男,1973年出生,河北石家庄人,电子科学与技术讲师,2001年硕士毕业于华南理工大学。现华南理工大学攻读博士学位。研究方向为智能仪表仪器开发。
651
电子技术李建波:基于STC89C52单片机的电子密码锁

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。