资源简介
STC51单片机控制SIM900A数据发送与接收,亲测可用
代码片段和文件信息
#include
#include
#include “STC12C5A60S2.h“
//! 服务器IP地址与端口号注意用户需要将此IP替换为
//! 自己服务器的公网IP地址
#define TCPIP_SERVER_IPADDR “115.171.51.103“
#define TCPIP_SERVER_PORT “8088“
//! 串口发送与接收缓冲区大小
#define TTY_MAX_BUFFER_SIZE 256
//! 串口发送与接收缓冲区
char ttyBuffer[TTY_MAX_BUFFER_SIZE];
//! TCPIP发送与接收缓冲区大小
#define TCPIP_MAX_BUFFER_SIZE 256
//! TCPIP发送与接收缓冲区
char tcpipBuffer[TCPIP_MAX_BUFFER_SIZE];
//! 串口0初始化函数 此串口用作接收终端控制命令
//! 晶振频率:22.1184MHz
//! 串口0波特率:9600
void Uart0_Init(void) //9600bps@22.1184MHz
{
PCON |= 0x80; //使能波特率倍速位SMOD
SCON = 0x50; //8位数据可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc即1T
AUXR &= 0xfe; //串口1选择定时器1为波特率发生器
TMOD &= 0x0f; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0x70; //设定定时初值
TH1 = 0x70; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
//! 串口0字符串输出函数
//! 参数说明:pString为字符串缓冲区首地址
void Uart0_PutString(char* pString)
{
unsigned short i = 0;
while(pString[i])
{
SBUF = pString[i++];
while(!TI);
TI = 0;
}
}
//! 串口0字符串读取函数 获取一行数据 遇到换行符为止
//! 参数说明:pBuffer为缓冲区首地址 nBufferLen为缓冲区大小 nTimeOut为超时时间
//! 如果nTimeOut=0 那么函数会阻塞 直到缓冲区满或遇到换行符
unsigned short Uart0_GetALine(char* pBuffer unsigned char nBufferLen unsigned char nTimeOut)
{
char ch = 0;
unsigned int i = 0 j = 0 k = 0;
k = 20000*nTimeOut;
for(i = 0 j = 0; i < nBufferLen; i++)
{
while(1)
{
if(RI)
{
RI = 0; //清除接收完成标志
pBuffer[i] = SBUF;
//! 回显给终端显示
SBUF = pBuffer[i];
while(!TI);
TI = 0;
if(pBuffer[i] == 0x0d)
{
pBuffer[i] = 0x00;
return i;
}
break;
}
else if(nTimeOut == 0)
continue;
else
j++;
if(j == k)
break;
}
}
return i;
}
//! 串口1初始化函数 此串口用作控制GSM模块
//! 晶振频率:22.1184MHz
//! 串口1波特率:9600
void Uart1_Init(void) //9600bps@22.1184MHz
{
AUXR |= 0x08; //使能波特率倍速位S2SMOD
S2CON = 0x50; //8位数据可变波特率
BRT = 0x70; //设定独立波特率发生器重装值
AUXR |= 0x04; //独立波特率发生器时钟为Fosc即1T
AUXR |= 0x10; //启动独立波特率发生器
}
//! 串口1字符串输出函数
//! 参数说明:pString为字符串缓冲区首地址
//! 备注:此函数一方面向串口1发送数据
//! 另一方面也向串口0发送数据
//! 目的是为了方便调试
void Uart1_PutString(char* pString)
{
unsigned char i = 0;
//! 向串口1写数据
i = 0;
while(pString[i])
{
//! 向串口0写数据目的是方便调试
SBUF = pString[i];
while(!TI);
TI = 0;
S2BUF = pString[i++];
while(!(S2CON&S2TI));
S2CON &= ~S2TI;
}
}
/**
* @func Uart1_GetString
* @author SwanTech (2011/12/14)
* @param pBuffer 缓冲区地址
* @param nBufferLen 缓冲区长度
* @param nTimeOut 读取返回数据的超时时间
* @return unsigned short 成功: 返回接收到的字节数. 失败: 返回-1
* @remark 注意nTimeOut超时时间从接收到第一个字符开始计数
*/
unsigned short Uart1_GetString(char* pBuffer unsigned short nBufferLen unsigned short nTimeOut
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11516 2011-11-02 21:22 STC51_For_SIM900_TCPIPDemo\STC12C5A60S2.h
文件 28062 2011-12-28 21:36 STC51_For_SIM900_TCPIPDemo\SwanTech_TCPIP_ForSIM900
文件 16385 2012-08-14 17:18 STC51_For_SIM900_TCPIPDemo\SwanTech_TCPIP_ForSIM900.c
文件 17992 2011-12-28 21:36 STC51_For_SIM900_TCPIPDemo\SwanTech_TCPIP_ForSIM900.hex
文件 26475 2011-12-28 21:36 STC51_For_SIM900_TCPIPDemo\SwanTech_TCPIP_ForSIM900.LST
文件 33785 2011-12-28 21:36 STC51_For_SIM900_TCPIPDemo\SwanTech_TCPIP_ForSIM900.M51
文件 31744 2011-12-28 21:36 STC51_For_SIM900_TCPIPDemo\SwanTech_TCPIP_ForSIM900.OBJ
文件 744 2011-12-28 21:36 STC51_For_SIM900_TCPIPDemo\SwanTech_TCPIP_ForSIM900.Opt
文件 254 2012-08-14 16:24 STC51_For_SIM900_TCPIPDemo\SwanTech_TCPIP_ForSIM900.plg
文件 2064 2011-12-17 19:06 STC51_For_SIM900_TCPIPDemo\SwanTech_TCPIP_ForSIM900.Uv2
目录 0 2011-12-28 21:36 STC51_For_SIM900_TCPIPDemo
----------- --------- ---------- ----- ----
169021 11
- 上一篇:黑马19.txt
- 下一篇:单片机控制的简易定时报警器电路设计(含电路图和程序)
相关资源
- 51解析sim900a控制led
- SIM900A通过51单片机拨打电话程序
- STM32控制SIM800c,sim900a,接收短信,
- STM32F单片机与SIM900A的硬件条件下读一
- 基于STM32和SIM900A的无线通信模块设计
- STM32 SIM900A GSM程序源码
- STM32的SIM900A的GPRS数据传输
- STM32F103+SIM900A的短信电话/向服务器发
- stm32系列sim900a发送短信代码
- 基于STM32、SIM900A、UCOSII的GPRS DTU
- STM32F4-SIM900A模块GPRS功能使用精简例程
- STM32f103+SIM900A-GSM模块通讯程序
- GSM模块的使用说明
- sim900a 中文短信发送与接收
- SIM900A+GPS项目开发
- SIM900A控制电路板和源程序
- SIM900A模块原理图、例程源码、软件、
- SIM900A GPRS-GPS-STC板--GPRS透传模式
- STM32控制SIM900A和继电器电路原理图
- SIM900A 使用教程
- 使用SIM800A替换SIM900A模块的注意事项
- SIM900A发彩信AT指令说明
- SIM300 SIM900A SIM卡座 耳机 pcb 封装
- sim900a sim900 原理及PCB图
- SIM900ASIM808封装库
- 基于STM32和SIM900A的短信发送程序
- sim900a封装库
- SIm900A短信控制
- GSM模块 ATK-SIM900A模块原理图、封装库
- STC12C5A60S2控制SIM900A短信GSM模块
评论
共有 条评论