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

📄 ht83f60_tpl_adpcm_new.lst

📁 use Holtek HT83F60 flash voice MCU edit,function:Play PCM12 Voice ,sentence ,VOL control,Stop voice
💻 LST
📖 第 1 页 / 共 4 页
字号:
  39  0001              	ORG	0004H
  40  0004  3000     R  	SET	TimeBase_Flag
  41  0005  0004        	RETI					;TimeBase Interrupt service routine
  42  0006              	ORG	0008H
  43  0008  2800     E  	JMP	SR0ISR				;Timer0 Interrupt service routine(voice channel0 ISR)
  44  0009              	ORG	000CH
  45  000C  0004        	RETI					;Timer1 Interrupt service routine(User Programmble ISR)
  46  000D              ;************************************************************
  47  000D              ;	User program here
  48  000D              ;************************************************************
"File: HT83F60_TPL_ADPCM_New.asm  Holtek Cross-Assembler  Version 2.86      Page 18

  49  000D              BEGIN:
  50  000D  0001        	CLR	WDT
  51  000E  0005        	CLR	WDT2
  52  000F  2000     E  	CALL	_CLRRAM
  53  0010  2000     E  	CALL	_SYSTEM_INITIALIZATION
  54  0011  2000     E  	CALL	_SETSTANDBY
  55  0012  1F00     R  	CLR	R_CURRENT_TRACKH
  56  0013  1F00     R  	CLR	R_CURRENT_TRACKL
  57  0014  1F00     R  	CLR	R_CURRENT_SENTENCEH
  58  0015  1F00     R  	CLR	R_CURRENT_SENTENCEL
  59  0016  0F07        	MOV	A,7
  60  0017  0080     R  	MOV	R_MAIN_VOLUME,A
  61  0018  2000     E  	CALL	_SET_VOLUME
  62  0019  2000     E  	CALL	_INITTIMEBASE			;;Open 1ms int flag
  63  001A              ;;
  64  001A              START_LOOP:
  65  001A  0001        	CLR	WDT
  66  001B  0005        	CLR	WDT2
  67  001C  3800     R  	SNZ	TimeBase_Flag
  68  001D  281A        	JMP	START_LOOP
  69  001E  3400     R  	CLR	TimeBase_Flag
  70  001F              _TIMEBASE_ISR:
  71  001F  208A        	CALL	KEYSCAN
  72  0020  3C05        	SZ	ACC.0
  73  0021  282F        	JMP	HANDLE_KEY0
  74  0022  3C85        	SZ	ACC.1
  75  0023  283A        	JMP	HANDLE_KEY1
  76  0024  3D05        	SZ	ACC.2
  77  0025  2851        	JMP	HANDLE_KEY2
  78  0026  3D85        	SZ	ACC.3
  79  0027  285C        	JMP	HANDLE_KEY3
  80  0028  3E05        	SZ	ACC.4
  81  0029  2873        	JMP	HANDLE_KEY4
  82  002A  3E85        	SZ	ACC.5
  83  002B  287A        	JMP	HANDLE_KEY5
  84  002C  3F05        	SZ	ACC.6
  85  002D  2880        	JMP	HANDLE_KEY6
  86  002E  281A        	JMP	START_LOOP
  87  002F              ;
  88  002F              HANDLE_KEY0:;PA0->GND : play current voice
  89  002F              	_PLAY_VOICE	R_CURRENT_TRACKH,R_CURRENT_TRACKL,0,R_MAIN_VOLUME,1
  89  002F  1F0E      1 	CLR [0EH]
  89  0030            1 ;;1nd parameter
  89  0030            1 IFNB R_CURRENT_TRACKH
  89  0030  0700     R1 	MOV	A, R_CURRENT_TRACKH
  89  0031  0080     E1 	MOV	_PLAY_VOICE0[1],A
  89  0032            1 ENDIF
  89  0032            1 ;;2nd parameter
  89  0032            1 IFNB R_CURRENT_TRACKL
  89  0032  0700     R1 	MOV	A, R_CURRENT_TRACKL
  89  0033  0080     E1 	MOV	_PLAY_VOICE0[0],A
  89  0034            1 ENDIF
  89  0034            1 ;;3nd parameter
  89  0034            1 IFNB 0
  89  0034            1 	IF 0==0
  89  0034  3400     E1 		CLR	_PLAY_VOICE1
  89  0035            1 	ELSE
  89  0035            1 		SET	_PLAY_VOICE1
  89  0035            1 	ENDIF
  89  0035            1 ELSE
"File: HT83F60_TPL_ADPCM_New.asm  Holtek Cross-Assembler  Version 2.86      Page 19

  89  0035            1 	CLR	_PLAY_VOICE1
  89  0035            1 ENDIF
  89  0035            1 ;;4nd parameter
  89  0035            1 IFNB R_MAIN_VOLUME
  89  0035  0700     R1 	MOV	A, R_MAIN_VOLUME
  89  0036  2000     E1 	CALL	_SET_VOLUME
  89  0037            1 ELSE
  89  0037            1 ENDIF
  89  0037            1 ;;5nd parameter
  89  0037            1 IFNB 1
  89  0037            1 	IF 1 == 1
  89  0037  3000     E1 		SET	_PLAY_VOICE2
  89  0038            1 	ELSE
  89  0038            1 		CLR	_PLAY_VOICE2
  89  0038            1 	ENDIF
  89  0038            1 ELSE
  89  0038            1 	CLR	_PLAY_VOICE2
  89  0038            1 ENDIF
  89  0038  2000     E1 	CALL	__PLAY_VOICE
  90  0039  2882        	JMP	KEYSCAN_RET
  91  003A              ;
  92  003A              HANDLE_KEY1:;PA1->GND : play next voice
  93  003A  1680     R  	SIZ	R_CURRENT_TRACKL
  94  003B  283D        	JMP	$+2
  95  003C  1480     R  	INC	R_CURRENT_TRACKH
  96  003D  0F09        	MOV	A,Last_Wav_FIle_Num
  97  003E  0200     R  	SUB	A,R_CURRENT_TRACKL
  98  003F  0F00        	MOV	A,Last_Wav_FIle_Num>>8
  99  0040  1200     R  	SBC	A,R_CURRENT_TRACKH
 100  0041  380A        	SNZ	C
 101  0042  2844        	JMP	$+2
 102  0043  2846        	JMP	$+3
 103  0044  1F00     R  	CLR	R_CURRENT_TRACKH
 104  0045  1F00     R  	CLR	R_CURRENT_TRACKL
 105  0046              	_PLAY_VOICE	R_CURRENT_TRACKH,R_CURRENT_TRACKL,0,R_MAIN_VOLUME,1
 105  0046  1F0E      1 	CLR [0EH]
 105  0047            1 ;;1nd parameter
 105  0047            1 IFNB R_CURRENT_TRACKH
 105  0047  0700     R1 	MOV	A, R_CURRENT_TRACKH
 105  0048  0080     E1 	MOV	_PLAY_VOICE0[1],A
 105  0049            1 ENDIF
 105  0049            1 ;;2nd parameter
 105  0049            1 IFNB R_CURRENT_TRACKL
 105  0049  0700     R1 	MOV	A, R_CURRENT_TRACKL
 105  004A  0080     E1 	MOV	_PLAY_VOICE0[0],A
 105  004B            1 ENDIF
 105  004B            1 ;;3nd parameter
 105  004B            1 IFNB 0
 105  004B            1 	IF 0==0
 105  004B  3400     E1 		CLR	_PLAY_VOICE1
 105  004C            1 	ELSE
 105  004C            1 		SET	_PLAY_VOICE1
 105  004C            1 	ENDIF
 105  004C            1 ELSE
 105  004C            1 	CLR	_PLAY_VOICE1
 105  004C            1 ENDIF
 105  004C            1 ;;4nd parameter
 105  004C            1 IFNB R_MAIN_VOLUME
 105  004C  0700     R1 	MOV	A, R_MAIN_VOLUME
 105  004D  2000     E1 	CALL	_SET_VOLUME
