GSM 模块用的是有方公司的M660。想通过发短信控制led6的亮灭,但是未成功,经过调试发现,在发明显错误的AT指令的时候,也会收到OK,求大佬指导。代码如下:#include "reg51.h"
#include
typedef unsigned int u16;
typedef unsigned char u8;
#define led P0
***it led1=P0^0; //监控单片机执行情况
***it led2=P0^1; //监控单片机执行情况
***it led3=P0^2; //监控单片机执行情况
***it led4=P0^3; //监控单片机执行情况
***it led5=P0^4; //监控单片机执行情况
***it led6=P0^5; //远控
u16 i;
u8 n;
u8 Recive_table[50];
u16 Recive_finish; //接收GSM返回信息完成标志位
void delay(u16 i) //延时函数
{
while(i--);
}
void Usartinit()
{
SCON=0X50; //设置为工作方式1
TMOD=0X20; //设置计数器工作方式2
PCON=0X80; //波特率加倍
TH1=0XFD; //计数器初始值设置,注意波特率是19200的
TL1=0XFD;
ES=1; //打开接收中断
EA=1; //打开总中断
TR1=1; //打开计数器
}
void Usart() interrupt 4
{
if(RI)
{
static u16 i=0; //因为是一位一位接收,所以用static
RI = 0;//清除接收中断标志位
ES=0;
Recive_table=SBUF; //将接收到的数据缓存
if((Recive_table == 'r'))
{
Recive_table[i+1]='