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

📄 d12setup.lis

📁 usb开发(基于D12)。。湖南大学计算机与通信学院同学毕业设计及源代码!!好的很啊
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 00CA                   .dbline 108
                       ;     D12_COMMAND = 0x00;//选择端点(指针指向0位置)
 00CA 2224              clr R2
 00CC 2092017C          sts 31745,R2
 00D0                   .dbline 109
                       ;     cwait;
 00D0 0000              nop
 00D2                   .dbline 110
                       ;     D12_COMMAND = 0xf1;//应答SETUP包
 00D2 81EF              ldi R24,241
 00D4 8093017C          sts 31745,R24
 00D8                   .dbline 111
                       ;     cwait;
 00D8 0000              nop
 00DA                   .dbline 112
                       ;     D12_COMMAND = 0xf2;//清端点缓冲区
 00DA 82EF              ldi R24,242
 00DC 8093017C          sts 31745,R24
 00E0                   .dbline -2
 00E0                   .dbline 113
                       ; }
 00E0                 L2:
 00E0 00D0              rcall pop_gset3
 00E2                   .dbline 0 ; func end
 00E2 0895              ret
 00E4                   .dbsym r p 10 pc
 00E4                   .dbsym r j 20 c
 00E4                   .dbsym r i 22 c
 00E4                   .dbfunc s void_function _void_function fI
                         .even
 00E4                 _void_function::
 00E4                   .dbline -1
 00E4                   .dbline 136
                       ; /************************************************************
                       ; **工程名称:U盘固件程序开发
                       ; **编译器类型及版本:ICCAVR 6.26C
                       ; **日期:2004.4.30
                       ; **创建人:陈驰
                       ; **所属单位:湖南大学计算机与通信学院
                       ; 
                       ; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
                       ; **时钟频率:8MHZ
                       ; 
                       ; **函数功能:停止控制端点.应答枚举请求
                       ; **函数输入参数及说明:无
                       ; 
                       ; **函数返回值:无
                       ; **在本函数以外定义的变量:D12_COMMAND,D12_DATA
                       ; **调用的函数说明:无
                       ;   
                       ; **修改人:陈驰
                       ; **修改日期:2004.4.30
                       ; **修改说明:创建
                       ; *************************************************************/
                       ; void void_function(void)
                       ; {
 00E4                   .dbline 137
                       ;     D12_COMMAND = 0x40;//0端点停止(用于发送Stall包)
 00E4 80E4              ldi R24,64
 00E6 8093017C          sts 31745,R24
 00EA                   .dbline 138
                       ;     cwait;
 00EA 0000              nop
 00EC                   .dbline 139
                       ;     D12_DATA = 0x01;
 00EC 81E0              ldi R24,1
 00EE 8093007C          sts 31744,R24
 00F2                   .dbline 140
                       ;     cwait;
 00F2 0000              nop
 00F4                   .dbline 141
                       ;     D12_COMMAND = 0x41;//1端点停止(用于发送Stall包)
 00F4 81E4              ldi R24,65
 00F6 8093017C          sts 31745,R24
 00FA                   .dbline 142
                       ;     cwait;
 00FA 0000              nop
 00FC                   .dbline 143
                       ;     D12_DATA = 0x01;
 00FC 81E0              ldi R24,1
 00FE 8093007C          sts 31744,R24
 0102                   .dbline 144
                       ;     cwait;
 0102 0000              nop
 0104                   .dbline 145
                       ;     D12_COMMAND = 0xf1;//应答SETUP包
 0104 81EF              ldi R24,241
 0106 8093017C          sts 31745,R24
 010A                   .dbline 146
                       ;     csram;
 010A 609301FC          sts 0xfc01,R22
 010E                   .dbline 146
 010E                   .dbline -2
 010E                   .dbline 147
                       ; }
 010E                 L10:
 010E                   .dbline 0 ; func end
 010E 0895              ret
 0110                   .dbfunc s get_status _get_status fI
                         .even
 0110                 _get_status::
 0110 00D0              rcall push_gset1
 0112                   .dbline -1
 0112                   .dbline 172
                       ; /************************************************************
                       ; **工程名称:U盘固件程序开发
                       ; **编译器类型及版本:ICCAVR 6.26C
                       ; **日期:2004.4.30
                       ; **创建人:陈驰
                       ; **所属单位:湖南大学计算机与通信学院
                       ; 
                       ; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
                       ; **时钟频率:8MHZ
                       ; 
                       ; **函数功能:标准设备请求
                       ; **函数输入参数及说明:无
                       ; 
                       ; **函数返回值:无
                       ; **在本函数以外定义的变量:D12_COMMAND,D12_DATA
                       ; **调用的函数说明:
                       ;   USB_submit();
                       ;   控制端点提交函数
                       ;   
                       ; **修改人:陈驰
                       ; **修改日期:2004.4.30
                       ; **修改说明:创建
                       ; *************************************************************/
                       ; void get_status(void)
                       ; {
 0112                   .dbline 173
                       ;     XmtBuff.b[1] = 0x00;
 0112 2224              clr R2
 0114 20920100          sts _XmtBuff+1,R2
 0118                   .dbline 174
                       ;     switch (XmtBuff.b[0])
 0118 40910000          lds R20,_XmtBuff
 011C 5527              clr R21
 011E 4038              cpi R20,128
 0120 E0E0              ldi R30,0
 0122 5E07              cpc R21,R30
 0124 81F0              breq L14
 0126 4138              cpi R20,129
 0128 E0E0              ldi R30,0
 012A 5E07              cpc R21,R30
 012C 29F0              breq L17
 012E 4238              cpi R20,130
 0130 E0E0              ldi R30,0
 0132 5E07              cpc R21,R30
 0134 29F0              breq L18
 0136 07C0              rjmp L13
 0138                 X0:
 0138                   .dbline 175
                       ;     {
 0138                   .dbline 177
                       ;     case 0x80:
                       ;         break;
 0138                 L17:
 0138                   .dbline 179
                       ;     case 0x81:
                       ;         XmtBuff.b[0] = 0x00;
 0138 2224              clr R2
 013A 20920000          sts _XmtBuff,R2
 013E                   .dbline 180
                       ;         break;
 013E 03C0              rjmp L14
 0140                 L18:
 0140                   .dbline 182
                       ;     case 0x82:
                       ;         XmtBuff.b[0] = 0x00;
 0140 2224              clr R2
 0142 20920000          sts _XmtBuff,R2
 0146                   .dbline 183
                       ;         break;
 0146                 L13:
 0146                 L14:
 0146                   .dbline 185
                       ;     }
                       ;     XmtBuff.p_p=0;
 0146 2224              clr R2
 0148 20924600          sts _XmtBuff+70,R2
 014C                   .dbline 186
                       ;     XmtBuff.wrLength = 2;
 014C 82E0              ldi R24,2
 014E 90E0              ldi R25,0
 0150 90934100          sts _XmtBuff+64+1,R25
 0154 80934000          sts _XmtBuff+64,R24
 0158                   .dbline 187
                       ;     XmtBuff.p = XmtBuff.b;
 0158 80E0              ldi R24,<_XmtBuff
 015A 90E0              ldi R25,>_XmtBuff
 015C 90934500          sts _XmtBuff+68+1,R25
 0160 80934400          sts _XmtBuff+68,R24
 0164                   .dbline 188
                       ;     USB_submit();
 0164 00D0              rcall _USB_submit
 0166                   .dbline -2
 0166                   .dbline 189
                       ; }
 0166                 L11:
 0166 00D0              rcall pop_gset1
 0168                   .dbline 0 ; func end
 0168 0895              ret
 016A                   .dbfunc s clear_feature _clear_feature fI
                       ;              j -> R20
                         .even
 016A                 _clear_feature::
 016A 00D0              rcall push_gset1
 016C                   .dbline -1
 016C                   .dbline 214
                       ; /************************************************************
                       ; **工程名称:U盘固件程序开发
                       ; **编译器类型及版本:ICCAVR 6.26C
                       ; **日期:2004.4.30
                       ; **创建人:陈驰
                       ; **所属单位:湖南大学计算机与通信学院
                       ; 
                       ; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
                       ; **时钟频率:8MHZ
                       ; 
                       ; **函数功能:标准设备请求
                       ; **函数输入参数及说明:无
                       ; 
                       ; **函数返回值:无
                       ; **在本函数以外定义的变量:D12_COMMAND,D12_DATA
                       ; **调用的函数说明:
                       ;   USB_submit();
                       ;   控制端点提交函数
                       ;   
                       ; **修改人:陈驰
                       ; **修改日期:2004.4.30
                       ; **修改说明:创建
                       ; *************************************************************/
                       ; void clear_feature(void)
                       ; {
 016C                   .dbline 216
                       ;     unsigned char j;
                       ;     switch (XmtBuff.b[0])
 016C 40910000          lds R20,_XmtBuff
 0170 5527              clr R21
 0172 4030              cpi R20,0
 0174 4507              cpc R20,R21
 0176 11F1              breq L24
 0178 4130              cpi R20,1
 017A E0E0              ldi R30,0
 017C 5E07              cpc R21,R30
 017E F1F0              breq L24
 0180 4230              cpi R20,2
 0182 E0E0              ldi R30,0
 0184 5E07              cpc R21,R30
 0186 09F0              breq L28
 0188 19C0              rjmp L23
 018A                 X1:
 018A                   .dbline 217
                       ;     {
 018A                   .dbline 219
                       ;     case 0x00://清设备唤醒功能
                       ;         break;
 018A                   .dbline 221
                       ;     case 0x01://清接口状态
                       ;         break;
 018A                 L28:
 018A                   .dbline 224
                       ;     case 0x02://启用端点
                       ;         //XmtBuff.b[5] D7为方向,D3~0为端点号
                       ;         j = XmtBuff.b[5];
 018A 40910500          lds R20,_XmtBuff+5
 018E                   .dbline 225
                       ;         if(j<0x80)
 018E 4038              cpi R20,128
 0190 50F4              brsh L30
 0192                   .dbline 226
                       ;         {
 0192                   .dbline 227
                       ;             j = 0x40+j*2;
 0192 440F              lsl R20
 0194 405C              subi R20,192    ; addi 64
 0196                   .dbline 228
                       ;             D12_COMMAND = j;// 启用OUT端点
 0196 4093017C          sts 31745,R20
 019A                   .dbline 229
                       ;             D12_DATA = 0x00;
 019A 2224              clr R2
 019C 2092007C          sts 31744,R2
 01A0                   .dbline 230
                       ;             csram;
 01A0 609301FC          sts 0xfc01,R22
 01A4                   .dbline 230
 01A4                   .dbline 231
                       ;         }
 01A4 0BC0              rjmp L24
 01A6                 L30:
 01A6                   .dbline 233
                       ;         else
                       ;         {
 01A6                   .dbline 234
                       ;             j = (j & 0x0f);
 01A6 4F70              andi R20,15
 01A8                   .dbline 235
                       ;             D12_COMMAND = 0x41+j*2;// 启用IN端点
 01A8 842F              mov R24,R20
 01AA 880F              lsl R24
 01AC 8F5B              subi R24,191    ; addi 65
 01AE 8093017C          sts 31745,R24
 01B2                   .dbline 236
                       ;             D12_DATA = 0x00;
 01B2 2224              clr R2
 01B4 2092007C          sts 31744,R2
 01B8                   .dbline 237
                       ;             csram;
 01B8 609301FC          sts 0xfc01,R22
 01BC                   .dbline 237
 01BC                   .dbline 238
                       ;         }
 01BC                   .dbline 239
                       ;         break;
 01BC                 L23:
 01BC                 L24:
 01BC                   .dbline 241
                       ;     }
                       ;     XmtBuff.wrLength = 0;
 01BC 2224              clr R2
 01BE 3324              clr R3
 01C0 30924100          sts _XmtBuff+64+1,R3
 01C4 20924000          sts _XmtBuff+64,R2
 01C8                   .dbline 242
                       ;     USB_submit();
 01C8 00D0              rcall _USB_submit
 01CA                   .dbline -2
 01CA                   .dbline 243
                       ; }
 01CA                 L22:
 01CA 00D0              rcall pop_gset1
 01CC                   .dbline 0 ; func end
 01CC 0895              ret
 01CE                   .dbsym r j 20 c
 01CE                   .dbfunc s set_feature _set_feature fI
                       ;              j -> R20
                         .even
 01CE                 _set_feature::
 01CE 00D0              rcall push_gset1
 01D0                   .dbline -1
 01D0                   .dbline 268
                       ; /************************************************************
                       ; **工程名称:U盘固件程序开发
                       ; **编译器类型及版本:ICCAVR 6.26C
                       ; **日期:2004.4.30
                       ; **创建人:陈驰
                       ; **所属单位:湖南大学计算机与通信学院
                       ; 
                       ; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0

⌨️ 快捷键说明

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