久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MT8880振鈴檢測摘機DTMF接收單片機程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:144332 發表于 2016-10-25 10:32 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
振鈴檢測摘機DTMF接收程序
完整代碼下載:
振鈴檢測摘機DTMF接收例程.rar (17.48 KB, 下載次數: 51)

部分源碼預覽:
  1. //-----------------------------------------------------------------------------
  2. // MT8880_DTMF_receiving.c
  3. //-----------------------------------------------------------------------------
  4. // Copyright 2017 尖峰學子.
  5. //
  6. // Program Description:
  7. //
  8. // 這是用于測試MT8880模塊接收DTMF信號功能
  9. // 首先,在手機撥打了號碼后,通過振鈴檢測,自動摘機,
  10. // 接收DTMF信號通過串口發送到PC機,并且通過P1上連接的LED來顯示。通過按#號鍵可以遠程關閉電話機
  11. // 端口說明:
  12. // P2^0--D0
  13. // P2^1--D1
  14. // P2^2--D2
  15. // P2^3--D3
  16. // P2^4--R/W
  17. // P2^5--RSO
  18. // P2^7--zj_control  控制摘掛機
  19. // P3^2--zljc        檢測振鈴信號               
  20. // P3^3--IRQ         接收DTMF時產生中斷信號接外部中斷1        
  21. // P1                接八個led
  22. //
  23. // How To Test:
  24. //
  25. // 1) 將模塊各個端口與單片機鏈接好;
  26. // 3) 通過手機撥打該電話號碼可以通過示波器觀察振鈴檢測端ZLJC的信號;
  27. // 2) 用手機撥打該電話后,運行程序后可按手機上號碼;通過觀察窗口可以發現接收到的數字正是你按下的鍵值
  28. //
  29. //
  30. // 硬件要求:       51單片機 電話線            晶振:12M        
  31. // Target:         MT8880 AND  AT89C51
  32. // Tool chain:     Keil C51 7.50 / Keil EVAL C51
  33. // Command Line:   None

  34. //-----------------------------------------------------------------------------
  35. // Include Files
  36. //-----------------------------------------------------------------------------
  37. #include <reg51.h>
  38. //-----------------------------------------------------------------------------
  39. // Global Constants
  40. //-----------------------------------------------------------------------------
  41. #define uchar unsigned char
  42. #define uint unsigned int

  43. sbit zj_control=P2^7;//控制摘掛機;
  44. uchar rx_num; //接收數據寄存器;
  45. uchar ring_num; //振鈴次數;
  46. //-----------------------------------------------------------------------------
  47. // Function Prototypes
  48. //-----------------------------------------------------------------------------
  49. void initialize(void); //MT8880芯片初始化函數
  50. void rece_init(void); //MT8880接收初始化函數
  51. void StartUART( void );//串口初始化函數
  52. void R_S_Byte(uchar R_Byte);//串口發送子函數

  53. //-----------------------------------------------------------------------------
  54. // /* 主函數(主程序) */
  55. //-----------------------------------------------------------------------------
  56. void main(void)
  57. {
  58.   P2=0xff;        //端口初始化
  59.   StartUART();    //串口初始化
  60.   initialize();          //MT8880芯片初始化子函數;
  61.   rece_init();          //接收初始化子函數;

  62.   zj_control=1;
  63.   for(;;) ;             //等待接收         

  64. }
  65. //-----------------------------------------------------------------------------
  66. // /* MT8880芯片初始化子函數 */
  67. //-----------------------------------------------------------------------------
  68. void initialize(void)
  69. { P2=0x3f;  /* 讀SR */
  70.   P2=0x20;  /* CRA=0000 */
  71.   P2=0x20;  /* CRA=0000 */
  72.   P2=0x28;  /* CRA=1000 */
  73.   P2=0x20;
  74.   }  /* CRB=0000 */
  75. //-----------------------------------------------------------------------------
  76. // /*接收初始化子函數 */
  77. //-----------------------------------------------------------------------------
  78. void rece_init(void)
  79. {
  80. P2=0x24;  /* CRA=0100 */ //設置為 DTMF收發模式
  81. EA=1;  //開總中斷
  82. ES=1;  //開串口接收中斷
  83. EX0=1; //開外中斷0:用于檢測振鈴信號
  84. IT0=1; // 邊沿觸發

  85. EX1=0; //關外中斷1:用于接收DTMF信號
  86. IT1=1; //邊沿觸發
  87. }
  88. //-----------------------------------------------------------------------------
  89. // /*振鈴檢查中斷服務程序 */
  90. //請先用示波器測試振鈴信號端,在有電話撥入的時候,是否產生了振鈴信號再接入單片機
  91. //入接入號不能產生中斷信號,考慮是否下拉信號比較入,可考慮接個下拉電阻。
  92. //-----------------------------------------------------------------------------


  93. void int0(void) interrupt 0
  94. {
  95.   ring_num++;//每次振鈴將會參數25個左右的中斷脈沖,
  96.   R_S_Byte(11);//發送一個0x0B到串口;

  97.   if(ring_num>=50) //在振鈴響三下的時候自動摘機。

  98.   {
  99.     ring_num=0;//清除振鈴計數寄存器
  100.     zj_control=0;         //有來電自動摘機
  101.     EX0=0;//關閉外部中斷0
  102.     EX1=1;//開外部中斷1 準備接收DTMF信號
  103.   }
  104. }
  105. //-----------------------------------------------------------------------------
  106. // /*dtmf接收中斷服務程序 */
  107. //-----------------------------------------------------------------------------
  108. void int1(void) interrupt 2
  109. { P2=0x3f;  /* 讀SR */
  110.   P2=0x1f;  /* 讀RDR */
  111.   rx_num=P2&0x0f;   //讀取數據,存入接收寄存器中;
  112.   R_S_Byte(rx_num);        //將接收到的DTMF信號轉為數字后通過串口發送到PC機;
  113.   P1=rx_num;        //通過P1端口上的LED顯示接收到的數據;
  114.                     //也可如此通過控制IO口的方式進而控制繼電器的開關,達到控制電器的目的

  115.   if(rx_num==12)    //#號鍵遠程關閉電話機。
  116.   {
  117.    zj_control=1;            //按#號鍵遠程關閉電話機
  118.    EX0=1;//打開外部中斷0         ,再次進入振鈴檢查
  119.    EX1=0;//關閉外部中斷1
  120.   }
  121.   //此處程序可以發揮,加入密碼識別,家電控制,語音提示信號切入,等等
  122. }


  123. //-----------------------------------------------------------------------------
  124. // /* 串口初始化子函數 */
  125. //-----------------------------------------------------------------------------
  126. void StartUART( void )
  127. {                                                          //波特率9600
  128.      SCON = 0x50;  //串口工作方式選擇,選擇在工作方式1
  129.      TMOD = 0x20;  
  130.      TH1 = 0xfd;
  131.      TL1 =
  132. ………………
  133. ………………
復制代碼

MT8880模塊資料:http://www.zg4o1577.cn/bbs/dpj-57219-1.html

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2016-10-25 14:25 | 只看該作者
51黑有你更精彩!!!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 特级丰满少妇一级aaaa爱毛片 | 国产精品久久久久无码av | 欧美日日 | 99re99| 国产成人jvid在线播放 | 999精品在线观看 | 精品日韩一区二区 | 午夜精品久久久久久久久久久久久 | 综合天天久久 | 婷婷去俺也去 | 综合国产| 国产精品久久久久久久久久久免费看 | 日韩综合一区 | 久久久久久久久久久久久九 | 久久久久久久久久久久久九 | 久久久久亚洲 | 国产精品美女 | 日本亚洲一区 | 视频一区在线播放 | 亚洲国产日韩欧美 | 自拍视频国产 | 国产精品视频999 | 在线免费观看黄色网址 | 成人影院网站ww555久久精品 | cao在线 | 91在线免费观看 | 自拍视频一区二区三区 | www.97国产| 国产一区二区三区在线看 | 亚洲精品女人久久久 | 成人国产免费视频 | 久久久入口 | 蜜臀av日日欢夜夜爽一区 | 国产精品1区 | 久久久精 | a国产视频 | 日韩精品免费视频 | 亚洲精品电影 | 精品欧美一区二区三区久久久 | 久久综合九色综合欧美狠狠 | 精品国产亚洲一区二区三区大结局 |