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

📄 mainloop.ls1

📁 Comlete files for fullfile the slave USB function!
💻 LS1
📖 第 1 页 / 共 5 页
字号:
004C 30E00B          856             JNB     ACC.0,?C0015
                     857     ;                       DISABLE;
                     858                             ; SOURCE LINE # 240
004F C2AF            859             CLR     EA
                     860     ;                       bEPPflags.bits.suspend= 0;
                     861                             ; SOURCE LINE # 241
0051 AF00     F      862             MOV     R7,bEPPflags
0053 EF              863             MOV     A,R7
0054 54FB            864             ANL     A,#0FBH
0056 F500     F      865             MOV     bEPPflags,A
                     866     ;                       ENABLE;
                     867                             ; SOURCE LINE # 242
0058 D2AF            868             SETB    EA
                     869     ;                       //suspend_change();
                     870     ;               } // if suspend change
A51 MACRO ASSEMBLER  MAINLOOP                                                             04/22/2005 11:54:48 PAGE    15

                     871                             ; SOURCE LINE # 244
005A                 872     ?C0015:
                     873     ; 
                     874     ;               if (bEPPflags.bits.setup_packet){
                     875                             ; SOURCE LINE # 246
005A AF00     F      876             MOV     R7,bEPPflags
005C EF              877             MOV     A,R7
005D 13              878             RRC     A
005E 13              879             RRC     A
005F 13              880             RRC     A
0060 541F            881             ANL     A,#01FH
0062 30E0AF          882             JNB     ACC.0,?C0010
                     883     ;                       DISABLE;
                     884                             ; SOURCE LINE # 247
0065 C2AF            885             CLR     EA
                     886     ;                       bEPPflags.bits.setup_packet = 0;
                     887                             ; SOURCE LINE # 248
0067 AF00     F      888             MOV     R7,bEPPflags
0069 EF              889             MOV     A,R7
006A 54F7            890             ANL     A,#0F7H
006C F500     F      891             MOV     bEPPflags,A
                     892     ;                       ENABLE;
                     893                             ; SOURCE LINE # 249
006E D2AF            894             SETB    EA
                     895     ;                       control_handler();
                     896                             ; SOURCE LINE # 250
0070 120000   F      897             LCALL   control_handler
                     898     ;               } // if setup_packet
                     899                             ; SOURCE LINE # 251
                     900     ; 
                     901     ;       } // Main Loop
                     902                             ; SOURCE LINE # 253
0073 809F            903             SJMP    ?C0010
                     904     ; 
                     905     ; }
                     906                             ; SOURCE LINE # 255
0075                 907     ?C0017:
0075 22              908             RET     
                     909     ; END OF main
                     910     
                     911     ; 
                     912     ; /* wakeup D12, make MCU into low power mode, then suspend D12 again */
                     913     ; void suspend_change(void)
                     914     
----                 915             RSEG  ?PR?suspend_change?MAINLOOP
0000                 916     suspend_change:
                     917                             ; SOURCE LINE # 258
                     918     ; {
                     919                             ; SOURCE LINE # 259
                     920     ;       if (D12SUSPD == 1)
                     921                             ; SOURCE LINE # 260
0000 30B302          922             JNB     D12SUSPD,?C0018
                     923     ;               D12SUSPD = 0;
                     924                             ; SOURCE LINE # 261
0003 C2B3            925             CLR     D12SUSPD
0005                 926     ?C0018:
                     927     ;       
                     928     ;               P0 = 0xFF;
                     929                             ; SOURCE LINE # 263
0005 7580FF          930             MOV     P0,#0FFH
                     931     ;               P1 = 0xFF;
                     932                             ; SOURCE LINE # 264
0008 7590FF          933             MOV     P1,#0FFH
                     934     ;               P2 = 0xFF;
                     935                             ; SOURCE LINE # 265
000B 75A0FF          936             MOV     P2,#0FFH
A51 MACRO ASSEMBLER  MAINLOOP                                                             04/22/2005 11:54:48 PAGE    16

                     937     ;               P3 = 0xFF;
                     938                             ; SOURCE LINE # 266
000E 75B0FF          939             MOV     P3,#0FFH
                     940     ;               D12SUSPD = 1;   /* suspend D12 */
                     941                             ; SOURCE LINE # 267
0011 D2B3            942             SETB    D12SUSPD
                     943     ;               PCON |= 0x02;   /* into low power mode */
                     944                             ; SOURCE LINE # 268
0013 438702          945             ORL     PCON,#02H
0016                 946     ?C0019:
                     947     ;               while (1) ;             /* hangup, only reset could wake up MCU */
                     948                             ; SOURCE LINE # 269
0016 80FE            949             SJMP    ?C0019
                     950     ; END OF suspend_change
                     951     
                     952     ; }
                     953     ; 
                     954     ; /* Stall Enpoints */
                     955     ; void stall_ep0(void)
                     956     
----                 957             RSEG  ?PR?stall_ep0?MAINLOOP
0000                 958     stall_ep0:
                     959             USING   0
                     960                             ; SOURCE LINE # 273
                     961     ; {
                     962                             ; SOURCE LINE # 274
                     963     ;       D12_SetEndpointStatus(0, 1);
                     964                             ; SOURCE LINE # 275
0000 7D01            965             MOV     R5,#01H
0002 E4              966             CLR     A
0003 FF              967             MOV     R7,A
0004 120000   F      968             LCALL   _D12_SetEndpointStatus
                     969     ;       D12_SetEndpointStatus(1, 1);
                     970                             ; SOURCE LINE # 276
0007 7D01            971             MOV     R5,#01H
0009 7F01            972             MOV     R7,#01H
000B 020000   F      973             LJMP    _D12_SetEndpointStatus
                     974     ; END OF stall_ep0
                     975     
                     976     ; }
                     977     ; 
                     978     ; void disconnect_USB(void)
                     979     
----                 980             RSEG  ?PR?disconnect_USB?MAINLOOP
0000                 981     disconnect_USB:
                     982             USING   0
                     983                             ; SOURCE LINE # 279
                     984     ; {
                     985                             ; SOURCE LINE # 280
                     986     ;       //D12_SetMode(D12_NOLAZYCLOCK|D12_CLOCKRUNNING, D12_SETTOONE | D12_CLOCK_12M);
                     987     ;       /* Clear Soft_Connect bit, disconnect pull-up resistor */
                     988     ;       D12_SetMode(0x00, 0x00);
                     989                             ; SOURCE LINE # 283
0000 E4              990             CLR     A
0001 FD              991             MOV     R5,A
0002 FF              992             MOV     R7,A
0003 020000   F      993             LJMP    _D12_SetMode
                     994     ; END OF disconnect_USB
                     995     
                     996     ; }
                     997     ; 
                     998     ; void connect_USB(void)
                     999     
----                1000             RSEG  ?PR?connect_USB?MAINLOOP
0000                1001     connect_USB:
                    1002             USING   0
A51 MACRO ASSEMBLER  MAINLOOP                                                             04/22/2005 11:54:48 PAGE    17

                    1003                             ; SOURCE LINE # 286
                    1004     ; {
                    1005                             ; SOURCE LINE # 287
                    1006     ; //    unsigned int i;
                    1007     ;       // reset event flags
                    1008     ;       DISABLE;
                    1009                             ; SOURCE LINE # 290
0000 C2AF           1010             CLR     EA
                    1011     ;       bEPPflags.value = 0;    //for (i=0; i<11; i++)  bEPPflags.c_value[i] = 0;
                    1012                             ; SOURCE LINE # 291
0002 E4             1013             CLR     A
0003 F500     F     1014             MOV     bEPPflags,A
0005 F500     F     1015             MOV     bEPPflags+01H,A
                    1016     ;       ENABLE;
                    1017                             ; SOURCE LINE # 292
0007 D2AF           1018             SETB    EA
                    1019     ; 
                    1020     ;       // disable normal+sof interrupt
                    1021     ;       D12_SetDMA(0x00);
                    1022                             ; SOURCE LINE # 295
0009 FF             1023             MOV     R7,A
000A 120000   F     1024             LCALL   _D12_SetDMA
                    1025     ;       
                    1026     ;       // Initialize D12 working mode
                    1027     ;       D12_SetMode(D12_NOLAZYCLOCK|D12_CLOCKRUNNING|D12_SOFTCONNECT, D12_SETTOONE | D12_CL
                             OCK_12M);
                    1028                             ; SOURCE LINE # 298
000D 7D43           1029             MOV     R5,#043H
000F 7F16           1030             MOV     R7,#016H
0011 020000   F     1031             LJMP    _D12_SetMode
                    1032     ; END OF connect_USB
                    1033     
                    1034     ;       //D12_SetMode(D12_SOFTCONNECT, 0x00);   /* Enable softconnect */
                    1035     ; }
                    1036     ; 
                    1037     ; 
                    1038     ; void reconnect_USB(void)
                    1039     
----                1040             RSEG  ?PR?reconnect_USB?MAINLOOP
0000                1041     reconnect_USB:
                    1042             USING   0
                    1043                             ; SOURCE LINE # 303
                    1044     ; {
                    1045                             ; SOURCE LINE # 304
                    1046     ;       unsigned long clk_cnt;
                    1047     ; 
                    1048     ;       //Turn on LEDs
                    1049     ;       MCU_LED0 = 0; 
                    1050                             ; SOURCE LINE # 308
0000 C292           1051             CLR     MCU_LED0
                    1052     ;       MCU_LED1 = 0;
                    1053                             ; SOURCE LINE # 309
0002 C293           1054             CLR     MCU_LED1
                    1055     ; 
                    1056     ;       //D12SUSPD = 0; /* wakeup D12 */
                    1057     ;       disconnect_USB();
                    1058                             ; SOURCE LINE # 312
0004 120000   F     1059             LCALL   disconnect_USB
                    1060     ; 
                    1061     ;       clk_cnt = ClockTicks;
                    1062                             ; SOURCE LINE # 314
0007 850000   F     1063             MOV     clk_cnt?943+03H,ClockTicks+03H
000A 850000   F     1064             MOV     clk_cnt?943+02H,ClockTicks+02H
000D 850000   F     1065             MOV     clk_cnt?943+01H,ClockTicks+01H
0010 850000   F     1066             MOV     clk_cnt?943,ClockTicks
0013                1067     ?C0025:
A51 MACRO ASSEMBLER  MAINLOOP                                                             04/22/2005 11:54:48 PAGE    18

                    1068     ;       while(ClockTicks < clk_cnt + 20)
                    1069                             ; SOURCE LINE # 315
0013 E500     F     1070             MOV     A,clk_cnt?943+03H
0015 2414           1071             ADD     A,#014H
0017 FF             1072             MOV     R7,A
0018 E4             1073             CLR     A
0019 3500     F     1074             ADDC    A,clk_cnt?943+02H
001B FE             1075             MOV     R6,A
001C E4             1076             CLR     A
001D 3500     F     1077             ADDC    A,clk_cnt?943+01H
001F FD         

⌨️ 快捷键说明

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