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

📄 isp.lst

📁 SM59D04G2_EEPROM读写 其他人不需帐号就可自由下载此源码
💻 LST
📖 第 1 页 / 共 2 页
字号:
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 + -