cpubbs 发表于 2004-11-6 03:35:55

[转贴]斑竹写的用keil环境和SST89c58制作的51在线下载器源程序。

<P>这是我去年写的sst89c58下载器,使用keilc51的debug调试环境下载。
将本程序编译后写入sst89c58,并编程为remap 4kbytes。该芯片即有了keil环境在线下载功能。
当p1.0拉低时,启动时进入下载程序,进入下载程序后将会自动删除block0。p1.0高电平时进入用户程序。
进入下载程序后,可以通过串口和keil的仿真环境连通,波特率自动调节。
选择load HEX文件,即可将程序下载到sst89c58的低端32keeprom中。除了7e00-7fffh被占用了。
</P>;sst89c58下载器,使用keilc51的debug调试器下载。
;将本程序编译后写入sst89c58,并编程为remap 4kbytes。该芯片即有了keil环境下载功能。
;当p1.0拉低时,启动时进入下载程序,进入下载程序后将会自动删除block0。p1.0高电平时进入用户程序。
;进入下载程序后,可以通过串口和keil的仿真环境连通,波特率自动调节。
;选择load HEX文件,即可将程序下载到sst89c58的低端32keeprom中。除了7e00-7fffh被占用了。
;程序编写:丁丁 2000.12.26
;个人主页:http://www.mcu51.com
      sfcf data 0b1h
        sfcm data 0b2h       
        sfal data 0b3h
        sfah data 0b4h
        sfdt data 0b5h
        sfst data 0b6h

      ORG    0F000H
        ljmp disremap ;千万不要删除这句看似没用的程序,至于为什么就想想吧。
disremap:mov sfcf,#11000000b ;disable remap
       
        ;jb p1.0,user;在这里设置你要用来控制进入iap的管脚

        clr p3.1;led指示正在擦除
        lcall clearuser
       setb p3.1
        ljmp LF026;main
user:   ljmp 0000h
writebyte:        push acc ;这个子程序是用来写一个eeprom字节的,如果你仅仅是用来iap,也可以将它简化,后面那一大段就可以删了。
                push psw
                push dph
                push dpl
                push b
                push 02h
                push 00h
                push acc    ;保存要写入的数据
                CLR    A   ;测试是否为空0ffh
                    MOVC   A, @A+DPTR
                inc a
                jnz clear_save
w_b_:        pop acc        ;如果该位置是空的就直接写入,不用擦除
w1byte:        mov sfah,dph
        mov sfal,dpl
        mov sfdt,a
        mov sfcm,#0eh
t_over:        mov a,sfst
        jb acc.2,T_over
        ajmp endend

clear_save:         ;清除用来暂时保存的rom
                mov sfah,#7fh
                mov sfal,#00h
                mov sfcm,#0bh
t_c7f_over:        mov a,sfst
                jb acc.2,t_c7f_over

                ;将高端内存搬到暂时保存rom
                mov r2,#00h ;将高端ram搬到7f00rom
                mov r0,#80h ;指向高端ram
t_w1_next:        mov sfah,#7fh
                mov sfal,r2
                mov sfdt,@r0
                mov sfcm,#06h   ;burst write
t_w1_over:        mov a,sfst                       
                jb acc.3,t_w1_over
                inc r2
                inc r0
                cjne r0,#0c0h,t_w1_n1 ;write 64
t_w1_over1:        mov a,sfst
                jb acc.2,t_w1_over1
                ajmp t_w1_next
t_w1_n1:        cjne r0,#00h,t_w1_next
t_w1_over2:        mov a,sfst
                jb acc.2,t_w1_over2


                ;将被写字节所在扇搬到高端内存
                mov b,dpl;save dpl当前字节所在地低端位置b
                anl dpl,#80h
                mov r0,#80h
save_w0:        clr a
                movc a,@a+dptr
                mov @r0,a
                inc r0
                inc dpl
                cjne r0,#00h,save_w0
               
                ;写入当前字节到高端内存
                mov a,b
                orl a,#80h
                mov r0,a
                pop acc
                mov @r0,a

                ;擦除原位置扇区
                mov sfah,dph
                mov sfal,b
                mov sfcm,#0bh
t_w1_c1:        mov a,sfst
                jb acc.2,t_w1_c1
               
               
                ;将高端内存搬到原位置扇区
                anl b,#80h
                mov r0,#80h ;指向高端ram
t1_w1_next:        mov sfah,dph
                mov sfal,b
                mov sfdt,@r0
                mov sfcm,#06h   ;burst write
t1_w1_over:        mov a,sfst                       
                jb acc.3,t1_w1_over
                inc b
                inc r0
                cjne r0,#0c0h,t1_w1_n1 ;write 64
t1_w1_over1:        mov a,sfst
                jb acc.2,t1_w1_over1
                ajmp t1_w1_next
t1_w1_n1:        cjne r0,#00h,t1_w1_next
t1_w1_over2:        mov a,sfst
                jb acc.2,t1_w1_over2

                ;将保存区的内容搬回到高端ram
                mov r0,#80h
                mov dptr,#7f00h
t_w1_b:                clr a
                movc a,@a+dptr
                mov @r0,a
                inc r0
                inc dpl
                cjne r0,#0,t_w1_b

endend:                pop 00h
                pop 02h
                pop b
                pop dpl
                pop dph
                pop psw
                pop acc
                ret


                        org 0f200h;//////////////////////
LF200:PUSH   DPL
      PUSH   DPH
      MOV    DPTR, #7E08H
      lcall writebyte
      MOV    A, PSW
      INC    DPTR
      lcall writebyte
      CLR    A
      MOV    PSW, A
      XCH    A, IE
      INC    DPTR
      lcall writebyte
      POP    ACC
      INC    DPTR
      lcall writebyte
      POP    ACC
      INC    DPTR
      lcall writebyte
      POP    ACC
      INC    DPTR
      lcall writebyte
      POP    ACC
      INC    DPTR
      lcall writebyte
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      XCH    A, SP
      lcall writebyte
      MOV    A, B
      INC    DPTR
      lcall writebyte
      MOV    A, R0
      INC    DPTR
      lcall writebyte
      MOV    R0, #00H
LF232:INC    R0
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      XCH    A, @R0
      lcall writebyte
      MOV    A, R0
      CJNE   A, #6FH, LF232
      LCALLLF0AF
      LCALLLF2A0
      LCALLLFBD0
      LCALLLFAD4
      LCALLLF9EC
      LCALLLF9EC
      LCALLLF9EC
LF251:LCALLLFAD4
      MOV    DPTR, #7E0DH
      MOV    A, R0
      lcall writebyte
      INC    DPTR
      MOV    A, R1
      lcall writebyte
      LCALLLF0A2
      RET   
LF260:MOV    R2, #01H
LF262:LCALLLFBD0
      MOV    R6, 01H
      MOV    R5, 00H
LF269:LCALLLFB0C
      CJNE   A, #01H, LF29B
      PUSH   DPH
      PUSH   DPL
      LCALLLFACA
      CLR    C
      MOV    A, R6
      SUBB   A, R1
      MOV    R4, A
      MOV    A, R5
      SUBB   A, R0
      JNZ    LF28A
      CJNE   R4, #02H, LF281
LF281:JNC    LF28A
      MOV    28H, #08H
      MOV    A, #01H
      SJMP   LF296
LF28A:MOV    A, #12H
      LCALLLFADF
      MOV    A, #0F1H
      LCALLLFADF
      MOV    A, #03H
LF296:POP    DPL
      POP    DPH
      lcall writebyte
LF29B:INC    R2
      CJNE   R2, #0CH, LF269
      RET   
LF2A0:MOV    R2, #0BH
LF2A2:LCALLLFB0C
      CJNE   A, #03H, LF2B4
      MOV    A, #01H
      lcall writebyte
      LCALLLFACA
      LCALLLFADD
      LCALLLFADD
LF2B4:DJNZ   R2, LF2A2
LF2B6:MOV    A, #81H
LF2B8:SETB   10H
      MOV    R0, A
      SJMP   LF2C1
LF2BD:MOV    R0, #81H
LF2BF:CLR    10H
LF2C1:MOV    DPTR, #7E08H
      CJNE   R0, #0E0H, LF2C9
      SJMP   LF2ED
LF2C9:INC    DPTR
      CJNE   R0, #0D0H, LF2CF
      SJMP   LF2ED
LF2CF:INC    DPTR
      CJNE   R0, #0A8H, LF2D5
      SJMP   LF2ED
LF2D5:INC    DPTR
      CJNE   R0, #83H, LF2DB
      SJMP   LF2ED
LF2DB:INC    DPTR
      CJNE   R0, #82H, LF2E1
      SJMP   LF2ED
LF2E1:MOV    DPTR, #7E0FH
      CJNE   R0, #81H, LF2E9
      SJMP   LF2ED
LF2E9:INC    DPTR
      CJNE   R0, #0F0H, LF2F5
LF2ED:JB   10H, LF2F2
      lcall writebyte
      RET   
LF2F2:CLR    A
      MOVC   A, @A+DPTR
      RET   
LF2F5:MOV    R1, #0E5H
      JB   10H, LF2FC
      MOV    R1, #88H
LF2FC:PUSH   ACC
      MOV    DPTR, #7EC3H
      MOV    A, R1
      LCALLLF8F4
      MOV    R1, DPL
      MOV    A, DPH
      XCH    A, R0
      INC    DPTR
      LCALLLFAF0
      MOV    A, #22H
      LCALLLFAF0
      MOV    DPL, R1
      MOV    DPH, R0
      CLR    A
      POP    00H
      JMP    @A+DPTR
LF31B:MOV    A, #0E0H
      LCALLLF2B8
      MOV    DPL, 2CH    ;///????????
      MOV    DPH, 2BH
      MOVC   A, @A+DPTR
      MOV    R0, #0E0H
      LJMP   LF2BF
LF32C:LCALLLF2B6
      PUSH   06H
      MOV    R1, A
      MOV    A, 2CH
      LCALLLF918
      MOV    A, 2BH
      LCALLLF918
      MOV    A, R1
      POP    06H
      LJMP   LF2BD
Lf342:                        ;f342hdata area
      db 01h,06h;AJMP   LF006
      db 0fh;INC    R7
      db 01h,01h;AJMP   0F001H
      db 02h,01h,01h;LJMP   0101H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 23h;RL   A
      db 0ah;INC    R2
      db 13h;RRC    A
      db 01h,01h;AJMP   0F001H
      db 02h,01h,01h;LJMP   0101H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 23h;RL   A
      db 06h;INC    @R0
      db 15h,01h;DEC    01H
      db 02h,02h,01h;LJMP   0201H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,23h;AJMP   LF023
      db 0ah;INC    R2
      db 19h;DEC    R1
      db 01h,02h;AJMP   0F002H
      db 02h,01h,01h;LJMP   0101H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 1eh;DEC    R6
      db 06h;INC    @R0
      db 02h,03h,02h;LJMP   0302H
      db 02h,01h,01h;LJMP   0101H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 1eh;DEC    R6
      db 0ah;INC    R2
      db 02h,03h,02h;LJMP   0302H
      db 02h,01h,01h;LJMP   0101H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 1eh;DEC    R6
      db 06h;INC    @R0
      db 02h,03h,02h;LJMP   0302H
      db 02h,01h,01h;LJMP   0101H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 1eh;DEC    R6
      db 0ah;INC    R2
      db 02h,29h,02h;LJMP   2902H
      db 03h;RR   A
      db 02h,02h,02h;LJMP   0202H
      db 02h,02h,02h;LJMP   0202H
      db 02h,02h,02h;LJMP   0202H
      db 02h,1eh,06h;LJMP   1E06H
      db 02h,25h,01h;LJMP   2501H
      db 03h;RR   A
      db 02h,02h,02h;LJMP   0202H
      db 02h,02h,02h;LJMP   0202H
      db 02h,02h,02h;LJMP   0202H
      db 02h,03h,0ah;LJMP   030AH
      db 02h,01h,02h;LJMP   0102H
      db 02h,01h,01h;LJMP   0101H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 02h,06h,02h;LJMP   0602H
      db 01h,01h;AJMP   0F001H
      db 01h,02h;AJMP   0F002H
      db 02h,02h,02h;LJMP   0202H
      db 02h,02h,02h;LJMP   0202H
      db 02h,02h,02h;LJMP   0202H
      db 02h,0ah,02h;LJMP   0A02H
      db 01h,23h;AJMP   LF023
      db 23h;RL   A
      db 23h;RL   A
      db 23h;RL   A
      db 23h;RL   A
      db 23h;RL   A
      db 23h;RL   A
      db 23h;RL   A
      db 23h;RL   A
      db 23h;RL   A
      db 23h;RL   A
      db 23h;RL   A
      db 02h,06h,02h;LJMP   0602H
      db 01h,01h;AJMP   0F001H
      db 02h,01h,01h;LJMP   0101H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 02h,0ah,02h;LJMP   0A02H
      db 01h,01h;AJMP   0F001H
      db 23h;RL   A
      db 01h,01h;AJMP   0F001H
      db 1eh;DEC    R6
      db 1eh;DEC    R6
      db 1eh;DEC    R6
      db 1eh;DEC    R6
      db 1eh;DEC    R6
      db 1eh;DEC    R6
      db 1eh;DEC    R6
      db 1eh;DEC    R6
      db 01h,06h;AJMP   LF006
      db 01h,01h;AJMP   0F001H
      db 01h,02h;AJMP   0F002H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,0ah;AJMP   LF00A
      db 01h,01h;AJMP   0F001H
      db 01h,02h;AJMP   0F002H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
      db 01h,01h;AJMP   0F001H
Lf442: db 56h,33h,2eh,30h    ;,75h,81h,07h,90h,7eh,08h,0e4h,78h,05h                                ;f442h code area
Lf446:         mov sp,#07h ;program start
        mov dptr,#7e08h
        clr a
        mov r0,#05h
LF44F:lcall writebyte
      INC    DPTR
      DJNZ   R0, LF44F
      MOV    A, #00H
      lcall writebyte
      INC    DPTR
      MOV    A, #00H
      lcall writebyte
      INC    DPTR
      MOV    A, #07H
      lcall writebyte
      INC    DPTR
      CLR    A
      lcall writebyte
      MOV    23H, A
      INC    A
      MOV    24H, A
      MOV    DPTR, #7E00H
      MOV    R1, #00H
      MOV    R0, #0A5H
      LCALLLF4C3
      MOV    R0, #33H
      LCALLLF4C3
      MOV    R0, #0CCH
      LCALLLF4C3
      MOV    A, R1
      JZ   LF48D
      MOV    R2, #0BH
      MOV    R5, #00H
      LCALLLFB83
      CLR    A
      MOV    30H, A
      MOV    31H, A
      MOV    DPTR, #7E07H
      lcall writebyte

cpubbs 发表于 2004-11-6 03:37:45

LF48D:LCALLLF2A0
LF490:LCALLLF890
      CJNE   A, #11H, LF4A0
      MOV    A, 23H
      LCALLLF884
      CPL    A
      MOV    23H, A
      SJMP   LF490
