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

📄 main.lst

📁 Holtek ht82a832r USB-PHONE DEMO 源码 ht82a832r 是Holtek开发的USB-PHONE 的OTP SOC芯片,信价比很高
💻 LST
📖 第 1 页 / 共 4 页
字号:
 829  00FE              		;modify 2006-08-28
 830  00FE  3421        		CLR		USR.@USR_EP0F	;Fix OHCI Volume
 831  00FF  0001        		clr wdt
 832  0100  1F05        		clr		acc
 833  0101  4419        		xor		a,nCmdIndex1
 834  0102  3D0A        		sz		z
 835  0103  2979        		jmp		USB_EP0_ISR_END
 836  0104              
 837  0104              USB_EP0_OUT_TOKEN_Loop:
 838  0104  0001        		clr wdt
 839  0105  2000     E  		CALL		Check_Real_Cmd
 840  0106  7D11        		sz		bFlag_Real_Cmd
 841  0107  293E        		jmp		USB_EP0_OUT_TOKEN_End
 842  0108              
 843  0108  0001        		clr wdt	
 844  0109  2000     E  		CALL		FIFO0_RD_CHECK
 845  010A  7991        		SNZ		bFlag_FIFO_Ready
 846  010B  2904        		JMP		USB_EP0_OUT_TOKEN_Loop
 847  010C              
 848  010C  7D12        		SZ		bFlag_OutTokenRemainInt
 849  010D  2915        		JMP		USB_EP0_OUT_TOKEN_ReadRemain
 850  010E              
 851  010E  0F54        		MOV		A,OFFSET FIFO_TYPE
 852  010F  4086        		MOV		Data_RStart,A
 853  0110  5F05        		CLR		DATA_RCount
 854  0111  7112        		SET		bFlag_OutTokenRemainInt		;首次终端中,设定标记下次为剩余数据的中断
 855  0112              		
 856  0112              		
 857  0112  2000     E  		CALL		READ_FIFO0_EX
 858  0113              
 859  0113  2000     E  		CALL		Send_Hand_Shake
 860  0114              		
 861  0114  2917        		JMP		USB_EP0_OUT_TOKEN_ReadDoneCheck
 862  0115              USB_EP0_OUT_TOKEN_ReadRemain:
 863  0115  2000     E  		CALL		READ_FIFO0_EX
 864  0116              
 865  0116  2000     E  		CALL		Send_Hand_Shake
 866  0117              
 867  0117              USB_EP0_OUT_TOKEN_ReadDoneCheck:
 868  0117              								;根据Setup阶段的数据包确定Data阶段的数据大小检查是否已经完成
 869  0117  4704        		MOV		A,Data_Length
 870  0118  4405        		XOR		A,Data_RCount
 871  0119  390A        		SNZ		Z
 872  011A  293E        		JMP		USB_EP0_OUT_TOKEN_End
 873  011B              		
 874  011B              USB_EP0_OUT_TOKEN_ReadDone:	;数据接收完毕
 875  011B  0000        		NOP
 876  011C              		;为了与原先的处理流程兼容将Data_Buf的数据保存到FIFO中,
 877  011C              
 878  011C  0F64        		MOV		A,OFFSET Data_Buf
 879  011D  0081        		MOV		MP0,A
 880  011E  0F54        		MOV		A,OFFSET FIFO_Type
 881  011F  0083        		MOV		MP1,A
 882  0120              
 883  0120  0F08        		MOV		A,8
 884  0121  408B        		MOV		Loop_Counter,A
 885  0122              
文件:MAIN.ASM     盛群编译器版本 2.86 页次16

 886  0122              USB_EP0_OUT_TOKEN_COPYFIFO:
 887  0122  0700        		MOV		A,R0
 888  0123  0082        		MOV		R1,A
 889  0124              
 890  0124  1481        		INC		MP0
 891  0125  1483        		INC		MP1
 892  0126              
 893  0126  558B        		DEC		Loop_Counter
 894  0127  390A        		SNZ		Z
 895  0128  2922        		JMP	USB_EP0_OUT_TOKEN_COPYFIFO
 896  0129              		
 897  0129              
 898  0129              		;decode command
 899  0129              		;//parse Cmd , 21H = SetReport Out Data
 900  0129  0F21        		mov		a,21H
 901  012A  4419        		xor		a,nCmdIndex1
 902  012B  3D0A        		sz		z
 903  012C  2A75        		jmp		ProcessOutData
 904  012D              
 905  012D              		;//parse Cmd , 18H = Speaker Mute Control
 906  012D  0F18        		mov		a,18H
 907  012E  4419        		xor		a,nCmdIndex1
 908  012F  3D0A        		sz		z
 909  0130  2940        		jmp		Implement_Speaker_Mute
 910  0131              
 911  0131              		;//parse Cmd , 19H = Mic Mute Control
 912  0131  0F19        		mov		a,19H
 913  0132  4419        		xor		a,nCmdIndex1
 914  0133  3D0A        		sz		z
 915  0134  294F        		jmp		Implement_Mic_Mute
 916  0135              
 917  0135              
 918  0135              		;//parse Cmd , 28H = Speaker Volume Control
 919  0135  0F28        		mov		a,28H
 920  0136  4419        		xor		a,nCmdIndex1
 921  0137  3D0A        		sz		z
 922  0138  2959        		jmp		Implement_Speaker_Volume
 923  0139              
 924  0139              		;//parse Cmd , 29H = Mic Volume Control
 925  0139  0F29        		mov		a,29H
 926  013A  4419        		xor		a,nCmdIndex1
 927  013B  3D0A        		sz		z
 928  013C  295F        		jmp		Implement_Mic_Volume
 929  013D              
 930  013D              
 931  013D              
 932  013D              		;//unknow command
 933  013D  293E        		jmp		USB_EP0_OUT_TOKEN_End
 934  013E              		
 935  013E              USB_EP0_OUT_TOKEN_End:
 936  013E  5F19        		clr		nCmdIndex1
 937  013F  2979        		JMP		USB_EP0_ISR_END
 938  0140              
 939  0140              
 940  0140              Implement_Speaker_Mute:
 941  0140  0001        		clr wdt
 942  0141  3C54        		sz		FIFO_out1.0
 943  0142  379C        		clr		USVC.7			;mute
 944  0143  3854        		snz		FIFO_out1.0
 945  0144  339C        		set		USVC.7			;unmute
