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

📄 d12-avr.lis

📁 D12固件程序
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module D12-AVR.c
                        .area data(ram, con, rel)
 0000           _q::
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\D12-AVR.c
 0002                   .dbsym e q _q I
                        .area text(rom, con, rel)
 0000                   .dbfile G:\Backup\6月1日flag置(认为接近最终)\ilx511_usb\D12-AVR.c
 0000                   .dbfunc e D12_int _D12_int fV
 0000           ;              k -> <dead>
 0000           ;              c -> <dead>
 0000           ;              j -> R22
 0000           ;              i -> R20
                        .even
 0000           _D12_int::
 0000 00D0              rcall push_gset2
 0002                   .dbline -1
 0002                   .dbline 9
 0002           ; #include "io8515v.h"
 0002           ; #include "d12head.h"
 0002           ; 
 0002           ; unsigned int Rshu[3];
 0002           ; int q=0;
 0002           ; //#define D12_suspend (PINB & 0x01)
 0002           ; 
 0002           ; void D12_int(void)
 0002           ; {
 0002                   .dbline 10
 0002           ;       unsigned char i=0,j,c,*k;//三个变量,一个指针
 0002 4427              clr R20
 0004                   .dbline 12
 0004           ;       
 0004           ;       SREG = 0x00;//全局中断使能
 0004 2224              clr R2
 0006 2FBE              out 0x3f,R2
 0008                   .dbline 14
 0008           ;       
 0008           ;       D12_COMMAND = 0xf4; // 读中断寄存器
 0008 84EF              ldi R24,244
 000A 8093017F          sts 32513,R24
 000E                   .dbline 15
 000E           ;       cwait1;
 000E 0000              nop
 0010                   .dbline 15
 0010 0000              nop
 0012                   .dbline 16
 0012           ;       i=D12_DATA;
 0012 4091007F          lds R20,32512
 0016                   .dbline 17
 0016           ;       csram;
 0016 609301FC          sts 0xfc01,R22
 001A                   .dbline 17
 001A                   .dbline 18
 001A           ;       if(i & 0x01)    //ENDP0_OUT
 001A 40FF              sbrs R20,0
 001C 0DC0              rjmp L8
 001E                   .dbline 19
 001E           ;       {
 001E                   .dbline 20
 001E           ;               D12_COMMAND = 0x40; //读 OUT 最后状态
 001E 80E4              ldi R24,64
 0020 8093017F          sts 32513,R24
 0024                   .dbline 21
 0024           ;               cwait1;
 0024 0000              nop
 0026                   .dbline 21
 0026 0000              nop
 0028                   .dbline 22
 0028           ;               i= D12_DATA;
 0028 4091007F          lds R20,32512
 002C                   .dbline 23
 002C           ;               csram;
 002C 609301FC          sts 0xfc01,R22
 0030                   .dbline 23
 0030                   .dbline 24
 0030           ;               if (i & 0x20) //收到 SETUP 包
 0030 45FF              sbrs R20,5
 0032 7DC0              rjmp L9
 0034                   .dbline 25
 0034           ;               {
 0034                   .dbline 26
 0034           ;                       Setup_control();
 0034 00D0              rcall _Setup_control
 0036                   .dbline 27
 0036           ;               }
 0036                   .dbline 28
 0036           ;       }
 0036 7BC0              rjmp L9
 0038           L8:
 0038                   .dbline 29
 0038           ;       else if(i & 0x02) //ENDP0_IN
 0038 41FF              sbrs R20,1
 003A 0BC0              rjmp L12
 003C                   .dbline 30
 003C           ;       {       
 003C                   .dbline 31
 003C           ;               D12_COMMAND = 0x41;//读 in 最后状态
 003C 81E4              ldi R24,65
 003E 8093017F          sts 32513,R24
 0042                   .dbline 32
 0042           ;               cwait1;
 0042 0000              nop
 0044                   .dbline 32
 0044 0000              nop
 0046                   .dbline 33
 0046           ;               i = D12_DATA;
 0046 4091007F          lds R20,32512
 004A                   .dbline 34
 004A           ;               csram;
 004A 609301FC          sts 0xfc01,R22
 004E                   .dbline 34
 004E                   .dbline 35
 004E           ;               USB_submit();
 004E 00D0              rcall _USB_submit
 0050                   .dbline 36
 0050           ;       }
 0050 6EC0              rjmp L13
 0052           L12:
 0052                   .dbline 37
 0052           ;       else if(i & 0x04)//ENDP1_OUT
 0052 42FF              sbrs R20,2
 0054 0EC0              rjmp L14
 0056                   .dbline 38
 0056           ;       {       
 0056                   .dbline 39
 0056           ;               D12_COMMAND = 0x42;//读 out 最后状态
 0056 82E4              ldi R24,66
 0058 8093017F          sts 32513,R24
 005C                   .dbline 40
 005C           ;               cwait;
 005C 0000              nop
 005E                   .dbline 41
 005E           ;               i = D12_DATA;
 005E 4091007F          lds R20,32512
 0062                   .dbline 42
 0062           ;               csram;
 0062 609301FC          sts 0xfc01,R22
 0066                   .dbline 42
 0066                   .dbline 43
 0066           ;           ReadEndpoint1(3,Rshu);
 0066 20E0              ldi R18,<_Rshu
 0068 30E0              ldi R19,>_Rshu
 006A 03E0              ldi R16,3
 006C 10E0              ldi R17,0
 006E 65D0              rcall _ReadEndpoint1
 0070                   .dbline 45
 0070           ;               
 0070           ;       }
 0070 5EC0              rjmp L15
 0072           L14:
 0072                   .dbline 46
 0072           ;       else if(i & 0x08)//ENDP1_IN
 0072 43FF              sbrs R20,3
 0074 19C0              rjmp L16
 0076                   .dbline 47
 0076           ;       {
 0076                   .dbline 48
 0076           ;               D12_COMMAND = 0x43;//读 in 最后状态
 0076 83E4              ldi R24,67
 0078 8093017F          sts 32513,R24
 007C                   .dbline 49
 007C           ;               cwait1;
 007C 0000              nop
 007E                   .dbline 49
 007E 0000              nop
 0080                   .dbline 50
 0080           ;               i = D12_DATA;
 0080 4091007F          lds R20,32512
 0084                   .dbline 51
 0084           ;               cwait1;
 0084 0000              nop
 0086                   .dbline 51
 0086 0000              nop
 0088                   .dbline 52
 0088           ;               csram;
 0088 609301FC          sts 0xfc01,R22
 008C                   .dbline 52
 008C                   .dbline 53
 008C           ;               D12_COMMAND = 3;// 选择 IN 端点(指针指向0位置)
 008C 83E0              ldi R24,3
 008E 8093017F          sts 32513,R24
 0092                   .dbline 54
 0092           ;               cwait;
 0092 0000              nop
 0094                   .dbline 55
 0094           ;               D12_COMMAND = 0xf0;// 写缓冲区
 0094 80EF              ldi R24,240
 0096 8093017F          sts 32513,R24
 009A                   .dbline 56
 009A           ;               cwait;
 009A 0000              nop
 009C                   .dbline 57
 009C           ;               D12_DATA = 0;
 009C 2224              clr R2
 009E 2092007F          sts 32512,R2
 00A2                   .dbline 58
 00A2           ;               csram;
 00A2 609301FC          sts 0xfc01,R22
 00A6                   .dbline 58
 00A6                   .dbline 61
 00A6           ; //            WriteEndpoint1();
 00A6           ;       
 00A6           ;       }
 00A6 43C0              rjmp L17
 00A8           L16:
 00A8                   .dbline 62
 00A8           ;       else if(i & 0x10)//ENDP2_out  对应管道2
 00A8 44FF              sbrs R20,4
 00AA 1BC0              rjmp L18
 00AC                   .dbline 63
 00AC           ;       {
 00AC                   .dbline 64
 00AC           ;               D12_COMMAND = 0x44;//读 in 最后状态
 00AC 84E4              ldi R24,68
 00AE 8093017F          sts 32513,R24
 00B2                   .dbline 65
 00B2           ;               cwait1;
 00B2 0000              nop
 00B4                   .dbline 65
 00B4 0000              nop
 00B6                   .dbline 66
 00B6           ;               i = D12_DATA;
 00B6 4091007F          lds R20,32512
 00BA                   .dbline 67
 00BA           ;               cwait1;
 00BA 0000              nop
 00BC                   .dbline 67
 00BC 0000              nop
 00BE                   .dbline 68
 00BE           ;               D12_COMMAND = 4;// 选择 IN 端点(指针指向0位置)
 00BE 84E0              ldi R24,4
 00C0 8093017F          sts 32513,R24
 00C4                   .dbline 69
 00C4           ;               cwait;
 00C4 0000              nop
 00C6                   .dbline 70
 00C6           ;               D12_COMMAND = 0xf0;// 读缓冲区
 00C6 80EF              ldi R24,240
 00C8 8093017F          sts 32513,R24
 00CC                   .dbline 71
 00CC           ;               cwait1;
 00CC 0000              nop
 00CE                   .dbline 71
 00CE 0000              nop
 00D0                   .dbline 72
 00D0           ;               j=D12_DATA;
 00D0 6091007F          lds R22,32512
 00D4                   .dbline 73
 00D4           ;               cwait1;
 00D4 0000              nop
 00D6                   .dbline 73
 00D6 0000              nop
 00D8                   .dbline 74
 00D8           ;               j=D12_DATA;  //数据字节的长度
 00D8 6091007F          lds R22,32512
 00DC                   .dbline 75
 00DC           ;               csram;
 00DC 609301FC          sts 0xfc01,R22
 00E0                   .dbline 75
 00E0                   .dbline 77
 00E0           ; //            flashWrite(j);
 00E0           ;       }
 00E0 26C0              rjmp L19
 00E2           L18:
 00E2                   .dbline 78
 00E2           ;       else if(i & 0x20)//ENDP2_IN   对应管道3
 00E2 45FF              sbrs R20,5
 00E4 18C0              rjmp L20
 00E6                   .dbline 79
 00E6           ;       {
 00E6                   .dbline 80
 00E6           ;               D12_COMMAND = 0x45;//读 in 最后状态
 00E6 85E4              ldi R24,69
 00E8 8093017F          sts 32513,R24
 00EC                   .dbline 81
 00EC           ;               cwait1;
 00EC 0000              nop
 00EE                   .dbline 81
 00EE 0000              nop
 00F0                   .dbline 82
 00F0           ;               i = D12_DATA;
 00F0 4091007F          lds R20,32512
 00F4                   .dbline 83
 00F4           ;               cwait1;
 00F4 0000              nop
 00F6                   .dbline 83
 00F6 0000              nop
 00F8                   .dbline 84
 00F8           ;               D12_COMMAND = 5;// 选择 IN 端点(指针指向0位置)
 00F8 85E0              ldi R24,5
 00FA 8093017F          sts 32513,R24
 00FE                   .dbline 85
 00FE           ;               cwait;
 00FE 0000              nop
 0100                   .dbline 86
 0100           ;               D12_COMMAND = 0xf0;// 写缓冲区
 0100 80EF              ldi R24,240
 0102 8093017F          sts 32513,R24
 0106                   .dbline 87
 0106           ;               cwait;
 0106 0000              nop
 0108                   .dbline 88
 0108           ;               D12_DATA = 0;
 0108 2224              clr R2
 010A 2092007F          sts 32512,R2
 010E                   .dbline 89
 010E           ;               csram;
 010E 609301FC          sts 0xfc01,R22
 0112                   .dbline 89
 0112                   .dbline 90
 0112           ;               flashRead();
 0112 00D0              rcall _flashRead
 0114                   .dbline 91

⌨️ 快捷键说明

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