📄 data_disposal.lst
字号:
194 1 if (add>=9)
195 1 add++;
196 1 else if (add==0)
197 1 add=9;
198 1 else if (add<=4)
199 1 if (add>0)
200 1 add--;
201 1 z=add;
202 1 return z;
203 1 }
204
205 uch tone_dec(add) //音调减
206 {
207 1 if (add>=0)
208 1 if (add<4)
209 1 add++;
210 1 if (add==9)
211 1 add=0;
212 1 if (add>9)
213 1 add--;
214 1 z=add;
215 1 return z;
216 1 }
217
218 /* uch series_m4094_send() //主板4094串行数据发送程序
219 {
220
221 }*/
222
223 uch series_p4094_send() //功放板4094串行数据发送程序
224 {
225 1 uch d,i;
226 1 for (i=0;i<8;i++)
227 1 {
228 2
229 2 d=power_4094_data<<i;
230 2 if (d&0x80==0)
231 2 DATA=0;
232 2 else
233 2 DATA=1;
234 2 CLOCK=1;
235 2 // delay(5);
236 2 CLOCK=0;
237 2 }
238 1 // store(room);
239 1 return z;
240 1 }
C51 COMPILER V7.50 DATA_DISPOSAL 10/02/2007 16:52:26 PAGE 5
241
242 /* uch series_p61510_send() //主板61510串行数据发送程序
243 {
244
245 }*/
246
247
248
249 //*****************************
250 /*易犯错误:将case后冒号写成分号*/
251 //*****************************
252 //本函数旨在为发送准备格式满足的数据
253 uch data_disp() //数据处理
254 {
255 1 uch k;
256 1 for (k=0;k<100;k++)
257 1 {
258 2 switch(command)
259 2 {
260 3
261 3 /***************** 电源开操作************************/
262 3 case 1:
263 3 power_state[0]=power_state[0]|0x01<<(power-1); // 既保持原有状态不变又增添新的路数
264 3 series_sign_type=1;
265 3
266 3 break ;
267 3
268 3 /***************** 电源关操作************************/
269 3 case 2:
270 3 power_state[0]=power_state[0]^0x01<<(power-1);
271 3 series_sign_type=1;
272 3 break;
273 3
274 3 /*****************L通道第一进程音量增*****************/
275 3 case 3: //L通道第一进程音量增
276 3 if (first_volume>0)
277 3 {
278 4 first_volume--;
279 4 volume_data_L[room][0]=(first_volume<<3)|(second_volume>>4);
280 4 series_sign_type=3;
281 4 }
282 3 break;
283 3
284 3 /*****************L通道第一进程音量减******************/
285 3 case 4: //L通道第一进程音量减
286 3 if (first_volume<16)
287 3 {
288 4 first_volume++;
289 4 volume_data_L[room][0]=(first_volume<<3)|(second_volume>>4);
290 4 series_sign_type=3;
291 4 }
292 3 break;
293 3
294 3 /*******************R通道第一进程音量增****************/
295 3 case 5: //R通道第一进程音量增
296 3 if (first_volume>0)
297 3 {
298 4 first_volume--;
299 4 volume_data_R[room][0]=(first_volume<<3)|(second_volume>>4);
300 4 series_sign_type=3;
301 4 }
302 3 break;
C51 COMPILER V7.50 DATA_DISPOSAL 10/02/2007 16:52:26 PAGE 6
303 3
304 3 /********************R通道第一进程音量减*****************/
305 3 case 6: //R通道第一进程音量减
306 3 if (first_volume<16)
307 3 {
308 4 first_volume++;
309 4 volume_data_R[room][0]=(first_volume<<3)|(second_volume>>4);
310 4 series_sign_type=3;
311 4 }
312 3 break;
313 3
314 3 //////////////////////第二进程音量调节//////////////////////////////////
315 3 /////音量数据数组中的元素由first_volume与second_volume构成first_volume
316 3 /////5位,second_volume7位.为保证数组中每个元素8位,将first_volume左移3位
317 3 /////空暇的地方给second_volume的高三位.作为数组的第一成员,数组的第二成员
318 3 /////由second_volume的后四位加固定码0x0D组成.
319 3 /******************L通道第二进程音量增********************/
320 3 case 7: //L通道第二进程音量增
321 3 if (second_volume>0)
322 3 {
323 4 second_volume--;
324 4 volume_data_L[room][0]=(first_volume<<3)|(second_volume>>4);
325 4 volume_data_L[room][1]=(second_volume>>3)|0x0D;
326 4 series_sign_type=3;
327 4 }
328 3 break;
329 3
330 3 /********************L通道第二进程音量减*******************/
331 3 case 8: //L通道第二进程音量减
332 3 if (first_volume<64)
333 3 {
334 4 second_volume++;
335 4 volume_data_L[room][0]=(first_volume<<3)|(second_volume>>4);
336 4 volume_data_L[room][1]=(second_volume>>3)|0x0D;
337 4 series_sign_type=3;
338 4 }
339 3 break;
340 3
341 3 /********************R通道第二进程音量增*****************/
342 3 case 9: //R通道第二进程音量增
343 3 if (first_volume>0)
344 3 {
345 4 second_volume--;
346 4 volume_data_R[room][0]=(first_volume<<3)|(second_volume>>4);
347 4 volume_data_R[room][1]=(second_volume>>3)|0x0D;
348 4 series_sign_type=3;
349 4 }
350 3 break;
351 3
352 3 /***********************R通道第二进程音量减****************/
353 3 case 10: //R通道第二进程音量减
354 3 if (first_volume<64)
355 3 {
356 4 second_volume++;
357 4 volume_data_R[room][0]=(first_volume<<3)|(second_volume>>4);
358 4 volume_data_R[room][1]=(second_volume>>3)|0x0D;
359 4 series_sign_type=3;
360 4 }
361 3 break;
362 3
363 3 ////////本系统有8路音源,每路又可进行内部(前六路mp3或后两路fm)或外部选择。
364 3 ////////M61510有5个音源输入,第5
C51 COMPILER V7.50 DATA_DISPOSAL 10/02/2007 16:52:26 PAGE 7
365 3 ////////假设音源选择采用搜索,先搜内部音源
366 3
367 3 // uch power_configure; //功放板配置(1-16)
368 3 // uch source_configure[3]={0x06,0x02,0x08};
369 3 //音源配置第一字节表示内置mp3音源数,
370 3 //第二字节表示内部FM音源数
371 3 //第三字节表示外部音源数
372 3 //约定:对硬件而言内外音源配置都从头开始,中间不许有间隔
373 3 //source_repertoire[8]音源节目选择表
374 3 //外部音源节目数量,例:电视节目100个台;约定:至于何种音源本机不管。
375 3 //音源选择分两种情况。1:外部音源最多8类,每类最多占8个通道,最大组合为8
376 3 //例:第一类DVD占两个通道,其他占3个,空闲3个
377 3 //2:内部音源按顺序选择
378 3 /*
379 3 音源处理程序包含两个参数。
380 3 1.source_old,表示房间适用的音源号
381 3 2.source_state,表示音源占用情况
382 3 */
383 3
384 3 //source_state[2]={0x00,0x00}; //音源占用状态。source_state[0]内部音源,source_state[1]外部音源
385 3
386 3 /**************************外部音源1********************/
387 3 case 11: //外部音源1
388 3 {
389 4 if (source_old[0]!=0)
390 4 {
391 5
392 5 source_state[1]=(source_state[1]&(~(0x01<<(source_old[0]-1))));//清除原先占用状态记录
393 5
394 5 } //
395 4
396 4 if ((source_state[1]|0x01)-source_state[1]>0) //若音源占用状态表明没被占用&-与
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -