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

📄 kmain.lst

📁 USB D12驱动源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 328          //-------------------------------------------
 329          
 330          //-----------xugy------begin-------------
 331          
 332          //-----------xugy------end---------------
 333          
 334          
 335          //-------------------------------------------
 336          
 337          void main()
 338          {
 339   1      //      unsigned char key, i;
 340   1              //bNoRam=1;
 341   1              
 342   1              init_port();
 343   1              init_serial();
 344   1              init_timer0(); 
 345   1              EA = 1; 
 346   1              //for test
 347   1              MCU_LED0=0;
 348   1              MCU_LED1=0;
 349   1              MCU_LED0=1;
 350   1              MCU_LED1=1;
 351   1              //--------------
 352   1              printf("Re-connect PDIUSBD12 evaluation board to USB.\n");
 353   1              IE0=0;
 354   1              IT0=0;
 355   1              EX0=1;
 356   1              //--------------------------
 357   1      //      MCU_D12RST = 0;
 358   1      //      MCU_D12RST = 1;
 359   1              //--------------------
 360   1              
 361   1              MCU_D12CS = 0x1;
 362   1      
 363   1                      bNoRAM = TRUE;
C51 COMPILER V7.06   KMAIN                                                                 11/11/2003 20:11:04 PAGE 20  

 364   1      
 365   1              MCU_D12CS = 0x0;
 366   1      
 367   1                      reconnect_USB();
 368   1      
 369   1              while( TRUE ){
 370   2                 SBUF= 0xAA;
 371   2                      if (bEPPflags.bits.timer){
 372   3                              DISABLE;
 373   3                              bEPPflags.bits.timer = 0;
 374   3                              ENABLE;
 375   3      
 376   3                              if(bEPPflags.bits.configuration)
 377   3                                      check_key_LED();
 378   3                      }
 379   2      
 380   2                      if (bEPPflags.bits.bus_reset) {
 381   3                              DISABLE;
 382   3                              bEPPflags.bits.bus_reset = 0;
 383   3                              ENABLE;
 384   3                              // Release D12's SUSPEND pin after bus reset
 385   3                              // Enable 74HCT123 pulse generation before disconnect
 386   3                              ///D12SUSPD = 1;
 387   3                              D12SUSPD=0;
 388   3                      } // if bus reset
 389   2      
 390   2                      if (bEPPflags.bits.suspend) {
 391   3                              DISABLE;
 392   3                              bEPPflags.bits.suspend= 0;
 393   3                              ENABLE;
 394   3      
 395   3                              if(D12SUSPD == 1) {
 396   4                                      D12SUSPD = 0;
 397   4                                      P0 = 0xFF;
 398   4                                      P1 = 0xFF;
 399   4                                      P2 = 0xFF;
 400   4                                      P3 = 0xFF;
 401   4                                      D12_SetDMA(0xC3);
 402   4                                      D12SUSPD = 1;
 403   4                                      PCON |= 0x02;
 404   4                                      while (1);
 405   4                      
 406   4                              }
 407   3                      
 408   3                      } // if suspend change
 409   2      
 410   2                      if (bEPPflags.bits.setup_packet){
 411   3                              DISABLE;
 412   3                              bEPPflags.bits.setup_packet = 0;
 413   3                              ENABLE;
 414   3                              control_handler();
 415   3                              //D12SUSPD = 1;
 416   3                              D12SUSPD=0;
 417   3                      } // if setup_packet
 418   2                      
 419   2                      if(bEPPflags.bits.setup_dma != 0) {
 420   3                              DISABLE;
 421   3                              bEPPflags.bits.setup_dma --;
 422   3                              ENABLE;
 423   3                              setup_dma();
 424   3                      } // if setup_dma
 425   2                      
C51 COMPILER V7.06   KMAIN                                                                 11/11/2003 20:11:04 PAGE 21  

 426   2              } // Main Loop
 427   1      
 428   1          on_exit();
 429   1              //=======================================       
 430   1       
 431   1      }
 432          
C51 COMPILER V7.06   KMAIN                                                                 11/11/2003 20:11:04 PAGE 22  

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION init_timer0 (BEGIN)
                                           ; SOURCE LINE # 96
                                           ; SOURCE LINE # 97
                                           ; SOURCE LINE # 98
0000 5389F0            ANL     TMOD,#0F0H
                                           ; SOURCE LINE # 99
0003 438901            ORL     TMOD,#01H
                                           ; SOURCE LINE # 100
0006 E4                CLR     A
0007 F58A              MOV     TL0,A
                                           ; SOURCE LINE # 101
0009 F58C              MOV     TH0,A
                                           ; SOURCE LINE # 102
000B D2A9              SETB    ET0
                                           ; SOURCE LINE # 103
000D D28C              SETB    TR0
                                           ; SOURCE LINE # 104
000F D2B9              SETB    PT0
                                           ; SOURCE LINE # 107
0011 22                RET     
             ; FUNCTION init_timer0 (END)

             ; FUNCTION init_port (BEGIN)
                                           ; SOURCE LINE # 110
                                           ; SOURCE LINE # 111
                                           ; SOURCE LINE # 112
0000 7580FF            MOV     P0,#0FFH
                                           ; SOURCE LINE # 113
0003 7590FF            MOV     P1,#0FFH
                                           ; SOURCE LINE # 114
0006 75A0FF            MOV     P2,#0FFH
                                           ; SOURCE LINE # 115
0009 75B0FF            MOV     P3,#0FFH
                                           ; SOURCE LINE # 116
000C C296              CLR     MCU_D12CS
                                           ; SOURCE LINE # 117
000E C2B3              CLR     D12SUSPD
                                           ; SOURCE LINE # 118
0010 22                RET     
             ; FUNCTION init_port (END)

             ; FUNCTION init_serial (BEGIN)
                                           ; SOURCE LINE # 125
                                           ; SOURCE LINE # 126
                                           ; SOURCE LINE # 127
0000 759852            MOV     SCON,#052H
                                           ; SOURCE LINE # 128
0003 438780            ORL     PCON,#080H
                                           ; SOURCE LINE # 129
0006 758920            MOV     TMOD,#020H
                                           ; SOURCE LINE # 130
0009 758869            MOV     TCON,#069H
                                           ; SOURCE LINE # 131
000C 758DF3            MOV     TH1,#0F3H
                                           ; SOURCE LINE # 132
000F 22                RET     
             ; FUNCTION init_serial (END)

             ; FUNCTION disconnect_USB (BEGIN)
C51 COMPILER V7.06   KMAIN                                                                 11/11/2003 20:11:04 PAGE 23  

                                           ; SOURCE LINE # 150
                                           ; SOURCE LINE # 151
                                           ; SOURCE LINE # 153
0000 7D43              MOV     R5,#043H
0002 7F02              MOV     R7,#02H
0004 020000      E     LJMP    _D12_SetMode
             ; FUNCTION disconnect_USB (END)

             ; FUNCTION connect_USB (BEGIN)
                                           ; SOURCE LINE # 156
                                           ; SOURCE LINE # 157
                                           ; SOURCE LINE # 160
0000 C2AF              CLR     EA
                                           ; SOURCE LINE # 161
0002 E4                CLR     A
0003 F500        E     MOV     bEPPflags,A
0005 F500        E     MOV     bEPPflags+01H,A
                                           ; SOURCE LINE # 162
0007 D2AF              SETB    EA
                                           ; SOURCE LINE # 165
0009 7FC0              MOV     R7,#0C0H
000B 120000      E     LCALL   _D12_SetDMA
                                           ; SOURCE LINE # 170
000E 7D43              MOV     R5,#043H
0010 7F12              MOV     R7,#012H
0012 020000      E     LJMP    _D12_SetMode
             ; FUNCTION connect_USB (END)

             ; FUNCTION reconnect_USB (BEGIN)
                                           ; SOURCE LINE # 175
                                           ; SOURCE LINE # 176
                                           ; SOURCE LINE # 179