文件:MAIN.ASM     盛群编译器版本 2.86 页次17

 946  0145              
 947  0145  3C54        		sz		FIFO_out1.0
 948  0146  7192        		set		bFlag_Audio_Mute	;mute
 949  0147  3854        		snz		FIFO_out1.0
 950  0148  7592        		clr		bFlag_Audio_Mute	;unmute
 951  0149              
 952  0149  7992        		snz		bFlag_Audio_Mute
 953  014A  294E        		jmp		Implement_Speaker_Mute_1
 954  014B              		
 955  014B  0FE0        		mov		a,Min_Volume
 956  014C  009C        		mov		USVC,a
 957  014D              		
 958  014D  379C        		clr		USVC.7
 959  014E              		
 960  014E              		
 961  014E              Implement_Speaker_Mute_1:
 962  014E  293E        		jmp		USB_EP0_OUT_TOKEN_End
 963  014F              
 964  014F              
 965  014F              Implement_Mic_Mute:
 966  014F  0001        		clr wdt
 967  0150  3C54        		sz		FIFO_OUT1.0
 968  0151  37B0        		clr		PGA_CTRL.7	;mute
 969  0152  3854        		snz		FIFO_OUT1.0
 970  0153  33B0        		set		PGA_CTRL.7	;unmute
 971  0154              		
 972  0154  3C54        		sz		FIFO_out1.0
 973  0155  7212        		set		bFlag_Mic_Mute	;mute
 974  0156  3854        		snz		FIFO_out1.0
 975  0157  7612        		clr		bFlag_Mic_Mute	;unmute
 976  0158              		
 977  0158              		
 978  0158  293E        		jmp		USB_EP0_OUT_TOKEN_End
 979  0159              		
 980  0159              
 981  0159              		
 982  0159              
 983  0159              Implement_Speaker_Volume:
 984  0159  0001        		clr wdt
 985  015A              		kmov		VolumeH_Save,FIFO_out1
 986  015C              		kmov		VolumeL_Save,FIFO_out2
 987  015E              Implement_Speaker_Volume_End:
 988  015E  293E        		jmp		USB_EP0_OUT_TOKEN_End		
 989  015F              
 990  015F              Implement_Mic_Volume:
 991  015F  0001        		clr wdt
 992  0160  0F7F        		mov		a,7FH
 993  0161  0455        		xor		a,FIFO_OUT2
 994  0162  3D0A        		sz		z
 995  0163  296B        		jmp		Implement_Mic_Volume_Set_Max
 996  0164              				
 997  0164  0F80        		mov		a,80H
 998  0165  0455        		xor		a,FIFO_OUT2
 999  0166  3D0A        		sz		z
1000  0167  296F        		jmp		Implement_Mic_Volume_Set_Min
1001  0168              	
1002  0168              		kmov		FIFO_TEMP,FIFO_OUT2
1003  016A  2973        		jmp		Implement_Mic_Volume_1
1004  016B              		
1005  016B              Implement_Mic_Volume_Set_Max:		
文件:MAIN.ASM     盛群编译器版本 2.86 页次18

1006  016B  0001        		clr wdt
1007  016C              		kmov		FIFO_TEMP,MIC_Max_Volume
1008  016E  2973        		jmp		Implement_Mic_Volume_1
1009  016F              Implement_Mic_Volume_Set_Min:		
1010  016F  0001        		clr wdt
1011  0170              		kmov		FIFO_TEMP,MIC_Min_Volume
1012  0172  2973        		jmp		Implement_Mic_Volume_1
1013  0173              Implement_Mic_Volume_1:
1014  0173  0001        		clr wdt
1015  0174  0F80        		mov		a,80H
1016  0175  0630        		and		a,PGA_CTRL
1017  0176              		
1018  0176  4510        		or		a,FIFO_TEMP
1019  0177  00B0        		mov		PGA_CTRL,a
1020  0178              Implement_Mic_Volume_End:
1021  0178  293E        		jmp		USB_EP0_OUT_TOKEN_END
1022  0179              
1023  0179              USB_EP0_ISR_END:
1024  0179              		;modify 2006-07-27
1025  0179              		;CLR		USR.@USR_EP0F		;Fix Bus Enumeration Stress
1026  0179  28CD        		JMP		USB_ISR_END
1027  017A              ;-----------------------------------------------------
1028  017A              ;EPNPOINT 1 Interrupt
1029  017A              ;-----------------------------------------------------
1030  017A              USB_EP1_ISR:
1031  017A              		;check the data is in fifo ?
1032  017A              		;CALL		FIFO1_RD_CHECK
1033  017A              		;SNZ		bFlag_FIFO_Ready
1034  017A              		;JMP		USB_EP1_ISR_END
1035  017A              		;CALL		Read_FIFO1
1036  017A              
1037  017A              		;;CALL		FIFO1_WR_CHECK
1038  017A              		;;SNZ		bFlag_FIFO_Ready
1039  017A              		;;JMP		USB_EP1_ISR_END
1040  017A              		;;MOV		A,00H
1041  017A              		;;MOV		FIFO_OUT1,A
1042  017A              		;;MOV		A,01H
1043  017A              		;;MOV		FIFO_SendLen,A
1044  017A              		;;CALL		WRITE_FIFO1	
1045  017A              
1046  017A              		;JMP		USB_EP1_ISR_END
1047  017A              	
1048  017A              		;准备写入数据
1049  017A              		;检查是否需要被写入的数据
1050  017A  50B4        		SZ		CMD_SCount
1051  017B  297D        		JMP		USB_EP1_ISR_Write
1052  017C  29A9        		JMP		USB_EP1_ISR_END
1053  017D              USB_EP1_ISR_Write:
1054  017D  2000     E  		CALL		FIFO1_WR_CHECK
1055  017E  7991        		SNZ		bFlag_FIFO_Ready
1056  017F  29A9        		JMP		USB_EP1_ISR_END
1057  0180              
1058  0180              		;将CMD_Buf的数据发送出去
1059  0180              ;----------------------------------------------------------------------
1060  0180              ; EP1_InData:
1061  0180              ;  EP1在收到IN Token后调用该函数,返回CMD_SPtr, CMD_SCount 指定的数据
1062  0180              ;  若数据
1063  0180              ;
1064  0180              ;----------------------------------------------------------------------		
1065  0180              EP1_InData:
文件:MAIN.ASM     盛群编译器版本 2.86 页次19

1066  0180  0001        		clr wdt	
1067  0181              EP1_InData_stage:
1068  0181  0001        		clr wdt	
1069  0182  0F00        		MOV		A,0H
1070  0183  408B        		MOV		Loop_Counter,A			;本次发送的字节数
1071  0184  00D3        		MOV		FIFO_SendLen,A
1072  0185              
1073  0185              		;
1074  0185              		;1)将数据保存到FIFO_OUT
1075  0185              		;2)再将数据写入到FIFO
1076  0185              		;
1077  0185              		
1078  0185              
1079  0185  4734        		MOV		A,CMD_SCount			;检查是否仍有待处理数据
1080  0186  0C00        		XOR		A,00H
1081  0187  3D0A        		SZ		Z
1082  0188  29A9        		JMP		USB_EP1_ISR_END			;A=00H
1083  0189              
1084  0189  4735        		MOV		A,CMD_SPtr
1085  018A  0081        		MOV		MP0,A
1086  018B              								;准备装载数据到内存
1087  018B              EP1_InData_dma_load_loop:
1088  018B  3026        		SET		MISC.@MISC_REQ
1089  018C              EP1_Write_FIFO_Loop:
1090  018C              		
1091  018C  0001        		clr wdt	
1092  018D  4734        		MOV		A,CMD_SCount
1093  018E  0C00        		XOR		A,00H
1094  018F  3D0A        		SZ		Z
1095  0190  29A1        		JMP		EP1_Write_FIFO_End
1096  0191              
1097  0191  0F29        		MOV		A,USB_FIFO1
1098  0192  0083        		MOV		MP1,A 
1099  0193              
1100  0193  0700        		MOV		A,R0
1101  0194  0082        		MOV		R1,A
1102  0195  55B4        		DEC		CMD_SCount
1103  0196              		
1104  0196  54B5        		INC		CMD_SPtr
1105  0197              
1106  0197  4734        		MOV		A,CMD_SCount
1107  0198  0C00        		XOR		A,00H
1108  0199  3D0A        		SZ		Z
1109  019A  29A1        		JMP		EP1_Write_FIFO_End		;FIFO_SendLen=0 

⌨️ 快捷键说明

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