"File: HT83F60_TPL_ADPCM_New.asm  Holtek Cross-Assembler  Version 2.86      Page 20

 105  004E            1 ELSE
 105  004E            1 ENDIF
 105  004E            1 ;;5nd parameter
 105  004E            1 IFNB 1
 105  004E            1 	IF 1 == 1
 105  004E  3000     E1 		SET	_PLAY_VOICE2
 105  004F            1 	ELSE
 105  004F            1 		CLR	_PLAY_VOICE2
 105  004F            1 	ENDIF
 105  004F            1 ELSE
 105  004F            1 	CLR	_PLAY_VOICE2
 105  004F            1 ENDIF
 105  004F  2000     E1 	CALL	__PLAY_VOICE
 106  0050  2882        	JMP	KEYSCAN_RET
 107  0051              ;
 108  0051              HANDLE_KEY2:;PA2->GND : play current sentence
 109  0051              	_PLAY_SENTENCE	R_CURRENT_SENTENCEH,R_CURRENT_SENTENCEL,0,R_MAIN_VOLUME,0
 109  0051  1F0E      1 	CLR [0EH]
 109  0052            1 ;;1nd parameter
 109  0052            1 IFNB R_CURRENT_SENTENCEH
 109  0052  0700     R1 	MOV	A, R_CURRENT_SENTENCEH
 109  0053  0080     E1 	MOV	_PLAY_SENTENCE0[1],A
 109  0054            1 ENDIF
 109  0054            1 ;;2nd parameter
 109  0054            1 IFNB R_CURRENT_SENTENCEL
 109  0054  0700     R1 	MOV	A, R_CURRENT_SENTENCEL
 109  0055  0080     E1 	MOV	_PLAY_SENTENCE0[0],A
 109  0056            1 ENDIF
 109  0056            1 ;;3nd parameter
 109  0056            1 IFNB 0
 109  0056            1 	IF 0==0
 109  0056  3400     E1 		CLR	_PLAY_SENTENCE1
 109  0057            1 	ELSE
 109  0057            1 		SET	_PLAY_SENTENCE1
 109  0057            1 	ENDIF
 109  0057            1 ELSE
 109  0057            1 	CLR	_PLAY_SENTENCE1
 109  0057            1 ENDIF
 109  0057            1 ;;4nd parameter
 109  0057            1 IFNB R_MAIN_VOLUME
 109  0057  0700     R1 	MOV	A, R_MAIN_VOLUME
 109  0058  2000     E1 	CALL	_SET_VOLUME
 109  0059            1 ELSE
 109  0059            1 ENDIF
 109  0059            1 ;;5nd parameter
 109  0059            1 IFNB 0
 109  0059            1 	IF 0 == 1
 109  0059            1 		SET	_PLAY_SENTENCE2
 109  0059            1 	ELSE
 109  0059  3400     E1 		CLR	_PLAY_SENTENCE2
 109  005A            1 	ENDIF
 109  005A            1 ELSE
 109  005A            1 	CLR	_PLAY_SENTENCE2
 109  005A            1 ENDIF
 109  005A  2000     E1 	CALL	__PLAY_SENTENCE
 110  005B  2882        	JMP	KEYSCAN_RET
 111  005C              ;
 112  005C              HANDLE_KEY3:;PA3->GND : play next sentence
 113  005C  1680     R  	SIZ	R_CURRENT_SENTENCEL
 114  005D  285F        	JMP	$+2
