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

📄 zmd.lst

📁 用汇编语言编程
💻 LST
字号:
A51 MACRO ASSEMBLER  ZMD                                                                  03/28/2006 13:42:45 PAGE     1


MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN .\zmd.OBJ
ASSEMBLER INVOKED BY: D:\Program Files\keil\C51\BIN\A51.EXE .\zmd.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

  0033                 1     SI_1    EQU     33H
  0034                 2     SI_2    EQU     34H
  0035                 3     SI_3    EQU     35H
  0036                 4     SI_4    EQU     36H
                       5     
                       6     ;定义键状态寄存位
  007F                 7     keystate    bit      7fh;有键时为1,无键时为0
                       8                                                     
0000                   9     ORG     0000H
0000 0130             10     ajmp     main
0030                  11     org       0030h
                      12     
0030 758160           13     MAIN:   mov     sp,#60H
0033 C27F             14             clr     keystate
                      15             
0035                  16     main1: 
0035 02003A           17                     LJMP  KEY
                      18     ;               jnb      keystate,mainend
                      19     
0038 0130             20     mainend:ajmp     main
                      21     
                      22     ;------------------------------------------------------KEY---------------------------------
                             ---------
                      23     
                      24     ;键盘子程序:
003A 1200CE           25     KEY:    lcall  keytest
003D 307F02           26             jnb    keystate,kkk
0040 0144             27                     ajmp    eee
0042 01CA             28      kkk:   ajmp   keyend
0044                  29      eee:   
0044 7401             30           mov    a,#01h
0046 908FFF           31                     mov    dptr,#8fffh
0049 F0               32                     movx   @dptr,a
004A E0               33                     movx   a,@dptr
004B 540F             34                     anl    a,#0fh
004D B40103           35     key0:   cjne   a,#01h,key1
0050 02014A           36           LJMP   DISPLAY1
0053 B40203           37     key1:   cjne   a,#02h,key2
0056 020205           38           LJMP DISPLAY2
0059 B40403           39     key2:   cjne   a,#04h,key3
005C 02022E           40           LJMP DISPLAY3
005F B40803           41     key3:   cjne   a,#08h,keynext1
0062 02035C           42           LJMP DISPLAY4
0065 7402             43     keynext1:mov    a,#02h
0067 908FFF           44                     mov    dptr,#8fffh
006A F0               45                     movx   @dptr,a
006B E0               46                     movx   a,@dptr
006C 540F             47                     anl    a,#0fh
006E B40103           48     key4:   cjne   a,#01h,key5              
0071 0203C2           49                     LJMP DISPLAY5
0074 B40203           50     key5:   cjne   a,#02h,key6
0077 020411           51                     LJMP DISPLAY6
007A B40403           52     key6:   cjne   a,#04h,key7
007D 02044B           53                     LJMP DISPLAY7
0080 B40803           54     key7:   cjne   a,#08h,keynext2
0083 0204A8           55                     LJMP DISPLAY8
0086 7404             56     keynext2:mov    a,#04h
0088 908FFF           57                     mov    dptr,#8fffh
A51 MACRO ASSEMBLER  ZMD                                                                  03/28/2006 13:42:45 PAGE     2

008B F0               58                     movx   @dptr,a
008C E0               59                     movx   a,@dptr
008D 540F             60                     anl    a,#0fh
008F B40103           61     key8:   cjne   a,#01h,key9
0092 0204FC           62           LJMP DISPLAY9
0095 B40203           63     key9:   cjne   a,#02h,keyA
0098 02056F           64           LJMP DISPLAYA
009B B40403           65     keyA:   cjne   a,#04h,keyB
009E 0205E0           66           LJMP DISPLAYB
00A1 B40803           67     keyB:   cjne   a,#08h,keynext3
00A4 0206E9           68           LJMP DISPLAYC 
00A7 7408             69     keynext3:mov    a,#08h
00A9 908FFF           70                     mov    dptr,#8fffh
00AC F0               71                     movx   @dptr,a
00AD E0               72                     movx   a,@dptr
00AE 540F             73                     anl    a,#0fh
00B0 B40103           74     keyC:   cjne   a,#01h,keyD
00B3 0207F5           75           LJMP DISPLAYD
00B6 B40203           76     keyD:   cjne   a,#02h,keyE
00B9 020880           77           LJMP DISPLAYE
00BC B40403           78     keyE:   cjne   a,#04h,keyF
00BF 0208E7           79           LJMP DISPLAYF
00C2 B40803           80     keyF:   cjne   a,#08h,keynext4
00C5 02097F           81           LJMP DISPLAYG
00C8                  82     keynext4:
00C8 C27F             83     clr   keystate  
                      84     
00CA 02010B           85     keyend:  LJMP   DISPLAY0
00CD 22               86     ret
                      87                             
                      88     
                      89     ;键盘测试程序,返回结果在keystate中
00CE 74FF             90     keytest:  mov   a,#0ffh
00D0 908FFF           91               mov   dptr,#8fffh
00D3 F0               92                       movx  @dptr,a
00D4 E0               93                       movx  a,@dptr
00D5 540F             94                       anl   a,#0fh
00D7 6004             95                       jz    keytest0
00D9 D27F             96                       setb  keystate
00DB 8002             97                       jmp   keytest1
00DD C27F             98     keytest0: clr   keystate
00DF 22               99     keytest1: ret
                     100     ;--------------------------------------------------------------KEY结束---------------------
                             ------------------------
                     101     
                     102     ;-------------------------------------------------------NOKEY时的花样----------------------
                             --------------------
                     103     
                     104     ;--------------------DISPLAY0----------------------
00E0                 105     SHOW:
00E0 7A96            106             MOV R2,#150
00E2 7C00            107     SH01:   MOV R4,#0
00E4 ED              108     SH00:   MOV A,R5
00E5 2C              109             ADD A,R4
00E6 90012C          110             MOV DPTR,#TAB0
00E9 93              111             MOVC A,@A+DPTR
                     112     
00EA 908FFF          113        MOV DPTR,#8FFFH
00ED F0              114             MOVX @DPTR,A
                     115     
00EE EC              116        MOV A,R4
00EF 900142          117             MOV DPTR,#DATA0
00F2 93              118             MOVC A,@A+DPTR
00F3 909FFF          119             MOV DPTR,#9FFFH
00F6 F0              120             MOVX @DPTR,A
                     121        
A51 MACRO ASSEMBLER  ZMD                                                                  03/28/2006 13:42:45 PAGE     3

00F7 1209AA          122        CALL DELAY
00FA 0C              123             INC R4
00FB BC08E6          124             CJNE R4,#8,SH00
00FE DAE2            125             DJNZ R2,SH01
0100 C27F            126        CLR keystate
0102 11CE            127             CALL keytest
0104 207F01          128             JB keystate,SHOWEND
0107 22              129     RET
0108 020030          130     SHOWEND:LJMP MAIN
                     131     
010B                 132     DISPLAY0:    
010B 7D00            133              MOV R5,#0
010D 11E0            134               D00:CALL SHOW
010F 0D              135              INC R5
0110 BD07FA          136                   CJNE R5,#7,D00
0113 C27F            137             CLR keystate
0115 11CE            138             CALL keytest
0117 207F0F          139             JB keystate,DISPLAY0END
                     140     ;   CALL DELAY0
011A 11E0            141        D01:CALL SHOW
011C 0D              142                   INC R5
011D BD0FFA          143                   CJNE R5,#15,D01
0120 C27F            144             CLR keystate
0122 11CE            145             CALL keytest
0124 207F02          146             JB keystate,DISPLAY0END 
                     147     
0127 80E2            148     JMP DISPLAY0
0129 020030          149     DISPLAY0END:  LJMP MAIN    
                     150     
                     151     
                     152     ;--------------------------------------------------
012C                 153     TAB0:
012C 00000000        154             DB 0,0,0,0,0,0,0
0130 000000                  
0133 01020408        155             DB 01H,02H,04H,08H,10H,20H,40H,80H
0137 10204080                
013B 00000000        156             DB 0,0,0,0,0,0,0
013F 000000                  
0142                 157     DATA0:
0142 0F803F38        158        DB 0FH,80H,3FH,38H,38H,79H,76H,39H
0146 38797639                
                     159     ;------------------------------------------------------------------------------------------
                             ---------------
                     160     
                     161     
                     162     ;-------------------------------------------------------按01键时的花样---------------------
                             ---------------------
                     163     
                     164     ;--------------------DISPLAY1----------------------
014A                 165     DISPLAY1:
014A 753429          166                MOV SI_2,#29H    ;#29H,控制TAB表中的移位
014D 753332          167     D12:    MOV SI_1,#50    ;#50,控制刷新次剩

⌨️ 快捷键说明

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