51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机技术文章 > 51单片机 > 详细内容
用AT89C2051设计的多功能密码锁
发布时间:2009/7/7  阅读次数:2084  字体大小: 【】 【】【

                     START                       ;初始化
                     MOV     SP.#70H
                     SETB   P3.0
                     SETB   P3.1
                     SETB   P3.2
                     SETB   P3.3
                     MOV     TMOD,#01H
                     MOV     TL0,#00H
                     MOV     TH0,#00H
                     SETB   TR0
                     SETB   ET0
                     SETB   EA
                     MOV     R2,#0FFH
                     MOV     3AH,#03H
                     MOV     R3,#06H
      
   PASSWORD:MOV     R4,#08H               ;设置初始密码
                     MOV     R0,#40H
                     MOV     A,#07H
                     MOV     @R0,A
                     INC     R0
                     INC     A
                     DJNZ   R4,PASSWORD

   DETPW:     MOV     R4,#08H                 ;输入密码
                     MOV     R0,#30H
  
   AGAIN:     ACALL INPUT
                     MOV     A,R7
                     CJ       R7,#08H,IN
                     ACALL CHPSW                     ;修改密码子程序
                     JMP     GETPW

   IN:           MOV     @R0,A
                     CLR     P3.3                       ;按键有效显示
                     ACALL DELAY
                     SETB   P3.3
  
   COMP:       MOV     R4,#08H                 ;比较密码
                     MOV     R0,#30H
  
   AGAI:       MOV     50H,@R0
                     ADD     R0,#010H
                     MOV     A,@R0
                     SUB     R0,#010H
                     CJNE   A,50H,ONCEMORE
                     INC     R0
                     DJNZ   R4,AGA1
                     CLR     P3.0
  
   HERE:       AJMP   HERE
  
   ONCEMORE:CLR     P3.4                         ;错误输入警告
                     ACALL DELAY
                     SETB   P3.4
                     DJNZ   R3,GETPW
                     CLR     P3.1                         ;6次错误输入报警
   THERE:     AJMP   THERE

  2.延时子程序
   DELAY:     MOV     R5,#30H
  
   DELAY1:   MOV     A,#0FFH
  
   LOOOP:     DEC     A
                     JNZ     LOOP
                     DJNZ   R5,DELAY1
                     RET
  
  3.修改密码子程序
   CHPSW:     MOV     R0,#40H
  
   ANOTHER: ACALL INPUT
                     MOV     A,R7
                     MOV     @R0,A
                     INC     R0
                     CLR     P3.3                           ;按键有效提示
                     ACALL DELAY
                     SETB   P3.3
                     DJNZ   R4,ANOTHER
                     RET
  
  4.扫描键盘输入子程序
   INPUT:     MOV     R6,#02H
                     MOV     R1,#40H
  
   LOP:         ACALL DELAY
                     MOV     P1,#0FFH                     ;扫描码
                     CLR     P1.6
                     MOV     A,P1
                     ANL     A,#0FH                         ;检验有否按键
                     CJNE   A,#0FH,INKEY
                     MOV     P1,#0FFH
                     CLR     P1.5
                     MOV     A,P1
                     ANL     A,#0FH
                     CJNE   AA,#0FH,INKEY
                     MOV     P1,#0FFH
                     CLR     P1,4
                     MOV     A,P1
                     ANL     A,#0FH
                     CJNE   A,#0FH,INKEY
                     SJMP   LOP
  
   INKEY:     MOV     @R1,P1
                     INC     R1
                     DJNZ   R6,LOP
                     DEC     R1
                     MOV     A,@R1
                     DEC     R1
                     CJNE   A,40H,INPUT
                     RET

  5.时钟中断子程序
   INT:         PUSH   ACC
                     MOV     TMOD,#01H
                     MOV     TL0,#00H
                     MOV     TH0,#00H
                     SETB   TR0
                     SETB   ET0
                     SETB   EA
                     DJNZ   R2,CONT
                     CONTINUE
                     DJNA   3AH,CONT
                     CLR     P3.2                 ;时钟中断控制
  
   STOP:       AJMP   STOP
  
   CONT:       POP     ACC
                     RET1

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号