×

利用51单片机2进8出的程控交换机C语言源码

消耗积分:2 | 格式:zip | 大小:368KB | 2017-03-30

王小友

分享资料个

这个是利用51单片机加上超长的语音芯片合为一体的2进8出的程控交换机C语言源码

  /**************************

  6-23日 修改总台来显

  *****************************/

  extern void Ext_Object(void)

  {

  for(i=0;i《8;i++)

  {

  if( EXT_OUTWAY_GRADE[i] == 7) // 闭锁不查询

  {

  continue;

  }

  //检测高位状态

  switch( EXT_STATE[i] & 0x0f )

  {

  //空闲 检测有没有摘机

  case EXT_IDLE_STATE:

  //检测分机被占用 被呼叫

  k = EXT_STATE[i] & 0xf0;

  if( k ) // 10内线振铃 20人工 30电脑振铃 40群呼

  {

  if( k == 0x10 ) //内线振铃

  EXT_STATE[i] = EXT_RING_EXT ;

  else if( k == 0x20 )

  EXT_STATE[i] = TRK_MANUALRING_EXT ;//人工值班振铃

  else if( k == 0x30 )

  EXT_STATE[i] = TRK_AUTORING_EXT ;//电脑值班振铃

  else if( k == 0x40 )

  EXT_STATE[i] = TRK_GROUP_RING ; //群呼振铃

  else if( k == 0x60) // 转接振铃。..。.

  EXT_STATE[i] = EXT_SHIFT_RING_STATE;

  EXT_RING_SIGN[i] = 0; //标志位复位。..。.

  }

  //检测分机释放摘机

  else if( (EXT_HOOK & TABLE[i]) == 0 ) //判断摘机吗? 为0摘机

  {

  //分机状态转移

  EXT_ACTION[i] = HOOK_ON;

  //内线提机 本局的话。。。。

  if( EXT_OUTWAY_GRADE[i] ==6 ||(EXT_EXTENSION_CHANGE_TRK_SIGN & TABLE[i]) == 0 &&

  ((EXT_HOOK_WAY & TABLE[i]) == 0 || (EXT_TRK_CHANGE_EXTENSION_SIGN&TABLE[i]) !=0 ) ) //内线0 分机提机方式

  {

  for(N=2;N《6;N++) //选择内线绳路

  {

  if( TRK_STATE[N] == EXTENSION_IDLE_STATE ) // 有不空闲

  {

  Close_MAIN_EXT(); //判断分机是不是某条外线的总机 是的话就关闭。..。.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !