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

📄 936isp_4800_7.3728m.lst

📁 p89lpc936 isp程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  936ISP_4800_7_3728M                                                  04/30/2007 17:15:55 PAGE     1


MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN 936ISP_4800_7.3728M.OBJ
ASSEMBLER INVOKED BY: E:\Program Files\keil\C51\BIN\A51.EXE 936ISP_4800_7.3728M.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     ;************************************************
                       2     ;       P89LPC922 ISP PROGRAM
                       3     ;       VER:02/02
                       4     ;       CODE ADDRESS: 1E00H~1FFFH
                       5     ;       BOOT VECTOR: 1FH
                       6     ;************************************************
                       7     $set ( AUTOBAUD = 0)
                       8     ;************************************************
  00D1                 9     F1              BIT     PSW.1
                      10     
  00BD                11     BRGCON  DATA    0BDH
  00BE                12     BRGR0   DATA    0BEH
  00BF                13     BRGR1   DATA    0BFH
  0091                14     P1M1    DATA    091H
  0092                15     P1M2    DATA    092H
                      16     
  0030                17     addr_l          DATA    30H
  0031                18     addr_h          DATA    31H
  0033                19     data_n          DATA    33H
  0034                20     comm_type       DATA    34H
  0035                21     temp            DATA    35H
                      22     
  0080                23     DATA_BUF        EQU     80H
  FF03                24     PGM_MTP         EQU     0FF03H
                      25     
                      26     ;T_BPS = 256 - Fosc/16/2/BAUDRATE
  00E6                27     T_BPS           EQU     0E6H                    ;4800BPS@4MHz
                      28     ;T_BPS          EQU     0D0H                    ;4800BPS@7.3728MHz
                      29     ;T_BPS          EQU     0FAH                    ;38400BPS@7.3728MHz
                      30     ;************************************************
3E00                  31                     ORG     3E00H
                      32                     
3E00 43A208           33     SOFT_RST:       ORL     0A2H,#08H               ;SOFT RESET
                      34     ;************************************************
                      35     $if  1
                      36     $if  AUTOBAUD 
                             ISP_START:      ACALL   WDG_INIT        
                                             MOV     91H,#00H                ;P1M1=91H
                                             MOV     92H,#00H                ;P1M2=92H
                                             MOV     P1,#0FFH
                                             MOV     TMOD,#10H
                                             ANL     8FH,#0EFH               ;TAMOD=8FH,TIMER1 MODE1
                                             MOV     PCON,#80H
                                             CLR     A
                                             MOV     TH1,A
                                             MOV     TL1,A
                                           
                             RXD_HIGH:       ACALL   WDG_RST                 
                                             JNB     P1.1,RXD_HIGH           ;RXD=P1.1
                             RXD_LOW:        ACALL   WDG_RST
                                             JB      P1.1,RXD_LOW            ;Waiting receive start, receive 'U'
                                             SETB    TR1
                                             JNB     P1.1,$                  ;Waiting one bit(bit 0) finish
                                             CLR     TR1             
                                             
                                             ACALL   WDG_RST
                                             MOV     comm_type,TH1           ;ATUOBAUD
                                             MOV     R1,#comm_type           
A51 MACRO ASSEMBLER  936ISP_4800_7_3728M                                                  04/30/2007 17:15:55 PAGE     2

                                             MOV     A,TL1
                                             XCHD    A,@R1           
                                             SWAP    A                       ;(TH1*256+TL1)/16
                                             
                                             CPL     A
                                             INC     A                       ;(0FFH-N)+1=256-N
                             $else  
3E03 D1BF             66     ISP_START:      ACALL   WDG_INIT        
3E05 759100           67                     MOV     91H,#00H                ;P1M1=91H
3E08 759200           68                     MOV     92H,#00H                ;P1M2=92H
3E0B 7590FF           69                     MOV     P1,#0FFH
3E0E 538FEF           70                     ANL     8FH,#0EFH               ;TAMOD=8FH,TIMER1 MODE1
3E11 758780           71                     MOV     PCON,#80H
3E14 74E6             72                     MOV     A,#T_BPS
                      73     $endif  
3E16 F58B             74                     MOV     TL1,A                   ;TIMER VALUE=256 - ONE_BIT_TIME/16
3E18 F58D             75                     MOV     TH1,A
3E1A 758920           76                     MOV     TMOD,#20H       
3E1D D28E             77                     SETB    TR1
3E1F 759852           78                     MOV     SCON,#52H               ;UART MODE1,ENABLE REN,SETB TI
                      79     $endif 
                      80     ;************************************************                   