LF4A0:CJNE   A, #01H, LF4AA
      MOV    A, 24H
      LCALLLF884
      SJMP   LF490
LF4AA:LCALLLF4AF
      SJMP   LF490
LF4AF:MOV    25H, A
      DEC    A
      DEC    A
      ANL    A, #0EH
      MOV    DPTR, #Lf8c0
      MOV    R7, A
      MOVC   A, @A+DPTR
      XCH    A, R7
      INC    DPTR
      MOVC   A, @A+DPTR
      MOV    DPH, R7
      MOV    DPL, A
      CLR    A
      JMP    @A+DPTR
LF4C3:CLR    A
      MOVC   A, @A+DPTR
      XRL    A, R0
      ORL    A, R1
      MOV    R1, A
      MOV    A, R0
      lcall writebyte
      INC    DPTR
      RET   
LF4CC:MOV    A, #06H
      LCALLLF884
      MOV    A, 28H
      LCALLLF884
      MOV    DPTR, #7E03H
      MOV    R0, #04H
LF4DB:CLR    A
      MOVC   A, @A+DPTR
      LCALLLF884
      INC    DPTR
      DJNZ   R0, LF4DB
      MOV    A, #04H
      LCALLLF884
      RET   
      MOV    28H, #00H
      LCALLLF89C
      MOV    26H, A
      JZ   LF51A
      LCALLLF89C
      MOV    DPH, A
      LCALLLF89C
      MOV    DPL, A
      LCALLLF89C
      MOV    27H, A
LF502:LCALLLF89C
      LCALLLF8D0
      INC    DPTR
      DJNZ   27H, LF502
LF50C:LCALLLF89C
      MOV    A, 25H
      JZ   LF516
      MOV    28H, #02H
LF516:LCALLLF4CC
      RET   
LF51A:LCALLLF89C
      MOV    DPTR, #7E0DH
      lcall writebyte
      INC    DPTR
      LCALLLF89C
      lcall writebyte
      LCALLLF89C
      SJMP   LF50C
      MOV    28H, #00H
      LCALLLF89C
      MOV    26H, A
      LCALLLF89C
      MOV    DPH, A
      LCALLLF89C
      MOV    DPL, A
      LCALLLF89C
      MOV    27H, A
      LCALLLF89C
      MOV    A, 25H
      JZ   LF550
      MOV    28H, #02H
LF54C:LCALLLF4CC
      RET   
LF550:MOV    25H, #00H
      MOV    A, #02H
      LCALLLF8B0
      MOV    A, 26H
      JZ   LF56E
LF55C:LCALLLF96B
      LCALLLF8B0
      INC    DPTR
      DJNZ   27H, LF55C
LF566:CLR    A
      CLR    C
      SUBB   A, 25H
      LCALLLF8B0
      RET   
LF56E:MOV    DPTR, #7E0DH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      SJMP   LF566
      MOV    28H, #00H
      LCALLLF89C
      MOV    29H, A
      LCALLLF89C
      MOV    27H, A
      LCALLLF89C
      MOV    26H, A
      LCALLLF89C
      MOV    DPH, A
      LCALLLF89C
      MOV    DPL, A
      LCALLLF89C
      MOV    A, 25H
      JZ   LF5A8
      MOV    28H, #02H
      LCALLLF4CC
      RET   
LF5A8:CLR    A
      CJNE   A, 29H, LF5B2
      LCALLLFB52
      LJMP   LF4CC
LF5B2:INC    A
      CJNE   A, 29H, LF5BC
      LCALLLFB76
      LJMP   LF4CC
LF5BC:INC    A
      CJNE   A, 29H, LF5C6
      LCALLLFB72
      LJMP   LF4CC
LF5C6:INC    A
      CJNE   A, 29H, LF5D0
      LCALLLFB7A
      LJMP   LF4CC

cpubbs 发表于 2004-11-6 03:38:05

<P>LF5D0:LCALLLFBA7
      LJMP   LF4CC
      MOV    28H, #00H
      LCALLLF89C
      MOV    29H, A
      LCALLLF89C
      MOV    27H, A
      LCALLLF89C
      MOV    26H, A
      LCALLLF89C
      MOV    DPH, A
      LCALLLF89C
      MOV    DPL, A
      LCALLLF89C
      MOV    R2, A
      LCALLLF89C
      MOV    R0, A
      LCALLLF89C
      MOV    R1, A
      LCALLLF89C
      MOV    A, 25H
      JZ   LF60C
      MOV    28H, #02H
      LCALLLF4CC
      RET   
LF60C:CLR    A
      CJNE   A, 29H, LF61C
      LCALLLFCC9
      LCALLLF093
      JNC    LF61B
      LCALLLF890
LF61B:RET   
LF61C:INC    A
      CJNE   A, 29H, LF623
      LJMP   LF643
LF623:INC    A
      CJNE   A, 29H, LF62F
      CLR    11H
      LCALLLFC8D
      LJMP   LF643
LF62F:CLR    12H
      LCALLLFC8B
      JB   12H, LF642
      LCALLLF4CC
      LCALLLF093
      JNC    LF642
      LCALLLF890
LF642:RET   
LF643:MOV    25H, #00H
      MOV    A, #02H
      LCALLLF8B0
      MOV    26H, #04H
      MOV    DPH, #00H
      MOV    DPL, #0E0H
      LCALLLF96B
      LCALLLF8B0
      MOV    DPL, #0F0H
      LCALLLF96B
      LCALLLF8B0
      MOV    DPL, #0D0H
      MOV    2AH, #08H
      LCALLLF96B
      ANL    A, #18H
      MOV    DPL, A
LF670:LCALLLF96B
      LCALLLF8B0
      INC    DPTR
      DJNZ   2AH, LF670
      MOV    DPL, #83H
      LCALLLF96B
      LCALLLF8B0
      MOV    DPL, #82H
      LCALLLF96B
      LCALLLF8B0
      MOV    DPTR, #7E0DH
      CLR    A
LF690:MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      MOV    DPL, #0D0H
      LCALLLF96B
      LCALLLF8B0
      CLR    A
      LCALLLF8B0
      CLR    A
      LCALLLF8B0
      CLR    A
      LCALLLF8B0
      CLR    A
      LCALLLF8B0
      MOV    DPL, #81H
      LCALLLF96B
      MOV    DPL, A
      LCALLLF8B0
      MOV    26H, #01H
LF6C1:LCALLLF96B
      LCALLLF8B0
      DEC    DPL
      DJNZ   27H, LF6C1
      CLR    A
      CLR    C
      SUBB   A, 25H
      LCALLLF8B0
      RET   
      MOV    28H, #00H
      LCALLLF89C
      MOV    26H, A
      LCALLLF89C
      MOV    DPH, A
      LCALLLF89C
      MOV    DPL, A
      LCALLLF89C
      INC    A
      MOV    29H, A
      LCALLLF89C
      INC    A
      MOV    27H, A
      LCALLLF89C
      MOV    2AH, A
      SJMP   LF6FF
LF6F9:MOV    A, 2AH
      LCALLLF8D0
      INC    DPTR
LF6FF:DJNZ   27H, LF6F9
      DJNZ   29H, LF6F9
      LCALLLF89C
      MOV    A, 25H
      JZ   LF70F
      MOV    28H, #02H
LF70F:LCALLLF4CC
      RET   
      MOV    28H, #00H
      LCALLLF89C
      MOV    A, 25H
      JZ   LF724
      MOV    28H, #02H
      LCALLLF4CC
      RET   
LF724:CLR    11H
      LCALLLFC8D
      MOV    DPTR, #7E0DH
      CLR    A
      MOVC   A, @A+DPTR
      MOV    R0, A
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      MOV    R1, A
      MOV    DPTR, #7E03H
      MOV    A, R0
      lcall writebyte
      INC    DPTR
      MOV    A, R1
      lcall writebyte
      MOV    DPH, R0
      MOV    DPL, R1
      MOV    26H, #05H
      LCALLLF96B
      MOV    DPTR, #7E05H
      lcall writebyte
      LCALLLF4CC
      RET   
      MOV    28H, #00H
      LCALLLF89C
      MOV    29H, A
      LCALLLF89C
      MOV    27H, A
      LCALLLF89C
      MOV    A, 25H
      JZ   LF767
      MOV    28H, #02H
      LJMP   LF4CC
LF767:CLR    A
      CJNE   A, 29H, LF771
      ANL    24H, #0FBH
      LJMP   LF4CC
LF771:INC    A
      CJNE   A, 29H, LF77B
      ORL    24H, #04H
      LJMP   LF4CC
LF77B:INC    A
      CJNE   A, 29H, LF787
      CLR    A
      MOV    30H, A
      MOV    31H, A
      LJMP   LF4CC
LF787:MOV    DPL, 30H
      MOV    A, 27H
      JZ   LF797
      CLR    C
      MOV    A, 30H
      SUBB   A, 27H
      MOV    DPL, A
      JNC    LF79E
LF797:MOV    A, 31H
      JNZ    LF79E
      LJMP   LF4CC
LF79E:MOV    25H, #00H
      MOV    A, #02H
      LCALLLF8B0
      MOV    DPH, #6AH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      INC    DPH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF8B0
      CLR    A
      CLR    C
      SUBB   A, 25H
      LCALLLF8B0
      RET   
      MOV    28H, #00H
      LCALLLF89C
      MOV    29H, A
      LCALLLF89C
      MOV    A, 25H
      JZ   LF850
      MOV    28H, #02H
      LJMP   LF4CC
LF850:CLR    A
      CJNE   A, 29H, LF85B
      MOV    DPTR, #7E07H
      lcall writebyte
      LJMP   LF4CC
LF85B:INC    A
      CJNE   A, 29H, LF866
      MOV    DPTR, #7E07H
      lcall writebyte
      LJMP   LF4CC
LF866:MOV    R0, #04H
      MOV    DPTR, #LF442
      MOV    R1, #02H
LF86D:CLR    A
      MOVC   A, @A+DPTR
      MOV    @R1, A
      INC    DPTR
      INC    R1
      DJNZ   R0, LF86D
      MOV    R0, #04H
      MOV    DPTR, #7E03H
      MOV    R1, #02H
LF87B:MOV    A, @R1
      lcall writebyte
      INC    DPTR
      INC    R1
      DJNZ   R0, LF87B
      LJMP   LF4CC
LF884:LCALLLF096
      JNC    LF884
      LCALLLF09F
      LCALLLF09C
      RET    </P><P>LF890:LCALLLF093
      JNC    LF890
      LCALLLF099
      LCALLLF0A5
      RET   
LF89C:LCALLLF093
      JNC    LF89C
      LCALLLF099
      LCALLLF0A5
      PUSH   ACC
      ADD    A, 25H
      MOV    25H, A
      POP    ACC
      RET    </P>

cpubbs 发表于 2004-11-6 03:38:33

<P>LF8B0:LCALLLF096
      JNC    LF8B0
      LCALLLF09F
      LCALLLF09C
      ADD    A, 25H
      MOV    25H, A
      RET</P><P>lf8c0: db 0f5h,017h,0f5h,05dh,0f5h,0b0h,0f6h,008h
db 0f7h,006h,0f7h,045h,0f7h,085h,0f8h,073h;data
;db 0f4h,0e9h,0f5h,02bh,0f5h,07eh,0f5h,0d6h
;db 0f6h,0d4h,0f7h,013h,0f7h,04dh,0f8h,03bh;data
;;;end
LF8D0:MOV    R7, 26H
      CJNE   R7, #01H, LF8D7
      SJMP   LF91D
LF8D7:CJNE   R7, #02H, LF8DC
      SJMP   LF912
LF8DC:CJNE   R7, #03H, LF8E1
      SJMP   LF914
LF8E1:CJNE   R7, #04H, LF8E6
      SJMP   LF91D
LF8E6:CJNE   R7, #05H, LF8EB
      SJMP   LF8F4
LF8EB:CJNE   R7, #06H, LF8F0
      SJMP   LF950
LF8F0:MOV    28H, #0FFH
      RET   
LF8F4:LCALLLF0B0
      MOV    R7, A
      CLR    A
      MOVC   A, @A+DPTR
      CJNE   A, 07H, LF8FE
      RET   
LF8FE:MOV    A, 28H
      JNZ    LF911
      MOV    28H, #03H
      MOV    R0, DPL
      MOV    R1, DPH
      MOV    DPTR, #7E05H
      MOV    A, R1
      lcall writebyte
      INC    DPTR
      MOV    A, R0
      lcall writebyte
LF911:RET   
LF912:lcall writebyte
      RET   
LF914:;mov dph,P2
lcall writebyte
;MOV    R0, DPL
      ;MOVX   @R0, A      ;!!!!!!!
      RET   
LF918:INC    R1
      MOV    DPL, R1
      MOV    R7, #01H
LF91D:MOV    R6, A
      MOV    A, DPL
LF920:CJNE   A, #70H, LF923
LF923:JC   LF92C
      JB   ACC.7, LF93D
LF928:MOV    R0, A
      MOV    A, R6
      MOV    @R0, A
      RET   
LF92C:PUSH   DPL
      PUSH   DPH
      MOV    DPTR, #7E11H
      LCALLLF9E2
      MOV    A, R6
      lcall writebyte
      POP    DPH
      POP    DPL
      RET   
LF93D:CJNE   R7, #01H, LF942
      SJMP   LF928
LF942:PUSH   DPL
      PUSH   DPH
      MOV    R0, A
      MOV    A, R6
      LCALLLF2BF
      POP    DPH
      POP    DPL
      RET   
LF950:RRC    A
      MOV    f0, C
      LCALLLF9D2
      PUSH   ACC
      LCALLLF99F
      INC    R6
      MOV    R7, 06H
LF95E:RRC    A
      DJNZ   R7, LF95E
      MOV    C, F0
LF963:RLC    A
      DJNZ   R6, LF963
      MOV    R6, A
      POP    ACC
      SJMP   LF920</P><P>LF96B:MOV    R7, 26H
      CJNE   R7, #01H, LF972
      SJMP   LF99D
LF972:CJNE   R7, #02H, LF977
      SJMP   LF992
LF977:CJNE   R7, #03H, LF97C
      SJMP   LF994
LF97C:CJNE   R7, #04H, LF981
      SJMP   LF99D
LF981:CJNE   R7, #05H, LF986
      SJMP   LF98F
LF986:CJNE   R7, #06H, LF98B
      SJMP   LF9C5
LF98B:MOV    28H, #0FFH
      RET   
LF98F:CLR    A
      MOVC   A, @A+DPTR
      RET   
LF992:CLR    A
      MOVC   A, @A+DPTR
;MOVX   A, @DPTR    ;!!!!!!
      RET   
LF994:;mov dph,P2
CLR    A
      MOVC   A, @A+DPTR
;MOV    R0, DPL
      ;MOVX   A, @R0   ;!!!!!!
      RET   
LF998:MOV    DPL, R1
      DEC    R1
      MOV    R7, #01H
LF99D:MOV    A, DPL
LF99F:CJNE   A, #70H, LF9A2
LF9A2:JC   LF9AA
      JB   ACC.7, LF9B7
LF9A7:MOV    R0, A
      MOV    A, @R0
      RET   
LF9AA:PUSH   DPL
      PUSH   DPH
      MOV    DPTR, #7E11H
      MOVC   A, @A+DPTR
LF9B2:POP    DPH
      POP    DPL
      RET   
LF9B7:CJNE   R7, #01H, LF9BC
      SJMP   LF9A7
LF9BC:PUSH   DPL
      PUSH   DPH
      LCALLLF2B8
      SJMP   LF9B2
LF9C5:LCALLLF9D2
      LCALLLF99F
      INC    R6
LF9CC:RRC    A
      DJNZ   R6, LF9CC
      CLR    A
      RLC    A
      RET   
LF9D2:MOV    A, DPL
      MOV    R6, A
      ANL    A, #07H
      XCH    A, R6
      XRL    A, R6
      JB   ACC.7, LF9E1
      RR   A
      RR   A
      RR   A
      ADD    A, #20H
LF9E1:RET   
LF9E2:ADD    A, DPL
      MOV    DPL, A
      CLR    A
      ADDC   A, DPH
      MOV    DPH, A
      RET   
LF9EC:INC    DPL
      DJNZ   DPL, LF9F3
      DEC    DPH
LF9F3:DEC    DPL
      RET   
LF9F6:MOV    DPTR, #0023H ;?????????///
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #02H
      JZ   LFA0A
      MOV    A, #02H
      LCALLLF0B0
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #02H
      JNZ    LFA3C
LFA0A:INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #0FAH
      JZ   LFA22
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #0FAH
      JZ   LFA22
      MOV    A, #0FAH
      LCALLLF0B0
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #0FAH
      JNZ    LFA3C
LFA22:INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #99H
      JZ   LFA3A
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #7CH
      JZ   LFA3A
      MOV    A, #99H
      LCALLLF0B0
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #99H
      JNZ    LFA3C
LFA3A:CLR    C
      RET   
LFA3C:SETB   C
      RET   </P><P>LFA3E:LCALLLF0A8
      LCALLLF0A2
      MOV    A, SP
      ADD    A, #0FAH
      XCH    A, R0
      MOV    DPH, @R0
      INC    R0
      MOV    DPL, @R0
      INC    DPTR
      INC    DPTR
      INC    DPTR
      MOV    @R0, DPL
      DEC    R0
      MOV    @R0, DPH
      XCH    A, R0
      POP    PSW
      POP    DPH
      POP    DPL
      POP    ACC
      LCALLLFA65
      LJMP   LF200
LFA65:RETI

LFA66:LCALLLF096
      JNC    LFA66
      LCALLLF09F
      LCALLLF0AB
      MOV    DPTR, #7E0AH
      CLR    A
      MOVC   A, @A+DPTR
      ORL    A, #80H
      ORL    A, IE
      lcall writebyte
      RET    </P><P>      PUSH   ACC
      PUSH   DPL
      PUSH   DPH
      PUSH   PSW
      MOV    PSW, #00H
      MOV    DPTR, #7E07H
      CLR    A
      MOVC   A, @A+DPTR
      JNZ    LFAA4
      POP    PSW
      POP    DPH
      POP    DPL
      POP    ACC
      LJMP   8023H
      PUSH   ACC
      PUSH   DPL
      PUSH   DPH
      PUSH   PSW
      MOV    PSW, #00H
LFAA4:LCALLLF093
      JC   LFAAC
      LJMP   LFABE
LFAAC:LCALLLF099
      LCALLLF0A5
      CJNE   A, #11H, LFAB8
      LJMP   LFABE
LFAB8:CJNE   A, #1BH, LFABE
      LJMP   LFA3E
LFABE:LCALLLF09F
      POP    PSW
      POP    DPH
      POP    DPL
      POP    ACC
      RETI   </P><P>LFACA:INC    DPTR
LFACB:CLR    A
      MOVC   A, @A+DPTR
      MOV    R0, A
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      MOV    R1, A
      INC    DPTR
      RET   
LFAD4:XCH    A, R0
      XCH    A, DPH
      XCH    A, R0
      XCH    A, R1
      XCH    A, DPL
      XCH    A, R1
      RET   
LFADD:CLR    A
      MOVC   A, @A+DPTR
LFADF:MOV    R3, A
      LCALLLFAD4
      CLR    A
      MOVC   A, @A+DPTR
      XCH    A, R3
      LCALLLFAF0
      LCALLLFAD4
      MOV    A, R3
      lcall writebyte
      INC    DPTR
      RET   
LFAF0:LCALLLF8F4
      INC    DPTR
      RET   
LFAF5:MOV    28H, A
      MOV    R0, DPL
      MOV    R1, DPH
      MOV    DPTR, #7E03H
      MOV    A, 27H
      lcall writebyte
      INC    DPTR
      MOV    A, 26H
      lcall writebyte
      INC    DPTR
      MOV    A, R1
      lcall writebyte
      INC    DPTR
      MOV    A, R0
      lcall writebyte
      RET    </P><P>LFB0C:MOV    A, R2
      MOV    B, #06H
      MUL    AB
      MOV    DPTR, #7E7BH
      LCALLLF9E2
      CLR    A
      MOVC   A, @A+DPTR
      RET    </P>

cpubbs 发表于 2004-11-6 03:39:12

<P>LF8B0:LCALLLF096
      JNC    LF8B0
      LCALLLF09F
      LCALLLF09C
      ADD    A, 25H
      MOV    25H, A
      RET</P><P>lf8c0: db 0f5h,017h,0f5h,05dh,0f5h,0b0h,0f6h,008h
db 0f7h,006h,0f7h,045h,0f7h,085h,0f8h,073h;data
;db 0f4h,0e9h,0f5h,02bh,0f5h,07eh,0f5h,0d6h
;db 0f6h,0d4h,0f7h,013h,0f7h,04dh,0f8h,03bh;data
;;;end
LF8D0:MOV    R7, 26H
      CJNE   R7, #01H, LF8D7
      SJMP   LF91D
LF8D7:CJNE   R7, #02H, LF8DC
      SJMP   LF912
LF8DC:CJNE   R7, #03H, LF8E1
      SJMP   LF914
LF8E1:CJNE   R7, #04H, LF8E6
      SJMP   LF91D
LF8E6:CJNE   R7, #05H, LF8EB
      SJMP   LF8F4
LF8EB:CJNE   R7, #06H, LF8F0
      SJMP   LF950
LF8F0:MOV    28H, #0FFH
      RET   
LF8F4:LCALLLF0B0
      MOV    R7, A
      CLR    A
      MOVC   A, @A+DPTR
      CJNE   A, 07H, LF8FE
      RET   
LF8FE:MOV    A, 28H
      JNZ    LF911
      MOV    28H, #03H
      MOV    R0, DPL
      MOV    R1, DPH
      MOV    DPTR, #7E05H
      MOV    A, R1
      lcall writebyte
      INC    DPTR
      MOV    A, R0
      lcall writebyte
LF911:RET   
LF912:lcall writebyte
      RET   
LF914:;mov dph,P2
lcall writebyte
;MOV    R0, DPL
      ;MOVX   @R0, A      ;!!!!!!!
      RET   
LF918:INC    R1
      MOV    DPL, R1
      MOV    R7, #01H
LF91D:MOV    R6, A
      MOV    A, DPL
LF920:CJNE   A, #70H, LF923
LF923:JC   LF92C
      JB   ACC.7, LF93D
LF928:MOV    R0, A
      MOV    A, R6
      MOV    @R0, A
      RET   
LF92C:PUSH   DPL
      PUSH   DPH
      MOV    DPTR, #7E11H
      LCALLLF9E2
      MOV    A, R6
      lcall writebyte
      POP    DPH
      POP    DPL
      RET   
LF93D:CJNE   R7, #01H, LF942
      SJMP   LF928
LF942:PUSH   DPL
      PUSH   DPH
      MOV    R0, A
      MOV    A, R6
      LCALLLF2BF
      POP    DPH
      POP    DPL
      RET   
LF950:RRC    A
      MOV    f0, C
      LCALLLF9D2
      PUSH   ACC
      LCALLLF99F
      INC    R6
      MOV    R7, 06H
LF95E:RRC    A
      DJNZ   R7, LF95E
      MOV    C, F0
LF963:RLC    A
      DJNZ   R6, LF963
      MOV    R6, A
      POP    ACC
      SJMP   LF920</P><P>LF96B:MOV    R7, 26H
      CJNE   R7, #01H, LF972
      SJMP   LF99D
LF972:CJNE   R7, #02H, LF977
      SJMP   LF992
LF977:CJNE   R7, #03H, LF97C
      SJMP   LF994
LF97C:CJNE   R7, #04H, LF981
      SJMP   LF99D
LF981:CJNE   R7, #05H, LF986
      SJMP   LF98F
LF986:CJNE   R7, #06H, LF98B
      SJMP   LF9C5
LF98B:MOV    28H, #0FFH
      RET   
LF98F:CLR    A
      MOVC   A, @A+DPTR
      RET   
LF992:CLR    A
      MOVC   A, @A+DPTR
;MOVX   A, @DPTR    ;!!!!!!
      RET   
LF994:;mov dph,P2
CLR    A
      MOVC   A, @A+DPTR
;MOV    R0, DPL
      ;MOVX   A, @R0   ;!!!!!!
      RET   
LF998:MOV    DPL, R1
      DEC    R1
      MOV    R7, #01H
LF99D:MOV    A, DPL
LF99F:CJNE   A, #70H, LF9A2
LF9A2:JC   LF9AA
      JB   ACC.7, LF9B7
LF9A7:MOV    R0, A
      MOV    A, @R0
      RET   
LF9AA:PUSH   DPL
      PUSH   DPH
      MOV    DPTR, #7E11H
      MOVC   A, @A+DPTR
LF9B2:POP    DPH
      POP    DPL
      RET   
LF9B7:CJNE   R7, #01H, LF9BC
      SJMP   LF9A7
LF9BC:PUSH   DPL
      PUSH   DPH
      LCALLLF2B8
      SJMP   LF9B2
LF9C5:LCALLLF9D2
      LCALLLF99F
      INC    R6
LF9CC:RRC    A
      DJNZ   R6, LF9CC
      CLR    A
      RLC    A
      RET   
LF9D2:MOV    A, DPL
      MOV    R6, A
      ANL    A, #07H
      XCH    A, R6
      XRL    A, R6
      JB   ACC.7, LF9E1
      RR   A
      RR   A
      RR   A
      ADD    A, #20H
LF9E1:RET   
LF9E2:ADD    A, DPL
      MOV    DPL, A
      CLR    A
      ADDC   A, DPH
      MOV    DPH, A
      RET   
LF9EC:INC    DPL
      DJNZ   DPL, LF9F3
      DEC    DPH
LF9F3:DEC    DPL
      RET   
LF9F6:MOV    DPTR, #0023H ;?????????///
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #02H
      JZ   LFA0A
      MOV    A, #02H
      LCALLLF0B0
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #02H
      JNZ    LFA3C
LFA0A:INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #0FAH
      JZ   LFA22
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #0FAH
      JZ   LFA22
      MOV    A, #0FAH
      LCALLLF0B0
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #0FAH
      JNZ    LFA3C
LFA22:INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #99H
      JZ   LFA3A
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #7CH
      JZ   LFA3A
      MOV    A, #99H
      LCALLLF0B0
      CLR    A
      MOVC   A, @A+DPTR
      XRL    A, #99H
      JNZ    LFA3C
LFA3A:CLR    C
      RET   
LFA3C:SETB   C
      RET   </P><P>LFA3E:LCALLLF0A8
      LCALLLF0A2
      MOV    A, SP
      ADD    A, #0FAH
      XCH    A, R0
      MOV    DPH, @R0
      INC    R0
      MOV    DPL, @R0
      INC    DPTR
      INC    DPTR
      INC    DPTR
      MOV    @R0, DPL
      DEC    R0
      MOV    @R0, DPH
      XCH    A, R0
      POP    PSW
      POP    DPH
      POP    DPL
      POP    ACC
      LCALLLFA65
      LJMP   LF200
LFA65:RETI

LFA66:LCALLLF096
      JNC    LFA66
      LCALLLF09F
      LCALLLF0AB
      MOV    DPTR, #7E0AH
      CLR    A
      MOVC   A, @A+DPTR
      ORL    A, #80H
      ORL    A, IE
      lcall writebyte
      RET    </P><P>      PUSH   ACC
      PUSH   DPL
      PUSH   DPH
      PUSH   PSW
      MOV    PSW, #00H
      MOV    DPTR, #7E07H
      CLR    A
      MOVC   A, @A+DPTR
      JNZ    LFAA4
      POP    PSW
      POP    DPH
      POP    DPL
      POP    ACC
      LJMP   8023H
      PUSH   ACC
      PUSH   DPL
      PUSH   DPH
      PUSH   PSW
      MOV    PSW, #00H
LFAA4:LCALLLF093
      JC   LFAAC
      LJMP   LFABE
LFAAC:LCALLLF099
      LCALLLF0A5
      CJNE   A, #11H, LFAB8
      LJMP   LFABE
LFAB8:CJNE   A, #1BH, LFABE
      LJMP   LFA3E
LFABE:LCALLLF09F
      POP    PSW
      POP    DPH
      POP    DPL
      POP    ACC
      RETI   </P><P>LFACA:INC    DPTR
LFACB:CLR    A
      MOVC   A, @A+DPTR
      MOV    R0, A
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      MOV    R1, A
      INC    DPTR
      RET   
LFAD4:XCH    A, R0
      XCH    A, DPH
      XCH    A, R0
      XCH    A, R1
      XCH    A, DPL
      XCH    A, R1
      RET   
LFADD:CLR    A
      MOVC   A, @A+DPTR
LFADF:MOV    R3, A
      LCALLLFAD4
      CLR    A
      MOVC   A, @A+DPTR
      XCH    A, R3
      LCALLLFAF0
      LCALLLFAD4
      MOV    A, R3
      lcall writebyte
      INC    DPTR
      RET   
LFAF0:LCALLLF8F4
      INC    DPTR
      RET   
LFAF5:MOV    28H, A
      MOV    R0, DPL
      MOV    R1, DPH
      MOV    DPTR, #7E03H
      MOV    A, 27H
      lcall writebyte
      INC    DPTR
      MOV    A, 26H
      lcall writebyte
      INC    DPTR
      MOV    A, R1
      lcall writebyte
      INC    DPTR
      MOV    A, R0
      lcall writebyte
      RET    </P><P>LFB0C:MOV    A, R2
      MOV    B, #06H
      MUL    AB
      MOV    DPTR, #7E7BH
      LCALLLF9E2
      CLR    A
      MOVC   A, @A+DPTR
      RET    </P>

cpubbs 发表于 2004-11-6 03:39:32

<P>
LFB1A:MOV    R2, #00H
LFB1C:INC    R2
      LCALLLFB0C
      CJNE   A, 00H, LFB25
      CPL    C
      RET   
LFB25:CJNE   R2, #0AH, LFB1C
      RET   
LFB29:MOV    R6, DPH
      MOV    R7, DPL
      MOV    R2, #0AH
LFB2F:LCALLLFB0C
      JZ   LFB4F
      LCALLLFACA
      CLR    C
      SUBB   A, R7
      MOV    R3, A
      MOV    A, R0
      SUBB   A, R6
      JNZ    LFB40
      SJMP   LFB49
LFB40:CLR    C
      MOV    A, R7
      SUBB   A, R1
      MOV    R3, A
      MOV    A, R6
      SUBB   A, R0
      CLR    C
      JNZ    LFB4F
LFB49:CJNE   R3, #02H, LFB4C
LFB4C:JNC    LFB4F
      RET   
LFB4F:DJNZ   R2, LFB2F
      RET   
LFB52:LCALLLFB29
      MOV    A, #04H
      JC   LFAF5
      MOV    R0, #00H
      LCALLLFB1A
      MOV    A, #05H
      JNC    LFAF5
      DEC    R2
      MOV    27H, R2
LFB65:MOV    A, #01H
LFB67:lcall writebyte
      INC    DPTR
      MOV    A, R6
      lcall writebyte
      INC    DPTR
      MOV    A, R7
      lcall writebyte
      CLR    A
      LJMP   LFAF5
LFB72:MOV    R5, #01H
      SJMP   LFB7C
LFB76:MOV    R5, #02H
      SJMP   LFB7C
LFB7A:MOV    R5, #00H
LFB7C:MOV    A, 27H
      CJNE   A, #80H, LFB91
      MOV    R2, #0AH
LFB83:LCALLLFB0C
      JZ   LFB8A
      MOV    A, R5
      lcall writebyte
LFB8A:DJNZ   R2, LFB83
      RET   
LFB8D:MOV    A, R0
      LJMP   LFAF5
LFB91:MOV    R0, #07H
      CJNE   A, #0AH, LFB96
LFB96:JNC    LFB8D
      MOV    R2, A
      INC    R2
      LCALLLFB0C
      MOV    R0, #06H
      JZ   LFB8D
      MOV    A, R5
      lcall writebyte
      CLR    A
      LJMP   LFAF5
LFBA7:MOV    A, 27H
      MOV    R0, #07H
      CJNE   A, #0AH, LFBAE
LFBAE:JNC    LFB8D
      MOV    B, #06H
      MUL    AB
      MOV    R7, A
      MOV    DPTR, #7E81H
      MOVC   A, @A+DPTR
      MOV    27H, A
      INC    R7
      MOV    A, R7
      MOVC   A, @A+DPTR
      MOV    R0, A
      INC    R7
      MOV    A, R7
      MOVC   A, @A+DPTR
      MOV    R1, A
      INC    R7
      MOV    A, R7
      MOVC   A, @A+DPTR
      MOV    26H, A
      MOV    DPH, R0
      MOV    DPL, R1
      CLR    A
      LJMP   LFAF5
LFBD0:MOV    DPTR, #7E0DH
      LJMP   LFACB
LFBD6:MOV    A, R4
      MOV    DPTR, #LF342 ;??????
      MOVC   A, @A+DPTR
      ANL    A, #0FCH
      MOV    DPTR, #LFBE1 ;??????!!!!!
      JMP    @A+DPTR
Lfbe1:LJMP   LFE89
      NOP   
      LJMP   LFC47
      NOP   
      LJMP   LFC41
      NOP   
      LJMP   LFC3C
      NOP   
      LJMP   LFC36
      NOP   
      LJMP   LFC24
      NOP   
      LJMP   LFC20
      NOP   
      LJMP   LFE73
      NOP   
      LJMP   LFE77
      NOP   
      LJMP   LF31B
      NOP   
      MOV    A, #0E0H
      LCALLLF2B8
      MOV    R0, A
      INC    DPTR
      INC    DPTR
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      MOV    R1, A
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      ADD    A, R0
      MOV    2CH, A
      CLR    A
      ADDC   A, R1
      MOV    2BH, A
      RET   
LFC20:LCALLLFC24
      RETI   
LFC24:LCALLLF2B6
      MOV    R1, A
      LCALLLF998
      MOV    2BH, A
      LCALLLF998
      MOV    2CH, A
      MOV    A, R1
      LJMP   LF2BD
LFC36:JB   11H, LFC57
      LCALLLF32C
LFC3C:MOV    2BH, R5
      MOV    2CH, R6
      RET   
LFC41:JB   11H, LFC57
      LCALLLF32C
LFC47:MOV    A, R4
      RR   A
      SWAP   A
      ANL    A, #07H
      XCH    A, 2BH
      ANL    A, #0F8H
      ORL    A, 2BH
      MOV    2BH, A
      MOV    2CH, R5
      RET   
LFC57:MOV    R6, 2BH
      MOV    R7, 2CH
      MOV    R2, #0BH
      LCALLLFB0C
      LCALLLFB65
      MOV    A, 24H
      ANL    A, #04H
      JZ   LFC6C
      LJMP   LFC74
LFC6C:MOV    R2, #0BH
      LCALLLF262
      LJMP   LFEB1
LFC74:LCALLLF4CC
      SETB   12H
      CLR    11H
      SJMP   LFC80
LFC7D:LCALLLFDA2
LFC80:LCALLLFC96
      MOV    R2, #0AH
      LCALLLFD86
      JNC    LFC7D
      RET   
LFC8B:SETB   11H
LFC8D:MOV    A, 24H
      ANL    A, #04H
      JZ   LFC96
      LCALLLFDA2
LFC96:LCALLLFBD0
      MOV    2BH, R0
      MOV    2CH, R1
      LCALLLFAD4
      CLR    A
      MOVC   A, @A+DPTR
      MOV    R4, A
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      MOV    R5, A
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      MOV    R6, A
      MOV    A, R4
      MOV    DPTR, #LF342 ;?????????!!!!!
      MOVC   A, @A+DPTR
      ANL    A, #03H
      MOV    R2, A
      ADD    A, 2CH
      MOV    2CH, A
      CLR    A
      ADDC   A, 2BH
      MOV    2BH, A
      LCALLLFBD6
      MOV    DPL, 2CH
      MOV    DPH, 2BH
      LCALLLF251
      RET   
LFCC9:MOV    A, 26H
      JZ   LFCD8
      PUSH   00H
      PUSH   01H
      LCALLLF251
      POP    01H
      POP    00H
LFCD8:LCALLLFAD4
      MOV    R5, #00H
      MOV    A, R2
      JZ   LFCE5
      LCALLLFB29
      MOV    R5, #01H
LFCE5:MOV    R2, #0BH
      LCALLLFB0C
      MOV    A, R5
      LCALLLFB67
      MOV    A, 24H
      ANL    A, #04H
      JZ   LFCF7
      LJMP   LFD0F
LFCF7:LCALLLF260
      MOV    A, 28H
      JZ   LFD0B
      XRL    A, #03H
      JNZ    LFD0B
      LCALLLF2A0
      LCALLLF4CC
      SETB   12H
      RET   
LFD0B:LCALLLFEB1
      RET   
LFD0F:LCALLLF4CC
      ANL    3AH, #00H
      MOV    DPTR, #7E07H
      CLR    A
      MOVC   A, @A+DPTR
      JNZ    LFD25
LFD1C:LCALLLFC8D
      LCALLLFD84
      JNC    LFD1C
      RET   
LFD25:LCALLLF093
      JNC    LFD7B
      LCALLLF890
      MOV    R0, A
      MOV    A, 3AH
      INC    3AH
      JZ   LFD3F
      DEC    A
      JZ   LFD4B
      DEC    A
      JZ   LFD52
      DEC    A
      JZ   LFD59
      SJMP   LFD78
