如何使用W7100A实现网络字符LCD?

Home / 博客 / 如何使用W7100A实现网络字符LCD?

本用户手册将为大家介绍如何使用W7100A实现网络字符LCD。

 

1.字符LCD(Character LCD)

iMCU7100EVB提供了字符LCD(Character LCD)连接接口,并且能够使用W7100A来控制和测试字符LCD(Character LCD)。如图1所示,iMCU7100EVB能够使用嵌入的硬件化TCP/IP协议栈通过网络来控制字符LCD(Character LCD),这在普通的MCU中是很难实现的。这篇文档将会帮助你使用网络单片机W7100A实现远程控制字符LCD(Character LCD)。

2. 网络字符LCD(Network Character LCD)

图片1是利用iMCU7100EVB实现网络字符LCD(Network Character LCD)的图片。需要将字符LCD、电源线、用于以太网通信的UPT线,以及用于调试和编程的串口线连接到iMCU7100EVB。

2.1 连接网络字符LCD(Network Character LCD)

用户能够在Windows中通过超级终端机(Hyper Terminal)连接到网络字符。当如图2显示“连接到(Connect To)”窗口出现时,输入主机地址(例如192.168.1.165) 和端口地址(例如5000)。然后,按照图3来设置超级终端机(Hyper Terminal)的属性。

图2连接网络字符LCD

图3设置超级终端机(Hyper terminal)属性

2.2 向网络字符LCD(Network Character LCD)发送信息

2.3 显示信息

像公交车到达时间的信息等都可以显示在网络字符LCD(Network Character LCD)上。下面的图表和图片是用网络字符LCD(Network Character LCD)显示公交车到达时间的演示。图6显示了从远程PC机接收到的网络字符LCD的数据。图片2为网络字符LCD(Network Character LCD)向上滚动显示从远程PC机接收到的字符串。

3. 硬件配置

3.1 配置

3.2 字符LCD(Character LCD)连接器和引脚描述

图6显示了字符LCD(Character LCD)接口(JP1)电路。表1列出了字符LCD(Character LCD)各引脚的描述。

4. 固件程序说明

网络字符LCD(Character LCD)工作于TCP服务器模式下。在该模式下,W7100A等待客户端连接请求,并且当与客户端连接之后,与客户端进行数据通信。(更多的详细信息,请参阅‘因特网嵌入式MCU W7100A用户手册9.2.1.1和文档‘如何在W7100A中实现TCP’)。

扩展TCP回路测试(Loopback)的实例代码,这些代码都包含在‘如何在W7100A实现TCP’文档中,它们可用于实现网络字符LCD(Character LCD)。网络字符LCD(Character LCD)的程序流程如图7所示。

4.1 初始化

Socket状态寄存器(Sn_SR)的值是SOCK_ESTABLISHED(0x01),这个值也是软件初始化之后Socket的值。Socket中断寄存器的值是Sn_IR_CON(=0x01),该值表示客户端成功连接到服务器。

-向客户端发送信息: 代码第51-53行和59-61行

-初始化保存data_buf值的tmp_data_buf :代码第44行

-清除字符LCD(character LCD) : 代码第47-48行

-避免初始化进程的重复,清除Sn_IR的值:代码第56行

4.2 接收数据

‘接收读取缓存大小寄存器(Receive Read Buffer Size Register)’ 用来接收字符串,并且字符串的长度必须为16字节,如果接收读取缓存的长度大于16,使用recv()来接收数据(代码65-68)。根据buf_idx(buffer_index)函数,在data_buf中接收到的数据将被复制到tmp_data_buf中。

Tmp_data_buf的大小为17 x32。也就是说它可以保存32个字符串,每个字符串有16个字符和一个Null字符。如果接收成功并且数据保存到tmp_data_buf中,则向客户端(代码84-86)发送一个表示成功的信息。

4.3 显示

滚动tmp_data_buf的源代码如下:使用在字符LCD(Character LCD)驱动源代码lcd.c中定义的evb_set_lcd_text()函数。evb_set_lcd_text()函数的参数是1位(0或者1)和16个字符串。同时,如上面所提到的,tmp_data_buf最多能够保存32列,lcd_scroll()函数用来在2行字符串LCD(Character LCD)中滚动实现所有的字符串。Dis_idx(display_index)用来在2行字符LCD(Character LCD)中滚动实现32个字符串(代码127-128)。

 

这就是如何使用W7100A实现网络字符LCD的全部内容,希望对大家有所帮助。