📄 f34x_msd_usb_procedure.lst
字号:
008D +1 188 TF0 BIT TCON.5 ; Timer0 overflow flag
008C +1 189 TR0 BIT TCON.4 ; Timer0 on/off control
008B +1 190 IE1 BIT TCON.3 ; Ext. Interrupt 1 edge flag
A51 MACRO ASSEMBLER F34X_MSD_USB_PROCEDURE 11/28/2006 10:54:46 PAGE 4
008A +1 191 IT1 BIT TCON.2 ; Ext. Interrupt 1 type
0089 +1 192 IE0 BIT TCON.1 ; Ext. Interrupt 0 edge flag
0088 +1 193 IT0 BIT TCON.0 ; Ext. Interrupt 0 type
+1 194
+1 195 ; SCON0 098H
009F +1 196 S0MODE BIT SCON0.7 ; Serial mode control bit 0
+1 197 ; Bit 6 unused
009D +1 198 MCE0 BIT SCON0.5 ; Multiprocessor communication enable
009C +1 199 REN0 BIT SCON0.4 ; Receive enable
009B +1 200 TB80 BIT SCON0.3 ; Transmit bit 8
009A +1 201 RB80 BIT SCON0.2 ; Receive bit 8
0099 +1 202 TI0 BIT SCON0.1 ; Transmit interrupt flag
0098 +1 203 RI0 BIT SCON0.0 ; Receive interrupt flag
+1 204
+1 205 ; IE 0A8H
00AF +1 206 EA BIT IE.7 ; Global interrupt enable
00AE +1 207 ESPI0 BIT IE.6 ; Bit 6 unused
00AD +1 208 ET2 BIT IE.5 ; Bit 5 unused
00AC +1 209 ES0 BIT IE.4 ; UART0 interrupt enable
00AB +1 210 ET1 BIT IE.3 ; Timer1 interrupt enable
00AA +1 211 EX1 BIT IE.2 ; External interrupt 1 enable
00A9 +1 212 ET0 BIT IE.1 ; Timer0 interrupt enable
00A8 +1 213 EX0 BIT IE.0 ; External interrupt 0 enable
+1 214
+1 215 ; IP 0B8H
+1 216 ; Bit 7 unused
00BE +1 217 PSPI0 BIT IP.6 ; SPI0 interrupt priority
00BD +1 218 PT2 BIT IP.5 ; Timer2 priority
00BC +1 219 PS0 BIT IP.4 ; UART0 priority
00BB +1 220 PT1 BIT IP.3 ; Timer1 priority
00BA +1 221 PX1 BIT IP.2 ; External interrupt 1 priority
00B9 +1 222 PT0 BIT IP.1 ; Timer0 priority
00B8 +1 223 PX0 BIT IP.0 ; External interrupt 0 priority
+1 224
+1 225 ; SMB0CN 0C0H
00C7 +1 226 MASTER BIT SMB0CN.7 ; Master/slave indicator
00C6 +1 227 TXMODE BIT SMB0CN.6 ; Transmit mode indicator
00C5 +1 228 STA BIT SMB0CN.5 ; Start flag
00C4 +1 229 STO BIT SMB0CN.4 ; Stop flag
00C3 +1 230 ACKRQ BIT SMB0CN.3 ; Acknowledge request
00C2 +1 231 ARBLOST BIT SMB0CN.2 ; Arbitration lost indicator
00C1 +1 232 ACK BIT SMB0CN.1 ; Acknowledge flag
00C0 +1 233 SI BIT SMB0CN.0 ; SMBus interrupt flag
+1 234
+1 235 ; TMR2CN 0C8H
00CF +1 236 TF2H BIT TMR2CN.7 ; Timer2 high byte overflow flag
00CE +1 237 TF2L BIT TMR2CN.6 ; Timer2 low byte overflow flag
00CD +1 238 TF2LEN BIT TMR2CN.5 ; Timer2 low byte interrupt enable
00CC +1 239 T2CE BIT TMR2CN.4 ; Timer2 capture enable
00CB +1 240 T2SPLIT BIT TMR2CN.3 ; Timer2 split mode enable
00CA +1 241 TR2 BIT TMR2CN.2 ; Timer2 on/off control
00C9 +1 242 T2CSS BIT TMR2CN.1 ; Timer 2 Capture Source select
00C8 +1 243 T2XCLK BIT TMR2CN.0 ; Timer2 external clock select
+1 244
+1 245 ; PSW 0D0H
00D7 +1 246 CY BIT PSW.7 ; Carry flag
00D6 +1 247 AC BIT PSW.6 ; Auxiliary carry flag
00D5 +1 248 F0 BIT PSW.5 ; User flag 0
00D4 +1 249 RS1 BIT PSW.4 ; Register bank select 1
00D3 +1 250 RS0 BIT PSW.3 ; Register bank select 0
00D2 +1 251 OV BIT PSW.2 ; Overflow flag
00D1 +1 252 F1 BIT PSW.1 ; User flag 1
00D0 +1 253 P BIT PSW.0 ; Accumulator parity flag
+1 254
+1 255 ; PCA0CN 0D8H
00DF +1 256 CF BIT PCA0CN.7 ; PCA0 counter overflow flag
A51 MACRO ASSEMBLER F34X_MSD_USB_PROCEDURE 11/28/2006 10:54:46 PAGE 5
00DE +1 257 CR BIT PCA0CN.6 ; PCA0 counter run control
+1 258 ; Bit5 UNUSED
00DC +1 259 CCF4 BIT PCA0CN.4 ; PCA0 module4 capture/compare flag
00DB +1 260 CCF3 BIT PCA0CN.3 ; PCA0 module3 capture/compare flag
00DA +1 261 CCF2 BIT PCA0CN.2 ; PCA0 module2 capture/compare flag
00D9 +1 262 CCF1 BIT PCA0CN.1 ; PCA0 module1 capture/compare flag
00D8 +1 263 CCF0 BIT PCA0CN.0 ; PCA0 module0 capture/compare flag
+1 264
+1 265 ; ADC0CN 0E8H
00EF +1 266 AD0EN BIT ADC0CN.7 ; ADC0 enable
00EE +1 267 AD0TM BIT ADC0CN.6 ; ADC0 track mode
00ED +1 268 AD0INT BIT ADC0CN.5 ; ADC0 converision complete interrupt flag
00EC +1 269 AD0BUSY BIT ADC0CN.4 ; ADC0 busy flag
00EB +1 270 AD0WINT BIT ADC0CN.3 ; ADC0 window compare interrupt flag
00EA +1 271 AD0CM2 BIT ADC0CN.2 ; ADC0 conversion mode select 2
00E9 +1 272 AD0CM1 BIT ADC0CN.1 ; ADC0 conversion mode select 1
00E8 +1 273 AD0CM0 BIT ADC0CN.0 ; ADC0 conversion mode select 0
+1 274
+1 275 ; SPI0CN 0F8H
00FF +1 276 SPIF BIT SPI0CN.7 ; SPI0 interrupt flag
00FE +1 277 WCOL BIT SPI0CN.6 ; SPI0 write collision flag
00FD +1 278 MODF BIT SPI0CN.5 ; SPI0 mode fault flag
00FC +1 279 RXOVRN BIT SPI0CN.4 ; SPI0 rx overrun flag
00FB +1 280 NSSMD1 BIT SPI0CN.3 ; SPI0 slave select mode 1
00FA +1 281 NSSMD0 BIT SPI0CN.2 ; SPI0 slave select mode 0
00F9 +1 282 TXBMT BIT SPI0CN.1 ; SPI0 transmit buffer empty
00F8 +1 283 SPIEN BIT SPI0CN.0 ; SPI0 SPI enable
+1 284
+1 285 ;------------------------------------------------------------------------------
+1 286 ; End Of File
+1 287 ;------------------------------------------------------------------------------
288
289 USB_PROCEDURE SEGMENT CODE
---- 290 RSEG USB_PROCEDURE
291
292 PUBLIC _?Fifo_Write
293 PUBLIC _Fifo_Read
294
0000 295 _?Fifo_Write:
296 ;R1,R2,R3 - buffer address
297 ;R7 - endpoint address
298 ;R4,R5 - LENGTH OF BUFFER
299
0000 300 BEGIN_WAIT_ON_USB:
301
0000 E596 302 MOV A,USB0ADR
0002 20E7FB 303 JB ACC.7,BEGIN_WAIT_ON_USB
0005 8F96 304 MOV USB0ADR,R7
305
0007 EB 306 MOV A,R3
0008 6024 307 JZ COPY_IDATA
000A B40139 308 CJNE a,#0x01,COPY_CODE
309
000D 8A83 310 MOV DPH,R2
000F 8982 311 MOV DPL,R1
312
0011 313 XDATA_WRITE_COPY_LABEL:
314
0011 ED 315 MOV A,R5
0012 1D 316 DEC R5
0013 7006 317 JNZ XDATA_WRITE_DATA
0015 7DFF 318 MOV r5,#0xff
0017 EC 319 MOV A,R4
0018 6013 320 JZ XDATA_FINISH_COPY
001A 1C 321 DEC R4
322
A51 MACRO ASSEMBLER F34X_MSD_USB_PROCEDURE 11/28/2006 10:54:46 PAGE 6
001B 323 XDATA_WRITE_DATA:
324
001B E596 325 MOV A,USB0ADR
001D 20E7FB 326 JB ACC.7,XDATA_WRITE_DATA
327
0020 E0 328 MOVX A,@DPTR
0021 F597 329 MOV USB0DAT,A
330
0023 0582 331 INC DPL
0025 E582 332 MOV A,DPL
0027 7002 333 JNZ XDATA_NO_DPH
0029 0583 334 INC DPH
335
002B 336 XDATA_NO_DPH:
337
002B 80E4 338 SJMP XDATA_WRITE_COPY_LABEL
339
002D 340 XDATA_FINISH_COPY:
341
002D 22 342 RET
343
344
345 ;/////////////////////////////
346 ;// COPY DATA FROM IDATA
347 ;/////////////////////////////
348
002E 349 COPY_IDATA:
350
002E E9 351 MOV A,R1
002F F8 352 MOV R0,A ; R0 - POINTER TO DATA DDDRESS
353
0030 354 IDATA_WRITE_COPY_LABEL:
355
0030 ED 356 MOV A,R5
0031 1D 357 DEC R5
0032 7006 358 JNZ IDATA_WRITE_DATA
0034 7DFF 359 MOV r5,#0xff
0036 EC 360 MOV A,R4
0037 600C 361 JZ IDATA_FINISH_COPY
0039 1C 362 DEC R4
363
003A 364 IDATA_WRITE_DATA:
365
003A E596 366 MOV A,USB0ADR
003C 20E7FB 367 JB ACC.7,IDATA_WRITE_DATA
368
003F E6 369 MOV A,@R0
0040 F597 370 MOV USB0DAT,A
371
0042 08 372 INC R0
373
0043 80EB 374 SJMP IDATA_WRITE_COPY_LABEL
375
0045 376 IDATA_FINISH_COPY:
377
0045 22 378 RET
379
380 ;////////////////////////////////
381 ;/// copy from code segment
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -