89S52单片机控制TC35i发送短信与拨打电话程序实现

需积分: 9 2 下载量 70 浏览量 更新于2024-09-18 收藏 46KB DOC 举报
"这篇资源是关于使用89S52单片机控制GSM模块TC35i进行发送短信和拨打电话的程序示例。通过单片机而非上位机操作,可以更直接地实现通信功能。" 在单片机应用中,控制GSM模块如TC35i进行通信是一种常见的需求。TC35i是一款支持GSM/GPRS网络的模块,常用于远程数据传输、物联网设备等场景。在这个示例中,主要涉及以下几个知识点: 1. **单片机控制**:89S52是Microchip公司生产的基于8051内核的单片机,具有8KB ROM和256B RAM。通过编写C语言程序,我们可以控制它的IO口来实现对外部设备的操作。 2. **GSM通信**:GSM (Global System for Mobile Communications) 是一种广泛使用的移动通信标准,用于语音通话和数据传输。TC35i模块支持GSM协议,可以用来拨打电话和发送短信。 3. **AT指令集**:在程序中,可以看到"AT"指令的使用,这是GSM模块的基本通信指令集,用于配置模块和发起操作。例如,`ATD13795568363;`用于拨打电话,`AT+CMGF=0`设置短信模式为PDU模式。 4. **PDU模式**:在短信传输中,PDU(Protocol Data Unit)模式是一种二进制编码方式,用于更高效地传输短信内容。程序中定义了多个PDU编码,如`pdumessage`,这些编码代表了特定的文字内容。 5. **硬件接口**:单片机与TC35i之间的连接通常通过串行通信接口,如UART。程序中没有详细列出串口设置,但通常会包括波特率、奇偶校验等参数的配置。 6. **中断系统**:在初始化函数`init_chuankou()`中,可以看到中断被关闭,中断1(ET1=0)被禁止,这可能是为了防止在通信过程中出现不必要的中断干扰。 7. **定时器配置**:`TMOD=0X20; TH1=0XFD; TL1=0XFD;`这部分代码是用来配置定时器1的,通常用于生成串口通信所需的波特率或者执行其他定时任务。 8. **I/O口操作**:通过定义`sbit`变量如`D10LED`、`D11LED`等,可以方便地控制单片机的GPIO引脚,实现状态指示或驱动其他外围设备。 9. **按钮和蜂鸣器**:程序中还定义了按钮`SW5`和蜂鸣器`beeper`的控制,这些硬件设备可以用于用户交互,比如按下按钮启动短信发送或电话拨打功能,蜂鸣器则可以提供操作反馈。 10. **继电器控制**:`J1`和`J2`是继电器控制端,可用于开关控制,如控制电源或其他外部设备。 这个程序实例展示了如何利用89S52单片机和GSM模块TC35i构建一个基本的短信和电话控制系统,涵盖了硬件接口、GSM通信协议、中断系统以及单片机编程等多个方面的知识。在实际应用中,开发者可能需要根据具体需求对这个框架进行扩展和修改。