入端P35T1:定时器计数器1外部输入端P36WR:外部数据存储器写选通信号P37RD:外部数据存储器读选通信号四个通道口都有一种特殊的线路结构,每个口都包含一个锁存器,即特殊功能寄存器P0P3,一个输出驱动器和两个(P3口有三个)三态缓冲器。这种结构在数据输出时,可以锁存,即在重新输出新的数据之前,口上的数据一直保持不变。但对于输入信号是不锁存的,所以外设欲输入的数据必须保持到取数指令执行(把数据读取后)为止。三.模块工作原理
1、WiFi模块
图5WiFi模块时钟结构图
WiFi模块使用的是乐鑫信息科技研制的ESP8266WiFi模块,该模块可以实现将WiFi功能嵌入其他系统,实现数据通过WiFi在不同模块之间的接收和发送。
f因为是商业产品,所以该模块的内部工作原理不得而知,接下来从如何实现该模块与51单片机之间的数据传输和如何实现ESP8266与网络助手的通信两方面介绍模块工作原理。(1)ESP8266与51单片机通过串口通信。我们采用8位数据异步通信方式。要实现两个具有独立CPU的模块之间的通信,则必须保证这两个模块之间的波特率一致。在信息传输通道中,携带数据信息的信号单元叫码元,每秒钟通过信道传输的码元数称为码元传输速率,简称波特率。从定义可以看出,只有波特率一致,数据发送方所发送的数据才能被接收方正确接收,不然就会出现错误。我们将ESP8266的波特率设置成了9600,利用单片机的T1定时器,通过计算,将其波特率也设置成了9600,这样就实现了两个模块间波特率一致,从而奠定了串口通信的基础。51单片机的串口通信是全双工的,可以支持同时发送和接收数据。下面分别从单片机接收数据和发送数据两方面介绍串口通信原理。ESP8266模块向单片机发送数据时,将数据分成8个一组,加上起始位和停止位,通过自己的TXD口(另一边接到了单片机的RXD口)将数据逐位发送出去,单片机接收到数据后,若接收中断标志(RI)为0且结束位为1,则会将数据按顺序存入串口通信缓冲寄存器中,即SBUF,接受结束后,RI变成1,从而程序可以得知此次传输完毕,可以进行下一次传输。若RI初始为1,则不接受数据,也不改变RI。单片机向ESP8266发送数据时,同样通过自己的TXD口将数据传输到ESP8266模块。单片机需要先将发送中断(TI)置零,再将要发送的数据写入SBUF,当数据通过SBUF传输到TXD口后,TI会置1,从而告知程序本次传输完成,可以进行下次传输。其中TI和RI都需要编写程序控制其置1和置0,中断标志不会自动恢复r