![]() |
|
||||||||||||||
| . 网站首页 . 新闻 . 新品 . 方案 . 专访 . 活动 . DSP . EDA . 评测室 . 技术文库 . 会员区 . 商城 . 服务导航 . 邮购 . 资源 . | ||
|
||
|
|||||
| 公开PhilipsUDA1325的N104V20.HEX反汇编“源程序” | |||||
作者:61IC录入 文章来源:本站原创 点击数: 更新时间:2006-4-7 ![]() |
|||||
|
;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 | |||||