标题:
基于AT89S52+SIM300 GPRS的远程控制系统程序
[打印本页]
作者:
v帆帆帆帆
时间:
2020-10-30 16:57
标题:
基于AT89S52+SIM300 GPRS的远程控制系统程序
51hei.png
(33.93 KB, 下载次数: 39)
下载附件
2020-10-30 21:36 上传
单片机源程序如下:
/****************************************************************************************
* 文件名称:SIM300.c
* 说明:本文件为单片机控制GPRS模块程序文件
* 功能:单片机控制SIM300模块拨打电话
* 修改:无
* 版本:1.0.0
* 作者:YuanDong
* 时间:2009.8.5
*****************************************************************************************/
#include <51reg.h>
#include <string.h>
#include <stdio.h> /*标准输入输出定义*/
#include <Target.h>
#include <Target.c> //串口发送接收程序
#define PWR_ON P2.5 //SIM300模块供电脚
#define PWR_Key P2.4 //SIM300上电控制脚
sbit P2.4=P2^4;
sbit P2.5=P2^5;
#define AT_SEND_OK 0 //AT命令发送OK
uchar strcall[]="ATD15851861610"; //要拨打的电话号码
uint len=15; //strcall[] 的长度
uint switch = 0; //SIM300 reset 成功
/*****************************************************************************************
*函数名称:init_IO(void)
*函数功能:单片机I/O初始化
*入口函数:无
*出口函数:无
*****************************************************************************************/
void init_IO(void)
{
PWR_ON=0;
PRW_KEY=0;
}
/*****************************************************************************************
*函数名称:SIM300_reset(void)
*函数功能:SIM300复位
*入口函数:无
*出口函数:SWITCH
*****************************************************************************************/
uint SIM300_reset(void)
{
PWR_ON=1; //GPRS PWR CTL on
PWR_KEY=1; //GPRS PWRKEY CTL hight
delay_ms(3000); //模块开启或关闭后等待3S
PWR_KEY=0; //pwrkey须先置高大于2s,再置低之后,才能正确复位模块
delay_ms(2500);
return SWITCH;
}
/*****************************************************************************************
*函数名称:SendAT(void)
*函数功能:发送AT命令
*入口函数:无
*出口函数:AT_SEND_OK
*****************************************************************************************/
uint SendAT(void)
{
send_str(strcall[],len); //调用 Target.c里的send_str()
return AT_SEND_OK;
}
/*****************************************************************************************
*函数名称:void main(int argc, char **argv)
*函数功能:主函数
*入口函数:无
*出口函数:无
*****************************************************************************************/
void main(void)
{
while(1)
{
int i,j,k,status;
init_IO(); //I/O 初始化
usart0_initial(); //串口初始化
SIM300_reset(); //SIM300 复位
for(i=0;i<10000;i++)
for(j=0;j<100;j++)
for(k=0;k<100;k++); //延时一段时间
status = SendAT(); //发送AT命令
for(k=0;k<20000;k++);
if(!status)
{
printf("GPRS link ok!");
}
else
{
printf("GPRS link error!");
}
}
}
复制代码
所有程序51hei提供下载:
基于AT89S52+GPRS的远程控制系统.zip
(46.85 KB, 下载次数: 38)
2020-10-30 16:56 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
aking991
时间:
2020-11-2 10:29
你这程序有点怪,那些初始化都放在主循环里,那运行起来都是在循环中,这样没必要吧
作者:
shenyuqiu
时间:
2020-12-17 10:31
初始化放无限循环中?那不是一直无限次初始化
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1