0°

(四)msp430进阶:LCD 16×2与MSP-EXP430G2 TI Launchpad连接

介绍

(四)msp430进阶:LCD 16x2与MSP-EXP430G2 TI Launchpad连接

LCD 16×2

LCD(液晶显示器)用于嵌入式系统应用中,用于显示系统的各种参数和状态。

LCD 16×2是一个16引脚器件,有2行,每行可容纳16个字符。

LCD 16×2可用于4位模式或8位模式。

也可以创建自定义字符。

它有8条数据线和3条控制线,可用于控制目的。

 

接线图

(四)msp430进阶:LCD 16x2与MSP-EXP430G2 TI Launchpad连接

16×2 LCD与MSP-EXP430G2 TI Launchpad接口

 

在8位和4位模式下以16×2 LCD(自定义字符和常规字符)显示数据。

 

在这里,我们将在IDE中使用Arduino提供的LiquidCrystal库,用于基于Hitachi HD44780(或兼容)芯片组的LCD。该库也适用于MSP-EXP430G2 TI Launchpad。

我们在本教程末尾给出的附件中提供了此库。

从附件下载库。解压缩库并将该文件夹添加到Energia IDE的libraries文件夹路径中。

您也可以直接从Arduino IDE复制Liquid Crystal文件夹,并将其添加到Energia IDE的库文件夹路径中。

 

谨慎行事 MSP-EXP430G2 TI Launchpad主板具有512字节的RAM,可轻松上传,尤其是在使用不同库时。有时您需要串行缓冲区足够大以包含所需的数据,并且您必须修改串行库的缓冲区大小。在做这些事情时,我们必须确保代码不会使用超过70%的RAM。这可能导致代码以不稳定的方式工作,有时运行良好并且在其他方​​面失败。 

有些时候RAM使用率可能会超过70%并且代码将完全正常工作,并且即使RAM使用率为65%,代码也无法工作。 

在这种情况下,可能需要对缓冲区大小和/或变量进行一些试验和错误。

 

用于在LCD上显示数据的程序(自定义字符和常规字符)

#include <LiquidCrystal.h>
/* Create object named lcd of the class LiquidCrystal */
LiquidCrystal lcd(10, 9, 8, 7, 6, 5, 4, 14, 13, 12, 11);	/* For 8-bit mode */
//LiquidCrystal lcd(10, 9, 8, 14, 13, 12, 11);	/* For 4-bit mode */

unsigned char Character1[8] = { 0x04, 0x1F, 0x11, 0x11, 0x1F, 0x1F, 0x1F, 0x1F };	/* Custom Character 1 */
unsigned char Character2[8] = { 0x01, 0x03, 0x07, 0x1F, 0x1F, 0x07, 0x03, 0x01 };	/* Custom Character 2 */

void setup() {
  lcd.begin(16,2);	/* Initialize 16x2 LCD */
  lcd.clear();	/* Clear the LCD */
  lcd.createChar(0, Character1);	/* Generate custom character */
  lcd.createChar(1, Character2);
}

void loop() {
  lcd.setCursor(0,0);	/* Set cursor to column 0 row 0 */
  lcd.print("Hello");	/* Print data on display */
  lcd.setCursor(0,1);  
  lcd.write(byte(0));	/* Write a character to display */
  lcd.setCursor(10,1);  
  lcd.write(1);
}


 

使用的功能

1.LiquidCrystal object_name(rs,rw,en,d0,d1,d2,d3,d4,d5,d6,d7)

   LiquidCrystal object_name(rs,rw,en,d4,d5,d6,d7)

  • 此函数定义LiquidCrystal类的名为object_name的对象。
  • rs,rw和en是连接到LCD的rs,rw和en的MSP -EXP430G2 TI Launchpad板的引脚编号。
  • d0,d1,d2,d3,d4,d5,d6和d7是连接到LCD的数据引脚D1,D2,D3,D4,D5,D6和D7的MSP-EXP430G2 TI Launchpad板的引脚编号。
  • 实例,LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3)。这使得LCD以8位模式使用。
  • 实例,LiquidCrystal lcd(13, 12, 11, 6, 5, 4, 3)。这样可以在4位模式下使用LCD。

 

2. lcd.begin(cols,rows)

  • 此功能用于定义LCD具有的行数和列数,以及初始化LCD。
  • 一旦使用第1点中的函数定义了对象,则需要在调用其他函数之前调用。
  • 例如,对于16×2 LCD,我们编写lcd.begin(16,2)lcd是LiquidCrystal类的对象的名称。16是列数,2是行数。

 

3. lcd.setCursor(col,row)

  • 此功能将LCD的光标定位到行和列参数指定的位置。
  • col是光标所在的列号(第1列为0,第5列为4,依此类推)。
  • row是光标所在的行号(第1行为0,第2行为1)。
  • 例如,将光标设置在第2行的第5列,lcd.setCursor(4,1)lcd是LiquidCrystal类的对象的名称。

 

4.  lcd.createChar(num,data)

  • 此功能用于创建在LCD上使用的新自定义字符。
  • num是要存储自定义字符的CGRAM位置(0到7)。
  • data是一个包含八个字节的数组,表示自定义字符。
  • 自定义字符只能是5×8像素。
  • 每个自定义字符由八个字节的数组指定,每行一个。每个字节的五个最低有效位确定该行中的像素。
  • 要在屏幕上显示自定义字符,需要使用write()函数。要在LCD上显示的自定义字符的CGRAM位置编号(0到7)作为参数传递给写入功能。
  • 注意:引用自定义字符“0”时,需要将其强制转换为字节,否则编译器会抛出错误。

完整程序和库文件下载

限制以下用户组阅读此隐藏内容

请先登录

您的用户组:

 

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论