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

📄 main.lst

📁 Holtek ht82a832r USB-PHONE DEMO 源码 ht82a832r 是Holtek开发的USB-PHONE 的OTP SOC芯片,信价比很高
💻 LST
📖 第 1 页 / 共 4 页
字号:
 548  0081              
 549  0081  3226        		set		MISC.@MISC_ISOEN	;ISO Output Interrupt Enable
 550  0082  31A6        		set		MISC.@MISC_ISIEN	;ISO Input Interrupt Enable
 551  0083  1F24        		clr		STALL
 552  0084  3622        		clr		UCC.@UCC_SUSP2
 553  0085              		
 554  0085              		;SYSCLK
 555  0085              		;set			UCC.6	//set to 6 MHz
 556  0085              
 557  0085  31A2        		set 		UCC.@UCC_USBCKEN
 558  0086  0000        		nop
 559  0087  3220        		set		USC.@USC_V33C		;//pc 開始送 command 過來
 560  0088              
 561  0088              			
 562  0088              		if	AUDIO_8K
 563  0088  31B4        			set		MODE_CTRL.3
 564  0089              		endif
 565  0089              		
 566  0089              	
 567  0089              	;-----------------------------------------------------------
 568  0089              	;初始化按键处理指令
 569  0089              	;-----------------------------------------------------------
 570  0089  5F34        		clr		CMD_SCount
 571  008A  0FA4        		mov		A,OFFSET CMD_Buf
 572  008B  40B5        		mov		CMD_SPtr,A
 573  008C              
 574  008C  5F57        		clr		Key_Count
 575  008D  0FB6        		mov		A,OFFSET Key_Buf
 576  008E  40D6        		mov		Key_ptr,A
 577  008F              		
 578  008F  0001        		clr 		wdt		
 579  0090  0003        		RET
 580  0091              		
 581  0091              ;***************************************************************
 582  0091              ;		Timer_0_ISR
 583  0091              ;		1.Timer time = 21.2 ms
 584  0091              ;		2.Do this procedure is 3.6ms
 585  0091              ;***************************************************************
文件:MAIN.ASM     盛群编译器版本 2.86 页次11

 586  0091              Timer_0_ISR:	
 587  0091  360E        		clr		TMR0C.4
 588  0092  00C5        		MOV		isr_tmr0_acc,A		;save ACC
 589  0093  070A        		MOV		A,STATUS
 590  0094  00C6        		MOV		isr_tmr0_status,A	;save status
 591  0095  0703        		MOV		A,MP1
 592  0096  00C7        		MOV		isr_tmr0_mp1,A		;save mp1
 593  0097  0701        		MOV		A,MP0
 594  0098  00C8        		MOV		isr_tmr0_mp0,A		;save mp0
 595  0099  0707        		MOV		A,TBLP
 596  009A  00C9        		MOV		isr_tmr0_tblp,A		;save TBLP
 597  009B              		
 598  009B              Timer_0_My_Function:
 599  009B              	;-----------------------------------------------------------
 600  009B              	; Here to add your another code !!
 601  009B              	;-----------------------------------------------------------
 602  009B  0000        		NOP		
 603  009C  0001        		clr wdt
 604  009D              		
 605  009D              Timer_0_ISR_END:		
 606  009D  0749        		MOV		A,isr_tmr0_tblp		;restore TBLP
 607  009E  0087        		MOV		TBLP,A
 608  009F  0748        		MOV		A,isr_tmr0_mp0		;restore MP0
 609  00A0  0081        		MOV		MP0,A
 610  00A1  0747        		MOV		A,isr_tmr0_mp1		;restore MP1
 611  00A2  0083        		MOV		MP1,A
 612  00A3  0746        		MOV		A,isr_tmr0_status	;restore STATUS
 613  00A4  008A        		MOV		STATUS,A
 614  00A5  0745        		MOV		A,isr_tmr0_acc		;restore ACC
 615  00A6  320E        		SET		TMR0C.4			;start timer0
 616  00A7              
 617  00A7  0004        		RETI
 618  00A8              
 619  00A8              ;***************************************************************
 620  00A8              ;		Timer_1_ISR
 621  00A8              ;		1.Timer time = 21.2 ms
 622  00A8              ;		2.Do this procedure is 3.6ms
 623  00A8              ;***************************************************************
 624  00A8              Timer_1_ISR:
 625  00A8  3611        		CLR		TMR1C.4
 626  00A9              
 627  00A9              
 628  00A9  00CA        		MOV		isr_tmr1_acc,A		;save ACC
 629  00AA  070A        		MOV		A,STATUS
 630  00AB  00CB        		MOV		isr_tmr1_status,A	;save status
 631  00AC  0703        		MOV		A,MP1
 632  00AD  00CC        		MOV		isr_tmr1_mp1,A		;save mp1
 633  00AE  0701        		MOV		A,MP0
 634  00AF  00CD        		MOV		isr_tmr1_mp0,A		;save mp0
 635  00B0  0707        		MOV		A,TBLP
 636  00B1  00CE        		MOV		isr_tmr1_tblp,A		;save TBLP
 637  00B2              		
 638  00B2  0001        		clr wdt	
 639  00B3  7023        		SET		TMR1_KEY_FG
 640  00B4              		;IF	UseMediaKey
 641  00B4              		;call		Key_Debounced
 642  00B4              		;ENDIF
 643  00B4  231C        		call		Run_Volume_Step
 644  00B5              
 645  00B5  234B        		call		KeyScanProcess		;键盘按键扫描
文件:MAIN.ASM     盛群编译器版本 2.86 页次12

 646  00B6              		
 647  00B6              
 648  00B6  074E        		MOV		A,isr_tmr1_tblp		;restore TBLP
 649  00B7  0087        		MOV		TBLP,A
 650  00B8  074D        		MOV		A,isr_tmr1_mp0		;restore MP0
 651  00B9  0081        		MOV		MP0,A
 652  00BA  074C        		MOV		A,isr_tmr1_mp1		;restore MP1
 653  00BB  0083        		MOV		MP1,A
 654  00BC  074B        		MOV		A,isr_tmr1_status	;restore STATUS
 655  00BD  008A        		MOV		STATUS,A
 656  00BE  074A        		MOV		A,isr_tmr1_acc		;restore ACC
 657  00BF              
 658  00BF              Timer_1_ISR_End:
 659  00BF  3211        		SET		TMR1C.4
 660  00C0  0004        		RETI
 661  00C1              
 662  00C1              ;***************************************************************
 663  00C1              ;		USB_ISR : USB Interrupt Routine
 664  00C1              ;		1.Back up every status register
 665  00C1              ;		2.check which endpoint is interrupt
 666  00C1              ;***************************************************************
 667  00C1              USB_ISR:
 668  00C1  348B        		CLR		INTC0.@INTC0_EEI	;disable USB interrupt
 669  00C2              		;modify 2006-09-11
 670  00C2              		;SET		INTC0.@INTC0_EMI
 671  00C2              
 672  00C2  00C0        		MOV		isr_usb_acc,A		;save ACC
 673  00C3  070A        		MOV		A,STATUS
 674  00C4  00C1        		MOV		isr_usb_status,A	;save status
 675  00C5  0703        		MOV		A,MP1
 676  00C6  00C2        		MOV		isr_usb_mp1,A		;save mp1
 677  00C7  0701        		MOV		A,MP0
 678  00C8  00C3        		MOV		isr_usb_mp0,A		;save mp0
 679  00C9  0707        		MOV		A,TBLP
 680  00CA  00C4        		MOV		isr_usb_tblp,A		;save TBLP
 681  00CB              
 682  00CB              		
 683  00CB  0001        		clr wdt
 684  00CC              		;;Check Which FIFO is interrupt
 685  00CC  28D8        		JMP		Check_Access_FIFO		
 686  00CD              
 687  00CD              
 688  00CD              
 689  00CD              USB_ISR_END:
 690  00CD  0744        		MOV		A,isr_usb_tblp		;restore TBLP
 691  00CE  0087        		MOV		TBLP,A
 692  00CF  0743        		MOV		A,isr_usb_mp0		;restore MP0
 693  00D0  0081        		MOV		MP0,A
 694  00D1  0742        		MOV		A,isr_usb_mp1		;restore MP1
 695  00D2  0083        		MOV		MP1,A
 696  00D3  0741        		MOV		A,isr_usb_status	;restore STATUS
 697  00D4  008A        		MOV		STATUS,A
 698  00D5  0740        		MOV		A,isr_usb_acc		;restore ACC
 699  00D6              
 700  00D6              		;modify 2006-08-18
 701  00D6              		;CLR		INTC0.@INTC0_EMI
 702  00D6  308B        		SET		INTC0.@INTC0_EEI
 703  00D7              
 704  00D7              
 705  00D7  0004        		RETI
文件:MAIN.ASM     盛群编译器版本 2.86 页次13

 706  00D8              
 707  00D8              
 708  00D8              ;***************************************************************
 709  00D8              ;		USB_EPX_ISR
 710  00D8              ;		之前使用 USR@EP0IF EQU	[01BH].0 判別會偵測不到
 711  00D8              ;		更改成   USB_STATUS_CONTROL.@EP0IF
 712  00D8              ;***************************************************************
 713  00D8              Check_Access_FIFO:
 714  00D8  0001        		clr wdt	
 715  00D9  3C21        		SZ		USR.@USR_EP0F
 716  00DA  28E4        		JMP		USB_EP0_ISR
 717  00DB  3CA1        		SZ		USR.@USR_EP1F
 718  00DC  297A        		JMP		USB_EP1_ISR
 719  00DD  3D21        		SZ		USR.@USR_EP2F
 720  00DE  29AB        		JMP		USB_EP2_ISR
 721  00DF  3DA1        		SZ		USR.@USR_EP3F
 722  00E0  29AE        		JMP		USB_EP3_ISR
 723  00E1  3E21        		SZ		USR.@USR_EP4F
 724  00E2  29B1        		JMP		USB_EP4_ISR
 725  00E3              
 726  00E3  28CD        		JMP		USB_ISR_END
 727  00E4              
 728  00E4              ;-----------------------------------------------------
 729  00E4              ;EPNPOINT 0
 730  00E4              ;-----------------------------------------------------
 731  00E4              USB_EP0_ISR:
 732  00E4              		;modify 2006-07-27
 733  00E4              		;CLR		USR.@USR_EP0F	;Fix Bus Enumeration Stress
 734  00E4              
 735  00E4              ;;case1
 736  00E4  3EA6        		SZ		MISC.@MISC_SCMD			;check setup token      
 737  00E5  28F0        		JMP		USB_EP0_SETUP_TOKEN                                     
 738  00E6                              
 739  00E6  3FA6        		SZ		MISC.@MISC_LEN0			;check out ack token    
 740  00E7  28FA        		JMP		USB_EP0_OUT_ACK_TOKEN                                   
 741  00E8              
 742  00E8  2000     E  		CALL		FIFO0_RD_CHECK                                          
 743  00E9  7D91        		SZ		bFlag_FIFO_Ready                                        
 744  00EA  28FE        		JMP		USB_EP0_OUT_TOKEN 
 745  00EB              		;clr		MISC.@MISC_REQ
 746  00EB              
 747  00EB  2000     E  		CALL		FIFO0_WR_CHECK                                          
 748  00EC  7D91        		SZ		bFlag_FIFO_Ready                                        
 749  00ED  28F6        		JMP		USB_EP0_IN_TOKEN		;else is in token       
 750  00EE              		;clr		MISC.@MISC_REQ
 751  00EE              
 752  00EE              		;modify 2006-08-28
 753  00EE  3421        		CLR		USR.@USR_EP0F	;Fix OHCI Volume
 754  00EF              
 755  00EF  2979          		JMP		USB_EP0_ISR_END   
 756  00F0              
 757  00F0              
 758  00F0              ;;case2
 759  00F0              ;;		SZ		MISC.@MISC_SCMD			;check setup token      
 760  00F0              ;;		JMP		USB_EP0_SETUP_TOKEN                                     
 761  00F0              ;;                
 762  00F0              ;;		SZ		MISC.@MISC_LEN0			;check out ack token    
 763  00F0              ;;		JMP		USB_EP0_OUT_ACK_TOKEN                                   
 764  00F0              ;;
 765  00F0              ;;		CALL		FIFO0_RD_CHECK                                          
文件:MAIN.ASM     盛群编译器版本 2.86 页次14

 766  00F0              ;;		SZ		bFlag_FIFO_Ready                                        
 767  00F0              ;;		JMP		USB_EP0_OUT_TOKEN 
 768  00F0              ;;		;clr		MISC.@MISC_REQ
 769  00F0              ;;
 770  00F0              ;;		CALL		FIFO0_WR_CHECK                                          
 771  00F0              ;;		SZ		bFlag_FIFO_Ready                                        
 772  00F0              ;;		JMP		USB_EP0_IN_TOKEN		;else is in token       
 773  00F0              ;;		;clr		MISC.@MISC_REQ
 774  00F0              ;;
 775  00F0              ;;
 776  00F0              ;;  		JMP		USB_EP0_ISR_END   
 777  00F0              
 778  00F0              
 779  00F0              ;;case3
 780  00F0              ;;		call		FIFO0_RD_CHECK
 781  00F0              ;;		sz		bFlag_FIFO_Ready
 782  00F0              ;;		jmp		Have_Data_Out
 783  00F0              ;;		
 784  00F0              ;;		call		FIFO0_WR_CHECK
 785  00F0              ;;		sz		bFlag_FIFO_Ready
 786  00F0              ;;		jmp		USB_EP0_IN_TOKEN
 787  00F0              ;;		
 788  00F0              ;;		jmp		USB_EP0_ISR_END
 789  00F0              ;;
 790  00F0              ;;Have_Data_Out:
 791  00F0              ;;		sz		MISC.@MISC_SCMD
 792  00F0              ;;		jmp		USB_EP0_SETUP_TOKEN
 793  00F0              ;;		sz		MISC.@MISC_LEN0
 794  00F0              ;;		jmp		USB_EP0_OUT_ACK_TOKEN
 795  00F0              ;;		
 796  00F0              ;;		jmp		USB_EP0_OUT_TOKEN
 797  00F0              
 798  00F0              
 799  00F0              
 800  00F0              
 801  00F0              
 802  00F0              USB_EP0_SETUP_TOKEN:					;PARSE SETUP TOKEN
 803  00F0  0001        		clr wdt
 804  00F1  21DF        		CALL		StageOne
 805  00F2              		;Clear OutToken 的剩余中断
 806  00F2  7512        		CLR		bFlag_OutTokenRemainInt
 807  00F3              		;保存指定的大小
 808  00F3              		kmov		Data_Length,FIFO_wLengthL
 809  00F5  2979        		JMP		USB_EP0_ISR_END
 810  00F6              
 811  00F6              USB_EP0_IN_TOKEN:
 812  00F6  0001        		clr wdt
 813  00F7              		;modify 2006-08-28
 814  00F7  3421        		CLR		USR.@USR_EP0F	;Fix OHCI Volume
 815  00F8  2000     E  		CALL		control_read
 816  00F9  2979        		JMP		USB_EP0_ISR_END
 817  00FA              
 818  00FA              USB_EP0_OUT_ACK_TOKEN:
 819  00FA              		;modify 2006-08-28
 820  00FA  3421        		CLR		USR.@USR_EP0F	;Fix OHCI Volume
 821  00FB  0001        		clr wdt
 822  00FC  37A6        		clr		MISC.@MISC_LEN0
 823  00FD              ;;		call		Delay_3us
 824  00FD  2979        		JMP		USB_EP0_ISR_END
 825  00FE              		
文件:MAIN.ASM     盛群编译器版本 2.86 页次15

 826  00FE              
 827  00FE              
 828  00FE              USB_EP0_OUT_TOKEN:

⌨️ 快捷键说明

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