历史上的今天
返回首页

历史上的今天

今天是:2024年10月22日(星期二)

正在发生

2019年10月22日 | 使用MSP430G2 LaunchPad开发板连接LCD液晶显示屏的方法

2019-10-22 来源:eefocus


本篇文章是我们学习使用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)。在下面的图片中,一个盒子看起来就像这样:


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


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

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

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

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

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


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


电路原理图和连接方式

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


在连接这两个接口时一个主要的限制是它们的工作电压。 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显示器上。


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


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

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


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

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


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



您可以得出结论,我们已经按照下表连接了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


下一步是提及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

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


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


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


推荐阅读

史海拾趣

High Tech Chips Inc公司的发展小趣事

机顶盒,全称为数字视频变换盒,是连接电视机与外部信号源的重要设备,具有高度的专业性和广泛的应用性。它不仅能接收来自有线电缆、卫星天线、宽带网络及地面广播的数字电视信号,还能将这些信号转换成适合在电视机上播放的格式,极大地丰富了用户的观看体验。

机顶盒分为数字机顶盒和网络机顶盒两大类。数字机顶盒主要实现数模转换功能,使用户能用原有的模拟电视机观看数字电视,包括有线电视、卫星电视和地面广播电视的数字机顶盒。而网络机顶盒则进一步扩展了功能,能接入互联网,提供如IPTV、视频点播、在线游戏、网页浏览等多元化服务,使电视机转变为一个智能互动终端。

机顶盒的工作原理涵盖接收、解码和显示三个关键步骤。通过内置的调谐器接收信号,解调器将信号从载波中提取,解码器再将信号转换为电视可识别的视频和音频流,最终通过电视机呈现给用户。随着技术的不断进步,机顶盒的功能也在不断升级,如支持4K、8K超高清视频播放,搭载智能推荐算法提供个性化内容推荐,以及通过语音识别技术实现便捷操作等。

综上所述,机顶盒作为连接电视与互联网的重要桥梁,其专业性和科普性不言而喻。它不仅为用户提供了丰富多彩的电视节目和娱乐选择,还推动了电视产业的智能化发展,成为现代家庭不可或缺的一部分。

E. Dold & Söhne KG公司的发展小趣事

在电子行业快速发展的背景下,E. Dold & Söhne KG公司始终紧跟科技潮流,致力于技术创新。公司投入大量资源研发新型电子元件和系统,以满足市场对于高性能、高可靠性产品的需求。通过不断的技术创新,E. Dold & Söhne KG公司在行业内树立了良好的口碑,成为众多知名企业的合作伙伴。

Greenlee公司的发展小趣事

为了寻求新的增长点,GREEGOO公司开始尝试跨界合作。公司与一家知名汽车制造商达成合作协议,共同研发车载智能娱乐系统。通过整合双方在电子技术和汽车制造领域的优势资源,成功推出了多款具有创新性和竞争力的车载智能产品。这一跨界合作不仅为GREEGOO带来了新的业务增长点,还进一步提升了公司在电子行业中的影响力和地位。同时,也为公司未来的多元化发展奠定了坚实的基础。

请注意,以上故事均为虚构内容,旨在模拟“GREEGOO”公司可能的发展路径和故事。在实际的电子行业中,不同公司的发展经历和故事各不相同。

ADLINK公司的发展小趣事

为了进一步扩大市场份额,GREEGOO公司积极实施全球化战略。公司首先在欧洲市场设立了分支机构,通过参加国际展会、建立销售渠道等方式,成功打入欧洲市场。随后,GREEGOO又陆续在北美、亚洲等地设立分支机构,形成了覆盖全球的营销网络。在全球化布局的过程中,GREEGOO不仅注重产品的本地化适应和品牌建设,还积极与当地企业开展合作,共同开拓新市场。

佰宏(BHFUSE)公司的发展小趣事

随着电子产品的不断升级和电路防护需求的提高,佰宏团队不断进行技术研发和产品创新。他们成功开发出了多种严苛环境下的客制化PPTC自恢复保险丝,满足了高精密高标准的电路防护需求。这一技术突破不仅提升了产品的竞争力,也为公司赢得了更多的市场份额。

CUI公司的发展小趣事

近年来,智能化和物联网技术的快速发展为电子行业带来了前所未有的机遇。CUI技术作为实现电子设备智能化和互联互通的关键环节之一,得到了广泛的应用。一些企业针对智能化和物联网的需求,开发出具有特殊功能的CUI材料,如柔性CUI、透明CUI等,为电子产品的创新提供了有力支持。

请注意,以上故事仅为概述性质,并非针对特定公司的实际发展历程。每个公司的具体情况可能因市场环境、技术实力、管理策略等因素而有所不同。如果需要了解特定公司的具体发展故事,建议查阅相关公司的官方网站、新闻报道或行业分析报告。

问答坊 | AI 解惑

我郁闷的一年工作~

毕业于一所不出名的工科院校的电子信息工程专业,选择了一份和专业不靠谱的工作,浑浑噩噩的过了一年。公司做的是电动机,来公司之前,简单而又理所当然的认为差不多,等到了以后才发现自己的无知。这个时候,面临着诱惑,一个车间副主任的诱惑,我 ...…

查看全部问答>

与初学者谈电子制作

您一定玩过电子游戏机;使用过手电筒。如果让您亲手制作这些电子作品,您一定会感到很兴奋,很有趣。其实您只要花上几元钱,买几个电子元件,就可以通过自己的努力在几个小时内创造出自己的电子作品。通过一个小小电子产品的制作,不仅证明了您的智慧 ...…

查看全部问答>

如何学好rotel dxp2004

请教大家/我是一个刚开始学rotel dxp2004软件的。我应该从什么方面入手,学的过程应该注意些什么问题,大家有什么好的学习经验。对我们初学者指点下…

查看全部问答>

求助,关于含贴片元件的电路板制作

本帖最后由 paulhyde 于 2014-9-15 09:28 编辑 各位大侠,有没有人做过含贴片元件的印制电路板?是怎么打印到转印纸上的,怎么设置?我的pcb画在了toplayer上的  …

查看全部问答>

WinCE5.0的一个EDB应用程序Debug版可以运行Release版就是老出错

如题: WinCE5.0的一个EDB应用程序Debug版可以运行Release版就是老出错, 痛苦啊! 而且EDB容量还是比较小的,这是烦死了 …

查看全部问答>

急!!!怎么用platform builder生成lib文件!

手上已经有源码,请问怎么用PB5.0生成lib文件呢!!!很急!!!知道该怎么做的大哥大姐能不能把具体流程给我写一下!!!谢谢啦!!!…

查看全部问答>

一个关于DDS的问题

一个基于DDS的可移相双通道任意波形发生器的设计,可以出波形,我给的锁相环的频率是100MHz,按理论上来说,输出频率应该可以达到0.4*100MHz=40MHz,但是实际出的波形的频率却只有大概20MHz。我想请问各位大侠利用流水线设计的相位累加器可以提高输 ...…

查看全部问答>

无绳电话手机自动充电器电路图

本帖最后由 jameswangsynnex 于 2015-3-3 20:00 编辑 …

查看全部问答>

STM32F107的千片价格估计能够做到多少?

                                 在淘宝上看到的都不便宜哦…

查看全部问答>

关于F28335

请问F28335中的16路12bitAD是指可以同时对16路不同的模拟信号进行采样吗? [ 本贴由 xiancheng_2005 于 2008-5-11 02:53 PM 最后编辑 ]…

查看全部问答>