"File: HT83F60_TPL_ADPCM_New.asm  Holtek Cross-Assembler  Version 2.86      Page 21

 115  005E  1480     R  	INC	R_CURRENT_SENTENCEH
 116  005F  0F08        	MOV	A,_Last_Sentence_FIle_Num
 117  0060  0200     R  	SUB	A,R_CURRENT_SENTENCEL
 118  0061  0F00        	MOV	A,Last_Wav_FIle_Num>>8
 119  0062  1200     R  	SBC	A,R_CURRENT_SENTENCEH
 120  0063  380A        	SNZ	C
 121  0064  2866        	JMP	$+2
 122  0065  2868        	JMP	$+3
 123  0066  1F00     R  	CLR	R_CURRENT_SENTENCEH
 124  0067  1F00     R  	CLR	R_CURRENT_SENTENCEL
 125  0068              	_PLAY_SENTENCE	R_CURRENT_SENTENCEH,R_CURRENT_SENTENCEL,0,R_MAIN_VOLUME,0
 125  0068  1F0E      1 	CLR [0EH]
 125  0069            1 ;;1nd parameter
 125  0069            1 IFNB R_CURRENT_SENTENCEH
 125  0069  0700     R1 	MOV	A, R_CURRENT_SENTENCEH
 125  006A  0080     E1 	MOV	_PLAY_SENTENCE0[1],A
 125  006B            1 ENDIF
 125  006B            1 ;;2nd parameter
 125  006B            1 IFNB R_CURRENT_SENTENCEL
 125  006B  0700     R1 	MOV	A, R_CURRENT_SENTENCEL
 125  006C  0080     E1 	MOV	_PLAY_SENTENCE0[0],A
 125  006D            1 ENDIF
 125  006D            1 ;;3nd parameter
 125  006D            1 IFNB 0
 125  006D            1 	IF 0==0
 125  006D  3400     E1 		CLR	_PLAY_SENTENCE1
 125  006E            1 	ELSE
 125  006E            1 		SET	_PLAY_SENTENCE1
 125  006E            1 	ENDIF
 125  006E            1 ELSE
 125  006E            1 	CLR	_PLAY_SENTENCE1
 125  006E            1 ENDIF
 125  006E            1 ;;4nd parameter
 125  006E            1 IFNB R_MAIN_VOLUME
 125  006E  0700     R1 	MOV	A, R_MAIN_VOLUME
 125  006F  2000     E1 	CALL	_SET_VOLUME
 125  0070            1 ELSE
 125  0070            1 ENDIF
 125  0070            1 ;;5nd parameter
 125  0070            1 IFNB 0
 125  0070            1 	IF 0 == 1
 125  0070            1 		SET	_PLAY_SENTENCE2
 125  0070            1 	ELSE
 125  0070  3400     E1 		CLR	_PLAY_SENTENCE2
 125  0071            1 	ENDIF
 125  0071            1 ELSE
 125  0071            1 	CLR	_PLAY_SENTENCE2
 125  0071            1 ENDIF
 125  0071  2000     E1 	CALL	__PLAY_SENTENCE
 126  0072  2882        	JMP	KEYSCAN_RET
 127  0073              ;
 128  0073              HANDLE_KEY4:;PA4->GND : volume up
 129  0073  0700     R  	MOV	A,R_MAIN_VOLUME
 130  0074  0A07        	SUB	A,07H
 131  0075  3C0A        	SZ	C
 132  0076  2882        	JMP	KEYSCAN_RET
 133  0077  1480     R  	INC	R_MAIN_VOLUME
 134  0078  2000     E  	CALL	_VOLUMEUP
 135  0079  2882        	JMP	KEYSCAN_RET
 136  007A              ;
