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

📄 d12_setup.lis

📁 D12固件程序
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0304           ;                           D12_COMMAND=0x05;
 0304 85E0              ldi R24,5
 0306 8093017F          sts 32513,R24
 030A                   .dbline 250
 030A           ;                               D12_COMMAND=0xf0;
 030A 80EF              ldi R24,240
 030C 8093017F          sts 32513,R24
 0310                   .dbline 251
 0310           ;                               D12_DATA=0;
 0310 2224              clr R2
 0312 2092007F          sts 32512,R2
 0316                   .dbline 252
 0316           ;                               D12_DATA=64;
 0316 80E4              ldi R24,64
 0318 8093007F          sts 32512,R24
 031C                   .dbline 253
 031C           ;                               for( u=0;u<64;u++)
 031C 4427              clr R20
 031E 5527              clr R21
 0320           L94:
 0320                   .dbline 254
 0320 4093007F          sts 32512,R20
 0324           L95:
 0324                   .dbline 253
 0324 4F5F              subi R20,255  ; offset = 1
 0326 5F4F              sbci R21,255
 0328                   .dbline 253
 0328 4034              cpi R20,64
 032A E0E0              ldi R30,0
 032C 5E07              cpc R21,R30
 032E C4F3              brlt L94
 0330                   .dbline 255
 0330           ;                                       D12_DATA=u;
 0330           ;                               D12_COMMAND=0xfa;
 0330 8AEF              ldi R24,250
 0332 8093017F          sts 32513,R24
 0336                   .dbline 260
 0336           ;                       //D12_COMMAND = 0x05;
 0336           ;                       //cwait;
 0336           ;                       //D12_COMMAND = 0xfa;// 设置 IN 缓冲区有效(满标志)
 0336           ;                       
 0336           ;               }
 0336           L92:
 0336           L91:
 0336                   .dbline 261
 0336           ;               csram;
 0336 609301FC          sts 0xfc01,R22
 033A                   .dbline 261
 033A                   .dbline 262
 033A           ;    }
 033A 01C0              rjmp L87
 033C           L86:
 033C                   .dbline 264
 033C B0DE              rcall _void_function
 033E           L87:
 033E                   .dbline -2
 033E                   .dbline 265
 033E           ;       else
 033E           ;               void_function();
 033E           ; }
 033E           L85:
 033E 00D0              rcall pop_gset1
 0340                   .dbline 0 ; func end
 0340 0895              ret
 0342                   .dbsym r j 20 c
 0342                   .dbsym r u 20 I
 0342                   .dbend
 0342                   .dbfunc e get_interface _get_interface fV
                        .even
 0342           _get_interface::
 0342                   .dbline -1
 0342                   .dbline 268
 0342           ; 
 0342           ; void get_interface(void)
 0342           ; {
 0342                   .dbline 269
 0342           ;       XmtBuff.b[0] = 0;
 0342 2224              clr R2
 0344 20920000          sts _XmtBuff,R2
 0348                   .dbline 270
 0348           ;       XmtBuff.wrLength = 1;
 0348 81E0              ldi R24,1
 034A 80932200          sts _XmtBuff+34,R24
 034E                   .dbline 271
 034E           ;       XmtBuff.p_p=0;
 034E 20922700          sts _XmtBuff+39,R2
 0352                   .dbline 272
 0352           ;       XmtBuff.p = XmtBuff.b;
 0352 80E0              ldi R24,<_XmtBuff
 0354 90E0              ldi R25,>_XmtBuff
 0356 90932600          sts _XmtBuff+37+1,R25
 035A 80932500          sts _XmtBuff+37,R24
 035E                   .dbline 273
 035E           ;       USB_submit();
 035E                   .dbline -2
 035E                   .dbline 274
 035E           ; }
 035E           L98:
 035E                   .dbline 0 ; func end
 035E 04C0              rjmp _USB_submit
 0360                   .dbend
 0360                   .dbfunc e set_interface _set_interface fV
                        .even
 0360           _set_interface::
 0360                   .dbline -1
 0360                   .dbline 277
 0360           ; 
 0360           ; void set_interface(void)
 0360           ; {
 0360                   .dbline 278
 0360           ;       XmtBuff.wrLength = 0;
 0360 2224              clr R2
 0362 20922200          sts _XmtBuff+34,R2
 0366                   .dbline 279
 0366           ;       USB_submit();
 0366                   .dbline -2
 0366                   .dbline 280
 0366           ; }
 0366           L102:
 0366                   .dbline 0 ; func end
 0366 00C0              rjmp _USB_submit
 0368                   .dbend
 0368                   .dbfunc e USB_submit _USB_submit fV
 0368           ;              j -> R16
 0368           ;              k -> R18
 0368           ;              i -> R20
                        .even
 0368           _USB_submit::
 0368 00D0              rcall push_gset1
 036A                   .dbline -1
 036A                   .dbline 283
 036A           ; 
 036A           ; void USB_submit(void)
 036A           ; {
 036A                   .dbline 285
 036A           ; char i,j,k;
 036A           ;       if(16>XmtBuff.wrLength)
 036A 20902200          lds R2,_XmtBuff+34
 036E 80E1              ldi R24,16
 0370 2816              cp R2,R24
 0372 10F4              brsh L105
 0374                   .dbline 286
 0374           ;       {
 0374                   .dbline 287
 0374           ;               j = XmtBuff.wrLength;
 0374 022D              mov R16,R2
 0376                   .dbline 288
 0376           ;       }else
 0376 01C0              rjmp L106
 0378           L105:
 0378                   .dbline 289
 0378           ;       {
 0378                   .dbline 290
 0378           ;               j = 16;
 0378 00E1              ldi R16,16
 037A                   .dbline 291
 037A           ;       }
 037A           L106:
 037A                   .dbline 292
 037A           ;       D12_COMMAND = 1;// 选择 IN 端点(指针指向0位置)
 037A 81E0              ldi R24,1
 037C 8093017F          sts 32513,R24
 0380                   .dbline 293
 0380           ;       cwait;
 0380 0000              nop
 0382                   .dbline 294
 0382           ;       D12_COMMAND = 0xf0;// 写缓冲区
 0382 80EF              ldi R24,240
 0384 8093017F          sts 32513,R24
 0388                   .dbline 295
 0388           ;       cwait;
 0388 0000              nop
 038A                   .dbline 296
 038A           ;       D12_DATA = 0x00;
 038A 2224              clr R2
 038C 2092007F          sts 32512,R2
 0390                   .dbline 297
 0390           ;       cwait;
 0390 0000              nop
 0392                   .dbline 298
 0392           ;       D12_DATA = j;
 0392 0093007F          sts 32512,R16
 0396                   .dbline 299
 0396           ;       csram;
 0396 609301FC          sts 0xfc01,R22
 039A                   .dbline 299
 039A                   .dbline 300
 039A           ;       if(XmtBuff.p_p)
 039A 20902700          lds R2,_XmtBuff+39
 039E 2220              tst R2
 03A0 F9F0              breq L109
 03A2                   .dbline 301
 03A2           ;       {
 03A2                   .dbline 302
 03A2           ;               for(i=0;i<j ;i++)
 03A2 4427              clr R20
 03A4 0EC0              rjmp L115
 03A6           L112:
 03A6                   .dbline 303
 03A6                   .dbline 304
 03A6 20902300          lds R2,_XmtBuff+35
 03AA 30902400          lds R3,_XmtBuff+35+1
 03AE E42F              mov R30,R20
 03B0 FF27              clr R31
 03B2 E20D              add R30,R2
 03B4 F31D              adc R31,R3
 03B6 2491              lpm R18,Z
 03B8                   .dbline 305
 03B8 2093007F          sts 32512,R18
 03BC                   .dbline 306
 03BC 609301FC          sts 0xfc01,R22
 03C0                   .dbline 306
 03C0                   .dbline 307
 03C0           L113:
 03C0                   .dbline 302
 03C0 4395              inc R20
 03C2           L115:
 03C2                   .dbline 302
 03C2 4017              cp R20,R16
 03C4 80F3              brlo L112
 03C6                   .dbline 308
 03C6           ;               {
 03C6           ;                        k = *(XmtBuff.pp+i);
 03C6           ;                        D12_DATA = k;
 03C6           ;                        csram;
 03C6           ;               }
 03C6           ;               XmtBuff.pp += j;
 03C6 20902300          lds R2,_XmtBuff+35
 03CA 30902400          lds R3,_XmtBuff+35+1
 03CE 402E              mov R4,R16
 03D0 5524              clr R5
 03D2 420C              add R4,R2
 03D4 531C              adc R5,R3
 03D6 50922400          sts _XmtBuff+35+1,R5
 03DA 40922300          sts _XmtBuff+35,R4
 03DE                   .dbline 309
 03DE           ;       }else
 03DE 12C0              rjmp L110
 03E0           L109:
 03E0                   .dbline 310
 03E0           ;       {
 03E0                   .dbline 311
 03E0           ;               for(i=0;i<j;i++)
 03E0 4427              clr R20
 03E2 0EC0              rjmp L121
 03E4           L118:
 03E4                   .dbline 312
 03E4                   .dbline 313
 03E4 E0912500          lds R30,_XmtBuff+37
 03E8 F0912600          lds R31,_XmtBuff+37+1
 03EC 2191              ld R18,Z+
 03EE F0932600          sts _XmtBuff+37+1,R31
 03F2 E0932500          sts _XmtBuff+37,R30
 03F6                   .dbline 314
 03F6 2093007F          sts 32512,R18
 03FA                   .dbline 315
 03FA 609301FC          sts 0xfc01,R22
 03FE                   .dbline 315
 03FE                   .dbline 316
 03FE           L119:
 03FE                   .dbline 311
 03FE 4395              inc R20
 0400           L121:
 0400                   .dbline 311
 0400 4017              cp R20,R16
 0402 80F3              brlo L118
 0404                   .dbline 317
 0404           ;               {
 0404           ;                       k = *(XmtBuff.p++);
 0404           ;                       D12_DATA = k;
 0404           ;                       csram;
 0404           ;               }
 0404           ;       }
 0404           L110:
 0404                   .dbline 318
 0404           ;       XmtBuff.wrLength -= j;
 0404 20902200          lds R2,_XmtBuff+34
 0408 201A              sub R2,R16
 040A 20922200          sts _XmtBuff+34,R2
 040E                   .dbline 319
 040E           ;       D12_COMMAND = 0xfa;// 设置 IN 缓冲区有效(满标志)
 040E 8AEF              ldi R24,250
 0410 8093017F          sts 32513,R24
 0414                   .dbline 320
 0414           ;       csram;
 0414 609301FC          sts 0xfc01,R22
 0418                   .dbline 320
 0418                   .dbline -2
 0418                   .dbline 321
 0418           ; }
 0418           L104:
 0418 00D0              rcall pop_gset1
 041A                   .dbline 0 ; func end
 041A 0895              ret
 041C                   .dbsym r j 16 c
 041C                   .dbsym r k 18 c
 041C                   .dbsym r i 20 c
 041C                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\D12_setup.c
 0000           _XmtBuff::
 0000                   .blkb 40
 0028                   .dbstruct 0 40 .1
 0028                   .dbfield 0 b A[16:16]c
 0028                   .dbfield 16 msg A[16:16]c
 0028                   .dbfield 32 msgL c
 0028                   .dbfield 33 wendu c
 0028                   .dbfield 34 wrLength c
 0028                   .dbfield 35 pp pkc
 0028                   .dbfield 37 p pc
 0028                   .dbfield 39 p_p c
 0028                   .dbend
 0028                   .dbsym e XmtBuff _XmtBuff S[.1]
                        .area func_lit
 0000 B001      PL_set_interface:       .word `_set_interface
 0002 A101      PL_get_interface:       .word `_get_interface
 0004 6801      PL_set_configuration:   .word `_set_configuration
 0006 5801      PL_get_configuration:   .word `_get_configuration
 0008 0B01      PL_get_descriptor:      .word `_get_descriptor
 000A F900      PL_set_address: .word `_set_address
 000C C500      PL_set_feature: .word `_set_feature
 000E 4F00      PL_void_function:       .word `_void_function
 0010 9300      PL_clear_feature:       .word `_clear_feature
 0012 6500      PL_get_status:  .word `_get_status

⌨️ 快捷键说明

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