网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 61IC中国电子在线 >> 技术文库 >> 嵌入式 >> 文章正文
  公开PhilipsUDA1325的N104V20.HEX反汇编“源程序”     ★★★ 【字体:
公开PhilipsUDA1325的N104V20.HEX反汇编“源程序”
作者:61IC录入    文章来源:本站原创    点击数:    更新时间:2006-4-7    
;Disasm51 Version 3.02 Copyright (c) 2000,2003 Xi'an XXX Co. HotPower
;Binfile_name  :[N104V20.bin]
;Binfile_length:[12282...2FFAH]
;-------UDA1325 USB 定义---------------------------------------------------
S1CON   EQU   0D8H
S1STA   EQU   0D9H
S1DAT   EQU   0DAH
S1ADR   EQU   0DBH
;----------------------------------------------------------
    ORG   0000H
RESET:    LJMP  L003E
;----------------------------------------------------------
EXTI0:    LJMP  L1156;INT0外部中断
;----------------------------------------------------------
S0006:    LCALL S2A51;读USB信息
    RET
D000A:    DB    000H
;----------------------------------------------------------
TIMER0:    LJMP  L091A;T0中断
;----------------------------------------------------------
S000E:    LCALL S2A51;读USB信息
    RET
D0012:    DB    000H
;----------------------------------------------------------
EXTI1:    LJMP  L1103;INT1外部中断
D0016:    DB    032H;RETI
;----------------------------------------------------------
S0017:    LCALL S2A51;读USB信息
    RET
;----------------------------------------------------------
TIMER1:    LJMP  L0929;T1中断
D001E:    DB    032H;RETI
;-------数据区----------------------------------------------
D001F:  DB    041H,004H,01AH,0FFH
;-------数据区----------------------------------------------
D0023:  DB    040H,004H,01AH,0FFH
D0027:  DB    0A1H,004H,01AH,0FFH
D002B:  DB    0A0H,004H,01AH,0FFH
;-------数据区----------------------------------------------
D002F:    DB    070H,004H,01AH,0FFH
;----------------------------------------------------------
D0033:  LJMP  L0CB8;IIC中断
        DB    032H;RETI
;----------------------------------------------------------
;if(p3.0 == 0) acc=0 else acc=8;
S0037:    MOV   A,P3
    ANL   A,#008H;取P3.3(PSIE_MMU_INT)
    RET
D003C:    DB    022H;RET
S003D:    RET
;-------内存初始化(启动文件)--------------------------------
L003E:    MOV   R0,#07FH
L0040:    MOV   @R0,#000H
    DJNZ  R0,L0040
;----------------------------------------------------------
    MOV   DPTR,#D0EDE
    LCALL S2C67;取散转向量表
    LJMP  L2A0E;LJMP MAIN
;-------执行散转程序-------------------------------------
S004D:    MOV   R0,SP
    DEC   R0
    DEC   R0
    DEC   R0
    MOV   SP,#093H
    MOV   A,@R0;取入口参数1
    MOV   @R0,#000H
    PUSH  ACC
    INC   R0
    MOV   A,@R0;取入口参数2
    MOV   @R0,#000H
    PUSH  ACC
    INC   R0
    MOV   A,@R0;取散转地址低位
    MOV   @R0,#000H
    PUSH  ACC
    INC   R0
    MOV   A,@R0;取散转地址高位
    PUSH  ACC
    MOV   @R0,#000H
    RET;跳入散转向量
;-------发送USB命令---------------------------------
;入口参数:
;       RAM (008H) 存放USB命令
;出口参数:
;       无
;----------------------------------------------------
S006D:    MOV   009H,#001H
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   A,008H;取USB发送命令
    MOV   DPTR,#4001H;COMMAND REGISTER PSIE
    MOVX  @DPTR,A;发送命令
    RET
;-------发送USB命令且写入1个字节---------------------
;入口参数:
;       RAM (008H) 存放USB命令
;       RAM (00BH) 存放USB数据
;出口参数:
;       无
;----------------------------------------------------
S007A:    LCALL S006D;COMMAND REGISTER PSIE(<@08H>)
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   DPTR,#4000H;DATA REGISTER PSIE
    MOV   A,00BH;取USB数据
    MOVX  @DPTR,A
    RET
;-------发送USB命令且写入N个字节---------------------
;入口参数:
;       RAM (008H) 存放USB命令
;       RAM (00CH) 存放写入USB数据指针首址
;       RAM (00AH) 存放写入USB数据个数
;出口参数:
;       无
;----------------------------------------------------
S0087:    LCALL S006D;COMMAND REGISTER PSIE(<@08H>)
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   R7,00AH;<@0AH>存放写入个数计数器
    MOV   DPTR,#4000H;DATA REGISTER PSIE
    MOV   R0,#00CH;起始地址
L0094:    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   A,@R0
    MOVX  @DPTR,A;送数据
    INC   R0
    DJNZ  R7,L0094;<@08H>未送完,继续
    RET
;-------发送USB命令且读1个字节-----------------------
;入口参数:
;       RAM (008H) 存放USB命令
;出口参数:
;       RAM (00BH) 读回USB数据
;       ACC        读回USB数据
;----------------------------------------------------
S009D:    ACALL S006D;COMMAND REGISTER PSIE(<@08H>)
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   DPTR,#4000H;DATA REGISTER PSIE
    MOVX  A,@DPTR;READ 1 BYTE
    MOV   00BH,A;存入USB数据
    RET
;-------发送USB命令且读10个字节-----------------------
;入口参数:
;       RAM (008H) 存放USB命令
;       RAM (00CH) 存放USB数据指针首址
;出口参数:
;       RAM (00CH) 读回10字节USB数据
;       RAM (00BH) 读回最后1字节USB数据
;       ACC        读回最后1字节USB数据
;----------------------------------------------------
S00A9:    ACALL S006D;COMMAND REGISTER PSIE(<@08H>)
    ACALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   R7,#00AH
    MOV   R0,#00CH
    MOV   DPTR,#4000H;DATA REGISTER PSIE
L00B4:    ACALL S00BC;等待PSIE_MMU_READY为高电平
    MOVX  A,@DPTR
    MOV   @R0,A
    INC   R0
    DJNZ  R7,L00B4
    RET
;-----------------------------------------------------
S00BC:    JNB   T0,$;等待PSIE_MMU_READY为高电平
    RET
;-----------------------------------------------------
D00C0:    DB    001H,003H
;-----------------------------------------------------
D00C2:  DB    'dio Class 1.0S'
D00D0:  DB    'W1.0-1.2LIB DEV '
D00E0:  DB    '1.0.1.11'
;-----------------------------------------------------
D00E8:    DB    002H,000H,0EDH,000H,0EDH,012H,001H,000H
D00F0:    DB    001H,000H,000H,000H,008H,071H,004H,005H
D00F8:    DB    011H,000H,001H,001H,002H,000H
D00FE:    DB    001H
D00FF:    DB    002H,001H,004H,001H,004H,0E1H,009H,003H
D0107:    DB    0A8H,009H,003H,0B1H,00AH,003H,0BAH,00CH
D010F:    DB    003H,0C4H,00DH,004H,010H,009H,003H,0DDH
D0117:    DB    00CH,003H,0E6H,00DH,004H,003H,009H,003H
D011F:    DB    0FAH,003H,004H,01DH,002H,004H,023H,004H
D0127:    DB    004H,039H,003H,004H,01DH,002H,004H,025H
D012F:    DB    004H,004H,039H,007H,004H,03DH,004H,004H
D0137:    DB    04BH,003H,004H,05BH,007H,004H,06DH,004H
D013F:    DB    004H,0ACH,002H,004H,0B4H,003H,004H,0C8H
D0147:    DB    007H,004H,0CBH,003H,004H,01DH,002H,004H
D014F:    DB    027H,004H,004H,039H,007H,004H,03DH,004H
D0157:    DB    004H,04BH,003H,004H,05EH,007H,004H,06DH
D015F:    DB    004H,004H,0ACH,002H,004H,0B6H,003H,004H
D0167:    DB    0C8H,007H,004H,0CBH,003H,004H,01DH,002H
D016F:    DB    004H,029H,004H,004H,039H,007H,004H,03DH
D0177:    DB    004H,004H,04BH,003H,004H,061H,007H,004H
D017F:    DB    06DH,004H,004H,0ACH,002H,004H,0B8H,003H
D0187:    DB    004H,0C8H,007H,004H,0CBH,003H,004H,01DH
D018F:    DB    002H,004H,02BH,004H,004H,039H,007H,004H
D0197:    DB    03DH,004H,004H,04BH,003H,004H,064H,007H
D019F:    DB    004H,06DH,004H,004H,0ACH,002H,004H,0BAH
D01A7:    DB    003H,004H,0C8H,007H,004H,0CBH,003H,004H
D01AF:    DB    01DH,002H,004H,02DH,004H,004H,039H,007H
D01B7:    DB    004H,03DH,004H,004H,04BH,003H,004H,067H
D01BF:    DB    007H,004H,06DH,004H,004H,0ACH,002H,004H
D01C7:    DB    0BCH,003H,004H,0C8H,007H,004H,0CBH,003H
D01CF:    DB    004H,01DH,002H,004H,02FH,004H,004H,039H
D01D7:    DB    007H,004H,03DH,004H,004H,04BH,003H,004H
D01DF:    DB    06AH,007H,004H,06DH,004H,004H,0ACH,002H
D01E7:    DB    004H,0BEH,003H,004H,0C8H,007H,004H,0CBH
D01EF:    DB    003H,004H,01DH,002H,004H,031H,004H,004H
D01F7:    DB    039H,007H,004H,03DH,004H,004H,04BH,003H
D01FF:    DB    004H,061H,007H,004H,074H,004H,004H,0ACH
D0207:    DB    002H,004H,0C0H,003H,004H,0C8H,007H,004H
D020F:    DB    0CBH,003H,004H,01DH,002H,004H,033H,004H
D0217:    DB    004H,039H,007H,004H,03DH,004H,004H,04BH
D021F:    DB    003H,004H,064H,007H,004H,074H,004H,004H
D0227:    DB    0ACH,002H,004H,0C2H,003H,004H,0C8H,007H
D022F:    DB    004H,0CBH,003H,004H,01DH,002H,004H,035H
D0237:    DB    004H,004H,039H,007H,004H,03DH,004H,004H
D023F:    DB    04BH,003H,004H,061H,007H,004H,07BH,004H
D0247:    DB    004H,0ACH,002H,004H,0C4H,003H,004H,0C8H
D024F:    DB    007H,004H,0CBH,003H,004H,01DH,002H,004H
D0257:    DB    037H,004H,004H,039H,007H,004H,03DH,004H
D025F:    DB    004H,04BH,003H,004H,064H,007H,004H,07BH
D0267:    DB    004H,004H,0ACH,002H,004H,0C6H,003H,004H
D026F:    DB    0C8H,007H,004H,0CBH,003H,004H,020H,002H
D0277:    DB    004H,023H,004H,004H,039H,003H,004H,020H
D027F:    DB    002H,004H,025H,004H,004H,039H,007H,004H
D0287:    DB    044H,004H,004H,04FH,003H,004H,05BH,001H
D028F:    DB    004H,082H,024H,004H,084H,004H,004H,0B0H
D0297:    DB    002H,004H,0B4H,003H,004H,0C8H,007H,004H
D029F:    DB    0D2H,003H,004H,020H,002H,004H,027H,004H
D02A7:    DB    004H,039H,007H,004H,044H,004H,004H,04FH
D02AF:    DB    003H,004H,05EH,001H,004H,082H,024H,004H
D02B7:    DB    084H,004H,004H,0B0H,002H,004H,0B6H,003H
D02BF:    DB    004H,0C8H,007H,004H,0D2H,003H,004H,020H
D02C7:    DB    002H,004H,029H,004H,004H,039H,007H,004H
D02CF:    DB    044H,004H,004H,04FH,003H,004H,061H,001H
D02D7:    DB    004H,082H,024H,004H,084H,004H,004H,0B0H
D02DF:    DB    002H,004H,0B8H,003H,004H,0C8H,007H,004H
D02E7:    DB    0D2H,003H,004H,020H,002H,004H,02BH,004H
D02EF:    DB    004H,039H,007H,004H,044H,004H,004H,04FH
D02F7:    DB    003H,004H,064H,001H,004H,082H,024H,004H
D02FF:    DB    084H,004H,004H,0B0H,002H,004H,0BAH,003H
D0307:    DB    004H,0C8H,007H,004H,0D2H,003H,004H,020H
D030F:    DB    002H,004H,02DH,004H,004H,039H,007H,004H
D0317:    DB    044H,004H,004H,04FH,003H,004H,067H,001H
D031F:    DB    004H,082H,024H,004H,084H,004H,004H,0B0H
D0327:    DB    002H,004H,0BCH,003H,004H,0C8H,007H,004H
D032F:    DB    0D2H,003H,004H,020H,002H,004H,02FH,004H
D0337:    DB    004H,039H,007H,004H,044H,004H,004H,04FH
D033F:    DB    003H,004H,06AH,001H,004H,082H,024H,004H
D0347:    DB    084H,004H,004H,0B0H,002H,004H,0BEH,003H
D034F:    DB    004H,0C8H,007H,004H,0D2H,003H,004H,020H
D0357:    DB    002H,004H,031H,004H,004H,039H,007H,004H
D035F:    DB    044H,004H,004H,057H,003H,004H,061H,001H
D0367:    DB    004H,083H,015H,004H,084H,004H,004H,0B0H
D036F:    DB    002H,004H,0C0H,003H,004H,0C8H,007H,004H
D0377:    DB    0D2H,003H,004H,020H,002H,004H,033H,004H
D037F:    DB    004H,039H,007H,004H,044H,004H,004H,057H
D0387:    DB    003H,004H,064H,001H,004H,083H,015H,004H
D038F:    DB    084H,004H,004H,0B0H,002H,004H,0C2H,003H
D0397:    DB    004H,0C8H,007H,004H,0D2H,009H,004H,0D9H
D039F:    DB    009H,004H,0E2H,009H,004H,0EBH,007H,004H
D03A7:    DB    0F4H,009H,002H,0A2H,004H
D03AC:    DB    005H,001H,000H,080H,032H,009H,004H,000H
D03B4:    DB    000H,000H,001H,001H,000H,000H,00AH,024H
D03BC:    DB    001H,000H,001H,04EH,000H,002H,001H,002H
D03C4:    DB    00CH,024H,002H,001H,001H,001H,000H,002H
D03CC:    DB    003H,000H,000H,000H,00DH,024H,006H,002H
D03D4:    DB    001H,002H,015H,000H,002H,000H,002H,000H
D03DC:    DB    000H,009H,024H,003H,003H,004H,003H,000H
D03E4:    DB    00BH,000H,00CH,024H,002H,004H,003H,006H
D03EC:    DB    000H,002H,003H,000H,000H,000H,008H,024H
D03F4:    DB    005H,006H,002H,009H,00AH,000H,009H,024H
D03FC:    DB    003H,008H,001H,001H,000H,009H,000H,00DH
D0404:    DB    024H,006H,009H,004H,002H,000H,000H,002H
D040C:    DB    000H,002H,000H,000H,00DH,024H,006H,00BH
D0414:    DB    001H,002H,015H,001H,002H,000H,002H,000H
D041C:    DB    000H,009H,004H,001H,009H,004H,002H,000H
D0424:    DB    000H,001H,001H,002H,001H,003H,001H,004H
D042C:    DB    001H,005H,001H,006H,001H,007H,001H,008H
D0434:    DB    001H,009H,001H,00AH,001H,001H,002H,000H
D043C:    DB    000H,007H,024H,001H,001H,000H,001H,000H
D0444:    DB    007H,024H,001H,008H,000H,001H,000H,00EH
D044C:    DB    024H,002H,001H,02CH,024H,002H,001H,00BH
D0454:    DB    024H,002H,001H,01DH,024H,002H,001H,001H
D045C:    DB    001H,008H,002H,001H,008H,001H,002H,010H
D0464:    DB    002H,002H,010H,001H,003H,014H,002H,003H
D046C:    DB    014H,000H,07EH,013H,000H,08AH,0BBH,000H
D0474:    DB    000H,07EH,013H,000H,05AH,046H,000H,000H
D047C:    DB    07EH,013H,000H,09AH,065H,000H,00CH,007H
D0484:    DB    0A0H
D0485:    DB    00FH,000H,088H,015H,000H,070H,017H,000H
D048D:    DB    040H,01FH,000H,011H,02BH,000H,0E0H,02EH
D0495:    DB    000H,080H,03EH,000H,022H,056H,000H,0C0H
D049D:    DB    05DH,000H,000H,07DH,000H,044H,0ACH,000H
D04A5:    DB    080H,0BBH,000H,001H,080H,0BBH,000H,009H
D04AD:    DB    005H,004H,009H,009H,005H,085H,005H,031H
D04B5:    DB    000H,062H,000H,062H,000H,0C4H,000H,093H
D04BD:    DB    000H,026H,001H,026H,000H,04CH,000H,036H
D04C5:    DB    000H,06CH,000H,001H,000H,000H,007H,025H
D04CD:    DB    001H,000H,002H,000H,002H,007H,025H,001H
D04D5:    DB    001H,000H,000H,000H,009H,004H,003H,000H
D04DD:    DB    000H,0FFH,000H,0FFH,000H,009H,004H,004H
D04E5:    DB    000H,001H,003H,000H,000H,000H
D04EB:    DB    009H,021H,000H,001H,000H,001H,022H,025H
D04F3:    DB    000H,007H,005H,083H,003H,001H,000H,001H
D04FB:    DB    025H,000H,005H,00CH,009H,001H,0A1H,001H
D0503:    DB    015H,000H,025H,001H,095H,006H,075H,001H
D050B:    DB    009H,0E9H,009H,0EAH,009H,0E2H,009H,0E5H
D0513:    DB    00AH,050H,001H,00AH,051H,001H,081H,042H
D051B:    DB    095H,001H,075H,002H,081H,001H,0C0H
D0522:    DB    004H,005H,0A3H,005H,033H,005H,037H,005H
D052A:    DB    05FH,005H,0A3H,005H,033H,005H,037H,005H
D0532:    DB    05FH,004H,003H,009H,004H,028H,003H
;-------版本说明----------------------------------------
;Philips ElectronicsDUSB Playback and Recording System
;\N104SW1.0-1.20Lb1.0-1.12ADC1.0HID1.0HUT1.0-C1
;\N104SW1.0-1.20Lb1.0-1.12ADC1.0HID1.0HUT1.0-CE
;-------------------------------------------------------
D0539:  DB    050H,000H;'p'
        DB    068H,000H;'h'
        DB    069H,000H;'i'
        DB    06CH,000H;'l'
        DB    069H,000H;'i'
        DB    070H,000H;'p'
        DB    073H,000H;'s'
        DB    020H,000H;' '
        DB    045H,000H;'E'
        DB    06CH,000H;'l'
        DB    065H,000H;'e'
        DB    063H,000H;'c'
        DB    074H,000H;'t'
        DB    072H,000H;'r'
        DB    06FH,000H;'o'
        DB    06EH,000H;'n'
        DB    069H,000H;'i'
        DB    063H,000H;'c'
        DB    073H,000H;'s'
        DB    044H,003H;'D'
        DB    055H,000H;'U'
        DB    053H,000H;'S'
        DB    042H,000H;'B'
        DB    020H,000H;' '
        DB    050H,000H;'P'
        DB    06CH,000H;'l'
        DB    061H,000H;'a'
        DB    079H,000H;'y'
        DB    062H,000H;'b'
        DB    061H,000H;'a'
        DB    063H,000H;'c'
        DB    06BH,000H;'k'
        DB    020H,000H;' '
        DB    061H,000H;'a'
        DB    06EH,000H;'n'
        DB    064H,000H;'d'
        DB    020H,000H;' '
        DB    052H,000H;'R'
        DB    065H,000H;'e'
        DB    063H,000H;'c'
        DB    06FH,000H;'o'
        DB    072H,000H;'r'
        DB    064H,000H;'d'
        DB    069H,000H;'i'
        DB    06EH,000H;'n'
        DB    067H,000H;'g'
        DB    020H,000H;' '
        DB    053H,000H;'S'
        DB    079H,000H;'y'
        DB    073H,000H;'s'
        DB    074H,000H;'t'
        DB    065H,000H;'e'
        DB    06DH,000H;'m'
        DB    05CH,003H;'\'
        DB    04EH,000H;'N'
        DB    031H,000H;'1'
        DB    030H,000H;'0'
        DB    034H,000H;'4'
        DB    053H,000H;'S'
        DB    057H,000H;'W'
        DB    031H,000H;'1'
        DB    02EH,000H;'.'
        DB    030H,000H;'0'
        DB    02DH,000H;'-'
        DB    031H,000H;'1'
        DB    02EH,000H;'.'
        DB    032H,000H;'2'
        DB    030H,000H;'0'
        DB    04CH,000H;'L'
        DB    062H,000H;'b'
        DB    031H,000H;'1'
        DB    02EH,000H;'.'
        DB    030H,000H;'0'
        DB    02DH,000H;'-'
        DB    031H,000H;'1'
        DB    02EH,000H;'.'
        DB    031H,000H;'1'
        DB    032H,000H;'2'
        DB    041H,000H;'A'
        DB    044H,000H;'D'
        DB    043H,000H;'C'
        DB    031H,000H;'1'
        DB    02EH,000H;'.'
        DB    030H,000H;'0'
        DB    048H,000H;'H'
        DB    049H,000H;'I'
        DB    044H,000H;'D'
        DB    031H,000H;'1'
        DB    02EH,000H;'.'
        DB    030H,000H;'0'
        DB    048H,000H;'H'
        DB    055H,000H;'U'
        DB    054H,000H;'T'
        DB    031H,000H;'1'
        DB    02EH,000H;'.'
        DB    030H,000H;'0'
        DB    02DH,000H;'-'
        DB    043H,000H;'C'
        DB    031H,000H;'1'
D05FF:     DB    05CH,003H;'\'
        DB    04EH,000H;'N'
        DB    031H,000H;'1'
        DB    030H,000H;'0'
          DB    034H,000H;'4'
        DB    053H,000H;'S'
        DB    057H,000H;'W'
        DB    031H,000H;'1'
          DB    02EH,000H;'.'
        DB    030H,000H;'0'
        DB    02DH,000H;'-'
        DB    031H,000H;'1'
          DB    02EH,000H;'.'
        DB    032H,000H;'2'
        DB    030H,000H;'0'
        DB    04CH,000H;'L'
          DB    062H,000H;'b'
        DB    031H,000H;'1'
        DB    02EH,000H;'.'
        DB    030H,000H;'0'
          DB    02DH,000H;'-'
        DB    031H,000H;'1'
        DB    02EH,000H;'.'
        DB    031H,000H;'1'
          DB    032H,000H;'2'
        DB    041H,000H;'A'
        DB    044H,000H;'D'
        DB    043H,000H;'C'
          DB    031H,000H;'1'
        DB    02EH,000H;'.'
        DB    030H,000H;'0'
        DB    048H,000H;'H'
          DB    049H,000H;'I'
        DB    044H,000H;'D'
        DB    031H,000H;'1'
        DB    02EH,000H;'.'
          DB    030H,000H;'0'
        DB    048H,000H;'H'
        DB    055H,000H;'U'
        DB    054H,000H;'T'
          DB    031H,000H;'1'
        DB    02EH,000H;'.'
        DB    030H,000H;'0'
        DB    02DH,000H;'-'
          DB    043H,000H;'C'
        DB    045H,000H;'E'
;-------------------------------------------------------
S065B:    MOV   03EH,#000H
    MOV   03FH,#000H
    LCALL S2534
    RET
S0665:    CLR   P1.5;GP5=0
    MOV   045H,#000H
    MOV   046H,#000H
    MOV   061H,#000H
    MOV   01AH,#001H
    LCALL L0BA3
    MOV   DPTR,#1002H;IO SELECTION REGISTER
    MOV   A,#01FH
    MOVX  @DPTR,A
    RET
S067D:    MOV   008H,#0D0H;USB命令set address/enable
    MOV   00BH,#080H;USB数据(地址0000000B)acc.7=1 enable
    LCALL S007A;发送USB命令且写入1个字节
;----------------------------------------------------------
    MOV   01EH,#000H
    ANL   016H,#0DFH
    ANL   016H,#0BFH
    ORL   016H,#081H
    MOV   A,045H
    CJNE  A,#000H,L06B4
    MOV   R0,#082H
    MOV   @R0,#000H
    DEC   R0
    MOV   @R0,#0ACH
    DEC   R0
    MOV   @R0,#044H
    LCALL S089F
    JZ    L06A9
    LJMP  L079D
L06A9:    LCALL L0742
    ANL   A,#003H
    CLR   C
    RLC   A
    MOV   DPTR,#L073E
    JMP   @A+DPTR;?
L06B4:    MOV   042H,#000H
    MOV   045H,#0FFH
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   DPTR,#4001H;COMMAND REGISTER PSIE
    MOV   A,#007H;
    MOVX  @DPTR,A
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   A,#0FAH
    MOVX  @DPTR,A
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   DPTR,#4001H;COMMAND REGISTER PSIE
    MOV   A,#0D8H;SET ENDPOINT ENABLE
    MOVX  @DPTR,A
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   DPTR,#4000H;DATA REGISTER PSIE
    MOV   A,#003H;WRITE 1 BYTE
    MOVX  @DPTR,A;acc.0=1 enable resered
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   DPTR,#4001H;COMMAND REGISTER PSIE
    MOV   A,#086H
    MOVX  @DPTR,A
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   DPTR,#4000H;DATA REGISTER PSIE
    MOV   A,#000H
    MOVX  @DPTR,A
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   DPTR,#4000H;DATA REGISTER PSIE
    MOV   A,#000H
    MOVX  @DPTR,A
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   DPTR,#4001H;COMMAND REGISTER PSIE
    MOV   A,#0F3H;SET MODE
    MOVX  @DPTR,A
    LCALL S00BC;等待PSIE_MMU_READY为高电平
    MOV   DPTR,#4000H;DATA REGISTER PSIE
    MOV   A,#01FH;
    MOVX  @DPTR,A
    ORL   016H,#081H
    MOV   R7,#000H
    LCALL S10A4
    LCALL S0B93
    MOV   A,046H
    MOV   047H,A
    LCALL S1212
    MOV   008H,#0F4H;发送USB命令Read intrrupt且读1个字节
    LCALL S009D;发送USB命令且读1个字节
    MOV   A,00BH;取USB数据
    MOV   008H,#042H;发送USB命令Set endpoint status(endpoint index=2)且写1个字节
    MOV   00BH,#001H
    LCALL S007A;发送USB命令且写入1个字节
    MOV   008H,#043H;发送USB命令Set endpoint status(endpoint index=3)且写1个字节
    MOV   00BH,#001H
    LCALL S007A;发送USB命令且写入1个字节
    MOV   008H,#044H;发送USB命令Set endpoint status(endpoint index=4)且写1个字节
    MOV   00BH,#001H
    LCALL S007A;发送USB命令且写入1个字节
    RET
L073E:    AJMP  L0751
L0740:    AJMP  L0751
L0742:    MOV   DPTR,#1002H;IO SELECTION REGISTER
    MOV   A,#01FH
    MOVX  @DPTR,A
;-----------------------------------------------
;P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0
; SDA  SCL  GP5  GP4  GP3  GP2  GP1 ADAC_ERROR
;-----------------------------------------------
    MOV   A,P1
    CPL   A
    ANL   A,#018H
    RR    A
    RR    A
    RR    A
    RET
;---------------------------------------------------
L0751:    MOV   03CH,#002H
    MOV   02CH,#090H
    MOV   02DH,#0F3H
    MOV   02EH,#000H
    MOV   036H,#018H
    MOV   032H,#00FH
    MOV   033H,#005H
    MOV   034H,#018H
    MOV   03EH,#000H
    MOV   03FH,#000H
    MOV   037H,#010H
    MOV   038H,#010H
    MOV   02BH,#060H
    MOV   027H,#08BH
    MOV   035H,#000H
    MOV   025H,#080H
    MOV   02AH,#05CH
    MOV   024H,#000H
    MOV   028H,#000H
    MOV   029H,#036H
    MOV   030H,#080H
    MOV   031H,#025H
    MOV   026H,#000H
    MOV   R0,#07FH
    MOV   A,#000H
    MOV   @R0,A;
    SJMP  L07CE
L079D:    MOV   01AH,#00AH
    LCALL L0BBF
    MOV   R0,#061H
    MOV   R1,#024H
    MOV   R2,#00AH
    LCALL S07C7
    MOV   01AH,#00AH
    LCALL L0BBF
    MOV   R0,#061H
    MOV   R2,#00AH
    LCALL S07C7
    MOV   @R1,A
    MOV   01AH,#004H
    LCALL L0BBF
    MOV   R0,#07FH
    MOV   A,061H
    MOV   @R0,A
    SJMP  L07CE
S07C7:    MOV   A,@R0
    MOV   @R1,A
    INC   R0
    INC   R1
    DJNZ  R2,S07C7
    RET
;-----------------------------------------------------------------------
L07CE:    INC   038H
    INC   037H
    MOV   A,02DH
    JNB   ACC.7,L07DB
    MOV   R0,#07FH
    MOV   @R0,#000H
L07DB:    MOV   A,026H
    MOV   DPTR,#1003H;POWER CONTROL
    MOVX  @DPTR,A
    MOV   A,031H
    ANL   A,#00FH
    CJNE  A,#000H,L07EB
    ORL   031H,#001H
L07EB:    MOV   A,031H
    ANL   A,#00FH
    CLR   C
    SUBB  A,#007H
    JC    L07FC
    MOV   A,031H
    ANL   A,#0F0H
    ORL   A,#001H
    MOV   031H,A
L07FC:    MOV   DPTR,#1001H;RESET CONTROL AND APLL SETTINGS
    MOV   A,#014H
;----------------------------------------------------------------------
;       D7D6  D5  D4  D3  D2  D1  D0   VALUE
;        00    0   1   0   1   0   0   14H
;                                  0   X
;                              0       RESET ADIF=OFF
;                          1           RESET DIGITAL I/O-INTERFACE=ON
;                      0               RESET MMU=OFF
;                  1                   RESET ADAC=ON
;              0                       X
;        00                            256*44.1KHZ
;----------------------------------------------------------------------
    MOVX  @DPTR,A
    CLR   A
    MOVX  @DPTR,A
    MOV   A,025H
    MOVX  @DPTR,A
    MOV   DPTR,#1000H;CLOCK SHOP SETTINGS
    MOV   A,024H
    MOVX  @DPTR,A
    LCALL S1718
    MOV   A,027H
    MOV   DPTR,#2000H;ASR SETTINGS
    MOVX  @DPTR,A
    MOV   A,#000H
    MOV   039H,A
    ORL   A,#080H
    LCALL S0956;audio feature registers
    MOV   A,#000H
    MOV   03AH,A
    ORL   A,#0C0H
    LCALL S0956;audio feature registers
    MOV   A,037H
    ORL   A,#000H
    LCALL S0956;audio feature registers
    MOV   A,038H
    ORL   A,#040H
    LCALL S0956;audio feature registers
    MOV   03BH,#003H
    MOV   A,02BH
    ORL   A,#060H
    MOV   02BH,A
    LCALL S0965;control registers 1
    MOV   A,02CH
    LCALL S0965;control registers 2
    LCALL S0860
;------------------------------------------------------
    MOV   A,024H
    SWAP  A;/16
    RR    A;/2->/64
;------------------------------------------------------
    ANL   A,#003H;取(024H)bit7,bit6->acc.1,acc.0
;------------------------------------------------------
    MOV   R0,A
    MOV   A,025H
    SWAP  A;/16
    ANL   A,#00CH;取(025H)bit7,bit6->acc.3,acc.2
;------------------------------------------------------
    ORL   A,R0;acc=24h.7,24h.6,25h.7,25h.6
;------------------------------------------------------
    MOV   DPTR,#D08EE;取数据DATABUFF(16个数据)
;-------数据区(16个数据)-------------------------------
;D08EE:    DB    00AH,007H,004H,001H,009H,006H,003H,000H
;D08F6:    DB    00BH,008H,005H,002H,00AH,007H,004H,001H
;------------------------------------------------------
    MOVC  A,@A+DPTR
    MOV   041H,A;保存数据
    LJMP  L06B4
S0860:    MOV   A,031H
    JNB   ACC.7,L0886
    JNB   ACC.6,L0877
    ORL   046H,#08FH
    LCALL S08D0
    LCALL S08DE
    SETB  P1.5;GP5=1
    MOV   A,#020H
    SJMP  L0898
L0877:    SETB  P1.5;GP5=1
    ORL   046H,#08FH
    LCALL S08D0
    LCALL S08DE
    MOV   A,#000H
    SJMP  L0898
L0886:    SETB  P1.5;GP5=1
    ORL   046H,#08FH
    LCALL S08D0
    LCALL S08C2
    LCALL S08DE
    MOV   A,#019H
    SJMP  L0898
L0898:    MOV   DPTR,#1002H;IO SELECTION REGISTER
    ORL   A,#080H
    MOVX  @DPTR,A
    RET
S089F:    MOV   01AH,#001H
    MOV   061H,#000H
    LCALL L0BAA
    MOV   01AH,#002H
    LCALL L0BBF
    MOV   R0,#061H
    CJNE  @R0,#0A5H,L08BE
    INC   R0
    CJNE  @R0,#0A5H,L08BE
    MOV   03CH,#0A0H
    MOV   A,03CH
    SJMP  L08BF
L08BE:    CLR   A
L08BF:    ORL   A,#000H
    RET
S08C2:    MOV   A,02DH
    ANL   A,#004H
    SWAP  A
    MOV   R0,A
    MOV   A,046H
    ANL   A,#0BFH
    ORL   A,R0
    MOV   046H,A
    RET
S08D0:    MOV   A,02DH
    ANL   A,#003H
    SWAP  A
    MOV   R0,A
    MOV   A,046H
    ANL   A,#0CFH
    ORL   A,R0
    MOV   046H,A
    RET
S08DE:    MOV   A,02DH
    SWAP  A
    XRL   A,035H
    JB    ACC.1,L08EA
    ANL   046H,#0BFH
    RET
L08EA:    ORL   046H,#040H
    RET
;-------数据区(16个数据)-------------------------------
D08EE:    DB    00AH,007H,004H,001H,009H,006H,003H,000H
D08F6:    DB    00BH,008H,005H,002H,00AH,007H,004H,001H
;-------设置定时器方式---------------------------------
S08FE:    MOV   A,TMOD
    ANL   A,#0F0H
    ORL   A,#001H
    MOV   TMOD,A
    RET
S0907:
;---------------------------------------
;40001T
        MOV   TH1,#063H;设置定时器1时间常数
    MOV   TL1,#0BFH
;---------------------------------------
    MOV   A,TMOD
    ANL   A,#00FH
    ORL   A,#010H;16位定时器
    MOV   TMOD,A
    SETB  ET1
    SETB  TR1;启动定时器1
    RET
L091A:    CLR   TR0
    PUSH  000H
    MOV   R0,#088H
    MOV   @R0,#000H
    POP   000H
    CLR   ET0;设置电平触发
    SETB  EX0;开放外部INT0中断
    RETI
;-------------------------------------------
L0929:    CLR   TR1;关闭定时器1
    MOV   TH1,#063H;设置定时器1时间常数
    MOV   TL1,#0BFH
    ORL   016H,#001H
    SETB  TR1;启动定时器1
    RETI
;-------发送时钟L_CLK及数据L3_DATA----------
S0937:    MOV   R7,#008H;发送8位数据
L0939:    CLR   WR;L3_CLK=0,拉低时钟
    NOP;延时
    NOP;延时
    NOP;延时
    RRC   A;右移一位数据,取出数据位
;-----------------------------------------------
;汇编只需1条MOV RD,C;指令即可!!!!!!!!!!
;C语言确要编写以下5条指令!!!
;-----------------------------------------------
    JNC   L0945
    SETB  RD;L3_DATA=1,发送数据1
    SJMP  L0949
L0945:    CLR   RD;L3_DATA=0,发送数据0
    SJMP  L0949
;-----------------------------------------------
L0949:    NOP;延时
    NOP;延时
    NOP;延时
    SETB  WR;L3_CLK=1,拉高时钟
    NOP;延时
    NOP;延时
    NOP;延时
    DJNZ  R7,L0939;8位数据发送未完,继续
    SETB  WR;L3_CLK=1,拉高时钟(废话!!!)
    RET
;-----------------------------------------------
S0956:    MOV   R6,A;保存寄存器地址
    CLR   T1;L3_MODE=0
;-------data_transfer_type=00b(audio feature registers)----------
    MOV   A,#014H;命令data_transfer_type=00b device address=5
    LCALL S0937;发送时钟L_CLK及数据L3_DATA
    SETB  T1;L3_MODE=1
    MOV   A,R6;恢复寄存器地址
    LCALL S0937;发送时钟L_CLK及数据L3_DATA
    RET
;-----------------------------------------------
S0965:    MOV   R6,A;保存寄存器地址
    CLR   T1;L3_MODE=0
;-------data_transfer_type=10b(control registers)----------------
    MOV   A,#016H;命令data_transfer_type=10b device address=5
    LCALL S0937;发送时钟L_CLK及数据L3_DATA
    SETB  T1;L3_MODE=1
    MOV   A,R6;恢复寄存器地址
    LCALL S0937;发送时钟L_CLK及数据L3_DATA
    RET
;-----------------------------------------------
D0974:    DB    000H
D0975:    DB    005H;5个
        DW    D0974
        DW    D0974
        DW    D0974
        DW    D0974
        DW    D04FB
D0980:    DB    005H;5个
        DW    D0974
        DW    D0974
        DW    D0974
        DW    D0974
        DW    D04FB
;---------------------------------------
D098B:    DW    S2A51;读USB信息
        DW    S0EF8
        DW    S2A51;读USB信息
        DW    S2A51;读USB信息
D0993:    DW    S2A51;读USB信息
        DW    S2A51;读USB信息
        DW    S2A51;读USB信息
        DW    S2A51;读USB信息
D099B:    DW    S2A51;读USB信息
        DW    S2A51;读USB信息
        DW    S2A51;读USB信息
        DW    S2A51;读USB信息
D09A3:    DW    S2A51;读USB信息
        DW    S2A51;读USB信息
        DW    S2A51;读USB信息
        DW    S2A51;读USB信息
D09AB:    DB    001H
        DB    004H
        DB    0A1H
        DB    001H
        DB    000H
        DB    001H
        DB    004H
        DB    000H
D09B3:    DB    0FFH
        DB    0FFH
;-----------------------------------------------------
D09B5:  DW    S133A
;-------散转向量表------------------------------------
D09B7:    DB    004H;4个散转向量表
        DW    S2874
        DW    S067D
        DW    S24AF
        DW    S251A
;-----------------------------------------------------
D09C0:    DW    S2689
        DW    S1828
        DW    S1F72
        DW    S2A51;读USB信息
;-------散转向量表------------------------------------
D09C8:    DB    001H;1个散转向量表
        DW    S2C0E
;-------散转向量表------------------------------------
D09CB:    DB    002H;2个散转向量表
        DW    S24FD
        DW    S2D38
;-----------------------------------------------------
D09D0:    DW    S181F
D09D2:    DW    S2C58
D09D4:    DW    S2C58
D09D6:    DW    S2C58
D09D8:    DW    S1FF2
D09DA:    DW    S2001
D09DC:    DW    S2010
D09DE:    DW    S20BD
D09E0:    DW    S20DE
D09E2:    DW    S2481
        DW    S235C
        DW    S2A51;读USB信息
        DW    S2593
D09EA:    DW    S2A51;读USB信息
        DW    S24D7
        DW    S23DC
        DW    S2A51;读USB信息
D09F2:    DW    S23B3
        DW    S251E
        DW    S23F2
        DW    S25EA
D09FA:    DW    S2A51;读USB信息
        DW    S2A51;读USB信息
        DW    S2A51;读USB信息
        DW    S2A51;读USB信息
D0A02:    DB    007H,006H,080H,000H,000H,000H,000H,000H
D0A0A:    DB    002H,000H,026H,04EH,006H,081H,000H,000H
D0A12:    DB    000H,004H,000H,002H,000H,00BH,05BH,006H
D0A1A:    DB    081H,000H,000H,000H,0FFH,000H,002H,000H
D0A22:    DB    028H,059H,006H,082H,000H,000H,000H,083H
D0A2A:    DB    000H,002H,000H,00BH,078H,006H,082H,000H
D0A32:    DB    000H,000H,004H,000H,002H,000H,00BH,064H
D0A3A:    DB    006H,082H,000H,000H,000H,085H,000H,002H
D0A42:    DB    000H,00BH,064H,006H,082H,000H,000H,000H
D0A4A:    DB    0FFH,000H,002H,000H,026H,051H
D0A50:    DB    002H,006H,002H,001H,000H,000H,083H,000H
D0A58:    DB    000H,000H,00BH,081H,006H,002H,001H,000H
D0A60:    DB    000H,0FFH,000H,000H,000H,023H,07CH
D0A67:    DB    002H,006H,002H,003H,000H,000H,083H,000H
D0A6F:    DB    000H,000H,00BH,08AH,006H,002H,003H,000H
D0A77:    DB    000H,0FFH,000H,000H,000H,025H,0B3H
D0A7E:    DB    001H,007H,000H,005H,0FFH,000H,000H,000H
D0A86:    DB    000H,000H,024H,0F0H
D0A8A:    DB    005H,007H,080H,006H,000H,001H,000H,000H
D0A92:    DB    0FFH,0FFH,026H,095H,007H,080H,006H,000H
D0A9A:    DB    002H,000H,000H,0FFH,0FFH,027H,054H,007H
D0AA2:    DB    080H,006H,0FFH,003H,0FFH,0FFH,0FFH,0FFH
D0AAA:    DB    027H,0F3H,007H,081H,006H,000H,021H,004H
D0AB2:    DB    000H,0FFH,0FFH,00FH,026H,007H,081H,006H
D0ABA:    DB    000H,022H,004H,000H,0FFH,0FFH,00FH,066H
D0AC2:    DB    001H,006H,080H,008H,000H,000H,000H,000H
D0ACA:    DB    001H,000H,023H,0C4H
D0ACE:    DB    002H,006H,000H,009H,000H,000H,000H,000H
D0AD6:    DB    000H,000H
D0AD8:  DW    S065B
D0ADA:  DB    006H,000H,009H,001H
D0ADE:    DB    000H,000H,000H,000H,000H
;--------------------------------------------------------
D0AE3:  DW    S2534
D0AE5:    DW    S168D
;--------------------------------------------------------
D0AE7:    DB    005H,004H,081H,00AH,000H,000H,000H,000H
D0AEF:    DB    001H,000H,024H,003H,004H,081H,00AH,000H
D0AF7:    DB    000H,001H,000H,001H,000H,024H,003H,004H
D0AFF:    DB    081H,00AH,000H,000H,002H,000H,001H,000H
D0B07:    DB    024H,003H,004H,081H,00AH,000H,000H,003H
D0B0F:    DB    000H,001H,000H,024H,003H,004H,081H,00AH
D0B17:    DB    000H,000H,004H,000H,001H,000H,024H,003H
;--------------------------------------------------------
D0B1F:    DW    S1762
D0B21:    DB    005H,004H,001H,00BH,000H,000H,000H,000H
D0B29:    DB    000H,000H,026H,000H,004H,001H,00BH,0FFH
D0B31:    DB    000H,001H,000H,000H,000H,026H,000H,004H
D0B39:    DB    001H,00BH,0FFH,000H,002H,000H,000H,000H
D0B41:    DB    026H,000H,004H,001H,00BH,000H,000H,003H
D0B49:    DB    000H,000H,000H,026H,000H,004H,001H,00BH
D0B51:    DB    000H,000H,004H,000H,000H,000H,026H,000H
D0B59:    DW    S178C
L0B5B:    MOV   A,030H
    JNB   ACC.7,L0B63
    LCALL S2859
L0B63:    RET
L0B64:    MOV   R0,#012H
    MOV   A,@R0
    MOV   R5,A
    MOV   A,075H
    XRL   A,#001H
    JNZ   L0B72
    CLR   A
    XRL   A,@R0
    JNZ   L0B77
L0B72:    MOV   06CH,#000H
    MOV   R1,#06CH
L0B77:    RET
L0B78:    MOV   A,030H
    JNB   ACC.7,L0B80
    LCALL S2651
L0B80:    RET
L0B81:    MOV   A,030H
    JNB   ACC.7,L0B89
    LCALL S237C
L0B89:    RET
L0B8A:    MOV   A,030H
    JNB   ACC.7,L0B92
    LCALL S25B3
L0B92:    RET
S0B93:    MOV   A,02DH
    JNB   ACC.6,L0BA2
    MOV   A,046H
    MOV   061H,A
    MOV   01AH,#001H
    LCALL L0BA3
L0BA2:    RET
L0BA3:    MOV   DPTR,#D0023;取数据DATABUFF
    LCALL S0C06
    RET
L0BAA:    MOV   DPTR,#D002B;取数据DATABUFF
    LCALL S0C06
    RET
L0BB1:    MOV   DPTR,#D002F;取数据DATABUFF
    LCALL S0C06
    RET
L0BB8:    MOV   DPTR,#D001F;取数据DATABUFF
    LCALL S0C06
    RET
L0BBF:    MOV   DPTR,#D0027;取数据DATABUFF
    LCALL S0C06
    RET
L0BC6:    MOV   DPTR,#D0BF2;取数据DATABUFF
    ANL   056H,#0FEH
    ORL   056H,#000H
    LCALL S0C06
    JBC   009H,L0BD7
    CLR   A
    RET
L0BD7:    MOV   A,#001H
    RET
L0BDA:    MOV   DPTR,#D0BEE;取数据DATABUFF
    ANL   056H,#0FEH
    ORL   056H,#001H
    LCALL S0C06
    JBC   009H,L0BEB
    CLR   A
    RET
L0BEB:    MOV   A,#001H
    RET
;-------数据区----------------------------------------------
D0BEE:    DB    0FEH,004H,01AH,0FFH
;-------数据区----------------------------------------------
D0BF2:  DB    0FEH,004H,01AH,0FFH
;-----------------------------------------------------------
S0BF6:    SETB  0AEH
    MOV   S1CON,#0C5H
    MOV   S1ADR,#05BH
    MOV   048H,#000H
    CLR   009H
    CLR   008H
    RET
S0C06:    JNB   008H,L0C12
    LCALL S0C4C
    JNZ   L0C47
    CLR   008H
    SJMP  L0C3B
L0C12:    MOV   04CH,DPL
    MOV   04DH,DPH
    MOV   048H,#00FH
    SETB  0DDH
    MOV   051H,#001H
    MOV   052H,#000H
L0C23:    LCALL S0C4C
    JZ    L0C3B
    MOV   A,048H
    CJNE  A,#00FH,L0C2F
    SJMP  L0C23
L0C2F:    CJNE  A,#000H,L0C47
    CLR   009H
    CLR   008H
L0C36:    MOV   A,048H
    MOV   049H,A
    RET
L0C3B:    LCALL S0D4C
    ANL   048H,#0F0H
    ORL   048H,#004H
    LCALL S0C4B
L0C47:    SETB  009H
    SJMP  L0C36
S0C4B:    RETI
S0C4C:    INC   051H
    MOV   A,051H
    JNZ   L0C56
    INC   052H
    MOV   A,052H
L0C56:    RET
S0C57:    CLR   C
    SJMP  L0C5B
S0C5A:    SETB  C
L0C5B:    MOV   DPL,04CH
    MOV   DPH,04DH
    CLR   A
    MOVC  A,@A+DPTR;?
    JNC   L0C66
    INC   DPTR
L0C66:    MOV   04CH,DPL
    MOV   04DH,DPH
    RET
S0C6D:    SJMP  L0C92
L0C6F:    JNB   003H,L0C77
    LCALL S0C5A
    SJMP  L0C8B
L0C77:    JB    000H,L0C92
    MOV   DPL,04AH
    MOV   DPH,04BH
    JB    001H,L0C8E
    MOVX  A,@DPTR
L0C84:    INC   DPTR
    MOV   04AH,DPL
    MOV   04BH,DPH
L0C8B:    MOV   055H,A
    RET
L0C8E:    CLR   A
    MOVC  A,@A+DPTR;?
    SJMP  L0C84
L0C92:    MOV   R0,04AH
    MOV   A,@R0
    MOV   055H,A
    INC   R0
    MOV   04AH,R0
    RET
;-------20H.0(MOVX) 20H.0(MOV @)------
S0C9B:    JB    000H,L0CAF;20H.0
    MOV   DPL,04AH
    MOV   DPH,04BH
    MOVX  @DPTR,A
    MOV   055H,A
    INC   DPTR
    MOV   04AH,DPL
    MOV   04BH,DPH
    RET
;--------------------------------------------------------
L0CAF:    MOV   R0,04AH
    MOV   @R0,A
    MOV   055H,A
    INC   R0
    MOV   04AH,R0
    RET
;-------IIC中断服务程序----------------------------------
L0CB8:    PUSH  PSW
    PUSH  ACC
    PUSH  DPL
    PUSH  DPH
    PUSH  000H
    PUSH  B
    MOV   A,S1STA
    CJNE  A,#0F8H,L0CCB
    SJMP  L0CD6
L0CCB:    RR    A
    RR    A
    RR    A
    MOV   B,#003H;LJMP
    MUL   AB
    MOV   DPTR,#L0CE9
    JMP   @A+DPTR;?
L0CD6:    MOV   051H,#001H
    MOV   052H,#000H
    POP   B
    POP   000H
    POP   DPH
    POP   DPL
    POP   ACC
    POP   PSW
    RETI
;--------------------------------------------------------
L0CE9:    LJMP  L0D37
L0CEC:    LJMP  L0D59
L0CEF:    LJMP  L0D69
L0CF2:    LJMP  L0D6B
L0CF5:    LJMP  L0DC5
L0CF8:    LJMP  L0DE0
L0CFB:    LJMP  L0E16
L0CFE:    LJMP  L0E2B
L0D01:    LJMP  L0E33
L0D04:    LJMP  L0E54
L0D07:    LJMP  L0E57
L0D0A:    LJMP  L0E68
L0D0D:    LJMP  L0E73
L0D10:    LJMP  L0E83
L0D13:    LJMP  L0E88
L0D16:    LJMP  L0E8D
L0D19:    LJMP  L0E92
L0D1C:    LJMP  L0E94
L0D1F:    LJMP  L0EA6
L0D22:    LJMP  L0EA8
L0D25:    LJMP  L0EAA
L0D28:    LJMP  L0EAC
L0D2B:    LJMP  L0EBC
L0D2E:    LJMP  L0EC1
L0D31:    LJMP  L0ED3
L0D34:    LJMP  L0ED8
L0D37:    ANL   048H,#0F0H
    ORL   048H,#005H
    CLR   P1.6;SCL=0
    CLR   P1.7;SDA=0
    SETB  P1.6;SCL=1
    SETB  P1.7;SDA=1
    CLR   008H
L0D47:    LCALL S0D4C
    SJMP  L0CD6
S0D4C:    CLR   A
    MOV   020H,A;清除标志
    MOV   053H,A
    MOV   054H,A
    MOV   055H,A
    MOV   S1CON,#0D5H
    RET
L0D59:    LCALL S0C5A
    CJNE  A,#0FEH,L0D61
    MOV   A,056H
L0D61:    MOV   S1DAT,A
L0D63:    MOV   S1CON,#0C1H
    LJMP  L0CD6
L0D69:    SJMP  L0D59
L0D6B:    MOV   053H,#000H
    LCALL S0C5A
    MOV   020H,A;改写标志
    LCALL S0D81
L0D76:    LCALL S0C6D
L0D79:    MOV   S1DAT,A
L0D7B:    MOV   S1CON,#0C5H
    LJMP  L0CD6
S0D81:    JBC   002H,L0DA0
    JBC   005H,L0DB0
    JB    003H,L0DBC
    LCALL S0C5A
    MOV   R0,A
    MOV   A,@R0
    DEC   A
    MOV   054H,A
    LCALL S0C5A
    MOV   04AH,A
    JB    000H,L0D9F;20H.0
    LCALL S0C5A
    MOV   04BH,A
L0D9F:    RET
L0DA0:    LCALL S0C5A
    MOV   R0,A
    MOV   A,@R0
    DEC   A
    MOV   054H,A
    MOV   A,#001H
    MOV   020H,A;bit7~bit1=0,bit0=0
    MOV   04AH,#061H
    RET
L0DB0:    MOV   054H,050H
    DEC   054H
    MOV   04AH,04EH
    MOV   04BH,04FH
    RET
L0DBC:    LCALL S0C5A
    MOV   R0,A
    MOV   A,@R0
    DEC   A
    MOV   054H,A
    RET
L0DC5:    INC   053H
    MOV   A,053H
    CJNE  A,#003H,L0DD5
    ANL   048H,#0F0H
    ORL   048H,#003H
    LJMP  L0D47
L0DD5:    MOV   R0,#04CH
    MOV   A,@R0
    JNZ   L0DDD
    INC   R0
    DEC   @R0
    DEC   R0
L0DDD:    DEC   @R0
    SJMP  L0DFD
L0DE0:    MOV   053H,#000H
    MOV   A,054H
    JZ    L0DEB
    DEC   054H
    SJMP  L0D76
L0DEB:    JBC   004H,L0E03
    LCALL S0C57
    CJNE  A,#0FFH,L0DFD
    ANL   048H,#0F0H
    ORL   048H,#000H
    LJMP  L0D47
L0DFD:    MOV   S1CON,#0E5H
    LJMP  L0CD6
L0E03:    MOV   A,#0EEH
    PUSH  ACC
    MOV   A,#00DH
    PUSH  ACC
    LCALL S0C5A
    PUSH  ACC
    LCALL S0C5A
    PUSH  ACC
    RET
L0E16:    INC   053H
    MOV   A,053H
    CJNE  A,#003H,L0E26
    ANL   048H,#0F0H
    ORL   048H,#002H
    LJMP  L0D47
L0E26:    MOV   A,055H
    LJMP  L0D79
L0E2B:    ANL   048H,#0F0H
    ORL   048H,#001H
    SJMP  L0E51
L0E33:    MOV   053H,#000H
    LCALL S0C5A
    MOV   020H,A;改写标志
    JNB   003H,L0E47
    ANL   048H,#0F0H
    ORL   048H,#006H
    LJMP  L0D47
L0E47:    LCALL S0D81
    MOV   A,054H
    JNZ   L0E51
L0E4E:    LJMP  L0D63
L0E51:    LJMP  L0D7B
L0E54:    LJMP  L0DC5
L0E57:    MOV   053H,#000H
    MOV   A,S1DAT
    LCALL S0C9B
    MOV   A,054H
    DEC   054H
    CJNE  A,#001H,L0E51
    SJMP  L0E4E
L0E68:    MOV   A,S1DAT
    LCALL S0C9B
    MOV   053H,#000H
    LJMP  L0DEB
L0E73:    MOV   048H,#010H
L0E76:    MOV   054H,#00AH
    MOV   020H,#001H;bit0=1
    SETB  008H
    MOV   04AH,#057H
    SJMP  L0E51
L0E83:    MOV   048H,#030H
    SJMP  L0E76
L0E88:    MOV   048H,#040H
    SJMP  L0E76
L0E8D:    MOV   048H,#050H
    SJMP  L0E76
L0E92:    SJMP  L0E57
L0E94:    MOV   A,S1DAT
    LCALL S0C9B
L0E99:    LCALL S0EDA
L0E9C:    ANL   048H,#0F0H
    ORL   048H,#000H
    CLR   008H
    SJMP  L0E51
L0EA6:    SJMP  L0E92
L0EA8:    SJMP  L0E94
L0EAA:    SJMP  L0E99
L0EAC:    MOV   048H,#010H
L0EAF:    MOV   054H,#00AH
    MOV   020H,#001H;bit0=1
    SETB  008H
    MOV   04AH,#061H
    SJMP  L0EC1
L0EBC:    MOV   048H,#020H
    SJMP  L0EAF
L0EC1:    LCALL S0C6D
    MOV   S1DAT,A
    MOV   A,054H
    DEC   054H
    CJNE  A,#001H,L0ED0
    LJMP  L0E4E
L0ED0:    LJMP  L0E51
L0ED3:    LCALL S0EDB
    SJMP  L0E9C
L0ED8:    SJMP  L0ED3
S0EDA:    RET
S0EDB:    RET
D0EDC:    DB    037H,003H
;-------散转向量表------------------------------------------
D0EDE:    DB    00BH;11个散转向量表
;-----------------------------------------------------------
        DW    S004D
        DW    S0BF6
        DW    S0907
        DW    S251A
        DW    S2B31;开放总中断
        DW    S0665
        DW    S067D
        DW    S2874
        DW    S24BE
        DW    S0EF5
        DW    S247C
;-----------------------------------------------------------
S0EF5:    CLR   010H
    RET
S0EF8:    MOV   A,030H
    JNB   ACC.7,L0F0A
    MOV   R0,#00EH
    MOV   DPTR,#D09AB
    MOV   R1,#0FFH
    LCALL S2C8E
    CJNE  R1,#0FFH,L0F0F
L0F0A:    LCALL S2A51;读USB信息
    SJMP  L0F25
L0F0F:    MOV   R1,#00DH
    CJNE  @R1,#000H,L0F19
    LCALL S2A51;读USB信息
    SJMP  L0F25
L0F19:    MOV   00CH,#000H
    MOV   A,00DH
    ADD   A,#002H
    MOV   00AH,A
    LCALL S2AB1
L0F25:    RET
L0F26:    MOV   A,030H
    JB    ACC.7,L0F30
    LCALL S2A51;读USB信息
    SJMP  L0F65
L0F30:    LCALL S168D
    CJNE  A,#0FFH,L0F4D
    LCALL S2D02
    LCALL S2058
    MOV   A,00EH
    MOV   R2,A
    MOV   R3,#000H
    SETB  019H
    LCALL S2D0D
    LCALL S2D1A
    MOV   R1,#000H
    SJMP  L0F65
L0F4D:    CJNE  A,#000H,L0F55
    MOV   DPTR,#D04EB
    SJMP  L0F58
L0F55:    MOV   DPTR,#D04EB
L0F58:    CLR   A
    MOVC  A,@A+DPTR
    MOV   R2,A
    MOV   R3,#000H
    LCALL S2D0D
    LCALL S2D1A
    MOV   R1,#000H
L0F65:    RET
L0F66:    MOV   A,030H
    JB    ACC.7,L0F70
    LCALL S2A51;读USB信息
    SJMP  L0FC5
L0F70:    LCALL S168D
    CJNE  A,#0FFH,L0F88
    LCALL S2D02
    LCALL S2067
    SETB  019H
    LCALL S2D0D
    LCALL S2D1A
    MOV   R1,#000H
    SJMP  L0FC5
L0F88:    LCALL S168D
    CJNE  A,#001H,L0F93
    MOV   DPTR,#D0975
    SJMP  L0F96
L0F93:    MOV   DPTR,#D0980
L0F96:    MOV   R1,DPH
    MOV   R2,DPL
    CLR   A
    MOVC  A,@A+DPTR
    JZ    L0FC5
    INC   DPTR
    MOV   R0,#012H
    SUBB  A,@R0
    JC    L0FC5
    MOV   DPH,R1
    MOV   DPL,R2
    INC   DPTR
    MOV   A,@R0
    RL    A
    MOVC  A,@A+DPTR
    MOV   R3,A
    MOV   A,@R0
    RL    A
    INC   A
    MOVC  A,@A+DPTR
    MOV   DPH,R3
    MOV   DPL,A
    CLR   A
    MOVC  A,@A+DPTR
    MOV   R2,A
    INC   DPTR
    CLR   A
    MOVC  A,@A+DPTR
    MOV   R3,A
    INC   DPTR
    LCALL S2D0D
    LCALL S2D1A
    MOV   R1,#000H
L0FC5:    RET
L0FC6:    CLR   A
    LCALL S2A8B
    RET
S0FCB:    MOV   R0,#00FH
    MOV   A,@R0
    ANL   A,#00FH
    MOV   DPTR,#D098B
    LCALL S2C5B;取散转向量表
    RET
S0FD7:    MOV   A,030H
    XRL   A,#081H
    JNZ   L0FE7
    MOV   A,01DH
    ANL   A,#0FCH
    MOV   R0,#088H
    ORL   A,@R0
    LCALL S1205
L0FE7:    LCALL S10CB
    MOV   A,016H
    JNB   ACC.0,L1004
    LCALL S101D
    LCALL S105A
    LCALL S1082
    LCALL S1005
    LCALL S1178
    LCALL S14EE
    ANL   016H,#0FEH
L1004:    RET
S1005:    MOV   A,047H
    ANL   A,#0F0H
    MOV   R0,A
    MOV   A,046H
    ANL   A,#0F0H
    XRL   A,R0
    JZ    L101C
    MOV   A,046H
    ORL   A,#00FH
    MOV   046H,A
    MOV   047H,A
    LCALL S0B93
L101C:    RET
S101D:    MOV   A,031H
    JB    ACC.7,L103B
    MOV   A,02DH
    JNB   ACC.3,L102E
    MOV   A,016H
    JNB   ACC.5,L1035
    SJMP  L1039
L102E:    MOV   A,016H
    JNB   ACC.6,L1035
    SJMP  L1039
