网站导航: 首页 > 设计参考 > 正文 文章搜索
一种由单片机实现的多功能密码锁
 
文章编号:
090518145021
文章分类: 单片机 51系列
点 击:
...
关 键 词: 多功能密码锁
文章来源:
网络,作者:徐欣 樊的
摘 要:
介绍一种由AT89C2051编程实规的密码锁,具有按键有效指示、输入错误指示、解码有效指示、控制开锁电平、定时中断、控制报警、密码修改等功能,可在意外泄密的情况下及时修改密码,8位密码共一亿组不重复保密性强灵活

一、引言

  出于安全、方便等方面的月要,许多智能锁(如指纹辨识·IC卡辨识)已相继问世,但这类产品的特点是针对特定指纹或有效卡,只能活用于保密要求高且仅供个别人使用的箱、柜、房间等。而且卡片式IC卡还有易丢失等特点,加上其成本一般较高,一定程度上限制了这类产品的普及和推广。

  本文介绍一种由AT89C2051编程实规的密码锁,具有按键有效指示、输入错误指示、解码有效指示、控制开锁电平、定时中断、控制报警、密码修改等功能,可在意外泄密的情况下及时修改密码,8位密码共一亿组不重复保密性强灵活性高,适用范围广,特别适合家庭、宾馆等场所。

二、芯片介绍

  AT89C2051是与MCS-51系列兼容的一种高性能单片机。它具有2K片内ROM,256字节片内RAM,8个辅助寄存器,在不附加任何外围电路的情况下,能实现大部分比较复杂的逻辑控制功能,进行外部RAM扩展还可用于数据采集动画广告牌控制等方面的应用。对存储容量要求不高的实际应用,AT89C2051确实是一种不可多得的高效能单片机。

  芯片引脚排列如图7. 1-1所示。与51系列单片机类似,AT89C2051有两个P口,P1口和P3口。P1 口作为一般的I/O口,其中P1.1和P1.0可作为摸拟信号输人端口。P3口是双功能I/O口,除一般I/O功能外,P3.0和P3.1兼有串行发送和接收的功能,P3.2为外部中断输入,P3.3,P3.4分别为定时器0和1i的计数输人。XALT1、XALT2 为外部晶振端口。Vcc与GND分别接电流和地。

图7.1-1   AT89C2051引脚示意图

三、工作原理

  为适应功能需求,对AT89C2051进行编程后,得到控制电路如图7.1-2所示。其中R1~R3、C1~C$为键盘愉入端口,UNLOCK(2脚)为解码正确条件下输出开锁电平,控制电控锁开启,EFFI(7脚)为有效按键提示,WARN(8脚)为错误输入警告,DANG (3脚)为六次误码输入条件一,产生报警电平,LOCK (6脚)为90秒定时中断,输出控制信号,防止长时间无效操作。该电路还可与其它报替电路配合完成防盗报警功能。整个控制功能实现流程如图7. 1-3所示。

图7.1-2  控制电路功能示意图

图7.1-3  工作原理流程

四、程序实现

  根据工作流程结构,对AT89C2051编程实现怪序浦单及简要说明如下。

(1)时延子程序:

 
  1. DELAY:MOV R5,#30H  
  2. DELAY1:MOV A,#0FFH  
  3. LOOP:DEC A  
  4. JNZ LOOP   
  5. DJNZ R5,DELAY1   
  6. RET  

(2)修改密码子程序:

 
  1. CHPSW:         
  2. MOV R0,#40H        
  3. ANOTHER:         
  4. ACALL INPUT         
  5. MOV A,R7        
  6. MOV @R0A        
  7. INC R0        
  8. CLR P3.3       ;按键输入有效提示     
  9. ACALL DELAY         
  10. SETB P3.3        
  11. DJNZ R4,ANOTHER         
  12. RET     

(3)扫描输入子程序:

 
  1. INPUT:   
  2. MOV R6,#02H  
  3. MOV R1,#40H  
  4. LOP:   
  5. ACALL DELAY   
  6. MOV P1,#0FFH    ;扫描码  
  7. CLR P1.6  
  8. MOV A,P1  
  9. ANL A,#0FH        ;检验有否按键  
  10. CJNE A,#0FH,INKEY   
  11. MOV P1,#0FFH  
  12. CLR P1.5  
  13. MOV A,P1  
  14. ANL A,#0FH  
  15. CJNE A,#0FH,INKEY   
  16. MOV P1,#0FFH  
  17. CLR P1.4  
  18. MOV A,P1  
  19. ANL A,#0FH  
  20. CJNE A,#0FH,INKEY   
  21. SJMP LOP   
  22. INKEY:   
  23. MOV@R1,P1  
  24. INC R1l  
  25. DJNZ R6,LOP   
  26. DEC R1  
  27. MOV A,@R1  
  28. DEC R1  
  29. CJNE A40H,INPUT   
  30. RET  

(4)时钟中断子程序:

 
  1. INT:   
  2. PUSH ACC  
  3. MOV TMOD,#01H  
  4. MOV TL0,#00H  
  5. MOV TH0,#00H  
  6. SETB TR0   
  7. SETB ET0  
  8. SETB EA  
  9. DJNZ R2,CONT   
  10. CONTINUE:   
  11. DJNZ 3AH,CONT   
  12. CLR P3.2                ;时钟中断控制  
  13. STOP:AJMP STOP   
  14. CONT:   
  15. POP ACC  
  16. RETI  

(5)主程序:

 
  1. ORG 0H  
  2. SJMP START   
  3. ORG 0BH  
  4. SJMP INT   
  5. START                 ;初始化  
  6. MOV SP#70H,   
  7. SETB P3.0  
  8. SETB P3.1  
  9. SETB P3.2  
  10. SETB P3.3  
  11. MOV TMOD,#01H  
  12. MOV TL0,#OOH   
  13. MOV TH0 #00H  
  14. SETB TR0   
  15. SETB ET0  
  16. SETB EA  
  17. MOV R2,#0FFH  
  18. MOV 3AH,#03H  
  19. MOV R3,#06H  
  20. PASSWORD:             ;设置初始密码  
  21. MOV R4,#08H;  
  22. MOV R0,#40H  
  23. MOV A,#07H  
  24. MOV @R0,A  
  25. INC R0  
  26. INC A  
  27. DJNZ R4,PASSWORD   
  28. DETPW:   
  29. MOV R4,#08H                    ;输入密码  
  30. MOV R0,#30H  
  31. AGAIN:   
  32. ACALL INPUT   
  33. MOV A,R7  
  34. CJ R7,#0BH,IN   
  35. ACALL CHPSW            ;修改密码子程序  
  36. JMP GETPW   
  37. IN:   
  38. MOV @R0,A  
  39. CLR P3.3                    ;按键有效提示  
  40. ACALL DELAY   
  41. SETB P3.3  
  42. COMP:                               ;比较密码  
  43. MOV R4,#08H  
  44. MOV R0,#30H  
  45. AGA1:   
  46. MOV 50H,@R0  
  47. ADD R0,#010H  
  48. MOV A,@R0  
  49. SUB R0,#010H  
  50. CJNE A,50H,ONCEMORE   
  51. INC R0  
  52. DJNZ R4,AGA1   
  53. CLR P3.0  
  54. HERE:AJMP HERE   
  55. ONCEMORE:   
  56. CLR P3. 4                    ;错误输入警告  
  57. ACALL DELAY   
  58. SETB P3.4  
  59. DJNZ R3,GETPW   
  60. CLR P3.1                     ;六次错误输入报警  
  61. THERE:AJMP THERE  
 
相关文章:

 
最新开源项目
 
 
  查看更多...  
 
本站相关产品   淘宝网店
 




 
  查看更多...  

 

本站程序由百合电子工作室开发和维护
Copyright @ baihe electric studio
渝ICP备09006681号-4