3E22 D185             81     WAIT_55H:       ACALL   HAND_ASC        
3E24 B455FB           82                     CJNE    A,#55H,WAIT_55H         ;Waiting receive 'U'
3E27 7D00             83     WAIT_3AH:       MOV     R5,#00H                 ;R5=CHECK SUM
3E29 D185             84                     ACALL   HAND_ASC
3E2B B43AF9           85                     CJNE    A,#3AH,WAIT_3AH         ;Waiting receive ':'
                      86                   
3E2E D15E             87                     ACALL   GET_DATA
3E30 853533           88                     MOV     data_n,temp             ;RECEIVE DATA NUMBER
3E33 D15E             89                     ACALL   GET_DATA
3E35 853531           90                     MOV     addr_h,temp             ;RECEIVE HIGH 8 BIT ADDRESS
3E38 D15E             91                     ACALL   GET_DATA
3E3A 853530           92                     MOV     addr_l,temp             ;RECEIVE LOW 8 BIT ADDRESS
3E3D D15E             93                     ACALL   GET_DATA
3E3F 853534           94                     MOV     comm_type,temp          ;RECEIVE COMMAND TYPE
                      95                   
3E42 E533             96                     MOV     A,data_n                ;DATA NUMBER=0,RET
3E44 FA               97                     MOV     R2,A
3E45 6009             98                     JZ      RECV_END
                      99                   
3E47 7980            100                     MOV     R1,#DATA_BUF            ;DATA BUFFERS ADDRESS
3E49 D15E            101     RECV_LOOP:      ACALL   GET_DATA
3E4B A735            102                     MOV     @R1,temp
3E4D 09              103                     INC     R1
3E4E DAF9            104                     DJNZ    R2,RECV_LOOP
                     105                   
3E50 ED              106     RECV_END:       MOV     A,R5                    ;CHECK SUM COMPARE
3E51 FC              107                     MOV     R4,A
3E52 D15E            108                     ACALL   GET_DATA
3E54 EC              109                     MOV     A,R4
3E55 B53502          110                     CJNE    A,temp,RECV_ERR
3E58 C1A4            111                     AJMP    ISP_COMMAND
                     112                   
3E5A 7458            113     RECV_ERR:       MOV     A,#58H                  ;SEND ERROR DATA 'X'
3E5C E126            114                     AJMP    WRITE_OK1               ;SEND 'X'&'ENTER',GOTO "WAIT_3AH"
                     115     ;************************************************                   
3E5E D185            116     GET_DATA:       ACALL   HAND_ASC                ;RECEIVE ONE BYTE DATA
3E60 D18F            117                     ACALL   ASC_HEX
3E62 C4              118                     SWAP    A
3E63 F535            119                     MOV     temp,A
3E65 D185            120                     ACALL   HAND_ASC
3E67 D18F            121                     ACALL   ASC_HEX
3E69 4235            122                     ORL     temp,A
                     123                     
3E6B ED              124                     MOV     A,R5                    ;CHECK_SUM = CHECK_SUM - TEMP
A51 MACRO ASSEMBLER  936ISP_4800_7_3728M                                                  04/30/2007 17:15:55 PAGE     3

3E6C C3              125                     CLR     C
3E6D 9535            126                     SUBB    A,temp
3E6F FD              127                     MOV     R5,A
3E70 22              128                     RET
                     129     ;************************************************
3E71 D1C5            130     SEND_ASC:       ACALL   WDG_RST
3E73 3099FB          131                     JNB     TI,SEND_ASC
3E76 C299            132                     CLR     TI
3E78 F599            133                     MOV     SBUF,A
3E7A 22              134                     RET
                     135     ;************************************************
3E7B D1C5            136     RECV_ASC:       ACALL   WDG_RST
3E7D 3098FB          137                     JNB     RI,RECV_ASC
3E80 C298            138                     CLR     RI
3E82 E599            139                     MOV     A,SBUF
3E84 22              140                     RET
                     141     ;************************************************
3E85 D17B            142     HAND_ASC:       ACALL   RECV_ASC
3E87 D171            143                     ACALL   SEND_ASC
3E89 30E602          144                     JNB     ACC.6,HAND_RET          ;'A~Z':41H~5AH,'a~z':61H~7AH
3E8C C2E5            145                     CLR     ACC.5                   ;a->A
3E8E 22              146     HAND_RET:       RET
                     147     ;************************************************
3E8F 30E602          148     ASC_HEX:        JNB     ACC.6,ASC_HEX1          ;30H~39H -> N&0x0F: 0~9
3E92 2409            149                     ADD     A,#09H                  ;41H~46H -> (N+9)&0x0F: A~F
3E94 540F            150     ASC_HEX1:       ANL     A,#0FH
3E96 22              151                     RET
                     152     ;************************************************
