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

📄 密码锁(天照修改).lst

📁 一个经典的密码锁仿真
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  胈码薩__煺誣薷腳                                                     01/01/2009 09:04:32 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN 密码锁(天照修改).OBJ
ASSEMBLER INVOKED BY: D:\keil\C51\BIN\A51.EXE 密码锁(天照修改).asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;*************************************************************
                       2     ;程序名:密码锁
                       3     ;
                       4     ;作  者:云生科技
                       5     ;日  期:2008-11-7
                       6     ;备  注:转载请注明。
                       7     ;*************************************************************  
  0030                 8     LED_BIT_1       EQU             30H  ;8个字节存放8位数码管的段码        
  0031                 9     LED_BIT_2       EQU             31H
  0032                10     LED_BIT_3       EQU             32H
  0033                11     LED_BIT_4       EQU             33H
  0034                12     LED_BIT_5       EQU             34H
  0035                13     LED_BIT_6       EQU             35H
  0036                14     LED_BIT_7       EQU             36H
  0037                15     LED_BIT_8       EQU             37H
                      16     
  0038                17     WORD_1          EQU             38H  ;6个字节存放初始密码
  0039                18     WORD_2          EQU             39H
  003A                19     WORD_3          EQU             3AH
  003B                20     WORD_4          EQU             3BH
  003C                21     WORD_5          EQU             3CH
  003D                22     WORD_6          EQU             3DH
                      23     
  003E                24     KEY_1           EQU             3EH  ;6个字节存放用户输入的6位密码
  003F                25     KEY_2           EQU             3FH
  0040                26     KEY_3           EQU             40H
  0041                27     KEY_4           EQU             41H
  0042                28     KEY_5           EQU             42H
  0043                29     KEY_6           EQU             43H
                      30     ;******************************************************
  0044                31     CNT_A           EQU             44H
  0045                32     CNT_B           EQU             45H
  0046                33     KEY_CNT         EQU             46H             ;已输出的密码位数
  0047                34     LINE            EQU             47H             ;按键行号
  0048                35     ROW                     EQU             48H             ;按键列号
  0049                36     VAL                     EQU             49H             ;键值
                      37     ;******************************************************
                      38     ;以下为初始化程序,包括数据存储空间初始化,设置初始密码
0000                  39                     ORG             00H
0000 805E             40                     SJMP    ST
000B                  41                     ORG             0BH
000B 0201D3           42                     LJMP    INT_T0
0060                  43                     ORG     060H
                      44     
0060 754400           45     ST:     MOV             CNT_A,#00H              ;程序初始化
0063 754500           46                     MOV             CNT_B,#00H
0066 754600           47                     MOV             KEY_CNT,#00H
0069 754700           48                     MOV             LINE,#00H
006C 754800           49                     MOV             ROW,#00H
006F 754900           50                     MOV             VAL,#00H
0072 D290             51                     SETB    P1.0
0074 753000           52                     MOV             LED_BIT_1,#00H  ;段码存储区清0
0077 753100           53                     MOV             LED_BIT_2,#00H
007A 753200           54                     MOV             LED_BIT_3,#00H
007D 753300           55                     MOV             LED_BIT_4,#00H
0080 753400           56                     MOV             LED_BIT_5,#00H
0083 753500           57                     MOV             LED_BIT_6,#00H
0086 753679           58                     MOV             LED_BIT_7,#79H
A51 MACRO ASSEMBLER  胈码薩__煺誣薷腳                                                     01/01/2009 09:04:32 PAGE     2

0089 753773           59                     MOV             LED_BIT_8,#73H
                      60     
008C 753E00           61                     MOV             KEY_1,#00H              ;输入密码存储区清0
008F 753F00           62                     MOV             KEY_2,#00H
0092 754000           63                     MOV             KEY_3,#00H
0095 754100           64                     MOV             KEY_4,#00H
0098 754200           65                     MOV             KEY_5,#00H
009B 754300           66                     MOV             KEY_6,#00H
                      67     
009E 753806           68                     MOV             WORD_1,#6               ;设置初始密码为"123456"
00A1 753905           69                     MOV             WORD_2,#5
00A4 753A04           70                     MOV             WORD_3,#4
00A7 753B03           71                     MOV             WORD_4,#3
00AA 753C02           72                     MOV             WORD_5,#2
00AD 753D01           73                     MOV             WORD_6,#1
                      74     
00B0 758901           75                     MOV             TMOD,#01H
00B3 758CFD           76                     MOV             TH0,#(65536-700)/256
00B6 758A44           77                     MOV             TL0,#(65536-700)MOD     256             
00B9 75A882           78                     MOV             IE,#82H
                      79                     
                      80     
                      81     ;***********************************************************
                      82     ;以下为键盘扫描程序,计算键值并存入VAL
00BC                  83     LSCAN:
00BC 12023F           84             A0:     LCALL   DISP
00BF 75B0F0           85             MOV     P3,#0F0H                ;扫描行码
00C2 30B00C           86             L1:     JNB     P3.0,L2
00C5 120290           87                     LCALL   DLY_S
00C8 30B006           88                     JNB     P3.0,L2
00CB 754700           89                     MOV     LINE,#00H
00CE 0200FB           90                     LJMP    RSCAN
00D1 30B10C           91             L2:     JNB     P3.1,L3
00D4 120290           92                     LCALL   DLY_S
00D7 30B106           93                     JNB     P3.1,L3
00DA 754701           94                     MOV     LINE,#01H
00DD 0200FB           95                     LJMP    RSCAN
00E0 30B20C           96             L3:     JNB     P3.2,L4
00E3 120290           97                     LCALL   DLY_S
00E6 30B206           98                     JNB     P3.2,L4
00E9 754702           99                     MOV     LINE,#02H
00EC 0200FB          100                     LJMP    RSCAN
00EF 30B3CA          101             L4:     JNB     P3.3,A0
00F2 120290          102                     LCALL   DLY_S
00F5 30B3C4          103                     JNB     P3.3,A0
00F8 754703          104                     MOV     LINE,#03H
                     105     
00FB 75B00F          106     RSCAN:  MOV             P3,#0FH                 ;扫描列码
00FE 30B406          107             C1:     JNB     P3.4,C2
0101 754800          108                     MOV     ROW,#00H
0104 020116          109                     LJMP    CALCU
0107 30B506          110             C2:     JNB     P3.5,C3
010A 754801          111                     MOV     ROW,#01H
010D 020116          112                     LJMP    CALCU
0110 30B6EB          113             C3:     JNB     P3.6,C1
0113 754802          114                     MOV     ROW,#02H
                     115     
0116 E547            116     CALCU:  MOV             A,LINE                  ;计算键值
0118 75F003          117                     MOV             B,#03H
011B A4              118                     MUL             AB
011C 2548            119                     ADD             A,ROW
011E F549            120                     MOV             VAL,A
                     121     ;**************************************************
                     122     ;以下为按键处理程序,对不同的按键作出响应                                
0120 B40A25          123                     CJNE    A,#0AH,J1               ;是否为"CLR"键
0123 A946            124                     MOV             R1,KEY_CNT
A51 MACRO ASSEMBLER  胈码薩__煺誣薷腳                                                     01/01/2009 09:04:32 PAGE     3

0125 B90006          125                     CJNE    R1,#00H,J2
0128 1201C4          126                     LCALL   ALARM_1
                     127     
012B 0200BC          128                     LJMP    LSCAN
012E 12021A          129        J2:  LCALL   SHIFTR
0131 1546            130                     DEC             KEY_CNT
                     131     
0133 12023F          132             W00:LCALL       DISP                    ;等待按键抬起
0136 E5B0            133                     MOV             A,P3
0138 B40F03          134                     CJNE    A,#0FH,W01
013B 0200BC          135                     LJMP    A0
013E E5B0            136             W01:MOV         A,P3
0140 B4F003          137                     CJNE    A,#0F0H,W02
0143 0200BC          138                     LJMP    A0
0146 80EB            139             W02:SJMP        W00                     
                     140     
0148 E549            141             J1:     MOV             A,VAL
014A B40B37          142                     CJNE    A,#0BH,J3               ;判断是否为"ENTER"键
014D A946            143                     MOV             R1,KEY_CNT
014F B9062C          144                     CJNE    R1,#06H,J4
                     145     
0152 E538            146                     MOV             A,WORD_1                ;比较密码
0154 B53E21          147                     CJNE    A,3EH,J5
0157 E539            148                     MOV             A,WORD_2
0159 B53F1C          149                     CJNE    A,3FH,J5
015C E53A            150                     MOV             A,WORD_3
015E B54017          151                     CJNE    A,40H,J5
0161 E53B            152                     MOV             A,WORD_4
0163 B54112          153                     CJNE    A,41H,J5
0166 E53C            154                     MOV             A,WORD_5
0168 B5420D          155                     CJNE    A,42H,J5
016B E53D            156                     MOV             A,WORD_6
016D B54308          157                     CJNE    A,43H,J5
                     158     
0170 C290            159                     CLR             P1.0
0172 120299          160                     LCALL   DLY_L
0175 0202A6          161                     LJMP    FINI
                     162     
0178 1201CA          163             J5:     LCALL   ALARM_2
017B 0200BC          164                     LJMP    A0
                     165     
017E 1201C4          166             J4:     LCALL   ALARM_1
0181 0200BC          167                     LJMP    A0
                     168     
0184 0546            169             J3:     INC             KEY_CNT                 ;按下数字键
0186 E546            170                     MOV             A,KEY_CNT
0188 B4071E          171                     CJNE    A,#07H,K1
018B 1201C4          172                     LCALL   ALARM_1
                     173     
018E 12023F          174             W10:LCALL       DISP                    ;等待按键抬起
0191 E5B0            175                     MOV             A,P3
0193 B40F03          176                     CJNE    A,#0FH,W11
0196 0200BC          177                     LJMP    A0
0199 E5B0            178             W11:MOV         A,P3
019B B4F003          179                     CJNE    A,#0F0H,W12
019E 0200BC          180                     LJMP    A0
01A1 80EB            181             W12:SJMP        W10     
01A3 0200BC          182                     LJMP    A0
                     183     
01A6 0200BC          184                     LJMP    A0
01A9 1201F5          185             K1:     LCALL   SHIFTL
                     186     
01AC 12023F          187             W20:LCALL       DISP                    ;等待按键抬起
01AF E5B0            188                     MOV             A,P3
01B1 B40F03          189                     CJNE    A,#0FH,W21
01B4 0200BC          190                     LJMP    A0
A51 MACRO ASSEMBLER  胈码薩__煺誣薷腳                                                     01/01/2009 09:04:32 PAGE     4

01B7 E5B0            191             W21:MOV         A,P3

⌨️ 快捷键说明

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