⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lock.asm

📁 实现集密码显示,语音报警和加密解密等功能于一身的防试探型密码锁!
💻 ASM
📖 第 1 页 / 共 3 页
字号:
  t6:
        MOV   R3,#10H
        MOV   DPTR,#xia
  T5:
        CLR   A
        MOVC  A,@A+DPTR
        MOV   DATA1,A
        LCALL WDATA1
        INC   DPTR
        DJNZ  R3,T5
        DJNZ  R1,t6
  START_EXIT:
        MOV   R3,#10H
        MOV   DATA1,#00H
  T4:
        LCALL WDATA1
        DJNZ  R3,T4
        RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示右边*
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP_RIGHT:

        MOV   COMMAND,#0BBH
        LCALL WINSTR2
        MOV   COMMAND,#00H
        LCALL WINSTR2
        MOV   A,R4
        JB    ACC.1,tt6
        JB    ACC.0,tt6
        JMP   ST
  tt6:
        MOV   R3,#10H
        MOV   DATA1,#00h
  Tt4:
        LCALL WDATA2
        DJNZ  R3,Tt4
        DJNZ  R4,tt6
        MOV   A,RIGHT_ALL
        JB    ACC.1,ST
        JB    ACC.0,ST
        JMP   ST_EXIT
  ST:
        MOV   R1,RIGHT_ALL
  TT7:
        MOV   R3,#10H
        MOV   DPTR,#xia
  TT5:
        CLR   A
        MOVC  A,@A+DPTR
        MOV   DATA1,A
        LCALL WDATA2
        INC   DPTR
        DJNZ  R3,TT5
        DJNZ  R1,TT7
  ST_EXIT:
        RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示器清屏
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP_CLR:
        MOV   R4,#00H    ;;清右边
   CL1:
        MOV   A,R4
        ORL   A,#0B8H
        MOV   COMMAND,A
        LCALL WINSTR2
        MOV   COMMAND,#00H
        LCALL WINSTR2
        MOV   R3,#30H
        MOV   DATA1,#00H
  CL2:
        LCALL WDATA2
        DJNZ  R3,CL2
        INC   R4
        CJNE  R4,#04H,CL1
        ;;;;;;;;;;;;;;;;;;;;;清左边
        MOV   R4,#00H
  CR1:
        MOV   A,R4
        ORL   A,#0B8H
        MOV   COMMAND,A
        LCALL WINSTR1
        MOV   COMMAND,#00H
        LCALL WINSTR1
        MOV   R3,#30H
        MOV   DATA1,#00H
  CR2:
        LCALL WDATA1
        DJNZ  R3,CR2
        INC   R4
        CJNE  R4,#04H,CR1
        RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;  ;提示输入管理密码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP_TEXT1 :
            MOV   MODE_FLAG,#01H
            LCALL ALARM_KEY    ;输入报警
            MOV   R3,#0AH
   TEXT1_ALARM:
            LCALL DELAY1
            DJNZ  R3,TEXT1_ALARM
            LCALL ALARM_KEY
            LCALL DISP_CLR   ;清屏

        MOV R4,#00H        ;;显示"理密码"
        MOV DPTR,#LMM

   LMM1:
        MOV   A,R4
        ORL   A,#0B8H
        MOV   COMMAND,A
        LCALL WINSTR2
        MOV   COMMAND,#00H
        LCALL WINSTR2
        MOV   R3,#30H
 LMM2:
        MOV   A,#00H
        MOVC  A,@A+DPTR
        MOV   DATA1,A
        LCALL WDATA2
        INC   DPTR
        DJNZ  R3,LMM2
        INC   R4
        CJNE  R4,#02H,LMM1
       ;;;;;;;;;;;;;;;;;;;;;;;;显示输入管
        MOV   R4,#00H
        MOV   DPTR,#SRG

   SRG1:
        MOV   A,R4
        ORL   A,#0B8H
        MOV   COMMAND,A
        LCALL WINSTR1
        MOV   COMMAND,#00H
        LCALL WINSTR1
        MOV   R3,#30H
   SRG2:
        MOV   A,#00H
        MOVC  A,@A+DPTR
        MOV   DATA1,A
        LCALL WDATA1
        INC   DPTR
        DJNZ  R3,SRG2
        INC   R4
        CJNE  R4,#02H,SRG1

        MOV R3,#40H
   DEL_TEXI1:
            LCALL DELAY1
            DJNZ R3,DEL_TEXI1

            LCALL DISP_CLR
            LCALL DISP_MODE
         RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示密码错误
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP_PSERR:
       ;显示"密码"
        MOV DPTR,#MM
        LCALL DISP_2E1
        MOV DPTR,#CUOWU     ;错误
        LCALL DISP_2E2

           RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示密码正确
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP_OPEN:
                 ;显示"密码"
        MOV DPTR,#MM
        LCALL DISP_2E1
        ;显示正确
        MOV   DPTR,#ZQ
        LCALL DISP_2E2
          RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示键盘锁定
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP_LOCK:
                 ;显示"键盘"
        MOV DPTR,#JP
        LCALL DISP_2E1
                ;显示"锁定"
        MOV   DPTR,#SD
        LCALL DISP_2E2
         RET

 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ; 显示解锁成功
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 DISP_UNLOCK:
               ;显示"解锁"
        MOV DPTR,#JS
        LCALL DISP_2E1
                ;显示"成功"
        MOV   DPTR,#CG
        LCALL DISP_2E2
        RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示修改密码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP_CH:
        MOV DPTR,#XG
        LCALL DISP_2E1
        MOV DPTR,#MIMA
        LCALL DISP_2E2
        RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示修改成功
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP_CHOK:
         ;显示"修改"
        MOV DPTR,#XG
        LCALL DISP_2E1
              ;显示成功
        MOV DPTR,#CG
        LCALL DISP_2E2
        RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;修改用户密码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CHPS_U:
       MOV USER1,PS1
       MOV USER2,PS2
       MOV USER3,PS3
       MOV USER4,PS4
       MOV USER5,PS5
       MOV USER6,PS6
       RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;修改管理密码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CHPS_M:
       MOV SUPPER1,PS1
       MOV SUPPER2,PS2
       MOV SUPPER3,PS3
       MOV SUPPER4,PS4
       MOV SUPPER5,PS5
       MOV SUPPER6,PS6
       RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示E1两个字
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP_2E1:
        MOV R4,#00H
   DIS2_1:
        MOV   A,R4
        ORL   A,#0B8H
        MOV   COMMAND,A
        LCALL WINSTR1
        MOV   COMMAND,#00H
        LCALL WINSTR1
        MOV   R3,#20H
   DIS2_2:
        MOV   A,#00H
        MOVC  A,@A+DPTR
        MOV   DATA1,A
        LCALL WDATA1
        INC   DPTR
        DJNZ  R3,DIS2_2
        INC   R4
        CJNE  R4,#02H,DIS2_1
         RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;显示E2两个字
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DISP_2E2:
         MOV R4,#00H
   DIS2_3:
        MOV   A,R4
        ORL   A,#0B8H
        MOV   COMMAND,A
        LCALL WINSTR2
        MOV   COMMAND,#00H
        LCALL WINSTR2
        MOV   R3,#20H
   DIS2_4:
        MOV   A,#00H
        MOVC  A,@A+DPTR
        MOV   DATA1,A
        LCALL WDATA2
        INC   DPTR
        DJNZ  R3,DIS2_4
        INC   R4
        CJNE  R4,#02H,DIS2_3
         RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;汉字字模
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOSHI:      ;模式
DB 10H,0D0H,0FFH,50H,90H,04H,0F4H,54H,5FH,54H,54H,5FH,0F4H,04H,00H,00H;
DB 00H,08H,88H,88H,88H,88H,88H,08H,0FFH,08H,09H,0EH,0AH,08H,00H,00H;
DB 03H,00H,0FFH,00H,00H,84H,85H,45H,35H,0FH,15H,25H,65H,0C4H,44H,00H;"模",0
DB 00H,20H,60H,30H,1FH,10H,08H,08H,00H,07H,18H,20H,40H,80H,70H,00H;"式",1
GUANLI:        ;管理
DB 00H,00H,0FEH,92H,92H,92H,0FEH,92H,92H,0FEH,00H,44H,44H,0FCH,44H,44H
DB 00H,20H,62H,22H,2AH,0A6H,0A2H,0A3H,0B4H,0AAH,0A2H,0AAH,0A6H,23H,64H,08H
DB 00H,40H,45H,44H,44H,44H,7FH,44H,44H,45H,40H,48H,08H,0FH,10H,10H   ;理
DB 00H,00H,00H,00H,0F8H,4BH,4AH,4AH,4AH,4AH,4AH,4AH,0FFH,00H,00H,00H;管
CUOWU:    ;错误
DB 40H,30H,2CH,0E7H,24H,24H,40H,48H,7FH,48H,48H,7FH,48H,48H,40H,00H;
DB 40H,41H,0CEH,04H,00H,40H,5FH,51H,51H,0D1H,51H,51H,5FH,40H,00H,00H;
DB 01H,01H,01H,0FFH,41H,21H,00H,0FFH,49H,49H,49H,49H,49H,0FFH,00H,00H;"错",0
DB 00H,00H,3FH,10H,88H,42H,22H,12H,0AH,07H,0AH,12H,22H,0E2H,42H,00H;"误",1
SHURU:      ;;输入
DB 00H,00H,00H,00H,00H,00H,80H,60H,18H,76H,83H,01H,00H,00H,00H,00H
DB 00H,10H,0D0H,08H,98H,14H,93H,94H,98H,90H,64H,44H,0E4H,4FH,0F4H,44H
DB 00H,10H,30H,18H,04H,03H,00H,00H,00H,00H,01H,06H,08H,10H,20H,40H ;"入",1
DB 00H,00H,0FFH,80H,3FH,00H,7FH,8AH,4AH,0FFH,02H,02H,0FFH,04H,04H,04H ;"输",0
xia:
DB 00H,00H,00H,00H,24H,24H,18H,0FFH,18H,24H,24H,00H,00H,00H,00H,00H;"*",0
LMM:
DB 44H,44H,0FCH,44H,44H,00H,0FEH,92H,92H,0FEH,92H,92H,92H,0FEH,00H,00H;
DB 00H,58H,24H,04H,0F4H,04H,8DH,0B6H,44H,34H,0CCH,94H,24H,0CCH,04H,00H;
DB 02H,82H,0E2H,5EH,42H,0C2H,00H,02H,0FAH,82H,82H,82H,0FEH,80H,00H,00H;
DB 10H,10H,0FH,08H,48H,40H,45H,44H,44H,7FH,44H,44H,44H,45H,40H,00H;"理",0
DB 02H,06H,02H,79H,41H,41H,41H,7DH,41H,41H,41H,40H,78H,00H,00H,00H;"密",1
DB 01H,00H,7FH,10H,10H,3FH,00H,04H,04H,04H,44H,84H,40H,3FH,00H,00H;"码",2
SRG:
DB 00H,20H,62H,22H,2AH,0A6H,0A2H,0A3H,0B4H,0AAH,0A2H,0AAH,0A6H,23H,64H,08H
DB 00H,00H,00H,00H,00H,00H,80H,60H,18H,76H,83H,01H,00H,00H,00H,00H
DB 00H,10H,0D0H,08H,98H,14H,93H,94H,98H,90H,64H,44H,0E4H,4FH,0F4H,44H
DB 00H,00H,00H,00H,0F8H,4BH,4AH,4AH,4AH,4AH,4AH,4AH,0FFH,00H,00H,00H ;"管",2
DB 00H,10H,30H,18H,04H,03H,00H,00H,00H,00H,01H,06H,08H,10H,20H,40H ;"入",1
DB 00H,00H,0FFH,80H,3FH,00H,7FH,8AH,4AH,0FFH,02H,02H,0FFH,04H,04H,04H  ;"输",0
MM:
DB 00H,00H,80H,0FEH,82H,82H,82H,0FAH,02H,00H,0C2H,42H,5EH,0E2H,82H,02H
DB 00H,04H,0CCH,24H,94H,0CCH,34H,44H,0B6H,8DH,04H,0F4H,04H,24H,58H,00H
DB 00H,00H,3FH,40H,84H,44H,04H,04H,04H,00H,3FH,10H,10H,7FH,00H,01H     ;"码"
DB 00H,00H,00H,78H,40H,41H,41H,41H,7DH,41H,41H,41H,79H,02H,06H,02H   ;"密",0
JP:
DB 00H,20H,20H,20H,0FCH,24H,24H,24H,0B4H,6DH,26H,24H,7CH,0A0H,20H,20H
DB 00H,10H,7CH,54H,54H,0FFH,54H,10H,0DCH,64H,44H,28H,28H,0EFH,40H,30H
DB 00H,40H,40H,7CH,45H,46H,7DH,44H,45H,7CH,44H,44H,7CH,41H,42H,44H ;"盘",1
DB 00H,44H,45H,45H,45H,3FH,25H,14H,0FH,14H,22H,51H,21H,7FH,01H,01H;"键",0
SD:
DB 40H,30H,2CH,0E7H,24H,24H,02H,0F4H,18H,10H,9FH,10H,18H,0F4H,02H,00H;
DB 00H,10H,0CH,0A4H,24H,24H,25H,0E6H,24H,24H,24H,24H,14H,0CH,04H,00H;
DB 01H,01H,01H,7FH,21H,11H,40H,4FH,20H,18H,07H,10H,20H,4FH,40H,00H;"锁",0
DB 40H,20H,18H,07H,08H,10H,20H,7FH,42H,42H,42H,42H,40H,40H,00H,00H;"定",1
ZQ:
DB 00H,02H,02H,0C2H,02H,02H,02H,02H,0FEH,82H,82H,82H,82H,82H,02H,00H;
DB 00H,84H,0E4H,5CH,44H,00C4H,10H,0F8H,97H,92H,0F2H,9AH,96H,0F2H,00H,00H;
DB 20H,20H,20H,3FH,20H,20H,20H,20H,3FH,20H,20H,20H,20H,20H,20H,00H;"正",0
DB 01H,00H,3FH,08H,88H,4FH,30H,0FH,04H,04H,3FH,44H,84H,7FH,00H,00H;"确",1
JS:
DB 00H,02H,0F4H,18H,10H,9FH,10H,18H,0F4H,02H,24H,24H,0E7H,2CH,30H,40H
DB 00H,00H,3EH,62H,0A2H,02H,1EH,0A2H,42H,0F0H,54H,0FCH,54H,57H,0F4H,08H
DB 00H,40H,4FH,20H,10H,07H,18H,20H,4FH,40H,11H,21H,7FH,01H,01H,01H   ;"锁",1
DB 00H,09H,09H,09H,0FFH,09H,09H,09H,0AH,7FH,82H,5FH,02H,02H,7FH,80H ;"解",0
CG:
DB 00H,00H,0F8H,48H,48H,48H,0C8H,08H,0FFH,08H,09H,0AH,0C8H,88H,08H,00H;
DB 00H,04H,04H,04H,0FCH,04H,14H,14H,10H,90H,7FH,10H,10H,0F0H,00H,00H;
DB 40H,30H,0FH,00H,08H,50H,4FH,20H,10H,0BH,0CH,12H,21H,40H,0F0H,00H;"成",0
DB 04H,0CH,04H,04H,03H,42H,22H,11H,0CH,23H,20H,60H,20H,1FH,00H,00H;"功",1
XG:
DB 00H,10H,10H,0F0H,10H,12H,1FH,0F0H,40H,80H,7CH,44H,44H,44H,0C4H,00H
DB 00H,80H,80H,0CCH,54H,24H,0A4H,54H,8FH,98H,20H,0F2H,07H,0FCH,10H,20H
DB 00H,20H,60H,20H,13H,0CH,0BH,10H,20H,20H,44H,48H,10H,20H,7FH,00H ;"改",1
DB 00H,00H,09H,0AH,12H,15H,25H,2BH,4AH,54H,54H,03H,00H,7FH,00H,00H  ;"修",0
MIMA:
DB 00H,58H,24H,04H,0F4H,04H,8DH,0B6H,44H,34H,0CCH,94H,24H,0CCH,04H,00H;
DB 02H,82H,0E2H,5EH,42H,0C2H,00H,02H,0FAH,82H,82H,82H,0FEH,80H,00H,00H;
DB 02H,06H,02H,79H,41H,41H,41H,7DH,41H,41H,41H,40H,78H,00H,00H,00H;"密",0
DB 01H,00H,7FH,10H,10H,3FH,00H,04H,04H,04H,44H,84H,40H,3FH,00H,00H;"码",1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;程序结束
     END



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -