找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3376|回复: 0
打印 上一主题 下一主题
收起左侧

求助~谁能帮我电子锁加个密码错误3次才报警的功能

[复制链接]
跳转到指定楼层
楼主
ID:118348 发表于 2016-5-4 13:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LED_BIT_1   EQU  30H
LED_BIT_2   EQU  31H
LED_BIT_3   EQU  32H
LED_BIT_4   EQU  33H
LED_BIT_5   EQU  34H
LED_BIT_6   EQU  35H
LED_BIT_7   EQU  36H
LED_BIT_8   EQU  37H
WORD_1      EQU  38H
WORD_2      EQU  39H
WORD_3      EQU  3AH
WORD_4      EQU  3BH
WORD_5      EQU  3CH
WORD_6      EQU  3DH
KEY_1                EQU  43H
KEY_2                EQU  42H
KEY_3                EQU  41H
KEY_4                EQU  40H
KEY_5                EQU  3FH
KEY_6                EQU  3EH
CNT_A                EQU  44H
CNT_B                EQU  45H
KEY_CNT                EQU  46H      
LINE                EQU  47H         
ROW                 EQU  48H         
VAL                    EQU  49H  
ORG 0000H
             SJMP  START
              ORG   0BH
        LJMP  INT_T0
START:        MOV   CNT_A,#00H         
              MOV   CNT_B,#00H       
              MOV   KEY_CNT,#00H
              MOV   LINE,#00H
              MOV   ROW,#00H
              MOV   VAL,#00H
              SETB  P1.0
              MOV   LED_BIT_1,#00H      
             MOV   LED_BIT_2,#00H
             MOV   LED_BIT_3,#00H
              MOV   LED_BIT_4,#00H
             MOV   LED_BIT_5,#00H
             MOV   LED_BIT_6,#00H
              MOV   LED_BIT_7,#79H
              MOV   LED_BIT_8,#73H
            MOV   KEY_1,#00H         
              MOV   KEY_2,#00H
             MOV   KEY_3,#00H
              MOV   KEY_4,#00H
              MOV   KEY_5,#00H
              MOV   KEY_6,#00H
              MOV   WORD_1,#6           
             MOV   WORD_2,#5
             MOV   WORD_3,#4
             MOV   WORD_4,#3
              MOV   WORD_5,#2
              MOV   WORD_6,#1
             MOV   TMOD,#01H
        MOV TH0,# -700 /256
        MOV TL0,# -700 MOD 256
        MOV   IE,#82H
A0:          LCALL DISP              
LSCAN:         MOV   P3,#0F0H        
L1:            JNB   P3.0,L2
               LCALL DLY_S
               JNB   P3.0,L2
              MOV   LINE,#00H
               LJMP  RSCAN
L2:            JNB   P3.1,L3
               LCALL DLY_S
        JNB   P3.1,L3
        MOV   LINE,#01H
        LJMP  RSCAN
L3:            JNB   P3.2,L4
               LCALL DLY_S
        JNB   P3.2,L4
        MOV   LINE,#02H
        LJMP  RSCAN
L4:            JNB   P3.3,A0
              LCALL DLY_S
        JNB   P3.3,A0
        MOV   LINE,#03H
RSCAN:  MOV   P3,#0FH        
C1:            JNB   P3.4,C2
               MOV   ROW,#00H
        LJMP  CALCU
C2:           JNB   P3.5,C3
               MOV   ROW,#01H
        LJMP  CALCU
C3:            JNB   P3.6,C1
               MOV   ROW,#02H
CALCU:         MOV   A,LINE         
               MOV   B,#03H
           MUL   AB
           ADD   A,ROW
           MOV   VAL,A           
       CJNE  A,#0AH,J1        
           MOV   R1,KEY_CNT
           CJNE  R1,#00H,J2
           LCALL ALARM_1
           LJMP  START
J2:    LCALL SHIFTR
       DEC   KEY_CNT
W00:   LCALL DISP            
       MOV   A,P3
           CJNE  A,#0FH,W01
           LJMP  A0
W01:   MOV   A,P3
       CJNE  A,#0F0H,W02
           LJMP  A0
W02:   SJMP  W00
J1:    MOV   A,VAL
       CJNE  A,#0BH,J3         
           MOV   R1,KEY_CNT
           CJNE  R1,#06H,J4
           MOV   A,WORD_1        
           CJNE  A,3EH,J5
           MOV   A,WORD_2
           CJNE  A,3FH,J5
           MOV   A,WORD_3
           CJNE  A,40H,J5
           MOV   A,WORD_4
           CJNE  A,41H,J5
           MOV   A,WORD_5
           CJNE  A,42H,J5
           MOV   A,WORD_6
           CJNE  A,43H,J5
           CLR   P1.0
           LCALL DLY_L
           LJMP  FINI
J5:    LCALL ALARM_2
       LJMP  START
J4:    LCALL ALARM_1
       LJMP  START
J3:    INC   KEY_CNT            
       MOV   A,KEY_CNT
           CJNE  A,#07H,K1
           LCALL ALARM_1
W10:   LCALL DISP               
       MOV   A,P3
           CJNE  A,#0FH,W11
           LJMP  START
W11:   MOV   A,P3
           CJNE  A,#0F0H,W12
           LJMP  START
W12:   SJMP  W10
       LJMP  START
           LJMP  START
K1:    LCALL SHIFTL
W20:   LCALL DISP              
       MOV   A,P3
           CJNE  A,#0FH,W21
           LJMP  A0
W21:   MOV   A,P3
       CJNE  A,#0F0H,W22
           LJMP  A0
W22:   SJMP  W20
       LJMP  A0
           ALARM_1:SETB TR0        
           JB    TR0,$
           RET
ALARM_2:SETB TR0              
        JB   TR0,$
                LCALL DLY_L
                RET

INT_T0: CPL  P1.7
                MOV TH0,# -700 /256
                MOV TL0,# -700 MOD 256
                INC  CNT_A
                MOV  R1,CNT_A
                CJNE R1,#30,RETUNE
                MOV  CNT_A,#00H
                INC  CNT_B
                MOV  R1,CNT_B
                CJNE R1,#20,RETUNE
                MOV  CNT_A,#00H
                MOV  CNT_B,#00H
                CLR  TR0
RETUNE:RETI                     
SHIFTL:MOV   LED_BIT_6,LED_BIT_5
       MOV   LED_BIT_5,LED_BIT_4
           MOV   LED_BIT_4,LED_BIT_3
       MOV   LED_BIT_3,LED_BIT_2
           MOV   LED_BIT_2,LED_BIT_1
           MOV   LED_BIT_1,#40H
           MOV   KEY_6,KEY_5
           MOV   KEY_5,KEY_4
       MOV   KEY_4,KEY_3
           MOV   KEY_3,KEY_2
           MOV   KEY_2,KEY_1
           MOV   KEY_1,VAL
           RET                     
SHIFTR:MOV   LED_BIT_1,LED_BIT_2
       MOV   LED_BIT_2,LED_BIT_3
           MOV   LED_BIT_3,LED_BIT_4
       MOV   LED_BIT_4,LED_BIT_5
           MOV   LED_BIT_5,LED_BIT_6
           MOV   LED_BIT_6,#00H
           MOV   KEY_1,KEY_2
           MOV   KEY_2,KEY_3
           MOV   KEY_3,KEY_4
           MOV   KEY_4,KEY_5
           MOV   KEY_5,KEY_6
           MOV   KEY_6,#00H
           RET
DISP:  CLR   P2.7
       MOV   P0,LED_BIT_8
           LCALL DLY_S
           SETB  P2.7
           CLR   P2.6
           MOV   P0,LED_BIT_7
           LCALL DLY_S
           SETB  P2.6
           CLR   P2.5
           MOV   P0,LED_BIT_6
           LCALL DLY_S
           SETB  P2.5
           CLR   P2.4
           MOV   P0,LED_BIT_5
           LCALL DLY_S
           SETB  P2.4
           CLR   P2.3
           MOV   P0,LED_BIT_4
           LCALL DLY_S
           SETB  P2.3
           CLR   P2.2
           MOV   P0,LED_BIT_3
           LCALL DLY_S
           SETB  P2.2
           CLR   P2.1
           MOV   P0,LED_BIT_2
           LCALL DLY_S
           SETB  P2.1
           CLR   P2.0
           MOV   P0,LED_BIT_1
           LCALL DLY_S
           SETB  P2.0
           RET
DLY_S: MOV   R6,#10
D1:    MOV   R7,#250
       DJNZ  R7,$
           DJNZ  R6,D1
           RET
DLY_L: MOV   R5,#100
D2:    MOV   R6,#100
D3:    MOV   R7,#248
       DJNZ  R7,$
           DJNZ  R6,D3
           DJNZ  R5,D2
           RET
FINI:  NOP
       END


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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