新建 文本文档.txt
上传用户:woden7206
上传日期:2015-11-28
资源大小:14486k
文件大小:1k
源码类别:

单片机开发

开发平台:

MultiPlatform

  1. #include <reg52.h>
  2. #include"type.h"
  3. #include"MT8880.h"
  4. /* 延时子函数 */
  5. void delay(UINT l)
  6. UINT i;
  7. for (i=0;i<l;i++);
  8. }
  9. /* 主函数(主程序) */
  10. /* MT8880初始化子函数 */
  11. void MT8880_INIT(void)
  12. {
  13. P1=0x3f;/* 读SR */
  14. P1=0x20;/* CRA=0000 */
  15. P1=0x20;/* CRA=0000 */
  16. P1=0x28;/* CRA=1000 */
  17. P1=0x20; 
  18. }/* CRB=0000 */
  19. /* 发送初始化子函数 */
  20. void tran_init(void)
  21. P1=0x29;/* CRA=1001 */
  22. P1=0x21;
  23. } /* CRB=0001 */
  24. /* 发送操作子函数 */
  25. void transmit(UCHAR data *p,UCHAR count)
  26. {
  27. UCHAR i;
  28. for (i=0;i<count;i++,p++)
  29. {
  30.  P1=*p; /* 发送数码 */
  31.  delay(6000); /* 延时 */
  32.  P1=0x3f;
  33. }
  34. }/* 读SR */
  35. // 接收程序
  36. //程序利用单片机的INT0以中断方式接收DTMF信号,接收的7位数码存入数组R_BUF中。
  37. /* 接收初始化子函数 */
  38. void rece_init(void)
  39. P1=0x24;/* CRA=0100 */
  40. IT0=1;/* 边沿触发 */
  41. IE=0x81; 
  42. }/* 允许中断,开中断 */
  43. /* 接收中断服务程序 */
  44. void int0(void) interrupt 0 using 1
  45. UCHAR i;
  46. UCHAR data r_buf[7];
  47. SP=0X5F;
  48. P1=0x3f;/* 读SR */
  49. P1=0x1f;/* 读RDR */
  50. r_buf[i++]=P1&0x0f;
  51. } /* 保存 */