欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3266|回復: 1
打印 上一主題 下一主題
收起左側

51單片機驅動MT8880雙音頻接收發送芯片C語言程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:51773 發表于 2013-7-19 02:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /*     庫端電話程式序  */
  2. /*************************************************************/
  3. #include<reg52.h>
  4. #include<intrins.h>
  5. #define uchar unsigned char
  6. /*************************MT8880****************************/
  7. void InintMT(uchar a,b);
  8. void MtSend(uchar i);
  9. uchar MtReceive(void);
  10. void ReMtControl(void);
  11. /************************************************************/
  12. /************************************************************/
  13. /************************呼叫處理程序************************/
  14. /************************************************************/
  15. void CallPhone(void)
  16. {
  17.   uchar *p;
  18.   uchar i,a,b,c;
  19.   ZJ=0;
  20.   CallLed=0;

  21.   Delay1();
  22.   Delay1();

  23.                           //拔號
  24.   InintMT(0xff,0x00);
  25.   i=0;                        
  26.   p=SendData;
  27.   while(1)
  28.    {
  29.     a=*(p+i);
  30.     if(a==0x0c)break;
  31.     MtSend(a);
  32.     SELET=1;
  33.     send(a);
  34.     SELET=0;
  35.     i++;
  36.    }
  37.   Delay1();
  38.   Delay1();
  39.   Delay1();

  40.                            //等待對方接通電話,同發中隊標志號
  41.   InintMT(0xfd,0x00);
  42.   EA=0;
  43.   EX1=0;  
  44.   
  45.   b=0x20;
  46.   while(b!=0)
  47.     {
  48.       a=0xff;
  49.       MtSend(HAdd);
  50.       i=0xff;
  51.       while(i!=0)
  52.          {
  53.            c=0xff;
  54.            while(c!=0)
  55.             {
  56.              f=0;
  57.              if(MTIRQ==0)
  58.                  {
  59.                   if(HAdd==MtReceive())goto Start;
  60.                  }

  61.              if(Key()==1) goto End;
  62.              c--;
  63.             }
  64.            i--;
  65.          }
  66.           if(f==0x01)break;
  67.      b--;
  68.      if(b==0)goto End;   
  69.    }



  70. Start:
  71.   while(f!=0x0f)
  72.    {
  73.     if(Key()==1) goto End;
  74.     if(MTIRQ==0)f=MtReceive();
  75.     if(f==0x0f)
  76.       {
  77.        Delay1();
  78.        Delay1();
  79.        Delay1();
  80.        MtSend(LAdd);
  81.       }
  82.    }

  83.    
  84.   f=0;
  85.   Delay1();
  86.   Delay1();
  87.   EA=1;
  88.   ES=1;
  89.                                   //通話,同時收發數據
  90.   delet=1;
  91.   while(Key()==0)
  92.     {
  93.      if(delet==0)goto End;
  94.      if(MTIRQ==0)ReMtControl();

  95.      if(RSuo==0&&id==1)           //查詢******了沒有
  96.        {  
  97.          Delay1();
  98.          if(RSuo==0&&id==1)
  99.            {
  100.              MtSend(0x03);
  101.              id=0;
  102.            }
  103.        }
  104.      if(RSuo==1&&id==0)          //查詢關鎖了沒有
  105.        {
  106.         Delay1();
  107.         if(RSuo==1&&id==0)
  108.           {
  109.             MtSend(0x04);
  110.             id=1;
  111.           }
  112.         }
  113.     }

  114. End:
  115.   Delay1();
  116.   MtSend(0x05);
  117.   delet=1;
  118.   id=1;
  119.   ZJ=1;
  120.   EA=0;
  121.   ES=0;
  122.   EX1=0;
  123.   CallLed=1;
  124. }


  125. /************************************************************/
  126. /************************************************************/
  127. /***********************MT8880發送子程序*********************/
  128. /************************************************************/

  129. void MtSend(uchar i)
  130. {
  131.   bit b;

  132.   MTCS=0;
  133.   MTCK=0;
  134.   MTRS0=0;
  135.   MTRW=0;
  136.   P1=i;
  137.   P1=i;
  138.   P1=i;
  139.   MTCK=1;
  140.   Delay2();
  141.   MTCK=0;
  142.   MTCS=1;
  143.   Delay1();

  144.   P1=0xff;
  145.   MTRS0=1;
  146.   MTRW=1;
  147.   MTCS=0;
  148.   MTCK=1;
  149. down:   
  150.   b=b1;
  151.   if(b==0)goto down;
  152.   MTCK=0;
  153.   MTCS=1;

  154.   MTIRQ=1;
  155.   RI=0;
  156.   MTCS=1;
  157.   SELET=0;
  158. }



  159. /************************************************************/
  160. /************************************************************/
  161. /*************************接收子程序*************************/
  162. /************************************************************/

  163. uchar MtReceive(void)
  164. {
  165.    bit b;
  166.    uchar i;
  167.    EA=0;

  168.    MTCK=0;
  169.    P1=0xff;
  170.    MTRS0=1;
  171.    MTRW=1;
  172.    MTCS=0;
  173.    MTCK=1;
  174. down:   
  175.    b=b2;
  176.    if(b==0)goto down;
  177.    MTCK=0;
  178.    MTCS=1;

  179.    MTRS0=0;
  180.    MTRW=1;
  181.    MTCS=0;
  182.    MTCK=1;
  183.    MTCK=1;
  184.    P1=0xff;
  185.    i=P1&0x0f;
  186.    MTCK=0;
  187.    MTCS=1;

  188.    MTRS0=1;
  189.    MTRW=1;
  190.    MTCS=0;
  191.    MTCK=1;
  192. repeat:
  193.    b=b2;
  194.    if(b==1)goto repeat;
  195.    MTCK=0;
  196.    MTCS=1;   

  197.    return(i&0x0f);
  198.    EA=1;
  199. }



  200. /************************************************************/
  201. /************************************************************/
  202. /********************MT8880初始化子程序**********************/
  203. /************************************************************/
  204. void InintMT(uchar a,b)
  205. {
  206.    
  207.   MTCS=0;                  
  208.   MTCK=0;
  209.   MTRS0=1;
  210.   MTRW=0;
  211.   P1=a;
  212.   Delay2();
  213.   MTCK=1;
  214.   MTCS=1;

  215.   MTCK=0;
  216.   P1=b;
  217.   MTCS=0;
  218.   MTCK=1;
  219.   Delay2();
  220.   MTCK=0;
  221.   MTCS=1;
  222.   Delay2();

  223. }



  224. /**********************************************************/
  225. /**********************************************************/
  226. /**********************發送延遲****************************/
  227. /**********************************************************/

  228. void Delay1(void)            
  229. {  
  230.    uchar i;
  231.    uchar a,b;
  232.    a=0xff;
  233.    b=0xff;


  234.    while(b!=0)
  235.    {
  236.    i=a;
  237.    while(i!=0)
  238.     {
  239.      i--;
  240.     }
  241.    b--;
  242.    }
  243.    TI=0;

  244. }

  245. void Delay2(void)            
  246. {  
  247.    uchar i;
  248.    uchar a,b;
  249.    a=0xff;
  250.    b=0x10;

  251.    while(b!=0)
  252.    {
  253.    i=a;
  254.    while(i!=0)
  255.     {
  256.      i--;
  257.     }
  258.    b--;
  259.    }
  260.    TI=0;
  261. }
  262. void Delay(uchar a, i)             //定時器0,方式1
  263. {   
  264.    EA=0;
  265.    while(i!=0)
  266.     {
  267.      TMOD=0X11;
  268.      TH0=a;
  269.      TL0=0x00;
  270.      TR0=1;
  271.      while(TF0==0);
  272.      TF0=0;
  273.      TR0=0;
  274.     }
  275.   EA=1;
  276. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:63747 發表于 2014-7-18 13:12 | 只看該作者
這個好,可以做自動應答電話~~
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表