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

📄 test.lst

📁 在工作过程中用到SST39系列的FLASH.就写了这个FLASH测试软件,对于初次接触FLASH的人有很大帮助.文件中有详细的说明.
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  TEST                                                                 08/13/2007 23:04:01 PAGE     1


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

LOC  OBJ            LINE     SOURCE

                       1     
                       2     
                       3     
                       4     
                       5     
                       6     
                       7     
                       8     
                       9     
                      10     
                      11     
                      12     
                      13     
                      14     
                      15     
                      16     
                      17     
                      18     
                      19     
                      20     
                      21     
                      22     ;$include (stc89c52rc.inc)
                +1    23     ;==================================
                +1    24     ;       STC89C52RC.INC
                +1    25     ;       STC89C52的特殊功能寄存器定义
                +1    26     ;==================================
                +1    27     ;---------以下定义EEPROM参数---------------------------------------
  0001          +1    28     Isp_iap_byte_read               equ     1;读等待
  0002          +1    29     Isp_iap_program                 equ     2;
  0003          +1    30     Isp_iap_sector_erase            equ     3;
  2000          +1    31     Data_flash_start_address        equ     2000h
  0080          +1    32     Enable_isp                      equ     80h
  005A          +1    33     Debug_data                      equ     5ah     
                +1    34     ;--------------------------------------------------------------------
  0082          +1    35             DPL1            EQU     82H
  0083          +1    36             DPH1            EQU     83H
  008E          +1    37             AUXR            EQU     8EH
  00A2          +1    38             AUXR1           EQU     0A2H
  00A9          +1    39             SADDR           EQU     0A9H
  00AE          +1    40             WDTRST          EQU     0AEH
  00B7          +1    41             IPH             EQU     0B7H
  00B9          +1    42             SADEN           EQU     0B9H
  00C0          +1    43             XICON           EQU     0C0H
  00C8          +1    44             T2CON           EQU     0C8H
  00C9          +1    45             T2MOD           EQU     0C9H
  00CA          +1    46             RCAP2L          EQU     0CAH
  00CB          +1    47             RCAP2H          EQU     0CBH
  00CC          +1    48             TL2             EQU     0CCH
  00CD          +1    49             TH2             EQU     0CDH
  00E1          +1    50             WDT_CONTR       EQU     0E1H
  00E2          +1    51             ISP_DATA        EQU     0E2H
  00E3          +1    52             ISP_ADDRH       EQU     0E3H
  00E4          +1    53             ISP_ADDRL       EQU     0E4H
  00E5          +1    54             ISP_CMD         EQU     0E5H
  00E6          +1    55             ISP_TRIG        EQU     0E6H
  00E7          +1    56             ISP_CONTR       EQU     0E7H
  00E8          +1    57             P4              EQU     0E8H
                +1    58     
A51 MACRO ASSEMBLER  TEST                                                                 08/13/2007 23:04:01 PAGE     2

                +1    59     ;T2CON
  00CF          +1    60             TF2             BIT     T2CON.7
  00CE          +1    61             EXF2            BIT     T2CON.6
  00CD          +1    62             RCLK            BIT     T2CON.5
  00CC          +1    63             TCLK            BIT     T2CON.4
  00CB          +1    64             EXEN2           BIT     T2CON.3
  00CA          +1    65             TR2             BIT     T2CON.2
  00C9          +1    66             CT2             BIT     T2CON.1
  00C8          +1    67             CPRL2           BIT     T2CON.0
                +1    68     
                +1    69     ;AUXR
  0001          +1    70             DISALE          EQU     01H     ;disable/enable ale
  0008          +1    71             DISRTO          EQU     08H     ;disable/enable reset out
  0010          +1    72             WDIDLE          EQU     10H     ;disable/enable wdt in idle mode
  0001          +1    73             ALEOFF          EQU     01H     ;disable/enable ale
  0002          +1    74             EXTRAM          EQU     02H     ;disable/enable extend ram
                +1    75     ;AUXR1
  0001          +1    76             DPS             EQU     01H                     ;data pointer register select
                +1    77     
                +1    78     ;IE
  00AD          +1    79             ET2             BIT     IE.5
                +1    80     
                +1    81     ;IP
  00BD          +1    82             PT2             BIT     IP.5
                +1    83     
                +1    84     ;IPH
  0080          +1    85             PX3H            EQU     80H
  0040          +1    86             PX2H            EQU     40H
  0020          +1    87             PT2H            EQU     20H
  0010          +1    88             PSH             EQU     10H
  0008          +1    89             PT1H            EQU     08H
  0004          +1    90             PX1H            EQU     04H
  0002          +1    91             PT0H            EQU     02H
  0001          +1    92             PX0H            EQU     01H
                +1    93     
                +1    94     ;XICON  
  00C7          +1    95             PX3             BIT     XICON.7
  00C6          +1    96             EX3             BIT     XICON.6
  00C5          +1    97             IE3             BIT     XICON.5
  00C4          +1    98             IT3             BIT     XICON.4
  00C3          +1    99             PX2             BIT     XICON.3
  00C2          +1   100             EX2             BIT     XICON.2
  00C1          +1   101             IE2             BIT     XICON.1
  00C0          +1   102             IT2             BIT     XICON.0
                +1   103     
                +1   104     ;SCON
  009F          +1   105             FE              BIT     SCON.7
                +1   106     
                +1   107     ;ISP_CMD
  0004          +1   108             MS2             EQU     04H
  0002          +1   109             MS1             EQU     02H
  0001          +1   110             MS0             EQU     01H  ;1: read   2:write  3:erase
                +1   111     
                +1   112     ;ISP_CONTR
  0080          +1   113             IAPEN           EQU     80H   ;1:enable IAP function
  0040          +1   114             SWBS            EQU     40H   ;1:iap program  0 user program
  0020          +1   115             SWRST           EQU     20H   ;1:software reset
  0004          +1   116             WT2             EQU     04H
  0002          +1   117             WT1             EQU     02H
  0001          +1   118             WT0             EQU     01H   ;WT2,WT1,WT0:cpu wait time
                +1   119     
                +1   120     ;WDT_CONTR
  0020          +1   121             EN_WDT          EQU     20H
  0010          +1   122             CLR_WDT         EQU     10H
  0008          +1   123             IDLE_WDT        EQU     08H
  0004          +1   124             PS2             EQU     04H
A51 MACRO ASSEMBLER  TEST                                                                 08/13/2007 23:04:01 PAGE     3

  0002          +1   125             PS1             EQU     02H
  0001          +1   126             PS0             EQU     01H
                +1   127     
                +1   128     ;T2MOD
  0002          +1   129             T2OE            EQU     02H     ;Timer 2 Output Enable
  0001          +1   130             DCEN            EQU     01H     ;Down Count Enable
                +1   131     
                +1   132     
0000            +1   133     read_byte:
0000 75E780     +1   134             mov     isp_contr,#10000000b;enable_isp
0003 75E501     +1   135             mov     isp_cmd,#01h
0006 8583E3     +1   136             mov     isp_addrh,dph
0009 8582E4     +1   137             mov     isp_addrl,dpl
000C C2AF       +1   138             clr     ea
000E 75E646     +1   139             mov     isp_trig,#46h
0011 75E6B9     +1   140             mov     isp_trig,#0b9h
0014 00         +1   141             nop
0015 E5E2       +1   142             mov     a,isp_data
0017 D2AF       +1   143             setb    ea
0019 120055     +1   144             lcall   isp_disable
001C 22         +1   145             ret
001D            +1   146     byte_program:
001D 75E780     +1   147             mov     isp_contr,#10000000b;enable_isp
0020 75E502     +1   148             mov     isp_cmd,#02h
0023 8583E3     +1   149             mov     isp_addrh,dph
0026 8582E4     +1   150             mov     isp_addrl,dpl
0029 F5E2       +1   151             mov     isp_data,a
002B C2AF       +1   152             clr     ea
002D 75E646     +1   153             mov     isp_trig,#46h
0030 75E6B9     +1   154             mov     isp_trig,#0b9h
0033 00         +1   155             nop
0034 D2AF       +1   156             setb    ea
0036 120055     +1   157             lcall   isp_disable
0039 22         +1   158             ret
003A            +1   159     Sector_erase:
003A 75E780     +1   160             mov     isp_contr,#10000000b;
003D 75E503     +1   161             mov     isp_cmd,#03h
0040 8583E3     +1   162             mov     isp_addrh,dph
0043 8582E4     +1   163             mov     isp_addrl,dpl
0046 C2AF       +1   164             clr     ea
0048 75E646     +1   165             mov     isp_trig,#46h
004B 75E6B9     +1   166             mov     isp_trig,#0b9h
004E 00         +1   167             nop
004F D2AF       +1   168             setb    ea
0051 120055     +1   169             lcall   isp_disable
0054 22         +1   170             ret
0055            +1   171     isp_disable:
0055 75E700     +1   172             mov     isp_contr,#0
0058 75E500     +1   173             mov     isp_cmd,#0
005B 75E600     +1   174             mov     isp_trig,#0
005E 22         +1   175             ret
                +1   176     
                +1   177     ;==================================
                +1   178     ;       end of STV89C52RC.INC
                     179     
                     180     ;$include (sst39vf.inc)
                     181     ;$include(MACRO.inc)
                     182     
  07D0               183     ERRTIMES        EQU 2000
                     184     
----                 185             bseg    at      00h
  00B5               186     csflash         bit p3.5        
                     187     
                     188     
----                 189             dseg    at      23h
0023                 190     t0count:        ds 1            ;延时单位:1毫秒
A51 MACRO ASSEMBLER  TEST                                                                 08/13/2007 23:04:01 PAGE     4

0024                 191     t0count_1:      ds 1
0025                 192     t0countx:       ds 1
0026                 193     t0count_1s:     ds 1
0027                 194     errtime:        ds 2
0029                 195     t1s:            ds 2
002B                 196     sector  :       ds 1
002C                 197     stack:          ds 1
----                 198             xseg            at      0000h           
0000                 199     dbuf:           ds      100
                     200     
----                 201             cseg    at      0000h
0000 8000            202             sjmp    start
0002                 203     start:
0002 C2AF            204             clr     ea
                     205     
0004 759080          206             mov     p1,#80h
0007 75812B          207             mov     sp,#stack-1
000A 75D000          208             mov     psw,#0
000D 787F            209             mov     r0,#7fh
000F E4              210             clr     a
0010 F6              211             mov     @r0,a
0011 D8FD            212             djnz    r0,$-1
0013 758920          213             mov     tmod,#20h               ;只打开串口
0016 758DFA          214             mov     th1,#0FAh
0019 758BFA          215             mov     tl1,#0FAh
001C 759850          216             mov     scon,#50h
001F 758700          217             mov     pcon,#00h
0022 D28E            218             setb    tr1
0024 D2AF            219             setb    ea
0026 758E02          220             mov     auxr,#02
                     221     
0029 D2B5            222             setb    csflash
002B 7409            223             mov     a,#09h
002D 900000          224             mov     dptr,#0000h
0030 F0              225             movx    @dptr,a
0031 A3              226             inc     dptr
0032 7408            227             mov     a,#08h
0034 F0              228             movx    @dptr,a
                     229     
0035                 230     sendtest:
0035 D2B5            231             setb    csflash
0037 E4              232             clr     a
0038 900000          233             mov     dptr,#0000h
003B E0              234             movx    a,@dptr
003C F599            235             mov     sbuf,a
003E 3099FD          236             jnb     ti,$
0041 C299            237             clr     ti
                     238     
0043 900001          239             mov     dptr,#0001h
0046 E0              240             movx    a,@dptr
0047 F599            241             mov     sbuf,a
0049 3099FD          242             jnb     ti,$
004C C299            243             clr     ti
                     244     ;       delay100ms      5
004E 80E5            245             sjmp    sendtest
                     246     
0050 759000          247             mov     p1,#00h                 ;FLASH芯片的高位全为低
0053 C2B5            248             clr     csflash                 ;低选中FLASH
0055 1200C5          249             lcall   ReadFlashID             ;读ID,这里可以读出为080
0058 120115          250             lcall   easesectorallchip       ;擦除整个芯片
                     251     ;       delay100ms      19
                     252             ;------------------------------------------------
                     253             ;写数据过程,写2byte,数据为:88,99
005B 900000          254             mov     dptr,#0 
005E 7EFF            255             mov     r6,#255 
0060 7F01            256             mov     r7,#1
A51 MACRO ASSEMBLER  TEST                                                                 08/13/2007 23:04:01 PAGE     5

0062 759000          257             mov     p1,#00h
0065                 258     W_lp:
0065 C2B5            259             clr     csflash
0067 905555          260             mov     dptr,#5555h
006A 74AA            261             mov     a,#0aah
006C F0              262             movx    @dptr,a
006D 902AAA          263             mov     dptr,#2aaah
0070 7455            264             mov     a,#55h
0072 F0              265             movx    @dptr,a
0073 905555          266             mov     dptr,#5555h
0076 74A0            267             mov     a,#0a0h
                     268     
0078 7488            269             mov     a,#88h
007A 900000          270             mov     dptr,#00h
007D F0              271             movx    @dptr,a ;写1byte数据到FLASH
007E E0              272             movx    a,@dptr

⌨️ 快捷键说明

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