使用TC35i拨号源代码与GSM通信

2星 需积分: 3 10 下载量 200 浏览量 更新于2024-09-21 收藏 29KB DOC 举报
"TC35打电话源程序是一个用于通过TC35模块拨打电话的C语言程序,包含了必要的头文件和定义,以及与TC35通信的相关寄存器和控制位设置。程序中定义了用于发送指令的字符串常量,如拨号、短信模式设置等,并设有中断服务函数处理接收响应。" TC35模块是一款常用的GSM/GPRS模块,适用于在嵌入式系统中实现语音通话和短信功能。在这个源程序中,可以看到开发者已经为一些关键的I/O引脚分配了位地址,如D10LED、D11LED、SW4、SW5、beeper、J1、J2和START_TC,这些都是与TC35模块交互的控制信号。START_TC被定义为启动TC35i的控制端,意味着当这个引脚被激活时,模块将开始执行相应的操作。 程序中包含的头文件 `<reg52.h>`、`<absacc.h>` 和 `<intrins.h>` 是为了支持52系列单片机(如8051)的寄存器操作和内联汇编。`<reg52.h>` 提供了52系列单片机特殊功能寄存器的定义,`<absacc.h>` 用于访问绝对地址的寄存器,而`<intrins.h>` 包含了内联汇编函数的声明。 源代码定义了一系列的字符串常量,如`PhoneCall[]`、`PhoneNum[]`、`CenterNum[]`、`TxtMode[]`、`Sms[]`和`AT[]`,它们分别对应着AT命令,用于拨打电话、设置短信中心号码、切换到PDU模式(文本模式为0,PDU模式为1)以及发送测试短信。这些AT命令是GSM通信的基础,用于控制TC35模块执行特定操作。 在中断服务函数`GSM_OK`中,处理来自TC35的响应。当RI(接收中断标志)被置位时,表明有数据到达,程序读取SBUF(串行口接收缓冲区),并将接收到的数据存入数组`ok`中。同时,`delay`和`delay_Xms`函数是简单的延时子程序,用于控制程序的执行节奏。 此外,`Print_Char`和`Print_Str`函数用于向串口发送字符和字符串,这是与TC35模块进行通信的基本方式,通过发送AT命令并等待响应来控制模块的行为。 该源程序展示了如何使用C语言控制TC35模块进行基本的通话和短信功能,涉及到了单片机编程、中断处理、AT命令交互等多个方面的知识点。通过调试和理解这个程序,可以学习到如何在实际项目中应用GSM通信技术。