esp8266连接网站服务器,ESP8266连接本地服务器的51单片机汇编程序

ESP8266连接本地服务器的51单片机汇编程序

本例采用at89c2051单片机,晶振11.096MHZ,通讯速率9600,TCP多连接方式,本地连接地址192.168.1.107,收发数据成功。

一、硬件电路如下图

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

二、下面是常见的AT命令:

;服务器模式

;AT+CIPMUX=1

允许多个客户端连接,当然模块最多允许5个客户端连接(每个客户端对应一个id号,0--4)。也是必须设定的,不然配置为服务器会出错

;AT+CIPSERVER=1,5000 创建服务器

;AT+CIPSERVER=1,8080

;AT+CIPSEND=0,6

;AT+CIFSR

查询模块IP地址

;AT+CIPSTATUS

查询模块连接状态

;客户端模式

;AT+CWMODE=1 设置模式,模式说明:AT+CWMODE

= :1-Station模式,2-AP模式,3-AP兼Station模式。重启后生效

;AT+CIPMUX=0 ;单路连接时发送指令为AT+CIPSEND=x

, x为发送的字节数

注意只有在单连接的时候才可以设置为透传模式--就是串口的数据直接发送到网络,网络的数据直接发送到串口

;AT+CWJAP="LOVE","recon2012"

;AT+CIPSTART="TCP","192.168.1.8",8080

;AT+CWLAP

列出当前可用

AP

;AT+CIPSEND=8 向主机发送8个字节

;设置模块ip,发送AT+CIPSTA="192.168.1.110";响应;AT+CIPSTA="192.168.1.110"

busy p... 2,CONNECT

OK

;AT+CWSAP="TEST","12345678",1,3

创建热点

;AT+CWLIF

查看在线IP列表

三、汇编程序如下:

ORG 0000H

AJMP

MAIN;转入主程序

ORG

0003H ;外部中断P3.2脚INT0入口地址

RETI

ORG

000BH;

LJMP

CT

RETI

ORG

0013H;中断陷阱

RETI

ORG

0023H

RETI

DD

EQU P1.7;运行状态指示

FLAG_0 EQU 20H.0

;接收到上行串口发来数据标志p3.0

FLAG_3 EQU 20H.3 ;00分标志

;FLAG EQU 20H.4 ;通用标志寄存器

HM EQU 21H ;定时器毫秒存储

YEAR EQU 22H ;年

MONTH EQU 23H ;月

DAY EQU 24H ;日

WEEK EQU 25H ;星期

HOUR EQU 26H ;小时3031

MINUTE EQU 27H ;分钟3233

SECOND EQU 28H ;秒3435

MAIN:

MOV

SCon,#50h;

MOV

TMOD,#21H;波特率发生器T1工作在模式2

MOV

TH1,#0FDH ;波特率9600

MOV

TL1,TH1

MOV

PCON,#0H

SETB

TR1 ;启动定时器T1

MOV TH0,

#0D0H ;

MOV TL0,

#00H

MOV

DPTR,#5000;延时5秒;

LCALL

DelayXmS

LCALL

ATEOK ;发送AT

MOV

DPTR,#5000;延时5秒

LCALL

DelayXmS

LCALL

CWMODE;

MOV

DPTR,#5000;延时5秒

LCALL

DelayXmS

LCALL

CIPMUX ; CIPMUX=1启动多路连接模式

MOV

DPTR,#5000;延时5秒;

LCALL

DelayXmS

CALL

CIPSTART;建立TCP连接*

MOV

DPTR,#5000;延时5秒

LCALL

DelayXmS

CALL

CIPSEND ;发送数据

CALL

CIPSEND100

MOV

DPTR,#5000;延时5秒

LCALL

DelayXmS

CALL

CIPSEND ;发送数据,

CALL

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ATC89C51是一种基于8051芯片架构的单片机,具有广泛的应用领域。其中,ATC89C51单片机的无线收发功能被广泛利用,例如远程控制、遥感数据传输、物联网等领域。 实现ATC89C51单片机的无线收发功能,需要使用与之相对应的无线模块。如目前市场上常见的RF模块(射频模块)、NRF模块(无线射频模块)等。其中,RF模块一般工作频率在315MHz或433MHz左右,传输距离较远,但数据传输速率较慢。而NRF模块则支持更高的传输速率和更广的工作频率范围,适合高速数据传输和小范围通信。 接下来,我们以RF模块为例,讲解ATC89C51单片机的无线收发实现过程。 1. 硬件连接 首先,需要将RF模块与ATC89C51单片机进行连接,以便进行无线收发数据传输。RF模块一般具有4个引脚,分别为VCC、GND、DATA和ANT,其中VCC和GND用于供电,DATA为数据传输引脚,ANT为天线引脚。图示如下: RF模块 ATC89C51单片机 VCC ----------------- VCC GND ----------------- GND DATA ---------------- P3.2 ANT ----------------- 无需连接 其中,DATA引脚需要连接到ATC89C51单片机的P3.2口,该口可以通过程序控制实现数据的发送和接收。 2. 编程实现 在ATC89C51单片机的编程中,需要使用相应的函数库和程序实现无线收发功能。一般来说,可以使用P3口的中断功能实现RF模块接收数据时的中断触发,从而进行数据解析和处理,具体实现过程如下: // 定义P3口中断服务程序 void rfInterrupt() interrupt 1 { unsigned char data; // 获取数据 data = rf_read_data(); // 处理数据 // ... } // 初始化函数 void init_rf() { // 配置P3.2口为输入 P3M0 |= 0x04; P3M1 |= 0x04; // 打开P3口中断 EX1 = 1; IT1 = 1; } // 发送数据 void rf_send_data(unsigned char data) { RF_DATA = data; RF_START(); // 开始发送 } // 接收数据 unsigned char rf_read_data() { unsigned char data; data = RF_DATA; return data; } 在程序中,首先需要初始化RF模块和P3.2端口的状态。然后,在收发数据时,需要调用相应的函数实现数据的发送和接收。其中,rfInterrupt()函数为中断服务程序,当RF模块接收到数据时,会触发该中断程序,从而处理接收到的数据。 通过上述方法,我们就可以在ATC89C51单片机上实现简单的无线收发功能了。当然,具体的实现还需按照实际情况进行调试和优化,以保证无线收发的可靠性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值