天南地北客
发表于: 2018-3-25 16:33:11 | 显示全部楼层

Interfacing-LCD-with-MSP430G2-LaunchPad.jpg

本篇文章是我们学习使用Energia IDE开发环境编程MSP430G2 LaunchPad的教程系列中的第三篇教程。在上一篇教程中,我们学习了如何控制MSP430G2 LaunchPad开发板上的数字输入和输出引脚。在本教程中,我们将学习如何将LCD与开发板连接,以便我们可以显示一些有用的信息。


我们在这个项目中使用的LCD是最常用的16×2点阵式液晶显示器,也就是所谓的字符显示器。我们大多数人都会通过公共PCO或其他电子项目来接触到这一点。像这样的显示对于我们将来的教程中显示数据和其他调试信息将非常方便。由于提供了库,将该LCD与MSP430连接起来非常简单。所以让我们开始学习吧!


所需材料

●    德州仪器的MSP430G2 LaunchPad开发板

●    16×2点阵液晶显示器

●    连接导线

●    Energia IDE开发环境


16×2点阵液晶显示器简介

正如前面所述,Energia IDE提供了一个美丽的库,它使得接口成为一块蛋糕,因此不必知道显示模块的任何内容。但是,展示我们正在使用的内容,会不会很有趣!

名称16×2意味着显示器有16列和2行,它们共同构成32个盒子(16 * 2)。在下面的图片中,一个盒子看起来就像这样:

LCD-Module-Pixels.jpg

一个盒子有40个像素(点),形成了5行和8列的矩阵,这40个像素一起构成一个字符。同样,可以使用所有框显示32个字符。现在,让我们看看LCD模块的引脚。

16x2-LCD-Module-Pinouts.png

如上所示,LCD共有16个引脚,它们可以分为四组,如下所示

电源引脚(1、2和3):这些引脚为显示瓶提供电源和对比度

控制引脚(4、5和6):这些引脚设置/控制LCD接口IC中的寄存器(更多信息请参见下面的链接)

数据/命令引脚(7至14):这些引脚提供应在LCD上显示哪些信息的数据。

LED引脚(15和16):如果需要,这些引脚用于点亮LCD的背光(可选)。


在所有这16个引脚中,只有10个引脚必须用于LCD的正常工作。


电路原理图和连接方式

下面显示了将16×2点阵LCD显示屏与MSP430G2控制器连接的完整电路图。

Interfacing-LCD-with-MSP430G2-LaunchPad-circuit-diagram.png

在连接这两个接口时一个主要的限制是它们的工作电压。 LCD显示屏具有+ 5V的工作电压,而MSP430G2 LaunchPad开发板的工作电压仅为3.6V。幸运的是,LCD接口IC(HD44780U)的数据引脚具有2.7V至5.5V的宽工作电压。所以我们只需考虑LCD的Vdd(引脚2),而数据引脚甚至可以在3.6V的条件下工作。

默认情况下MSP430G2开发板没有给出一个+ 5V的引脚,但是我们可以在USB端口上做一些小小的工作,以便能从MSP430得到+ 5V。如果仔细观察USB端口,您可以找到一个名为TP1的端子,此端子可以给我们提供 5v。我们所要做的就是按照下图所示焊接一个小的插头,以便我们将它连接到我们的LCD显示器上。

Notifying-for-powering-condition-of-MSP430G2-LaunchPad-USB-port.jpg

注意:请勿将可能消耗50mA以上的负载连接至此5V引脚,否则可能会烧毁您的USB端口。


如果您对焊接不感兴趣,只需使用任何+ 5V稳压电源,然后向LCD供电,在这种情况下,请确保将电源地连接到MSP开发板的地。

一旦完成连接+ 5V引脚,其他引脚的连接就非常简单。现在我们的硬件已经准备就绪,让我们继续介绍软件部分。


使用Energia开发环境编程用于LCD的MSP430

本页末尾给出了将MSP430G2553与LCD显示器连接的完整程序。代码可以进行编译、上传和使用。在下面的段落中,我将解释程序是如何工作的。


在我们继续解释之前,我们必须记下我们正在使用的引脚。如果你看一下上面的电路图和下面的MSP430引脚图,

Blinking-an-LED-on-MSP430G2_0.jpg


您可以得出结论,我们已经按照下表连接了LCD。

