📄 ht83f60_tpl_adpcm_new.lst
字号:
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 + -