3E97 540F            153     HEX_ASC:        ANL     A,#0FH                  
3E99 C3              154                     CLR     C
3E9A 940A            155                     SUBB    A,#0AH                  ;N-10 -> C=0:A~F,C=1:0~9
3E9C 5003            156                     JNC     HEX_ASC1                
3E9E 243A            157                     ADD     A,#3AH                  ;0~9:30H~39H
3EA0 22              158                     RET
                     159     
3EA1 2441            160     HEX_ASC1:       ADD     A,#41H                  ;A~F:41H~46H
3EA3 22              161                     RET
                     162     ;************************************************
3EA4 E534            163     ISP_COMMAND:    MOV     A,comm_type
3EA6 23              164                     RL      A
3EA7 903EAB          165                     MOV     DPTR,#COMMAND_TAB       ;0ECFH/1ECFH
3EAA 73              166                     JMP     @A+DPTR
                     167                   
3EAB E10B            168     COMMAND_TAB:    AJMP    WRITE_FLASH             ;00
3EAD C1CC            169                     AJMP    READ_IAP_ID             ;01
3EAF E18B            170                     AJMP    WRITE_CFG               ;02
3EB1 E198            171                     AJMP    READ_CFG                ;03
3EB3 E1A9            172                     AJMP    ERASE_FLASH             ;04
3EB5 E1BB            173                     AJMP    READ_SECTOR_CRC         ;05
3EB7 E1B7            174                     AJMP    READ_GOLBER_CRC         ;06
3EB9 E1DE            175                     AJMP    SET_BAUD                ;07
3EBB C100            176                     AJMP    SOFT_RST                ;08
3EBD E12A            177                     AJMP    READ_USER_ID            ;09
                     178     ;************************************************                   
3EBF 75C1FF          179     WDG_INIT:       MOV     0C1H,#0FFH              ;WATCHDOG SET
3EC2 43A7E0          180                     ORL     0A7H,#0E0H              
3EC5 75C2A5          181     WDG_RST:        MOV     0C2H,#0A5H              
3EC8 75C35A          182                     MOV     0C3H,#5AH
3ECB 22              183                     RET
                     184     ;************************************************
3ECC 7402            185     READ_IAP_ID:    MOV     A,#02H                  ;ISP_ID = 02
3ECE F1F4            186                     ACALL   SEND_HEX
3ED0 7401            187                     MOV     A,#01H
3ED2 12FF03          188                     LCALL   PGM_MTP
3ED5 EF              189                     MOV     A,R7
3ED6 F1F4            190                     ACALL   SEND_HEX
A51 MACRO ASSEMBLER  936ISP_4800_7_3728M                                                  04/30/2007 17:15:55 PAGE     4

3ED8 E124            191                     AJMP    WRITE_0K
3EDA 00              192                     NOP
3EDB 00              193                     NOP
                     194     ;************************************************                  
3F00                 195                     ORG     3F00H
                     196             
3F00 C103            197                     AJMP    ISP_START
                     198     ;************************************************                   
3F02 7452            199     WRITE_ERR:      MOV     A,#52H                  ;SEND 'R'
3F04 D171            200                     ACALL   SEND_ASC
3F06 EF              201                     MOV     A,R7
3F07 F1F4            202                     ACALL   SEND_HEX                ;SEND ERROR DATA
3F09 E173            203                     AJMP    OP_END
                     204     ;************************************************                   
3F0B AB33            205     WRITE_FLASH:    MOV     R3,data_n
3F0D EB              206                     MOV     A,R3
3F0E 6014            207                     JZ      WRITE_0K
                     208                   
3F10 AD30            209                     MOV     R5,addr_l
3F12 AC31            210                     MOV     R4,addr_h
3F14 7F80            211                     MOV     R7,#DATA_BUF
3F16 7400            212                     MOV     A,#00H                  ;WRITE FLASH
3F18 78FF            213     CALL_IAP:       MOV     R0,#0FFH
3F1A 7696            214                     MOV     @R0,#96H                ;0FFH=0x96
3F1C C2D1            215                     CLR     F1                      ;F1=0D0.1H
3F1E 12FF03          216                     LCALL   PGM_MTP
3F21 20D5DE          217                     JB      F0,WRITE_ERR
                     218                   
3F24 742E            219     WRITE_0K:       MOV     A,#2EH                  ;SEND '.'
3F26 D171            220     WRITE_OK1:      ACALL   SEND_ASC
3F28 E173            221                     AJMP    OP_END

⌨️ 快捷键说明

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