📄 main.lst
字号:
267 00A2 extern Send_Hand_Shake:NEAR
268 00A2 extern get_descriptor_length:NEAR
269 00A2
270 00A2 extern SetAddress:NEAR
271 00A2 extern SetConfiguration:NEAR
272 00A2 extern SetInterface:NEAR
273 00A2 extern GetInterface:NEAR
274 00A2 extern GetDescriptor:NEAR
275 00A2 extern SetIdle:NEAR
276 00A2 extern GetDeviceDescriptor:NEAR
277 00A2 extern GetConfigurationDescriptor:NEAR
278 00A2 extern GetStringDescriptor:NEAR
279 00A2 extern GetStatus:NEAR
280 00A2 extern SetFeature:NEAR
281 00A2 extern ClearFeature:NEAR
282 00A2 extern SetReport:NEAR
283 00A2 extern Execute:NEAR
284 00A2 extern SendStall0:NEAR
285 00A2 extern Delay_3us:NEAR
文件:MAIN.ASM 盛群编译器版本 2.86 页次6
286 00A2
287 00A2 extern Delay_28us:NEAR
288 00A2
289 00A2
290 00A2 extern SetFeature_Endpoint:NEAR
291 00A2 extern ClearFeature_Endpoint:NEAR
292 00A2 extern GetStatus_Endpoint:NEAR
293 00A2
294 00A2 extern Check_Real_Cmd:NEAR
295 00A2 extern GetConfiguration:NEAR
296 00A2
297 00A2
298 00A2 ;audio
299 00A2 extern SetCur:NEAR
300 00A2 extern GetMin:NEAR
301 00A2 extern GetMax:NEAR
302 00A2 extern GetRes:NEAR
303 00A2 extern GetCur:NEAR
304 00A2
305 00A2 extern GetPipeBit:NEAR
306 00A2
307 00A2
308 00A2 ;***************************************************************
309 00A2 ; MCU Interrupt Table
310 00A2 ;***************************************************************
311 00A2
312 00A2
313 0000 CODE .section AT 00H 'code'
314 0000 ORG 00H
315 0000 2820 jmp Start
316 0001 ORG 04H
317 0004 28C1 jmp USB_ISR
318 0005 ORG 08H
319 0008 2891 jmp Timer_0_ISR
320 0009 ORG 0CH
321 000C 28A8 jmp Timer_1_ISR
322 000D
323 000D
324 000D ;-----------------------------------------------------------
325 000D ; Start : ORG 20H 避開前面 interrupt
326 000D ;-----------------------------------------------------------
327 000D ORG 20H
328 0020 Start:
329 0020 ;---------------------------------------
330 0020 ;modify 2006-07-27
331 0020 ADC_Power_On_Reset:
332 0020 3134 set AD_ENB ;AD_ENB=1 =>ADC Power Down
333 0021 22FC call Delay_20ms
334 0022 3534 clr AD_ENB ;AD_ENB=0 =>ADC Power On
335 0023 ;---------------------------------------
336 0023 203C call System_Initial
337 0024 ;-----------------------------------------------------------
338 0024 ; Main LOOP Function :
339 0024 ;-----------------------------------------------------------
340 0024 Main:
341 0024 ;-----------------------------------------------------------
342 0024 ; Check Suspend Function :
343 0024 ; 第一次檢查到 suspend 應要再 delay 1 S 後再檢查一次 , 如果此時 suspend 訊號還在才進入 halt
344 0024 ; 請檢查 timer 此時是否有開啟 , 若有應暫時關閉 , 待 resume 後再開啟
345 0024 ;-----------------------------------------------------------
文件:MAIN.ASM 盛群编译器版本 2.86 页次7
346 0024 3820 SNZ USC.@USC_SUSP ;check SUSPEND ?
347 0025 2831 JMP Main_My_Function
348 0026
349 0026 24B2 call wait_about_1s
350 0027 3820 SNZ USC.@USC_SUSP
351 0028 2831 JMP Main_My_Function
352 0029
353 0029
354 0029 0001 clr wdt
355 002A 3611 clr TMR1C.4
356 002B 3412 clr USB_LED_ON
357 002C 35A2 clr UCC.@UCC_USBCKEN
358 002D ;-----------------------------------------------------------
359 002D ; Resume Function :
360 002D ; 在此 function 要把 halt 之前的 timer 狀態恢復 , 並且開啟 USBCKEN
361 002D ;-----------------------------------------------------------
362 002D 0002 HALT
363 002E 3211 set TMR1C.4
364 002F 3012 set USB_LED_ON
365 0030 31A2 set UCC.@UCC_USBCKEN
366 0031
367 0031 Main_My_Function:
368 0031 ;-----------------------------------------------------------
369 0031 ; Here to add your another code !!
370 0031 ;-----------------------------------------------------------
371 0031 0001 clr wdt
372 0032 0000 NOP
373 0033 ;---------------------------------------------------
374 0033 ;modify 2006-07-27
375 0033 7CA3 SZ ADC_POR_FG
376 0034 283B JMP Main_End
377 0035 7811 SNZ bFlag_SetConfiguration_Ready
378 0036 283B JMP Main_End
379 0037 3134 set AD_ENB ;AD_ENB=1 =>ADC Power Down
380 0038 22FC call Delay_20ms
381 0039 3534 clr AD_ENB ;AD_ENB=0 =>ADC Power On
382 003A 70A3 SET ADC_POR_FG
383 003B ;---------------------------------------------------
384 003B Main_End:
385 003B 2824 JMP Main
386 003C
387 003C ;***************************************************************
388 003C ; System Initial
389 003C ; 1.ram_initial
390 003C ; 1.Timer Initial
391 003C ; 2.USB Config
392 003C ;***************************************************************
393 003C System_Initial:
394 003C ;-----------------------------------------------------------
395 003C ; Debug
396 003C ;-----------------------------------------------------------
397 003C 0001 clr wdt
398 003D
399 003D ;-----------------------------------------------------------
400 003D ; Modify Pop Noise
401 003D ;-----------------------------------------------------------
402 003D kmov WDTS,07h
403 003F 0709 mov a,WDTS
404 0040 4090 mov FIFO_TEMP,a
405 0041
文件:MAIN.ASM 盛群编译器版本 2.86 页次8
406 0041 0F57 mov a,01010111b
407 0042 0089 mov WDTS,a
408 0043
409 0043 1F2D clr [02DH]
410 0044
411 0044
412 0044 0F80 mov a,80H
413 0045 00AE mov [02EH],a
414 0046 0000 nop
415 0047 0000 nop
416 0048 31AF set [02FH].3
417 0049 0000 nop
418 004A 0000 nop
419 004B 35AF clr [02FH].3
420 004C 0000 nop
421 004D 0000 nop
422 004E
423 004E 4710 mov a,FIFO_TEMP
424 004F 0089 mov WDTS,a
425 0050 ;-----------------------------------------------------------
426 0050 ; Wait Bais and ROUT LOUT Capacity rise about 1.98ms
427 0050 ; delay time = 255*255*30*3(sdz,jmp) cycle * 0.3333us/cycle = 1.98 ms
428 0050 ;-----------------------------------------------------------
429 0050 IF WaitBias
430 0050 clr pac
431 0050
432 0050 clr FIFO_OUT1
433 0050 clr FIFO_OUT2
434 0050 clr FIFO_OUT3
435 0050 clr FIFO_OUT4
436 0050 mov a,9
437 0050 mov FIFO_OUT3,a
438 0050 clr pa
439 0050
440 0050
441 0050
442 0050 System_Initial_Loop:
443 0050 clr wdt
444 0050 sdz FIFO_OUT1
445 0050 jmp System_Initial_Loop
446 0050 sdz FIFO_OUT2
447 0050 jmp System_Initial_Loop
448 0050 sdz FIFO_OUT3
449 0050 jmp System_Initial_Loop
450 0050 nop
451 0050 clr wdt
452 0050 set pa
453 0050 ENDIF
454 0050 ;-----------------------------------------------------------
455 0050 ; Codec Limit
456 0050 ;-----------------------------------------------------------
457 0050 1F2D clr [02DH]
458 0051 1FAE set [02EH]
459 0052 ;-----------------------------------------------------------
460 0052 ; ram_initial : clear the ram of bank 0
461 0052 ;-----------------------------------------------------------
462 0052 ram_initial: ;clear RAM (040H--0FFH)
463 0052 0F40 MOV A,040H
464 0053 0081 MOV MP0,A
465 0054 0FC0 MOV A,192
文件:MAIN.ASM 盛群编译器版本 2.86 页次9
466 0055 ram_initial_next_addr:
467 0055 0001 clr wdt
468 0056 1F00 CLR R0
469 0057 1481 INC MP0
470 0058 1785 SDZ acc
471 0059 2855 JMP ram_initial_next_addr
472 005A
473 005A 7691 CLR bFlag_RD_HTable
474 005B ;-----------------------------------------------------------
475 005B ; timer_initial : do timer initial
476 005B ;-----------------------------------------------------------
477 005B timer_initial:
478 005B 0F82 MOV A,82H ; 設定 low 到 high 觸發並設為內部計時模式
479 005C 008E MOV TMR0C,A ;
480 005D 0F00 MOV A,00H ; 1ms
481 005E 008D MOV TMR0L,A
482 005F 0F00 MOV A,000H
483 0060 008C MOV TMR0H,A
484 0061
485 0061 0F80 mov a,80H
486 0062 0091 mov TMR1C,a
487 0063 0F00 mov a,00H
488 0064 0090 mov TMR1L,a
489 0065 008F mov TMR1H,a
490 0066
491 0066 ;-----------------------------------------------------------
492 0066 ; config_io_port :
493 0066 ;-----------------------------------------------------------
494 0066 1F12 clr pa
495 0067 ;kmov pac,0FEH
496 0067
497 0067 ;IF UseMediaKey
498 0067 ; kmov pac,Key_Defined
499 0067 ;ENDIF
500 0067 ;IFE UseMediaKey
501 0067 ; kmov pac,00000000b
502 0067 ;ENDIF
503 0067 kmov pac,Key_Defined
504 0069 1F14 clr pb
505 006A 1F95 set pbc
506 006B 1F16 clr pc ;for volume control
507 006C 1F97 set pcc
508 006D
509 006D ;按键状态扫描寄存器
510 006D 0F00 MOV A,0
511 006E 40D8 MOV Key_State00,A
512 006F 40DA MOV Key_State10,A
513 0070 40DC MOV Key_State20,A
514 0071 40DE MOV Key_State30,A
515 0072 40D9 MOV Key_State01,A
516 0073 40DB MOV Key_State11,A
517 0074 40DD MOV Key_State21,A
518 0075 40DF MOV Key_State31,A
519 0076
520 0076 40E0 MOV Key_MState0,A
521 0077 40E1 MOV Key_MState1,A
522 0078
523 0078 40D7 mov Key_Count,A
524 0079
525 0079 ;-----------------------------------------------------------
文件:MAIN.ASM 盛群编译器版本 2.86 页次10
526 0079 ; config_usb_speaker_register :
527 0079 ;-----------------------------------------------------------
528 0079 1F1C clr USVC ;mute & 0db
529 007A
530 007A ;for test
531 007A ;set DA_R_ENB ;Right Channel Disable
532 007A
533 007A
534 007A ;-----------------------------------------------------------
535 007A ; reset variable :
536 007A ;-----------------------------------------------------------
537 007A 7592 clr bFlag_Audio_Mute
538 007B 7692 clr bFlag_Mute_Detect
539 007C 7712 clr bFlag_INC_Detect
540 007D 7792 clr bFlag_DEC_Detect
541 007E ;-----------------------------------------------------------
542 007E ; config_usb : do usb config
543 007E ;-----------------------------------------------------------
544 007E config_usb:
545 007E 1F0B CLR INTC0
546 007F 308B SET INTC0.@INTC0_EEI ;enable USB
547 0080 300B SET INTC0.@INTC0_EMI ;Global interrupt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -