51单片机-4G模块 4G控制LED #include "reg52.h" #include "intrins.h" #include <string.h>#define SIZE 12 sfr AUXR = 0x8E; sbit D5 = P3^7; char cmd[SIZE];void UartInit(void) //9600bps@11.0592MHz {AUXR = 0x01;SCON = 0x50; //配置串口工作方式1,REN使能接收TMOD &= 0x0F;TMOD |= 0x20;//定时器1工作方式位8位自动重装TH1 = 0xFD;TL1 = 0xFD;//9600波特率的初值TR1 = 1;//启动定时器EA = 1;//开启总中断ES = 1;//开启串口中断 }void Delay1000ms() //@11.0592MHz {unsigned char i, j, k;_nop_();i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i); }void sendByte(char data_msg) {SBUF = data_msg;while(!TI);TI = 0; }void sendString(char* str) {while( *str != '\0'){sendByte(*str);str++;} }void main() {D5 = 1;//配置C51串口的通信方式UartInit();while(1){Delay1000ms();//往发送缓冲区写入数据,就完成数据的发送//sendString("chenlichen shuai\r\n");} }void Uart_Handler() interrupt 4 {static int i = 0;//静态变量,被初始化一次char tmp;if(RI)//中断处理函数中,对于接收中断的响应{RI = 0;//清除接收中断标志位tmp = SBUF;if(tmp == ':'){i = 0;}cmd[i++] = tmp;if(cmd[0]== ':' && cmd[1] == 'o' && cmd[2]=='p'){D5 = 0;//点亮D5i = 0;memset(cmd,'\0',SIZE);}if(cmd[0]== ':' && cmd[1] == 'c' && cmd[2]=='l'){D5 = 1;//熄灭D5i = 0;memset(cmd,'\0',SIZE);}if(i == 12) i = 0;}if(TI); }