LFD3F:CJNE   R0, #1BH, LFD43
      RET   
LFD43:CJNE   R0, #04H, LFD78
      LCALLLF884
      SJMP   LFD7B
LFD4B:MOV    26H, R0
      LCALLLF884
      SJMP   LFD7B
LFD52:MOV    3BH, R0
      LCALLLF884
      SJMP   LFD7B
LFD59:MOV    DPL, R0
      LCALLLF884
      MOV    DPH, 3BH
      MOV    A, 26H
      JNZ    LFD72
      MOV    DPTR, #7E0DH
      CLR    A
      MOVC   A, @A+DPTR
      LCALLLF884
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      SJMP   LFD75
LFD72:LCALLLF96B
LFD75:LCALLLF884
LFD78:ANL    3AH, #00H
LFD7B:LCALLLFC8D
      LCALLLFD84
      JNC    LFD25
      RET   
LFD84:MOV    R2, #00H
LFD86:LCALLLFBD0
LFD89:INC    R2
      CJNE   R2, #0CH, LFD8E
      RET   
LFD8E:LCALLLFB0C
      CJNE   A, #01H, LFD89
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      CJNE   A, 00H, LFD89
      INC    DPTR
      CLR    A
      MOVC   A, @A+DPTR
      CJNE   A, 01H, LFD89
      CPL    C
      RET   
LFDA2:ret
LFE64:MOV    A, #12H
      LCALLLFAF0
      MOV    A, #0F1H
      LCALLLFAF0
      MOV    A, #00H
      LJMP   LFAF0
LFE73:MOV    06H, R5
      MOV    R5, #03H
LFE77:MOV    R7, #00H
      MOV    A, R6
      MOV    R6, #03H
      JNB    ACC.7, LFE80
      DEC    R7
LFE80:ADD    A, 2CH
      MOV    2EH, A
      MOV    A, R7
      ADDC   A, 2BH
      MOV    2DH, A
LFE89:MOV    DPTR, #7EC3H
      LCALLLF251
      LCALLLFAD4
      MOV    R0, #04H
LFE94:MOV    A, @R0
      LCALLLFAF0
      INC    R0
      DJNZ   R2, LFE94
      LCALLLFE64
      MOV    2FH, DPL
      LCALLLFE64
      LCALLLFED9
      CJNE   A, 2FH, LFEB0
      MOV    2CH, 2EH
      MOV    2BH, 2DH
LFEB0:RET   
LFEB1:MOV    DPTR, #7E07H
      CLR    A
      MOVC   A, @A+DPTR
      JZ   LFED4
      LCALLLF9F6
      JNC    LFECA
      LCALLLF2A0
      MOV    A, #64H
      MOV    28H, A
      LCALLLF4CC
      SETB   12H
      RET   
LFECA:LCALLLF4CC
      SETB   12H
      LCALLLFA66
      SJMP   LFED9
LFED4:LCALLLF4CC
      SETB   12H
LFED9:LCALLLF09F
      LCALLLF0AE
      MOV    DPTR, #7E80H
      MOV    R0, #6FH
LFEE4:CLR    A
      MOVC   A, @A+DPTR
      XCH    A, @R0
      lcall writebyte
      INC    DPL
      DJNZ   DPL, LFEEF
      DEC    DPH
LFEEF:DEC    DPL
      DJNZ   R0, LFEE4
      CLR    A
      MOVC   A, @A+DPTR
      MOV    R0, A
      MOV    DPTR, #7E10H
      CLR    A
      MOVC   A, @A+DPTR
      MOV    B, A
      MOV    DPTR, #7E0FH
      CLR    A
      MOVC   A, @A+DPTR
      XCH    A, SP
      lcall writebyte
      MOV    DPTR, #7E0EH
      CLR    A
      MOVC   A, @A+DPTR
      PUSH   ACC
      MOV    DPTR, #7E0DH
      CLR    A
      MOVC   A, @A+DPTR
      PUSH   ACC
      MOV    DPTR, #7E0CH
      CLR    A
      MOVC   A, @A+DPTR
      PUSH   ACC
      MOV    DPTR, #7E0BH
      CLR    A
      MOVC   A, @A+DPTR
      PUSH   ACC
      MOV    DPTR, #7E0AH
      CLR    A
      MOVC   A, @A+DPTR
      MOV    IE, A
      MOV    DPTR, #7E09H
      CLR    A
      MOVC   A, @A+DPTR
      MOV    DPTR, #7E08H
      MOV    PSW, A
      CLR    A
      MOVC   A, @A+DPTR
      POP    DPH
      POP    DPL
      RET   
   </P><P>LF026:CLR    A ;//main
      MOV    0CBH, A
      MOV    0CAH, A
      MOV    0CCH, A
      MOV    0CDH, A
      MOV    0C9H, A
      MOV    0c8h, A
LF033:JB   P3.0, LF033
LF036:JNB    P3.0, LF036
      SETB   0c8h.2
LF03B:JNB    P3.0, LF041
      JNB    0c8h.7, LF03B
LF041:JNB    P3.0, LF041
LF044:JNB    P3.0, LF04A
      JNB    0c8h.7, LF044
LF04A:JNB    P3.0, LF04A
      CLR    0c8h.2
      JB   0c8h.7, LF026
      MOV    R7, 0CCH
      MOV    R6, 0CDH
      MOV    A, R6
      CLR    C
      RRC    A
      MOV    R4, A
      MOV    A, R7
      RRC    A
      ADD    A, R7
      MOV    R7, A
      MOV    A, R4
      ADDC   A, R6
      MOV    R6, A
      MOV    A, R7
      ADD    A, #10H
      MOV    R7, A
      CLR    A
      ADDC   A, R6
      MOV    R6, A
      MOV    A, R7
      MOV    R0, #05H
LF06B:XCH    A, R6
      CLR    C
      RRC    A
      XCH    A, R6
      RRC    A
      DJNZ   R0, LF06B
      MOV    R7, A
      CLR    C
      CLR    A
      SUBB   A, R7
      MOV    0CAH, A
      MOV    0CCH, A
      CLR    A
      SUBB   A, R6
      MOV    0CBH, A
      MOV    0CDH, A
      MOV    0c8h, #34H
      MOV    SCON, #5AH
LF086:clr    ri; SCON.RI
LF088:JNB    ri,LF088
      MOV    A, SBUF
      CJNE   A, #11H, LF086
      LJMP   LF446 ;start</P><P>LF093:MOV    C, ri;SCON.RI
      RET   
LF096:MOV    C, ti;SCON.TI
      RET   
LF099:MOV    A, SBUF
      RET   
LF09C:MOV    SBUF, A
      RET   
LF09F:CLR    ti;SCON.TI
      RET   
LF0A2:SETB   ti;SCON.TI
      RET   
LF0A5:CLR    ri;SCON.RI
      RET   
LF0A8:CLR    ES
      RET   
LF0AB:SETB   ES
      RET   
LF0AE:RET   
LF0AF:RET   
LF0B0:lcall writebyte
      RET</P><P>clearuser:mov r2,#0h
clear_0:mov sfal,#0 ;0000-7d00h
mov sfah,r2
mov sfcm,#0bh
clear_1:mov a,sfst
jb acc.2,clear_1
inc r2
cjne r2,#7eh,clear_0
mov r2,#0h
clear_2:mov sfal,#80h
mov sfah,r2
mov sfcm,#0bh
clear_3:mov a,sfst
jb acc.2,clear_3
inc r2
cjne r2,#7eh,clear_2
ret</P><P>
      END</P><P>
</P>
页: [1]
查看完整版本: [转贴]斑竹写的用keil环境和SST89c58制作的51在线下载器源程序。