LCD引脚名称
连接到
VSS
VDD
+ 5V USB引脚
Rs
MSP开发板的第2脚
R / W
Enable
MSP开发板的第3脚
D4
MSP开发板的第4脚
D5
MSP开发板的第5脚
D6
MSP开发板的第6脚
D7
MSP开发板的第7脚

考虑到这一点,我们开始在程序中定义使用的LCD引脚。我们将用更有意义的名称命名每个引脚,以便稍后可以轻松使用它。

  1. #define RS 2
  2. #define EN 3
  3. #define D4 4
  4. #define D5 5
  5. #define D6 6
  6. #define D7 7
复制代码

这只是意味着不用调用引脚2,我可以在后面将其称为RS,对于所有6个引脚也是如此。


下一步将包括LCD库。当您安装Energia IDE时,该库将自动安装。因此,只需使用以下行添加它即可

  1. #include <LiquidCrystal.h>
复制代码

下一步是提及LCD所连接的引脚,因为我们已经使用#define命名了它,现在我们可以简单地提及LCD引脚的名称。确保遵循相同的顺序。

  1. LiquidCrystal lcd(RS, EN, D4, D5, D6, D7);
复制代码

现在让我们介绍void setup()函数。液晶显示器的种类很多,大小和性质各不相同,我们使用的液晶显示器是16 * 2,所以让我们在我们的程序中指定

  1. lcd.begin(16, 2);
复制代码

要在LCD上打印某些东西,我们必须在程序中提到两件事。一个是可以使用lcd.setCursor()行提及的文本的位置,另一个是可以由lcd.print()提及的打印内容。在这一行中,我们将光标设置为第1行和第1列。

  1. lcd.setCursor(0,0);
复制代码

同样,我们也可以

  1. lcd.setCursor(0, 1);   // set the cursor to 1st column 2nd row
复制代码

就像在写入白板后擦除白板一样,一旦写入内容,LCD也应该被擦除。这可以通过使用下面的代码行来完成:

  1. lcd.clear();
复制代码

所以完整的void setup()函数看起来像这样。

  1. void setup() {
  2.   lcd.begin(16, 2); //We are using a 16*2 LCD display
  3.   lcd.setCursor (0,0); //Place the cursor at 1st row 1st column
  4.   lcd.print("MSP430G2553"); //Display a intro message
  5.   lcd.setCursor(0, 1);   // set the cursor to 1st column 2nd row
  6.   lcd.print("-CircuitDigest"); //Display a intro message
  7.    delay(2000); //Wait for display to show info
  8.    lcd.clear(); //Then clean it
  9. }
复制代码

接下来,在我们的void loop()函数中,让我们继续每500ms增加一个数字,并在LCD中显示数字。这个数字测试并初始化为1,如下所示

  1. int test =1;
复制代码

要创建一个延迟,我们可以使用内置函数delay()。我们必须提及我们需要多少时间才能发生延迟。在我们的例子中,我使用了如下所示的500ms

  1. delay(500);
复制代码

递增一个变量可以通过test ++来完成,其余的全部都已经解释过了。下面显示了void loop()内的完整代码

  1. void loop() {
  2.   lcd.print("LCD with MSP"); //Display a intro message
  3.   lcd.setCursor(0, 1);   // set the cursor to column 0, line 1
  4.   lcd.print(test); //Display a intro message
  5.   delay(500);
  6.   lcd.clear(); //Then clean it
  7.   test++;
  8. }
复制代码

使用MSP430G2连接16x2 LCD

一旦你的硬件和代码准备就绪,只需将你的开发板连接到电脑上,并像上一个教程那样上传代码。代码上传后,您应该看到显示以下内容的显示。

Interfacing-LCD-with-MSP430G2-LaunchPad (1).jpg

两秒后,显示屏幕将从设置变为循环,并开始递增变量并显示在屏幕上,如下图所示。

LCD-with-MSP430G2-LaunchPad-in-action.jpg

在本文的末尾列出了完整的代码。继续尝试更改LCD上正在显示的内容并使用它。希望你能理解本教程并学习到一些有用的形式。如果您有任何疑问,请在本帖的下面下面的将它们留在下面的评论部分或使用论坛。让我们在另一个教程中见面。


代码

本篇教程使用的完整代码如下: main.c (1 KB, 下载次数: 273)

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 26 | 回复: 45



手机版|

GMT+8, 2024-4-20 02:23 , Processed in 0.148304 second(s), 9 queries , Gzip On, MemCache On. Powered by Discuz! X3.5

YiBoard一板网 © 2015-2022 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表