0000 C292              CLR     MCU_LED0
                                           ; SOURCE LINE # 180
0002 C293              CLR     MCU_LED1
                                           ; SOURCE LINE # 185
0004 C2B3              CLR     D12SUSPD
                                           ; SOURCE LINE # 186
0006 120000      R     LCALL   disconnect_USB
                                           ; SOURCE LINE # 190
0009 850000      R     MOV     clk_cnt+03H,ClockTicks+03H
000C 850000      R     MOV     clk_cnt+02H,ClockTicks+02H
000F 850000      R     MOV     clk_cnt+01H,ClockTicks+01H
0012 850000      R     MOV     clk_cnt,ClockTicks
0015         ?C0006:
                                           ; SOURCE LINE # 191
0015 E500        R     MOV     A,clk_cnt+03H
0017 2414              ADD     A,#014H
0019 FF                MOV     R7,A
001A E4                CLR     A
001B 3500        R     ADDC    A,clk_cnt+02H
001D FE                MOV     R6,A
001E E4                CLR     A
001F 3500        R     ADDC    A,clk_cnt+01H
0021 FD                MOV     R5,A
0022 E4                CLR     A
0023 3500        R     ADDC    A,clk_cnt
0025 FC                MOV     R4,A
0026 AB00        E     MOV     R3,ClockTicks+03H
0028 AA00        E     MOV     R2,ClockTicks+02H
002A A900        E     MOV     R1,ClockTicks+01H
002C A800        E     MOV     R0,ClockTicks
C51 COMPILER V7.06   KMAIN                                                                 11/11/2003 20:11:04 PAGE 24  

002E C3                CLR     C
002F 120000      E     LCALL   ?C?ULCMP
0032 40E1              JC      ?C0006
0034         ?C0007:
                                           ; SOURCE LINE # 194
0034 120000      R     LCALL   connect_USB
                                           ; SOURCE LINE # 196
0037 D292              SETB    MCU_LED0
                                           ; SOURCE LINE # 197
0039 D293              SETB    MCU_LED1
                                           ; SOURCE LINE # 199
003B 22                RET     
             ; FUNCTION reconnect_USB (END)

             ; FUNCTION stall_ep0 (BEGIN)
                                           ; SOURCE LINE # 201
                                           ; SOURCE LINE # 202
                                           ; SOURCE LINE # 203
0000 7D01              MOV     R5,#01H
0002 E4                CLR     A
0003 FF                MOV     R7,A
0004 120000      E     LCALL   _D12_SetEndpointStatus
                                           ; SOURCE LINE # 204
0007 7D01              MOV     R5,#01H
0009 7F01              MOV     R7,#01H
000B 020000      E     LJMP    _D12_SetEndpointStatus
             ; FUNCTION stall_ep0 (END)

             ; FUNCTION on_exit (BEGIN)
                                           ; SOURCE LINE # 208
                                           ; SOURCE LINE # 209
                                           ; SOURCE LINE # 211
0000 22                RET     
             ; FUNCTION on_exit (END)

             ; FUNCTION check_key_LED (BEGIN)
                                           ; SOURCE LINE # 213
                                           ; SOURCE LINE # 214
                                           ; SOURCE LINE # 217
0000 A291              MOV     C,MCU_SWM1
0002 8290              ANL     C,MCU_SWM0
0004 E4                CLR     A
0005 33                RLC     A
0006 F500        R     MOV     c,A
                                           ; SOURCE LINE # 218
0008 53000F      R     ANL     c,#0FH
                                           ; SOURCE LINE # 219
000B E500        R     MOV     A,c
000D 6500        R     XRL     A,last_key
000F 600D              JZ      ?C0011
                                           ; SOURCE LINE # 220
0011 7B00              MOV     R3,#00H
0013 7A00        R     MOV     R2,#HIGH c
0015 7900        R     MOV     R1,#LOW c
0017 7D01              MOV     R5,#01H
0019 7F03              MOV  

⌨️ 快捷键说明

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