📄 function.lst
字号:
228 0046 0F02 MOV A,00000010b
229 0047 2800 R JMP FIFO_CHECK
230 0048
231 0048 FIFO_CHECK:
232 0048 0001 clr wdt
233 0049 0080 E MOV FIFO_TEMP,A
234 004A 0F26 MOV A,USB_MISC
235 004B 0083 MOV MP1,A
文件:FUNCTION.ASM 盛群编译器版本 2.86 页次5
236 004C 0702 MOV A,R1
237 004D 0EF8 AND A,11111000b
238 004E 0500 E OR A,FIFO_TEMP
239 004F 0082 MOV R1,A
240 0050 2000 R CALL Delay_3us
241 0051 3002 SET R1.@MISC_REQ ;set request
242 0052 2000 R CALL Delay_28us
243 0053 3000 E SET bFlag_FIFO_Ready
244 0054 3B02 SNZ R1.@MISC_Ready
245 0055 3400 E CLR bFlag_FIFO_Ready ;if MISC.Ready = 1 -> bFlag_FIFO_Ready = 1
246 0056 3000 E SET bFlag_FIFO_LEN0
247 0057 3B82 SNZ R1.@MISC_LEN0
248 0058 3400 E CLR bFlag_FIFO_LEN0
249 0059
250 0059 ;;SZ bFlag_FIFO_Ready
251 0059 3800 E SNZ bFlag_FIFO_Ready ;2007-4-5
252 005A 3426 clr MISC.@MISC_REQ
253 005B 0001 clr wdt
254 005C 0003 RET
255 005D
256 005D ;modify 2006-09-22
257 005D ReadLen0:
258 005D 0F28 MOV A,USB_FIFO0
259 005E 0083 MOV MP1,A
260 005F
261 005F 0702 MOV A,R1
262 0060 0000 NOP
263 0061 2800 R JMP Read_FIFO_END
264 0062 Read_FIFO0:
265 0062 0F08 MOV A,USB_FIFO0_SIZE
266 0063 0080 E MOV FIFO_SIZE,A
267 0064 0F28 MOV A,USB_FIFO0
268 0065 2800 R JMP Read_FIFO
269 0066 Read_FIFO1:
270 0066 0F08 MOV A,USB_FIFO1_SIZE
271 0067 0080 E MOV FIFO_SIZE,A
272 0068 0F29 MOV A,USB_FIFO1
273 0069 2800 R JMP Read_FIFO
274 006A Read_FIFO2:
275 006A 0F08 MOV A,USB_FIFO2_SIZE
276 006B 0080 E MOV FIFO_SIZE,A
277 006C 0F2A MOV A,USB_FIFO2
278 006D 2800 R JMP Read_FIFO
279 006E Read_FIFO3:
280 006E 0F08 MOV A,USB_FIFO3_SIZE
281 006F 0080 E MOV FIFO_SIZE,A
282 0070 0F2B MOV A,USB_FIFO3
283 0071 2800 R JMP Read_FIFO
284 0072 Read_FIFO4:
285 0072 0F08 MOV A,USB_FIFO4_SIZE
286 0073 0080 E MOV FIFO_SIZE,A
287 0074 0F2C MOV A,USB_FIFO4
288 0075 2800 R JMP Read_FIFO
289 0076 Read_FIFO5:
290 0076 0F08 MOV A,USB_FIFO5_SIZE
291 0077 0080 E MOV FIFO_SIZE,A
292 0078 0F2D MOV A,USB_FIFO5
293 0079 2800 R JMP Read_FIFO
294 007A
295 007A Read_FIFO:
文件:FUNCTION.ASM 盛群编译器版本 2.86 页次6
296 007A 3026 SET MISC.@MISC_REQ
297 007B
298 007B 0080 E MOV FIFO_TEMP,A ;FIFO_TEMP SAVE FIFOX ADDRESS
299 007C 1F00 E CLR FIFO_SendLen
300 007D 0F00 E MOV A,OFFSET FIFO_Type
301 007E 0081 MOV MP0,A
302 007F Read_FIFO_Loop:
303 007F 0700 E MOV A,FIFO_TEMP
304 0080 0083 MOV MP1,A
305 0081 0702 MOV A,R1
306 0082 0080 MOV R0,A
307 0083 1480 E INC FIFO_SendLen
308 0084 1481 INC MP0
309 0085 0700 E MOV A,FIFO_SIZE
310 0086 0400 E XOR A,FIFO_SendLen
311 0087 3D0A SZ Z ;1=FIFO_SIZE=FIFO_SendLen
312 0088 2800 R JMP Read_FIFO_End
313 0089 0F26 MOV A,USB_MISC
314 008A 0083 MOV MP1,A
315 008B 2000 R CALL Delay_28us
316 008C 3F02 SZ R1.@MISC_Ready
317 008D 2800 R JMP Read_FIFO_LOOP
318 008E 2800 R JMP Read_FIFO_End
319 008F
320 008F ;
321 008F ;检查并等待发送完毕后改变 MISC@MISC_TX1的状态,表示操作完毕
322 008F ;
323 008F ;
324 008F Send_Hand_Shake:
325 008F Send_Hand_Shake_wait:
326 008F ; protect die loop
327 008F 2000 R call Check_Real_Cmd
328 0090 3C00 E sz bFlag_Real_Cmd
329 0091 ;jmp USB_EP0_ISR_END
330 0091 0003 ret ;modify by 2006-02-16
331 0092
332 0092 2000 R CALL FIFO0_WR_CHECK
333 0093 3800 E SNZ bFlag_FIFO_Ready
334 0094 2800 R JMP Send_Hand_Shake_wait
335 0095
336 0095 3026 set MISC.@MISC_REQ
337 0096 WriteLen0:
338 0096 Write_FIFO_OK:
339 0096 Read_FIFO_End:
340 0096 0F26 MOV A,USB_MISC
341 0097 0083 MOV MP1,A
342 0098 0F02 MOV A,(01H SHL @MISC_TX) ;Change TX State
343 0099 ;CLR INTC0.0
344 0099 0482 XORM A,R1
345 009A 2000 R CALL Delay_3us
346 009B 3402 CLR R1.@MISC_REQ
347 009C ;SET INTC0.0
348 009C 0003 RET
349 009D
350 009D
351 009D
352 009D ;============================================================
353 009D ;Function:Read FIFOx_Ex 将数据读取保存到Data_RStart位置,
354 009D ;并且Data_RCount记录接收的总字节数
355 009D ;============================================================
文件:FUNCTION.ASM 盛群编译器版本 2.86 页次7
356 009D Read_FIFO0_EX:
357 009D 0F08 MOV A,USB_FIFO0_SIZE
358 009E 0080 E MOV FIFO_SIZE,A
359 009F 0F28 MOV A,USB_FIFO0
360 00A0 2800 R JMP Read_FIFO_EX
361 00A1 Read_FIFO1_EX:
362 00A1 0F08 MOV A,USB_FIFO1_SIZE
363 00A2 0080 E MOV FIFO_SIZE,A
364 00A3 0F29 MOV A,USB_FIFO1
365 00A4 2800 R JMP Read_FIFO_EX
366 00A5 Read_FIFO2_EX:
367 00A5 0F08 MOV A,USB_FIFO2_SIZE
368 00A6 0080 E MOV FIFO_SIZE,A
369 00A7 0F2A MOV A,USB_FIFO2
370 00A8 2800 R JMP Read_FIFO_EX
371 00A9 Read_FIFO3_EX:
372 00A9 0F08 MOV A,USB_FIFO3_SIZE
373 00AA 0080 E MOV FIFO_SIZE,A
374 00AB 0F2B MOV A,USB_FIFO3
375 00AC 2800 R JMP Read_FIFO_EX
376 00AD Read_FIFO4_EX:
377 00AD 0F08 MOV A,USB_FIFO4_SIZE
378 00AE 0080 E MOV FIFO_SIZE,A
379 00AF 0F2C MOV A,USB_FIFO4
380 00B0 2800 R JMP Read_FIFO_EX
381 00B1 Read_FIFO5_EX:
382 00B1 0F08 MOV A,USB_FIFO5_SIZE
383 00B2 0080 E MOV FIFO_SIZE,A
384 00B3 0F2D MOV A,USB_FIFO5
385 00B4 2800 R JMP Read_FIFO_EX
386 00B5
387 00B5 Read_FIFO_EX:
388 00B5 3026 SET MISC.@MISC_REQ
389 00B6
390 00B6 0080 E MOV FIFO_TEMP,A ;FIFO_TEMP SAVE FIFOX ADDRESS
391 00B7 1F00 E CLR FIFO_SendLen
392 00B8 0700 E MOV A,Data_RStart
393 00B9 0081 MOV MP0,A
394 00BA Read_FIFO_EX_Loop:
395 00BA 0700 E MOV A,FIFO_TEMP
396 00BB 0083 MOV MP1,A
397 00BC 0702 MOV A,R1
398 00BD 0080 MOV R0,A
399 00BE 1480 E INC FIFO_SendLen
400 00BF 1480 E INC Data_RCount
401 00C0 1481 INC MP0
402 00C1 0700 E MOV A,FIFO_SIZE
403 00C2 0400 E XOR A,FIFO_SendLen
404 00C3 3D0A SZ Z ;1=FIFO_SIZE=FIFO_SendLen
405 00C4 2800 R JMP Read_FIFO_EX_End
406 00C5 0F26 MOV A,USB_MISC
407 00C6 0083 MOV MP1,A
408 00C7 2000 R CALL Delay_28us
409 00C8 3F02 SZ R1.@MISC_Ready
410 00C9 2800 R JMP Read_FIFO_EX_LOOP
411 00CA 2800 R JMP Read_FIFO_EX_End
412 00CB Read_FIFO_EX_End:
413 00CB 0003 RET
414 00CC
415 00CC
文件:FUNCTION.ASM 盛群编译器版本 2.86 页次8
416 00CC ;============================================================
417 00CC ;Function:Write FIFOx from FIFO_OUTx
418 00CC ;============================================================
419 00CC Write_FIFO0:
420 00CC 0F28 MOV A,USB_FIFO0
421 00CD 2800 R JMP Write_FIFO
422 00CE Write_FIFO1:
423 00CE 0F29 MOV A,USB_FIFO1
424 00CF 2800 R JMP Write_FIFO
425 00D0 Write_FIFO2:
426 00D0 0F2A MOV A,USB_FIFO2
427 00D1 2800 R JMP Write_FIFO
428 00D2 Write_FIFO3:
429 00D2 0F2B MOV A,USB_FIFO3
430 00D3 2800 R JMP Write_FIFO
431 00D4 Write_FIFO4:
432 00D4 0F2C MOV A,USB_FIFO4
433 00D5 2800 R JMP Write_FIFO
434 00D6 Write_FIFO5:
435 00D6 0F2D MOV A,USB_FIFO5
436 00D7 2800 R JMP Write_FIFO
437 00D8
438 00D8 Write_FIFO:
439 00D8 0001 clr wdt
440 00D9 3026 SET MISC.@MISC_REQ
441 00DA 0080 E MOV FIFO_TEMP,A ;FIFO NO Address
442 00DB 0F00 E MOV A,OFFSET FIFO_OUT1
443 00DC 0081 MOV MP0,A
444 00DD Write_FIFO_Loop:
445 00DD 0001 clr wdt
446 00DE 0700 E MOV A,FIFO_SendLen
447 00DF 0C00 XOR A,00H
448 00E0 3D0A SZ Z
449 00E1 2800 R JMP Write_FIFO_End
450 00E2
451 00E2 0700 E MOV A,FIFO_TEMP
452 00E3 0083 MOV MP1,A
453 00E4 0700 MOV A,R0
454 00E5 0082 MOV R1,A
455 00E6 1580 E DEC FIFO_SendLen
456 00E7 0700 E MOV A,FIFO_SendLen
457 00E8 0C00 XOR A,00H
458 00E9 3D0A SZ Z
459 00EA 2800 R JMP Write_FIFO_End ;FIFO_SendLen=0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -