日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

将16x2 LCD与Arduino连接方法

發(fā)布時(shí)間:2024/3/26 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将16x2 LCD与Arduino连接方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文地址:https://circuitdigest.com/microcontroller-projects/arduino-lcd-interfacing-tutorial

將16x2 LCD與Arduino連接方法

ARDUINO的

經(jīng)過(guò)**迪利普·拉賈(Dilip Raja)** 2015年6月4日19

為了在人的世界和機(jī)器的世界之間建立良好的溝通,顯示單元扮演著重要的角色。因此,它們是嵌入式系統(tǒng)的重要組成部分。顯示單元-不論大小,都遵循相同的基本原理。除了圖形顯示和3D支付等復(fù)雜的顯示單元外,還必須知道如何使用16x1和16x2單元之類(lèi)的簡(jiǎn)單顯示。16x1顯示單元將包含16個(gè)字符,并在一行中。的16×2 LCD將在總16英寸1 32個(gè)字符第一 線和另一條16在2次 線。在此必須理解,每個(gè)字符中都有5x10 = 50像素,因此要顯示一個(gè)字符,所有50像素必須一起工作。但是我們不必?fù)?dān)心,因?yàn)槿藱C(jī)界面中還有另一個(gè)控制器(HD44780)負(fù)責(zé)控制像素。(您可以在LCD單元中看到它,它是背面的黑眼圈)。

在本教程中,我們將使用ARDUINO UNO連接16x2 LCD。與普通的開(kāi)發(fā)板不同,將LCD連接到ARDUINO的過(guò)程非常簡(jiǎn)單。在這里,我們不必?fù)?dān)心數(shù)據(jù)發(fā)送和接收。我們只需要定義引腳號(hào),它就可以在LCD上顯示數(shù)據(jù)了。

所需組件

硬件: ARDUINO UNO,電源(5v),JHD_162ALCD(16x2LCD),100uF電容器。

軟體: Arduino IDE(Arduino nightly)。

電路圖和說(shuō)明

16x2 LCD顯示模塊

帶有HD44780控制器的16x2 LCD顯示模塊

之所以命名為**16×2 LCD,**是因?yàn)?#xff1b;它有16列和2行。有很多可用的組合,例如8×1、8×2、10×2、16×1等。但是最常用的是16 * 2 LCD,因此我們?cè)谶@里使用它。

上面提到的所有LCD顯示屏都將具有16針,并且編程方法也相同,因此選擇權(quán)留給您。以下是16x2 LCD模塊引腳排列和引腳描述

序號(hào)引腳號(hào)引腳名稱(chēng)引腳類(lèi)型引腳說(shuō)明引腳連接
1引腳1GND電源極引腳這是LCD的接地引腳連接到MCU /電源的接地
2引腳2VCC電源極引腳這是LCD的電源電壓引腳連接到電源的電源引腳
3引腳3V0 / VEE控制引腳調(diào)整液晶顯示屏的對(duì)比度。連接到可以提供0-5V電源的可變POT
4引腳4寄存器選擇控制引腳在命令/數(shù)據(jù)寄存器之間切換連接到MCU引腳并獲得0或1。0- > Command Mode 1-> Data Mode
5引腳5讀/寫(xiě)控制引腳在讀/寫(xiě)操作之間切換LCD連接到MCU引腳并獲得0或1。0- >寫(xiě)入操作 1->讀取操作
6引腳6使能控制引腳必須保持高電平才能執(zhí)行讀/寫(xiě)操作連接到MCU并始終保持高電平。
7引腳7-14數(shù)據(jù)位(0-7)數(shù)據(jù)/命令引腳用于將命令或數(shù)據(jù)發(fā)送到LCD的引腳。在4線模式下, 只有4個(gè)引腳(0-3)連接到MCU。在8線模式下,所有8個(gè)引腳(0-7)連接到MCU。
8引腳15LED正極LED接腳正常的LED狀操作可照亮LCD連接到+ 5V
9引腳16LED負(fù)極LED接腳正常的LED像操作一樣點(diǎn)亮連接到GND的LCD。接地

如果您不了解所有引腳的功能也可以,我將在下面詳細(xì)解釋。現(xiàn)在,讓我們回頭看一下LCD:

好吧,這兩個(gè)黑色圓圈像是LCD背面的東西嗎?

這些黑圈由接口IC及其相關(guān)組件組成,可幫助我們將此LCD與MCU配合使用。因?yàn)槲覀兊腖CD是16 * 2點(diǎn)矩陣LCD,所以它將總共有(16 * 2 = 32)32個(gè)字符,每個(gè)字符將由5 * 8像素點(diǎn)組成。下圖顯示了一個(gè)啟用了所有像素的單個(gè)字符。

所以現(xiàn)在,我們知道每個(gè)字符都有(5 * 8 = 40)40個(gè)像素,對(duì)于32個(gè)字符,我們將有(32 * 40)1280個(gè)像素。此外,還應(yīng)指示LCD有關(guān)像素的位置。

在MCU的幫助下處理所有事情將是一項(xiàng)繁重的任務(wù),因此使用了HD44780之類(lèi)接口IC,該接口IC安裝在LCD模塊本身上。該IC的功能是從MCU獲取命令和數(shù)據(jù),并對(duì)它們進(jìn)行處理,以在我們的LCD屏幕上顯示有意義的信息。

讓我們討論必須由控制引腳控制的LCD中可用的不同類(lèi)型的模式和選項(xiàng)。

*LCD的4位和8位模式*

LCD可以在兩種不同的模式下工作,即4位模式和8位模式。在**4位模式下,**我們先將數(shù)據(jù)半字節(jié)發(fā)送,首先是高半字節(jié),然后是低半字節(jié)。對(duì)于那些不知道什么是半字節(jié)的人:半字節(jié)是一組四位,因此字節(jié)的低四位(D0-D3)形成低四位,而高四位(D4-D7)一個(gè)字節(jié)的形式從較高的半字節(jié)開(kāi)始。這使我們能夠發(fā)送8位數(shù)據(jù)。

而**在8位模式下,**由于我們使用了所有8條數(shù)據(jù)線,因此可以一鍵直接發(fā)送8位數(shù)據(jù)。

現(xiàn)在您一定已經(jīng)猜到了,是的,8位模式比4位模式更快,更完美。但是主要的缺點(diǎn)是它需要將8條數(shù)據(jù)線連接到微控制器。這將使我們用完MCU的I / O引腳,因此廣泛使用4位模式。沒(méi)有控制引腳用于設(shè)置這些模式。這只是編程方式的變化。

*LCD的讀寫(xiě)模式:*

如前所述,LCD本身包含一個(gè)接口IC。MCU可以對(duì)該接口IC進(jìn)行讀取或?qū)懭搿T诖蠖鄶?shù)情況下,我們只會(huì)寫(xiě)IC,因?yàn)樽x取會(huì)使它變得更復(fù)雜,而且這種情況很少見(jiàn)。如果需要,可以讀取諸如光標(biāo)位置,狀態(tài)完成中斷等信息,但這不在本教程的討論范圍之內(nèi)。

大多數(shù)LCD中使用的接口IC是**HD44780U,**為了對(duì)LCD進(jìn)行編程,我們應(yīng)該學(xué)習(xí)IC的完整數(shù)據(jù)表。該數(shù)據(jù)表是這里給出。

*LCD命令:*

LCD中有一些預(yù)設(shè)命令指令,我們需要通過(guò)一些微控制器將這些指令發(fā)送到LCD。以下是一些重要的命令說(shuō)明:

十六進(jìn)制代碼LCD指令寄存器的命令
0FLCD亮,光標(biāo)亮
01清除顯示畫(huà)面
02回家
04減少光標(biāo)(向左移動(dòng)光標(biāo))
06增量光標(biāo)(向右移動(dòng)光標(biāo))
05右移顯示
07左移顯示
0E顯示開(kāi),光標(biāo)閃爍
80強(qiáng)制光標(biāo)到第一行的開(kāi)頭
C0強(qiáng)制光標(biāo)移至第二行的開(kāi)頭
382行和5×7矩陣
83光標(biāo)線1位置3
3C激活第二行
08顯示關(guān)閉,光標(biāo)關(guān)閉
C1跳至第二行,位置1
0C顯示開(kāi)啟,光標(biāo)關(guān)閉
C1跳至第二行,位置1
C2跳至第二行,位置2

在16x2 LCD中,如果有背光,則全部有16個(gè)引腳,如果沒(méi)有背光,則有14個(gè)引腳。一個(gè)人可以給背光燈插針供電或懸空。現(xiàn)在,在14個(gè)引腳中,有8個(gè)數(shù)據(jù)引腳(7-14或D0-D7),2個(gè)電源引腳(1&2或VSS&VDD或GND&+ 5v),第三個(gè)用于對(duì)比度控制的引腳(VEE控制字符的粗細(xì))如圖所示)和3個(gè)控制引腳(RS&RW&E)。

在電路中,可以觀察到我只接了兩個(gè)控制引腳,這給了靈活性。對(duì)比度位和READ / WRITE并不經(jīng)常使用,因此它們可以接地。這使LCD處于最高對(duì)比度和讀取模式。我們只需要控制ENABLE和RS引腳即可相應(yīng)地發(fā)送字符和數(shù)據(jù)。

LCD的連接如下所示:

  • PIN1或VSS接地

  • PIN2或VDD或VCC至+ 5v電源

  • PIN3或VEE接地(為初學(xué)者提供最大對(duì)比度)

  • PIN4或RS(寄存器選擇)到ARDUINO UNO的PIN0

  • PIN5或RW(讀/寫(xiě))接地(將LCD置于讀模式可簡(jiǎn)化用戶的通信)

  • PIN6或E(啟用)到ARDUINO UNO的PIN1

  • PIN11或D4至ARDUINO UNO的PIN8

  • PIN12或D5至ARDUINO UNO的PIN9

  • PIN13或D6至ARDUINO UNO的PIN10

  • PIN14或D7至ARDUINO UNO的PIN11

ARDUINO IDE允許用戶以4位模式使用LCD。這種通信類(lèi)型使用戶能夠減少ARDUINO上的引腳使用,這與其他ARDUINO無(wú)需單獨(dú)編程以在4 it模式下使用有關(guān),因?yàn)槟J(rèn)情況下ARDUINO設(shè)置為以4位模式進(jìn)行通信。在電路中,您可以看到我們使用了4位通信(D4-D7)。

因此,僅從上表的觀察,我們就將LCD的6個(gè)引腳連接到控制器,其中4個(gè)引腳是數(shù)據(jù)引腳,另外2個(gè)是控制引腳。

上圖顯示了連接到ARDUINO UNO的16x2 LCD的電路圖

原理

要將LCD連接到ARDUINO UNO,我們需要了解一些事情。

#include <LiquidCrystal.h>lcd.begin(16,2); LiquidCrystal LCD(0,1,8,9,10,11); lcd.print(“ hello,world!”);

如上表所示,我們只需要查看這四行即可在ARDUINO和LCD之間建立通信。

首先,我們需要啟用頭文件(’#include <LiquidCrystal.h>’),該頭文件中寫(xiě)入了指令,這使用戶能夠以4位模式將LCD連接到UNO,而不會(huì)產(chǎn)生任何絨毛。使用此頭文件,我們不必將數(shù)據(jù)一點(diǎn)一點(diǎn)地發(fā)送到LCD,這一切都將得到解決,我們也不必編寫(xiě)用于向LCD發(fā)送數(shù)據(jù)或命令的程序。

其次,我們需要告訴主板我們?cè)谶@里使用哪種類(lèi)型的LCD。由于我們有許多不同類(lèi)型的LCD(例如20x4、16x2、16x1等)。在這里,我們將16x2 LCD連接到UNO,因此得到“ lcd.begin(16,2);”。對(duì)于16x1,我們得到’lcd.begin(16,1);’。

在此說(shuō)明中,我們將告訴主板我們引腳的連接位置。連接的引腳需要按“ RS,En,D4,D5,D6,D7”的順序表示。這些引腳應(yīng)正確表示。由于我們已將RS連接到PIN0等,如電路圖所示,我們將板上的引腳號(hào)表示為L(zhǎng)iquidCrystal lcd(0,1,8,9,10,11);。需要在LCD中顯示的數(shù)據(jù)應(yīng)寫(xiě)為lcd.print(“ hello,world!”);。使用此命令,LCD會(huì)顯示“ hello,world!”。

如您所見(jiàn),我們不必?fù)?dān)心任何其他事情,我們只需要初始化即可,UNO將準(zhǔn)備顯示數(shù)據(jù)。我們不必在此處編寫(xiě)程序循環(huán)來(lái)通過(guò)BYTE發(fā)送數(shù)據(jù)BYTE。

LCD和UNO之間的通信方式在下面給出的C代碼中逐步說(shuō)明:

#include <LiquidCrystal.h>// initialize the library with the numbers of the interface pinsLiquidCrystal lcd(0, 1, 8, 9, 10, 11); /// REGISTER SELECT PIN,ENABLE PIN,D4 PIN,D5 PIN, D6 PIN, D7 PINvoid setup() {// set up the LCD's number of columns and rows: lcd.begin(16, 2); }void loop() { // set the cursor to column 0, line 1 lcd.print(" CIRCUIT DIGEST");//print name lcd.setCursor(0, 1); // set the cursor to column 0, line 2 lcd.print("www.circuitdigest.com");//print name delay(750);//delay of 0.75sec lcd.scrollDisplayLeft();//shifting data on LCD lcd.setCursor(0, 0);// set the cursor to column 0, line1 }

總結(jié)

以上是生活随笔為你收集整理的将16x2 LCD与Arduino连接方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。