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

📄 flash.lst

📁 51单片机用汇编实例 包括ad
💻 LST
字号:
A51 MACRO ASSEMBLER  FLASH                                                                03/02/2006 16:52:27 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     ;===============================================================
                       2     ; 文件名称: Flash.ASM
                       3     ; 功能描述: 读/写Flash, 了解Flash的保护, 擦除特性.
                       4     ;           带保护写入0~127共128个数, 不带保护写入128个55H.
                       5     ;===============================================================
                       6     
  0000                 7     START_ADDR      EQU 0000H
  5555                 8     ADDR_UNLOCK1    EQU 5555H
  2AAA                 9     ADDR_UNLOCK2    EQU 2AAAH
                      10     
  008E                11     AUXR    DATA 8EH
                      12     
0000                  13             ORG 0000H               ;实验说明:
0000 020100           14             LJMP START              ;分别运行程序到NOP, 观察存储区
0100                  15             ORG 0100H               ;    X:0000H中的内容
0100 758E02           16     START:  MOV AUXR, #02H          ;使能外部RAM访问
0103 120121           17             LCALL PWRITE            ;带保护写
0106 120198           18             LCALL DELAY             ;延时
0109 00               19             NOP
010A 120141           20             LCALL UPWRITE           ;不带保护写
010D 120198           21             LCALL DELAY
0110 00               22             NOP
0111 12014E           23             LCALL UPROT             ;去除保护
0114 120141           24             LCALL UPWRITE           ;不带保护写
0117 120198           25             LCALL DELAY
011A 00               26             NOP
011B 120173           27             LCALL ERASE             ;芯片擦除
011E 00               28             NOP
011F 80FE             29             SJMP $
                      30     ;======带保护写(写入0~127)======
0121 905555           31     PWRITE: MOV DPTR, #ADDR_UNLOCK1
0124 74AA             32             MOV A, #0AAH
0126 F0               33             MOVX @DPTR, A
0127 902AAA           34             MOV DPTR, #ADDR_UNLOCK2
012A 7455             35             MOV A, #55H
012C F0               36             MOVX @DPTR, A
012D 905555           37             MOV DPTR, #ADDR_UNLOCK1
0130 74A0             38             MOV A, #0A0H
0132 F0               39             MOVX @DPTR, A
0133 900000           40             MOV DPTR, #START_ADDR
0136 7C80             41             MOV R4, #80H            ;128
0138 7400             42             MOV A, #00H
013A F0               43     PWLP1:  MOVX @DPTR, A
013B 0582             44             INC DPL
013D 04               45             INC A
013E DCFA             46             DJNZ R4, PWLP1
0140 22               47             RET
                      48     ;======不带保护写, 写入128字节的55H======
0141 900000           49     UPWRITE:MOV DPTR, #START_ADDR
0144 7C80             50             MOV R4, #80H
0146 7455             51             MOV A, #55H
0148 F0               52     UWLP1:  MOVX @DPTR, A
0149 0582             53             INC DPL
014B DCFB             54             DJNZ R4, UWLP1
014D 22               55             RET
                      56     ;======去除保护特性======
014E 905555           57     UPROT:  MOV DPTR, #ADDR_UNLOCK1
0151 74AA             58             MOV A, #0AAH
A51 MACRO ASSEMBLER  FLASH                                                                03/02/2006 16:52:27 PAGE     2

0153 F0               59             MOVX @DPTR, A
0154 902AAA           60             MOV DPTR, #ADDR_UNLOCK2
0157 7455             61             MOV A, #55H
0159 F0               62             MOVX @DPTR, A
015A 905555           63             MOV DPTR, #ADDR_UNLOCK1
015D 7480             64             MOV A, #80H
015F F0               65             MOVX @DPTR, A
0160 905555           66             MOV DPTR, #ADDR_UNLOCK1
0163 74AA             67             MOV A, #0AAH
0165 F0               68             MOVX @DPTR, A
0166 902AAA           69             MOV DPTR, #ADDR_UNLOCK2
0169 7455             70             MOV A, #55H
016B F0               71             MOVX @DPTR, A
016C 905555           72             MOV DPTR, #ADDR_UNLOCK1
016F 7420             73             MOV A, #20H
0171 F0               74             MOVX @DPTR, A
0172 22               75             RET
                      76     ;======芯片擦除, 擦除后全为FF======
0173 905555           77     ERASE:  MOV DPTR, #ADDR_UNLOCK1
0176 74AA             78             MOV A, #0AAH
0178 F0               79             MOVX @DPTR, A
0179 902AAA           80             MOV DPTR, #ADDR_UNLOCK2
017C 7455             81             MOV A, #55H
017E F0               82             MOVX @DPTR, A
017F 905555           83             MOV DPTR, #ADDR_UNLOCK1
0182 7480             84             MOV A, #80H
0184 F0               85             MOVX @DPTR, A
0185 905555           86             MOV DPTR, #ADDR_UNLOCK1
0188 74AA             87             MOV A, #0AAH
018A F0               88             MOVX @DPTR, A
018B 902AAA           89             MOV DPTR, #ADDR_UNLOCK2
018E 7455             90             MOV A, #55H
0190 F0               91             MOVX @DPTR, A
0191 905555           92             MOV DPTR, #ADDR_UNLOCK1
0194 7410             93             MOV A, #10H
0196 F0               94             MOVX @DPTR, A
0197 22               95             RET
                      96     
0198 7F50             97     DELAY:  MOV R7, #50H
019A 7EF0             98     DLP1:   MOV R6, #0F0H
019C 00               99     DLP2:   NOP
019D DEFD            100             DJNZ R6, DLP2
019F DFF9            101             DJNZ R7, DLP1
01A1 22              102             RET
                     103     
                     104             END
A51 MACRO ASSEMBLER  FLASH                                                                03/02/2006 16:52:27 PAGE     3

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

ADDR_UNLOCK1 . . .  N NUMB   5555H   A   
ADDR_UNLOCK2 . . .  N NUMB   2AAAH   A   
AUXR . . . . . . .  D ADDR   008EH   A   
DELAY. . . . . . .  C ADDR   0198H   A   
DLP1 . . . . . . .  C ADDR   019AH   A   
DLP2 . . . . . . .  C ADDR   019CH   A   
DPL. . . . . . . .  D ADDR   0082H   A   
ERASE. . . . . . .  C ADDR   0173H   A   
PWLP1. . . . . . .  C ADDR   013AH   A   
PWRITE . . . . . .  C ADDR   0121H   A   
START. . . . . . .  C ADDR   0100H   A   
START_ADDR . . . .  N NUMB   0000H   A   
UPROT. . . . . . .  C ADDR   014EH   A   
UPWRITE. . . . . .  C ADDR   0141H   A   
UWLP1. . . . . . .  C ADDR   0148H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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