"File: HT83F60_TPL_ADPCM_New.asm  Holtek Cross-Assembler  Version 2.86      Page 22

 137  007A              HANDLE_KEY5:;PA5->GND : volume down
 138  007A  1080     R  	SZ	R_MAIN_VOLUME
 139  007B  287D        	JMP	$+2
 140  007C  2882        	JMP	KEYSCAN_RET
 141  007D  1580     R  	DEC	R_MAIN_VOLUME
 142  007E  2000     E  	CALL	_VOLUMEDOWN
 143  007F  2882        	JMP	KEYSCAN_RET
 144  0080              ;
 145  0080              HANDLE_KEY6:;PA6->GND : stop playing
 146  0080  2000     E  	CALL	_STOPCH0
 147  0081  2882        	JMP	KEYSCAN_RET
 148  0082              ;;
 149  0082              ;;
 150  0082              ;;
 151  0082              KEYSCAN_RET:
 152  0082  281A        	JMP	START_LOOP
 153  0083              ;
 154  0083              PUBLIC	_HT82V733ENABLE
 155  0083              EXTERN	_HT82V733ENABLE_RET:NEAR
 156  0083              _HT82V733ENABLE:
 157  0083              ;************************************************************
 158  0083              ;	Open HT82V733 OP here
 159  0083              ;************************************************************
 160  0083  3595        clr pbc.3
 161  0084  3594        clr pb.3
 162  0085  2800     E  	JMP	_HT82V733ENABLE_RET
 163  0086              ;
 164  0086              PUBLIC	_HT82V733DISABLE
 165  0086              EXTERN	_HT82V733DISABLE_RET:NEAR
 166  0086              _HT82V733DISABLE:
 167  0086              ;************************************************************
 168  0086              ;	Open HT82V733 OP here
 169  0086              ;************************************************************
 170  0086  3595        clr pbc.3
 171  0087  3194        set pb.3
 172  0088  2800     E  	JMP	_HT82V733DISABLE_RET
 173  0089              ;
 174  0089              PUBLIC	_CUE_EVENT
 175  0089              EXTERN	_CUE_EVENT_RET:NEAR
 176  0089              _CUE_EVENT:
 177  0089              ;************************************************************
 178  0089              ;	Handle the CUE event
 179  0089              ;************************************************************
 180  0089  2800     E  	JMP	_CUE_EVENT_RET
 181  008A              ;
 182  008A              ;
 183  008A              ;
 184  008A              ; Return ACC, one bit show one key
 185  008A              ;
 186  008A              KEYSCAN:
 187  008A  0112        	CPLA	PA
 188  008B  0E7F        	AND	A,7FH
 189  008C  0200     R  	SUB	A,R_KEYSBAK
 190  008D  390A        	SNZ	Z
 191  008E  289C        	JMP	KEY_STATE_CHANGED
 192  008F              SAME_KEY:
 193  008F  1480     R  	INC	R_DEBOUNCE_TIME
 194  0090  0700     R  	MOV	A,R_DEBOUNCE_TIME
 195  0091  0A4E        	SUB	A,C_40MS
 196  0092  380A        	SNZ	C
"File: HT83F60_TPL_ADPCM_New.asm  Holtek Cross-Assembler  Version 2.86      Page 23

 197  0093  28A4        	JMP	HAVE_NO_KEY
 198  0094  1080     R  	SZ	R_KEYSBAK
 199  0095  2897        	JMP	$+2
 200  0096  28A1        	JMP	ALL_KEY_UP
 201  0097  3800     R  	SNZ	B_ENABLE_KEY
 202  0098  28A4        	JMP	HAVE_NO_KEY
 203  0099  3400     R  	CLR	B_ENABLE_KEY
 204  009A  0700     R  	MOV	A,R_KEYSBAK
 205  009B  0003        	RET
 206  009C              KEY_STATE_CHANGED:
 207  009C  1F00     R  	CLR	R_DEBOUNCE_TIME
 208  009D  0112        	CPLA	PA
 209  009E  0E7F        	AND	A,7FH
 210  009F  0080     R  	MOV	R_KEYSBAK,A
 211  00A0  28A4        	JMP	HAVE_NO_KEY
 212  00A1              ALL_KEY_UP:
 213  00A1  3000     R  	SET	B_ENABLE_KEY
 214  00A2  3C00     E  	SZ	_FSTANDBY0
 215  00A3  0002        	HALT
 216  00A4              HAVE_NO_KEY:
 217  00A4  1F05        	CLR	ACC			;;have no key
 218  00A5  0003        	RET
 219  00A6              


        0 Errors

⌨️ 快捷键说明

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