MT8880.TXT
上传用户:woden7206
上传日期:2015-11-28
资源大小:14486k
文件大小:2k
源码类别:

单片机开发

开发平台:

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. MT8880_RSO=1;
  14. MT8880_RW=1; 
  15. delay(2);
  16. MT8880_RSO=1;
  17. MT8880_RW=0; 
  18. MT8880_D0=0;
  19. MT8880_D1=0;
  20. MT8880_D2=0;
  21. MT8880_D3=0;
  22. delay(2);
  23. MT8880_RSO=1;
  24. MT8880_RW=0; 
  25. MT8880_D0=0;
  26. MT8880_D1=0;
  27. MT8880_D2=0;
  28. MT8880_D3=1;
  29. delay(2);
  30. MT8880_RSO=1;
  31. MT8880_RW=0; 
  32. MT8880_D0=0;
  33. MT8880_D1=0;
  34. MT8880_D2=0;
  35. MT8880_D3=0;
  36. delay(2);
  37. // MT8880_RSO=1;
  38. // MT8880_RW=1; 
  39. // P1=0x3f;/* 读SR */
  40. // P1=0x20;/* CRA=0000 */
  41. // P1=0x20;/* CRA=0000 */
  42. // P1=0x28;/* CRA=1000 */
  43. // P1=0x20; 
  44. }/* CRB=0000 */
  45. /* 发送初始化子函数 */
  46. void tran_init(void)
  47. MT8880_RSO=1;
  48. MT8880_RW=0; 
  49. MT8880_D0=1;
  50. MT8880_D1=0;
  51. MT8880_D2=0;
  52. MT8880_D3=1;
  53. delay(2);
  54. MT8880_RSO=1;
  55. MT8880_RW=0; 
  56. MT8880_D0=1;
  57. MT8880_D1=0;
  58. MT8880_D2=0;
  59. MT8880_D3=0;
  60. delay(2);
  61. // P1=0x29;/* CRA=1001 */
  62. // P1=0x21;
  63. } /* CRB=0001 */
  64. /* 发送操作子函数 */
  65. void transmit(UCHAR data *p,UCHAR count)
  66. {
  67. UCHAR i;
  68. for (i=0;i<count;i++,p++)
  69. {
  70.  P1=*p; /* 发送数码 */
  71.  delay(6000); /* 延时 */
  72. // P1=0x3f;
  73.  MT8880_RSO=1;
  74.          MT8880_RW=1; 
  75. }
  76. }/* 读SR */
  77. // 接收程序
  78. //程序利用单片机的INT0以中断方式接收DTMF信号,接收的7位数码存入数组R_BUF中。
  79. /* 接收初始化子函数 */
  80. void rece_init(void)
  81. P1=0x24;/* CRA=0100 */
  82. IT0=1;/* 边沿触发 */
  83. IE=0x81; 
  84. }/* 允许中断,开中断 */
  85. /* 接收中断服务程序 */
  86. void int0(void) interrupt 0 using 1
  87. UCHAR i;
  88. UCHAR data r_buf[7];
  89. SP=0X5F;
  90. P1=0x3f;/* 读SR */
  91. P1=0x1f;/* 读RDR */
  92. r_buf[i++]=P1&0x0f;
  93. } /* 保存 */