📄 teloperate.lst
字号:
314 4 OutsideTelRingNum[i][1]=temp;
315 4 }
316 3 else
317 3 {
318 4 OutsideTelRingNum[i][0]=0;
319 4 OutsideTelRingNum[i][1]=0;
320 4 OutsideTelRingNum[i][2]=0;
321 4 }
322 3 }
323 2 }
324 1
325 1 EnDetectRing=0;
326 1 PORT=0xff;
327 1 OutsideTelRingState=PORT;
328 1 EnDetectRing=1;
329 1
330 1 for(i=0;i<OUTSIDETELNUM;i++)
331 1 {//检测外部是否有振铃信号
332 2 State_Flag=(bit)((OutsideTelRingState>>i)&0x01);
333 2 Store_Flag=(bit)((OutsideTelRingStateStore>>i)&0x01);
334 2
335 2 if(State_Flag!=Store_Flag){break;}
336 2 }
337 1 if(State_Flag==Store_Flag){return;} //无振铃信号 则返回
338 1
339 1 for(i=0;i<2;i++)//去抖动
340 1 {
341 2 EnDetectRing=0;
342 2 PORT=0xff;
343 2 OutsideTelRingState=PORT;
344 2 EnDetectRing=1;
345 2
346 2 for(j=0;j<OUTSIDETELNUM;j++)
347 2 {//检测外部是否有振铃信号
348 3 State_Flag=(bit)((OutsideTelRingState>>j)&0x01);
349 3 Store_Flag=(bit)((OutsideTelRingStateStore>>j)&0x01);
350 3 if(State_Flag!=Store_Flag){break;}
351 3 }
352 2 if(State_Flag==Store_Flag){return;}
353 2 //如果为干扰则返回
354 2 }
355 1
356 1 EnDetectRing=0;
357 1 PORT=0xff;
358 1 OutsideTelRingState=PORT;
359 1 EnDetectRing=1;
360 1
361 1 for(i=0;i<OUTSIDETELNUM;i++) //振铃记数
362 1 {
363 2 State_Flag=(bit)((OutsideTelRingState>>i)&0x01);
364 2 Store_Flag=(bit)((OutsideTelRingStateStore>>i)&0x01);
365 2
C51 COMPILER V7.06 TELOPERATE 11/15/2007 09:02:22 PAGE 7
366 2 if(State_Flag)
367 2 {
368 3 if(Store_Flag)
369 3 {//高电平
370 4 ;
371 4 }
372 3 else
373 3 {//上升沿
374 4 OutsideTelRingNum[i][0]=0;
375 4 OutsideTelRingNum[i][1]=0;
376 4 }
377 3 }
378 2 else
379 2 {
380 3 if(Store_Flag)
381 3 {//振铃信号下降沿
382 4 OutsideTelRingNum[i][0]=0; //初始化记时
383 4 OutsideTelRingNum[i][1]=1;
384 4 }
385 3 else
386 3 {//底电平
387 4
388 4 }
389 3 }
390 2 }
391 1 OutsideTelRingStateStore=OutsideTelRingState;
392 1 }
393
394 void ReleaseOutsideTelRingCheckRes(UCHAR linenum)
395 {
396 1 OutsideTelRingNum[linenum][0]=0;
397 1 OutsideTelRingNum[linenum][1]=0;
398 1 OutsideTelRingNum[linenum][2]=0;
399 1 }
400
401 void TakeOutsideLine(UCHAR OutsideLineNum)
402 {
403 1 idata UCHAR i,j;
404 1 for(i=0;i<OUTSIDETELNUM;i++)
405 1 {
406 2 if(i==OutsideLineNum)
407 2 {
408 3 j=0x01;
409 3 j=(j<<i); //将对应的位置一,摘机
410 3 OutsideTelLineState=OutsideTelLineState|j;
411 3 break;
412 3 }
413 2 }
414 1 if(i>=OUTSIDETELNUM)
415 1 {
416 2 return;
417 2 }
418 1 else
419 1 {
420 2 //rs232write(OutsideTelLineState);
421 2 PORT=OutsideTelLineState;
422 2 EnTakeLine=0;
423 2 EnTakeLine=1;
424 2 EnTakeLine=0;
425 2 PORT=0xff;
426 2 return;
427 2 }
C51 COMPILER V7.06 TELOPERATE 11/15/2007 09:02:22 PAGE 8
428 1 }
429
430 void HoldOutsideLine(UCHAR OutsideLineNum)
431 {
432 1 idata UCHAR i,j;
433 1 for(i=0;i<OUTSIDETELNUM;i++)
434 1 {
435 2 if(i==OutsideLineNum)
436 2 {
437 3 j=0x01;
438 3 j=(j<<i);
439 3 j=(j^0xff); //将对应的位置零,挂机
440 3 OutsideTelLineState=OutsideTelLineState&j;
441 3 break;
442 3 }
443 2 }
444 1 if(i>=OUTSIDETELNUM)
445 1 {
446 2 return;
447 2 }
448 1 else
449 1 {
450 2 //rs232write(OutsideTelLineState);
451 2 PORT=OutsideTelLineState;
452 2 EnTakeLine=0;
453 2 EnTakeLine=1;
454 2 EnTakeLine=0;
455 2
456 2 PORT=0xff;
457 2 return;
458 2 }
459 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2348 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 7
IDATA SIZE = 33 18
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -