好文档 - 专业文书写作范文服务资料分享网站

sim800c调试通过

天下 分享 时间: 加入收藏 我要投稿 点赞

**********************************************************************************

* 工程名 :拨打电话

* 描述 :通过手机发送短信控制LED * 实验平台:STC12XX * QQ:184164353 * : ***********************************************************************************/

#include \#include \#include \

#define Buf2_Max 200 //串口2缓存长度 /************* 本地常量声明 **************/ sbit RUNING_LED = P2^1; //运行指示灯

/************* 本地变量声明 **************/ xdata u8 Uart2_Buf[Buf2_Max];

u8 Times=0,First_Int = 0,shijian=0; //u8 Time_count=0;

bdata u8 Flag;//定时器标志位

sbit Timer0_start =Flag^0; //定时器0延时启动计数器

static unsigned char *phone = \拨打电话,修改这里可以修改拨打的电话。

/************* 本地函数声明 **************/ void GPIO_config(void); void Timer0Init(void); void CLR_Buf2(void); void Wait_CREG(void);

/************* 外部函数和变量声明*****************/

/*******************************************************************************

* 函数名 : main * 描述 : 主函数 * 输入 : * 输出 : * 返回 :

* 注意 : 串口2负责与GPRS模块通信,串口1用于下载程序或串口调试,可以避免在下载程序时数据 还发送到模块

*******************************************************************************/

void main(void) { GPIO_config(); Uart2Init(); Timer0Init(); EA=1; //开总中断 Wait_CREG(); //查询模块是否注册成功 UART2_SendString(phone); //拨打电话 while(1) { ; } }

/*******************************************************************************

* 函数名 : Uart1

* 描述 : 串口1中断服务入口函数 * 输入 : * 输出 : * 返回 : * 注意 :

*******************************************************************************/

void Uart1() interrupt 4 {

if (RI) {

RI = 0; //清除RI位 } if (TI) {

TI = 0; //清除TI位

} }

/*******************************************************************************

* 函数名 : Uart2

* 描述 : 串口2中断服务入口函数 * 输入 : * 输出 : * 返回 : * 注意 :

*******************************************************************************/

void Uart2() interrupt 8 { IE2 &= ~0x01; //关闭串口2中断 if (S2CON & S2RI) {

S2CON &= ~S2RI; //清除S2RI位 Uart2_Buf[First_Int] = S2BUF; //将接收到的字符串存到缓存中 First_Int++; //缓存指针向后移动 if(First_Int > Buf2_Max) //如果缓存满,将缓存指针指向缓存的首地址 { First_Int = 0; } }

if (S2CON & S2TI) {

S2CON &= ~S2TI; //清除S2TI位 } IE2 |= 0x01; //使能串口2中断 }

/*******************************************************************************

* 函数名 : Timer0_ISR

* 描述 : 定时器0中断服务入口函数,20ms中断一次 * 输入 : * 输出 : * 返回 : * 注意 :

*******************************************************************************/

void Timer0_ISR() interrupt 1

{

static u8 Time_count=0; TR0=0;//关定时器 Time_count++; if(Time_count>=50) { Time_count = 0; RUNING_LED =~RUNING_LED; }

TR0=1;//开定时器 }

/*******************************************************************************

* 函数名 : GPIO_config * 描述 : IO口配置函数 * 输入 : * 输出 : * 返回 : * 注意 :

*******************************************************************************/

void GPIO_config(void) {

P3M1 &= 0XC3; //配置P32~P35为推挽输出 P3M0 |= ~0XC3; RUNING_LED=0; }

void Timer0Init(void) //20毫秒@22.1184MHz {

AUXR &= 0x7F; //12T模式 TMOD &= 0xF0; //设置定时器模式 16位重载 TL0 = 0x00; //设定定时器初值 TH0 = 0x70; //设定定时器初值 TF0 = 0; //清除TF0标志 TR0 = 1; //定时器0开始计时 ET0 = 1; //使能定时器0中断 }

/*******************************************************************************

* 函数名 : CLR_Buf2

* 描述 : 清除串口2缓存数据 * 输入 : * 输出 :

* 返回 : * 注意 :

*******************************************************************************/

void CLR_Buf2(void) { u16 k; for(k=0;k

First_Int = 0; //接收字符串的起始存储位置 }

/*******************************************************************************

* 函数名 : Wait_CREG

* 描述 : 等待模块注册成功 * 输入 : * 输出 : * 返回 : * 注意 :

*******************************************************************************/

void Wait_CREG(void) { u8 i; u8 k; i = 0; CLR_Buf2();

while(i == 0) { CLR_Buf2(); UART2_SendString(\ UART2_SendLR(); delay_ms(5000); for(k=0;k

}

}

}

}

}

sim800c调试通过

***********************************************************************************工程名:拨打电话*描述:通过手机发送短信控制LED*实验平台:STC12XX*QQ:184164353*:*********************
推荐度:
点击下载文档文档为doc格式
2bj888yt7e7f2vc1v0ey6gjog0oh7b0067b
领取福利

微信扫码领取福利

微信扫码分享