📄 isp.lst
字号:
A51 MACRO ASSEMBLER ISP 06/13/2008 14:36:16 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN isp.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE isp.a51 SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0080 1 ISP_IAP_BYTE_PROGRAM equ 0x80;
0082 2 ISP_IAP_SECTOR_ERASE equ 0x82;
0020 3 sfr ONE_DATA =0x20;
0021 4 sfr BYTE_ADDR_HIGH =0x21;
0022 5 sfr BYTE_ADDR_LOW =0x22;
00F6 6 sfr ISP_DATA =0xF6;
00F4 7 sfr ISP_ADDRH =0xF4;
00F5 8 sfr ISP_ADDRL =0xF5;
00F7 9 sfr ISP_CMD =0xF7;
00B5 10 sfr RCON =0xB5;
00BF 11 sfr sconf =0xBF;
0023 12 sfr SECTOR_FIRST_BYTE_ADDR_HIGH =0x23;
0024 13 sfr SECTOR_FIRST_BYTE_ADDR_LOW =0x24;
14
0000 15 org 0000h
0000 2100 16 jmp start
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 ;====================================================================
32 ; (1) page erase 2600h ~27ffh ,
33 ; (2) 2600h ~27ffh 512 byte byte program
34 ; (3) 2600h ~27ffh byte program
35 ; (4) read data ->change data ->page erase -> read byte and byte program =>p2.7(75ms)
36 ;====================================================================
0100 37 org 100h
0100 38 start:
39
40
0100 31A0 41 call enable_expand_RAM ;enable expanded RAM for buffer used
42 ;================================================
43 ; first page erase 2600~27ff
44 ;================================================
0102 45 page_erase_2600:
0102 752326 46 mov SECTOR_FIRST_BYTE_ADDR_HIGH,#026h
0105 31DD 47 call ISP_Sector_erase
48 ;================================================
49 ; first Byte program,
50 ; address:0x2600~~0x26ff , data:0~~255
51 ; address:0x2700~~0x27ff , data:0~~255
52 ;================================================
0107 902600 53 mov dptr,#02600h
010A 7900 54 mov r1,#00h ;data
010C 55 Byte_program:
010C 858321 56 mov BYTE_ADDR_HIGH,dph
010F 858222 57 mov BYTE_ADDR_LOW,dpl
0112 8920 58 mov ONE_DATA,r1
A51 MACRO ASSEMBLER ISP 06/13/2008 14:36:16 PAGE 2
0114 31BD 59 call ISP_Byte_Program
0116 A3 60 inc dptr
0117 E583 61 mov a,dph
0119 09 62 inc r1
011A B428EF 63 cjne a,#028h,Byte_program
64
65 ;==================================================
66 ; read data,address:0x2600~0x26ff , data:0x00~0xff
67 ; save data to expanded RAM 0x0100~0x01ff,
68 ; OME=1,expanded 768 byte RAM,
69 ; one page of data ram = 256 bytes,
70 ; Expanded RAM have three pages .RCON,#01H , page one
71 ;================================================
011D 72 read_data:
011D 902600 73 mov dptr,#02600h
0120 75B501 74 mov RCON,#01H ;change expanded RAM to page 1,
0123 7800 75 mov r0,#00h
0125 76 read_data1:
0125 858321 77 mov BYTE_ADDR_HIGH,dph
0128 858222 78 mov BYTE_ADDR_LOW,dpl
012B 31CE 79 call ISP_Byte_read
012D F2 80 movx @r0,a
012E 08 81 inc r0
012F A3 82 inc dptr
0130 E583 83 mov a,dph
0132 B427F0 84 cjne a,#027h,read_data1
85 ;==================================================
86 ; read data,address:0x2700~0x27ff , data:0x00~0xff
87 ; save data to expanded RAM 0x0200~0x02ff,
88 ; OME=1,expanded 768 byte RAM,
89 ; one page of data ram = 256 bytes,
90 ; Expanded RAM have three pages .RCON,#02H , page two
91 ;==================================================
0135 92 read_data2:
0135 902700 93 mov dptr,#02700h
0138 75B502 94 mov RCON,#02H ;change expanded RAM to page 2,
013B 7800 95 mov r0,#00h
013D 96 read_data3:
013D 858321 97 mov BYTE_ADDR_HIGH,dph
0140 858222 98 mov BYTE_ADDR_LOW,dpl
0143 31CE 99 call ISP_Byte_read
0145 F2 100 movx @r0,a
0146 08 101 inc r0
0147 A3 102 inc dptr
0148 E583 103 mov a,dph
014A B428F0 104 cjne a,#028h,read_data3
105 ;================================================
106 ;change data;change expanded RAM 0x0105 from 0x05 to 0x55
107 ;same as chenge 0x2605 from 0x05 to 0x55
108 ;================================================
014D 7E55 109 mov r6,#055h
014F 75B501 110 mov RCON,#01H ;change eRAM to page 1,0x0100~0x01ff
0152 7805 111 mov r0,#05h
0154 EE 112 mov a,r6
0155 F2 113 movx @r0,a
114 ;================================================
115 ;change data;change expanded RAM 0x0210 from 0x10 to 0x66
116 ;same as chenge 0x2710 from 0x10 to 0x66
117 ;================================================
0156 7E66 118 mov r6,#066h
0158 75B502 119 mov RCON,#02H ;change eRAM to page 2,0x0200~0x02ff
015B 7810 120 mov r0,#10h
015D EE 121 mov a,r6
015E F2 122 movx @r0,a
123 ;================================================
124 ; second page erase 0x2600~0x27ff
A51 MACRO ASSEMBLER ISP 06/13/2008 14:36:16 PAGE 3
125 ;================================================
015F 126 page_erase1:
015F 752326 127 mov SECTOR_FIRST_BYTE_ADDR_HIGH,#026h
0162 31DD 128 call ISP_Sector_erase
129 ;================================================*
130 ; second Byte program,
131 ; read data from expanded RAM 0x0100~0x01ff and
132 ; byte program to address:0x2600~0x26ff,
133 ; the 0x2605 data will change from "05h" to "55h"
134 ;================================================
0164 135 change_data1:
0164 75B501 136 mov RCON,#01H ;change eRAM to page 1,0x0100~0x01ff
0167 7800 137 mov r0,#00h
0169 902600 138 mov dptr,#02600h
016C 139 Byte_program11:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -