这是教程序列中的第三个教程,我们将在其中学习使用Energia IDE对MSP430G2 LaunchPad进行编程。在上一教程中,我们学习了如何控制MSP板上的数字输入和输出引脚。在本教程中,我们将学习如何将LCD与主板连接,以便我们显示有用的信息。
我们在该项目中使用的LCD是最常用的16×2点矩阵LCD显示器,也就是字母数字显示器。我们大多数人可能会通过公共PCO或其他电子项目遇到这种情况。这样的显示将非常方便我们将来的教程来显示数据和其他调试信息。借助可用的库,该LCD与MSP430的接口非常容易。因此,让我们开始吧!
所需材料:
- 德州仪器(TI)的MSP430G2 LaunchPad
- 16×2点阵LCD显示屏
- 连接线
- 能源IDE
16×2点矩阵LCD显示屏简介:
如前所述,Energia IDE提供了一个漂亮的库,该库使接口工作变得轻而易举,因此不必一定要了解显示模块。但是,显示我们正在使用的内容不是很有趣!!
名称16×2表示显示器具有16列和2行,它们一起(16 * 2)组成32个框。下图是一个盒子的样子
一个盒子有40个像素(点),矩阵顺序为5行8列,这40个像素一起形成一个字符。同样,可以使用所有框显示32个字符。现在让我们看一下引脚排列。
LCD共有16个引脚,如上所示,它们可以分为四类,如下所示
源引脚(1、2和3): 这些引脚为显示器提供电源和对比度
控制引脚(4、5和6):这些引脚设置/控制LCD接口IC中的寄存器(更多信息请参见下面的链接)
数据/命令引脚(7至14):这些引脚提供应在LCD上显示哪些信息的数据。
LED引脚(15和16):如果需要,这些引脚用于使LCD的背光发光(可选)。
如果您想了解有关这些LCD显示屏的更多信息,那么在这16个引脚中,只有10个必须用于LCD的正常工作。
电路图和连接:
下面显示了连接16×2点矩阵LCD显示器与MSP430G2的完整电路图。
连接这两者的一个主要限制是它们的工作电压。LCD显示屏的工作电压为+ 5V,而MSP的工作电压仅为3.6V。幸运的是,LCD接口IC(HD44780U)的数据引脚具有2.7V至5.5V的宽工作电压。因此,我们仅需担心LCD的Vdd(引脚2),而数据引脚甚至可以在3.6V的电压下工作。
默认情况下,MSP430G2板不为您提供+ 5V引脚,但是通过使用USB端口,我们可以做一个小技巧来从MSP430获得+ 5V。如果仔细观察USB端口,您会发现一个名为TP1的端子,该端子将为我们提供+ 5v电压。我们要做的就是如下图所示焊接一个小的公头引脚,以便将其连接到我们的LCD显示器。
注意:请勿将可能消耗超过50mA的负载连接到该5V引脚,否则可能会炸毁USB端口。
如果您对焊接不感兴趣,只需使用+ 5V稳压电源为LCD供电,在这种情况下,请确保将电源的接地端连接到MSP板的接地端。
一旦完成了+ 5V引脚的连接,其他引脚就非常简单了。现在我们的硬件已经准备就绪,让我们继续进行软件部分。
使用Energia为LCD编程MSP430:
该完整的程序接口与LCD显示器的MSP430G2553在当前页的最后给出。可以对代码进行编译,上传和使用。在下面的段落中,我将解释该程序的工作方式。
在进行解释之前,我们必须记下正在使用的引脚。如果您看一下上面的电路图和下面的MSP430引脚图
您可以得出结论,我们已按照下表连接了LCD
LCD引脚名称 |
连接到 |
VS |
地面 |
Vdd |
+ 5V USB引脚 |
Rs |
MSP的引脚2 |
读/写 |
地面 |
启用 |
MSP的引脚3 |
D4 |
MSP的引脚4 |
D5 |
MSP的引脚5 |
D6 |
MSP的引脚6 |
D7 |
MSP的引脚7 |
考虑到这一点,让我们开始定义程序中使用的LCD引脚。我们将使用更有意义的名称来命名每个引脚,以便我们以后可以轻松使用它。
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7
这只是意味着,在下文中,我可以不再将其称为引脚2,而将其称为RS,对于所有6个引脚也是如此。
下一步将包括LCD库。当您安装Energia IDE时,该库将自动安装。因此,只需使用以下行将其添加
#包括
下一步是提及LCD所连接的引脚,因为我们已经使用 #define 对其进行了命名,我们现在只需提及LCD引脚的名称即可。确保遵循相同的顺序。
LiquidCrystal LCD(RS,EN,D4,D5,D6,D7);
现在让我们进入 void setup() 函数。大小和性质各异的LCD显示器种类繁多,我们使用的是16 * 2,所以我们在程序中指定
lcd.begin(16,2);
要在LCD上打印某些内容,我们必须在程序中提及两点。一个是可以使用 lcd.setCursor() 行提及的文本位置,另一个是可以由 lcd.print() 提及的要打印的内容 。 在这条线,我们设定光标1日行1日列。
lcd.setCursor(0,0);
同样,我们也可以
lcd.setCursor(0,1); //将光标设置在第一列第二行
就像在白板上擦写之后擦掉白板一样,一旦在白板上写了东西,LCD也应该被擦除。这可以通过使用以下行来完成
lcd.clear();
因此,完整的 void setup() 函数将如下所示。
void setup(){lcd.begin(16,2); //我们使用的是16 * 2 LCD显示屏lcd.setCursor(0,0); //将光标置于第一行第一列lcd.print(“ MSP430G2553”); //显示介绍性消息lcd.setCursor(0,1); //将光标设置为第一列第二行lcd.print(“-CircuitDigest”); //显示简介消息的延迟(2000); //等待显示以显示信息lcd.clear(); //然后清理它}
接下来,在我们的 void loop() 函数中,让我们保持每500ms递增一个数字,并在LCD上显示该数字。测试此数字并将其初始化为1,如下所示
int测试= 1;
要创建延迟,我们可以使用内置函数 delay()。 我们必须提到需要多少时间才能发生延迟。在我们的例子中,我使用了500毫秒,如下所示
延迟(500);
可以通过test ++来增加变量,其余的都已经说明。的完整的代码的内部 空隙环 如下所示
void loop(){lcd.print(“ LCD with MSP”); //显示介绍性消息lcd.setCursor(0,1); //将光标设置到第0列第1行lcd.print(test); //显示介绍信息的延迟(500); lcd.clear(); //然后清理一下test ++; }
带有MSP430G2的16x2 LCD:
一旦您的硬件和代码准备就绪,只需将您的主板连接到计算机,然后按照我们在教程一中所做的那样上传代码。代码上传后,您应该会看到以下显示。
两秒钟后,显示屏幕将从设置更改为循环,并开始递增变量并在屏幕上显示,如下图所示。
在完整的工作可以在视频中找到下面。继续尝试更改LCD上显示的内容并进行操作。希望您理解该教程并从中学习到一些有用的信息。如果您有任何疑问,请将其留在下面的评论部分或使用论坛。让我们在另一个教程中见面。