完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
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]=' |