esp8266连接本地服务器的51单片机汇编程序
at89c2051单片机,晶振11.096mhz,通讯速率9600,tcp多连接方式,本地连接地址192.168.1.107,收发数据成功
汇编程序如下: 这是main.c
#include
#include
#include usart.h
#include wifi.h
char recive_table[20]=; //接收缓冲,最大20个字节
char recive_state = 0; //接收完成标志
int main (void)
{
/********************功能初始化***********************/
uart_init();//串口初始化,波特率为9600
ms_delay(1000) ;
wifi_init(); //wifi初始化
/****************************************************/
/**********************主循环************************/
for(;;)
{
ms_delay(10) ;
if(recive_state == 1)
{
es=0; //清空接收标志位
if((recive_table[0]=='+')&&(recive_table[1]=='i')&&(recive_table[2]=='p'))//接收到的字符串形式为+ipd,x,x:y
{
if((recive_table[3]=='d')&&(recive_table[6]==','))
{
if(recive_table[9]=='0')
p1 = 0;
if(recive_table[9]=='1')
p1 = 0xff;
}
}
memset(recive_table,'\0',20);
recive_state = 0;
es=1; //打开接收标志位
}
}
/****************************************************/
}
/******************************************************************
函 数: void uart_interrupt() interrupt 4
功 能: 串口中断函数,将收到的字符存到recive_table[]数组中
参 数: 无
返回值: 无
*******************************************************************/
void uart_interrupt() interrupt 4
{
static char i=0; //因为是一位一位接收,所以用static
if(ri==1)
{
es = 0;
ri=0;
recive_table[i]=sbuf;
i++;
if((recive_table[i-1] == '\n'))
{
recive_table[i]='\0';
i=0;
recive_state = 1;
}
es = 1;
}
else
ti = 0;
}
这是usart.c
#include usart.h
/******************************************************************
函 数: void uart_init(void)
功 能: 串口初始化,波特率为9600(这个不会,上网百度)
参 数: 无
返回值: 无
*******************************************************************/
void uart_init(void)
{
tmod=0x20;
th1=0xfd;
tl1=0xfd;
tr1=1;
ren=1;
sm0=0;
sm1=1;
ea=1;
es=1;
}
这是wifi.c
#include
#include wifi.h
/******************************************************************
函 数: void ms_delay(int t)
功 能: 毫秒级延时
参 数: 无
返回值: 无
*******************************************************************/
void ms_delay(int t)
{
int i,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}
/******************************************************************
函 数: void led(void)
功 能: 发送完命令后显示用的函数
参 数: 无
返回值: 无
*******************************************************************/
void led(void)
{
p1 = 0;
ms_delay(100);
p1 = 0xff;
ms_delay(100);
}
/******************************************************************
函 数: void wifi_init(void)
功 能: wifi初始化(名字:esp8266;密码:1234567890)
参 数: 无
返回值: 无
*******************************************************************/
void wifi_init(void)
{
es = 0;
ti = 1;
printf(at+rst\r\n);
led();
ms_delay(1000) ;
printf(at+cwmode=3\r\n);
led();
ms_delay(1000) ;
printf(at+cipmux=1\r\n);
led();
ms_delay(1000) ;
printf(at+cipserver=1,8080\r\n);
led();
ms_delay(1000) ;
while(!ti);
ti = 0;
es = 1;
}
文章综合来源:csdn
以五大发展理念为指引,加快构建城市能源互联网
英伟达能否在AI芯片领域脱颖而出
GaN的晶体结构及射频应用
变频器滤波电容引起的一个问题
华为将于7月29日召开旗舰新品发布会
esp8266加入到c51单片机单通道程序的编写
小米6、华为P10、一加5、魅族pro7、努比亚Z17区别对比评测,旗舰机大较量哪家强?
如何把KUKA-C4的通过网络备份到PC上?
三星A70s炫目红高清图集
小米下定决心,全面整治MIUI广告!
升压型DC/DC转换器的PCB布局-电感的配置
SEGGER J-Link调试仿真器支持新型可编程SOC(片上系统)系列
格力发力三四五线城市,继续拓展三四五线城市有难度
氧气分析仪和氧气传感器在化学工业领域的应用
小米反向刘海手机专利曝光
lm7805稳压电路电容作用详解
艾普瑞Pro2500激光测距仪扫描测量模式—能连续显示不同距离数据
苹果发布iOS 14.5 Beta:全球 iPhone 12 系列均已支持双卡模式下 5G 功能
一加6T评测 3000元级价位上不可取代的全能旗舰
声纹识别是怎样的一项技术