L1035:    SETB  P1.1;GP1=1
    SJMP  L103B
L1039:    CLR   P1.1;GP1=0
L103B:    MOV   A,02DH
    JNB   ACC.6,L1059
    JNB   ACC.4,L104A
    MOV   A,016H
    JNB   ACC.5,L1055
    SJMP  L1051
L104A:    MOV   A,016H
    JNB   ACC.6,L1055
    SJMP  L1051
L1051:    ANL   046H,#07FH
    RET
L1055:    ORL   046H,#080H
    RET
L1059:    RET
S105A:    MOV   A,02DH
    JNB   ACC.6,L1081
    LCALL S1F57
    JNZ   L106B
    MOV   A,02DH
    JB    ACC.5,L107D
    SJMP  L1079
L106B:    MOV   R0,#081H
    MOV   A,@R0
    CLR   C
    SUBB  A,#0B3H
    RRC   A
    RRC   A
    RRC   A
    XRL   A,02DH
    JB    ACC.5,L107D
L1079:    ORL   046H,#010H
    RET
L107D:    ANL   046H,#0EFH
    RET
L1081:    RET
S1082:    MOV   A,02DH
    JNB   ACC.6,L10A3
    MOV   A,031H
    JB    ACC.7,L10A3
    MOV   A,075H
    CJNE  A,#002H,L1095
    SETB  ACC.1
    SJMP  L1097
L1095:    CLR   ACC.1
L1097:    XRL   A,02DH
    JB    ACC.1,L10A0
    ANL   046H,#0DFH
    RET
L10A0:    ORL   046H,#020H
L10A3:    RET
S10A4:    MOV   A,031H
    JB    ACC.7,L10B7
    MOV   A,R7
    RL    A
    RL    A
    XRL   A,02DH
    JB    ACC.2,L10B4
    CLR   P1.2;GP2=0
    RET
L10B4:    SETB  P1.2;GP2=1
    RET
L10B7:    MOV   A,R7
    RL    A
    RL    A
    XRL   A,02DH
    JB    ACC.2,L10C4
    ORL   046H,#020H
    SJMP  L10C7
L10C4:    ANL   046H,#0DFH
L10C7:    LCALL S1005
    RET
;---------------------------------------------------
S10CB:    JNB   TXD,L1102;PSIE_MMU_SUSPEND=0
;-------PSIE_MMU_SUSPEND=1--------------------------
    ANL   016H,#07FH
    MOV   01EH,#000H
    MOV   R7,#001H
    LCALL S10A4
    LCALL S1082
    LCALL S1005
    LCALL S1359;延时
    LCALL S1359;延时
    LCALL S1359;延时
    CLR   EA;关闭总中断
    MOV   A,#07FH
    MOV   DPTR,#1003H;POWER CONTROL
    MOVX  @DPTR,A
    MOV   A,#01FH
;------------------------------------------------------------------------
;       D7  D6D5  D4  D3  D2  D1  D0   VALUE
;        0    00   1   1   1   1   1   1FH
;                                  1   OSCAD OSCILLATOR=ON
;                              1       ADC CLOCK=DISABLE
;                          1           CLOCK RECOVERED BY PSIE=DISABLE
;                      1               CLOCK 48MHZ INTERNAL=DISABLE
;                  1                   CLOCK ADAC=DISABLE
;              00                      ADC CLOCK DEVIDED-BY=1
;        0                             ADC CLOCK FROM APLL
;------------------------------------------------------------------------
    MOV   DPTR,#1000H;CLOCK SHOP SETTINGS
    MOVX  @DPTR,A
    CLR   TR1;关闭定时器1
    CLR   IT1
    SETB  EX1
    SETB  EA;开放总中断
    MOV   A,#006H
    MOV   PCON,A;进入掉电状态,关闭晶振(死机)
L1102:    RET
;---------------------------------------------------
L1103:    CLR   A
    MOV   PCON,A
    CLR   EX1
    SETB  IT1;设置边沿触发
    SETB  TR1;启动定时器1
    MOV   A,024H
    MOV   DPTR,#1000H;CLOCK SHOP SETTINGS
    MOVX  @DPTR,A
L1112:    JB    TXD,$;PSIE_MMU_SUSPEND=1?
    CLR   A
    MOV   DPTR,#1003H;POWER CONTROL
    MOVX  @DPTR,A
    SETB  0BEH
    MOV   R7,#000H
    LCALL S10A4
    LCALL S1082
    LCALL S1005
    ORL   016H,#080H
    MOV   A,02EH
    CLR   C
    SUBB  A,#028H
    JNC   L1135
    MOV   A,#028H
    SJMP  L1137
L1135:    MOV   A,02EH
L1137:    JNB   TXD,L1142;PSIE_MMU_SUSPEND=0
    JZ    L1142
    LCALL S1359;延时
    DEC   A
    SJMP  L1137
L1142:    SETB  EA;开放总中断
    MOV   008H,#0F4H;发送USB命令Read intrrupt且读1个字节
    LCALL S009D;发送USB命令且读1个字节
    MOV   A,00BH;取USB数据
    CLR   0BEH
    RETI
S114F:    MOV   008H,#046H;发送USB命令Get endpoint status(endpoint index=6)且读1个字节
    LCALL S009D;发送USB命令且读1个字节
    RET
;-------INT0外部中断处理服务程序-------------
L1156:    JNB   INT0,L115A;GP0=0没干扰,处理中断
    RETI;GP0=1干扰,退出
L115A:    PUSH  000H;保护现场
    CLR   EX0;关中断
;--------------------------------------------
;if(GP3 == 1) *(0x88)=1; else *(0x88)=2;
;--------------------------------------------
    MOV   R0,#088H
    JNB   P1.3,L1167
    MOV   @R0,#001H;GP3=1
    SJMP  L1169
L1167:    MOV   @R0,#002H;GP3=0
;--------------------------------------------
L1169:    POP   000H;恢复现场
    CLR   TR0;关闭定时器
;--------------------------------------------
;8001T
    MOV   TH0,#0E0H
    MOV   TL0,#0BFH
    SETB  TR0;打开定时器
    SETB  ET0;开放定时器中断
    RETI;中断处理结束
;---------------------------------------------

S1178:    MOV   A,030H
    JB    ACC.7,L117E
    RET
L117E:    MOV   A,031H
    JB    ACC.7,L11C0
    MOV   A,030H
    JB    ACC.0,L1196
    MOV   A,P1
    RL    A
    SWAP  A
    ANL   A,#003H;GP4GP3
    MOV   R7,A
    LCALL S123F
    PUSH  ACC
    SJMP  L11A9
L1196:    MOV   A,01DH
    ANL   A,#003H
    PUSH  ACC
    MOV   A,P1
    CPL   A
    RR    A
    RR    A
    ANL   A,#004H;!GP4
    POP   B
    ORL   A,B
    PUSH  ACC
L11A9:    MOV   A,02DH
    JNB   ACC.6,L11BC
    LCALL S1316
    CPL   A
    RL    A
    RL    A
    ANL   A,#038H
    POP   B
    ORL   A,B
    SJMP  S1205
L11BC:    POP   ACC
    SJMP  S1205
L11C0:    MOV   A,031H
    JB    ACC.6,L11E9
    MOV   A,02DH
    JNB   ACC.6,L11E6
    MOV   A,030H
    JB    ACC.0,L11E6
    LCALL S1316
    PUSH  ACC
    ANL   A,#003H
    MOV   R7,A
    LCALL S123F
    MOV   B,A
    POP   ACC
    CPL   A
    RL    A
    ANL   A,#018H
    ORL   A,B
    SJMP  S1205
L11E6:    CLR   A
    SJMP  S1205
L11E9:    MOV   A,02DH
    JNB   ACC.6,L11E6
    LCALL S1316
    PUSH  ACC
    ANL   A,#006H
    RR    A
    MOV   R7,A
    LCALL S123F
    MOV   B,A
    POP   ACC
    CPL   A
    ANL   A,#008H
    ORL   A,B
    SJMP  S1205
S1205:    MOV   B,A
    XRL   A,01DH
    JZ    L1211
    MOV   01DH,B
    LCALL S1324
L1211:    RET
S1212:    MOV   A,030H
    JB    ACC.7,L1218
    RET
L1218:    MOV   01BH,#000H
    MOV   01CH,#03FH
    MOV   01DH,#000H
    MOV   R0,#088H
    MOV   @R0,#000H
    MOV   R0,#086H
    MOV   @R0,#0FFH
    MOV   R0,#087H
    MOV   @R0,#0FFH
    MOV   R0,#089H
    MOV   A,#000H
    MOV   @R0,A
    MOV   A,030H
    JNB   ACC.0,L123E
    LCALL S08FE;设置定时器方式
    SETB  IT0;设置边沿触发
    SETB  EX0;开放外部INT0中断
L123E:    RET
S123F:    MOV   A,R7
    MOV   B,A
    ANL   A,#001H
    MOV   R7,A
  &nb