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

📄 1.lst

📁 点阵,每外部中断一次在显示屏上相应显示不同的文字16*16点阵
💻 LST
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER  1                                                                    02/22/2008 18:59:20 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN 1.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE 1.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

0000                   1             ORG 0000H             ;   ;初始化
0000 020030            2             LJMP MAIN             ;  ;跳到主程序
0003                   3             ORG 0003H              ;  ;外部中断0入口地址
0003 0200FB            4             LJMP LOOP         
0013                   5             ORG 0013H              ;   ;外部中断1入口地址
0013 0201A7            6             LJMP LOOP1
0030                   7             ORG 0030H              ;   ;主程序从0030H开始
0030                   8     MAIN:   
0030 75A885            9             MOV IE,#85H         ; ;开中断
0033 758805           10             MOV TCON,#05H        ;    ;设计边沿触发方?
0036 7E00             11             MOV R6,#00H
0038 7F00             12             MOV R7,#00H
003A C2B4             13             CLR P3.4
003C C2B5             14             CLR P3.5
003E C294             15             CLR P1.4
0040 7D00             16             MOV R5,#00H          ;     ;选择第一列亮
0042                  17     SCAN:   
0042 8D90             18             MOV P1,R5
0044 7401             19             MOV A,#01H
0046 F580             20             MOV P0,A
0048                  21     Q0:     
0048 1200E9           22             LCALL DELAY
004B 23               23             RL A                 ;  ;P0口从低位亮到高位
004C F580             24             MOV P0,A
004E B480F7           25             CJNE A,#80H,Q0
0051 F5A0             26             MOV P2,A
0053                  27     Q1:     
0053 1200E9           28             LCALL DELAY
0056 03               29             RR A                  ; ;P2口从高位亮到低位
0057 F5A0             30             MOV P2,A
0059 B401F7           31             CJNE A,#01H,Q1
005C                  32     Q2:
005C 23               33             RL A               ; ;P2口从低位亮到高位
005D F5A0             34             MOV P2,A
005F 1200E9           35             LCALL DELAY
0062 B480F7           36             CJNE A,#80H,Q2
0065 F580             37             MOV P0,A
0067                  38     Q3:     
0067 1200E9           39             LCALL DELAY
006A 03               40             RR A                 ;  ;P0口从高位亮到低位
006B F580             41             MOV P0,A
006D B401F7           42             CJNE A,#01H,Q3
0070 F580             43             MOV P0,A
0072 F5A0             44             MOV P2,A
0074                  45     Q4:
0074 1200E9           46             LCALL DELAY
0077 23               47             RL A                ; ;P2、P0口从低位亮到高位
0078 F580             48             MOV P0,A
007A F5A0             49             MOV P2,A
007C 1200E9           50             LCALL DELAY
007F B480F2           51             CJNE A,#80H,Q4
0082                  52     Q5:
0082 03               53             RR A            ; ;P0、P2口从高位亮到低位
0083 F580             54             MOV P0,A
0085 F5A0             55             MOV P2,A
0087 1200E9           56             LCALL DELAY
008A B401F5           57             CJNE A,#01H,Q5
008D 7580FF           58             MOV P0,#0FFH         ;    ;P0、P2口交叉亮
A51 MACRO ASSEMBLER  1                                                                    02/22/2008 18:59:20 PAGE     2

0090 75A000           59             MOV P2,#00H
0093 1200E9           60             LCALL DELAY
0096 758000           61             MOV P0,#00H
0099 75A0FF           62             MOV P2,#0FFH
009C 1200E9           63             LCALL DELAY
009F 7401             64             MOV A,#01H
00A1 F580             65             MOV P0,A
00A3 1200E9           66             LCALL DELAY
00A6 1200E9           67             LCALL DELAY
00A9 F5A0             68             MOV P2,A
00AB 1200E9           69             LCALL DELAY
00AE 1200E9           70             LCALL DELAY
00B1                  71     Q6:     
00B1 23               72             RL A             ;  ;P0、P2口交叉从低位亮到高位
00B2 F580             73             MOV P0,A
00B4 1200E9           74             LCALL DELAY
00B7 1200E9           75             LCALL DELAY
00BA F5A0             76             MOV P2,A
00BC 1200E9           77             LCALL DELAY
00BF 1200E9           78             LCALL DELAY
00C2 B480EC           79             CJNE A,#80H,Q6
00C5 7B03             80             MOV R3,#03H        ; ;P0、P2口低位和高位交叉亮3次
00C7 740F             81             MOV A,#0FH
00C9                  82     Q7:     
00C9 F580             83             MOV P0,A
00CB F5A0             84             MOV P2,A
00CD 1200E9           85             LCALL DELAY
00D0 C4               86             SWAP A
00D1 DBF6             87             DJNZ R3,Q7
00D3 7580FF           88             MOV P0,#0FFH
00D6 75A0FF           89             MOV P2,#0FFH
00D9 1200E9           90             LCALL DELAY
00DC 1200E9           91             LCALL DELAY
00DF BD0F03           92             CJNE R5,#0FH,L4       ;  ;亮到16列了吗?否转
00E2 020030           93             LJMP MAIN
00E5                  94     L4:
00E5 0D               95             INC R5
00E6 020042           96             LJMP SCAN
00E9                  97     DELAY:
00E9 7864             98             MOV R0,#100      ; ;延时40MS
00EB                  99     DELAY1:
00EB 79C8            100             MOV R1,#200
00ED D9FE            101             DJNZ R1,$
00EF D8FA            102             DJNZ R0,DELAY1
00F1 22              103             RET
00F2                 104     DELAY2:
00F2 7BF8            105             MOV R3,#248     ; ;延时123MS                                         
00F4                 106     DELAY3:
00F4 7CF8            107             MOV R4,#248
00F6 DCFE            108             DJNZ R4,$
00F8 DBFA            109             DJNZ R3,DELAY3
00FA 22              110             RET
                     111             
00FB                 112     LOOP:   
00FB C0E0            113             PUSH ACC
00FD C0D0            114             PUSH PSW
00FF 0E              115             INC R6
0100 D2D3            116             SETB RS0
0102 74FF            117             MOV A, #0FFH     ; ;清除画面
0104 F580            118             MOV P0,A         ;      ;清除P0口
0106 53A000          119             ANL P2,#00        ;      ;清除P2口
0109 7AC8            120             MOV R2,#200 
010B                 121     D1:
010B 7BF8            122             MOV R3,#248       ;  ;延时100MS
010D DBFE            123             DJNZ R3,$ 
010F DAFA            124             DJNZ R2,D1 
A51 MACRO ASSEMBLER  1                                                                    02/22/2008 18:59:20 PAGE     3

0111 752000          125             MOV 20H , #00H       ;  ;取码指针的初值
0114                 126     l1:
0114 7964            127             MOV R1,#100      ;   ;每个字的停留时间
0116                 128     L2: 
0116 7E10            129             MOV R6,#16       ;  ;每个字的16个码
0118 7C00            130             MOV R4, #00H      ;    ; ;扫描指针清零
011A A820            131             MOV R0, 20H        ;   ;取码指针存入R0
011C                 132     L3: 
011C EC              133             MOV A,R4        ;  ;扫描指针存入A
011D F590            134             MOV P1,A         ;    ;扫描输出
011F 0C              135             INC R4            ;    ;扫描指针加1,扫描下一个
0120 E8              136             MOV A,R0          ;      ;取码指针存入A
0121 120151          137             LCALL BL    ;   ;取数据表的上半部份的代码
0124 93              138             MOVC A,@A+DPTR 
0125 F580            139             MOV P0,A           ;  ;输出到P0
0127 08              140             INC R0               ; ;取码指针加1,取下一个码
0128 E8              141             MOV A,R0 
0129 120151          142             LCALL BL     ; ;取数据表的下半部份的代码
012C 93              143             MOVC A,@A+DPTR 
012D F5A0            144             MOV P2,A            ;   ;输出到P2
012F 08              145             INC R0 
0130 7B02            146             MOV R3,#02           ;  ;扫描1MS
0132                 147     D2:
0132 7DF8            148             MOV R5,#248 
0134 DDFE            149             DJNZ R5,$ 
0136 DBFA            150             DJNZ R3,D2 
0138 7400            151             MOV A, #00H          ;  ;清除屏幕
013A F580            152             MOV P0,A 
013C 53A000          153             ANL P2, #00H 
013F DEDB            154             DJNZ R6,L3           ;  ;一个字16个码是否完成?
0141 D9D3            155             DJNZ R1,L2           ;  ;每个字的停留时间时间是否到了?
0143 8820            156             MOV 20H ,R0          ;  ;取码指针存入20H
0145 B8E0CC          157             CJNE R0,#224,L1       ; ;8个字256个码是否完成?
0148 7F00            158             MOV R7,#00H
014A C2D3            159             CLR RS0
014C D0D0            160             POP PSW
014E D0E0            161             POP ACC
0150 32              162             RETI
0151                 163     BL:     
0151 C2D3            164             CLR RS0
0153 BE0708          165             CJNE R6,#7,QQ7
0156 7E00            166             MOV R6,#00H
0158 D2D3            167             SETB RS0
015A 900253          168             MOV DPTR,#TAB7
015D 22              169             RET
015E                 170     QQ7:    
015E C2D3            171             CLR RS0
0160 BE0606          172             CJNE R6,#6,QQ6
0163 D2D3            173             SETB RS0
0165 900333          174             MOV DPTR,#TAB6
0168 22              175             RET
0169                 176     QQ6:    
0169 C2D3            177             CLR RS0
016B BE0506          178             CJNE R6,#5,QQ5
016E D2D3            179             SETB RS0
0170 900413          180             MOV DPTR,#TAB5
0173 22              181             RET
                     182     
0174 C2D3            183     QQ5:    CLR RS0
0176 BE0406          184             CJNE R6,#4,QQ4
0179 D2D3            185             SETB RS0
017B 9004F3          186             MOV DPTR,#TAB4
017E 22              187             RET
                     188     
017F C2D3            189     QQ4:    CLR RS0
0181 BE0306          190             CJNE R6,#3,QQ3
A51 MACRO ASSEMBLER  1                                                                    02/22/2008 18:59:20 PAGE     4

0184 D2D3            191             SETB RS0
0186 9005D3          192             MOV DPTR,#TAB3
0189 22              193             RET
                     194     
018A C2D3            195     QQ3:    CLR RS0
018C BE0206          196             CJNE R6,#2,QQ2
018F D2D3            197             SETB RS0
0191 9006B3          198             MOV DPTR,#TAB2
0194 22              199             RET
                     200     
0195 C2D3            201     QQ2:    CLR RS0
0197 BE0106          202             CJNE R6,#1,QQ1
019A D2D3            203             SETB RS0
019C 900773          204             MOV DPTR,#TAB1
019F 22              205             RET
                     206     
01A0 C2D3            207     QQ1:    CLR RS0
01A2 7E00            208             MOV R6,#00H
01A4 D2D3            209             SETB RS0
01A6 22              210             RET
01A7                 211     LOOP1:
01A7 C0E0            212             PUSH ACC
01A9 C0D0            213             PUSH PSW
01AB 0F              214             INC R7
01AC D2D3            215             SETB RS0
01AE 74FF            216             MOV A, #0FFH   ; ;清除画面
01B0 F580            217             MOV P0,A            ;   ;清除P0口
01B2 53A000          218             ANL P2,#00          ;   ;清除P2口
01B5 7AC8            219             MOV R2,#200 
01B7                 220     D11:
01B7 7BF8            221             MOV R3,#248      ; ;延时100MS
01B9 DBFE            222             DJNZ R3,$ 
01BB DAFA            223             DJNZ R2,D11 
01BD 752000          224             MOV 20H , #00H       ;  ;取码指针的初值
01C0                 225     l11:    

⌨️ 快捷键说明

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