新建 文本文档.txt
资源名称:TELEPHONE.rar [点击查看]
上传用户:woden7206
上传日期:2015-11-28
资源大小:14486k
文件大小:2k
源码类别:
单片机开发
开发平台:
MultiPlatform
- 程序
- 发送程序
- 程序执行后,将以DTMF方式发送预存在数组W_BUF中的7位数码(5135535)。
- #include <reg51.h>
- #define uc unsigned char
- #define ui unsigned int
- /* 子函数(子程序)说明 */
- void initialize(void);
- void tran_init(void);
- void transmit(uc data *p,uc count);
- void delay(ui l);
- /* 主函数(主程序) */
- void main(void)
- { uc data w_buf[7];
- SP=0x5f;
- /* 预存数码5135535 */
- w_buf[0]=5;
- w_buf[1]=1;
- w_buf[2]=3;
- w_buf[3]=5;
- w_buf[4]=5;
- w_buf[5]=3;
- w_buf[6]=5;
- initialize();
- tran_init();
- transmit(w_buf,7);
- initialize();
- for(;;);}
- /* MT8880初始化子函数 */
- void initialize(void)
- { P1=0x3f; /* 读SR */
- P1=0x20; /* CRA=0000 */
- P1=0x20; /* CRA=0000 */
- P1=0x28; /* CRA=1000 */
- P1=0x20; } /* CRB=0000 */
- /* 发送初始化子函数 */
- void tran_init(void)
- { P1=0x29; /* CRA=1001 */
- P1=0x21; } /* CRB=0001 */
- /* 发送操作子函数 */
- void transmit(uc data *p,uc count)
- { uc i;
- for (i=0;i<count;i++,p++)
- { P1=*p; /* 发送数码 */
- delay(6000); /* 延时 */
- P1=0x3f; }}/* 读SR */
- /* 延时子函数 */
- void delay(ui l)
- { ui i;
- for (i=0;i<l;i++);}
- 接收程序
- 程序利用单片机的INT0以中断方式接收DTMF信号,接收的7位数码存入数组R_BUF中。
- #include <reg51.h>
- #define uc unsigned char
- uc data i,r_buf[7];
- /* 子函数(子程序)说明 */
- void initialize(void);
- void rece_init(void);
- /* 主函数(主程序) */
- void main(void)
- { SP=0x5f;
- i=0;
- initialize();
- rece_init();
- for(;;);}
- /* MT8880芯片初始化子函数 */
- void initialize(void)
- { P1=0x3f; /* 读SR */
- P1=0x20; /* CRA=0000 */
- P1=0x20; /* CRA=0000 */
- P1=0x28; /* CRA=1000 */
- P1=0x20; } /* CRB=0000 */
- /* 接收初始化子函数 */
- void rece_init(void)
- { P1=0x24; /* CRA=0100 */
- IT0=1; /* 边沿触发 */
- IE=0x81; } /* 允许中断,开中断 */
- /* 接收中断服务程序 */
- void int0(void) interrupt 0 using 1
- { P1=0x3f; /* 读SR */
- P1=0x1f; /* 读RDR */
- r_buf[i++]=P1&0x0f; } /* 保存 */