0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

將LCD與STM8微控制器連接的過程

科技觀察員 ? 來源:circuitdigest ? 作者:Aswinth Raj ? 2022-08-10 16:07 ? 次閱讀

16x2 字母數(shù)字 LCD 顯示屏是愛好者和愛好者中最常用的顯示屏。當(dāng)您想向用戶顯示基本信息時,顯示非常有用,并且還可以幫助測試或調(diào)試我們的代碼。這種特殊的 16x2 LCD 模塊很容易獲得,并且已經(jīng)流行了很長時間。您可以在鏈接文章中了解有關(guān)16x2 LCD模塊基礎(chǔ)知識的更多信息。

為了繼續(xù)我們的STM8 微控制器系列教程,在本教程中,我們將學(xué)習(xí)如何將 LCD 與 STM8 微控制器連接。

16x2 LCD 顯示器的工作原理

顧名思義,16x2 LCD 將有 16 列和 2 行。所以總的來說,我們將能夠在這個顯示器上顯示 32 個字符,這些字符可以是字母或數(shù)字,甚至是符號。我們在本教程中使用的一個簡單的16x2 LCD 引腳如下所示 -

pYYBAGLzZuKAb7urAABBXCWoL24833.png

如您所見,顯示器有 16 個引腳,我們可以將其分為五類,電源引腳、對比度引腳、控制引腳、數(shù)據(jù)引腳和背光引腳,如下表所示。在討論本教程的電路圖時,我們將詳細介紹每個引腳。

pYYBAGLzZt-APqKfAAAtQ93Lphs192.png

在 LCD 的背面,如下圖所示,你會發(fā)現(xiàn)兩個黑點,里面是HD44780 LCD 驅(qū)動 IC(紅色圈出)。我們的微控制器應(yīng)該與這個 IC 通信,這反過來將控制 LCD 上顯示的內(nèi)容。如果您想知道這一切究竟是如何工作的,您應(yīng)該查看16x2 LCD 顯示器的工作原理,我們已經(jīng)詳細討論了 LCD 的工作原理。

pYYBAGLzZtuAeQuBAAV5aqzfjmM176.png

在本教程中,我們將討論使用簡單的 LCD_print_char和LCD_print_string命令在 16x2 LCD 顯示器上顯示字母字符(字母和數(shù)字)的電路圖和代碼。這些命令在包含我們的頭文件后可以直接在程序中使用。頭文件為您處理所有大部分內(nèi)容,因此不必了解顯示器或 HD44780 驅(qū)動 IC 的工作原理。

將 LCD 與 STM8 微控制器連接的電路圖

完整的STM8 LCD 電路如下圖所示。如您所見,STM8S103F3P6 控制器與 LCD的連接非常簡單,我們將 LCD 顯示器直接連接到我們的開發(fā)板,并且還連接了 ST-link 以對開發(fā)板進行編程。

poYBAGLzZteAZogYAACrm_hUjgc898.png

電源管腳Vss和Vcc接STM8S板上的5V管腳,注意LCD的工作電壓為5V,接上工作在3.3V。因此,即使 STM8S103F3P6 微控制器在 3.3V 上運行必須為 LCD 提供 5V 電源,您可以通過使用充電控制器 IC 來避免這種情況,但我們不會在本教程中討論這個問題。

接下來,我們有用于設(shè)置 LCD 對比度的對比度引腳,我們將其連接到電位器,以便我們可以控制對比度。我們使用了 10k 電位器,但您也可以使用其他附近的值,電位器充當(dāng)分壓器,為對比度引腳提供 0-5 V,通常您也可以直接使用電阻器提供 2.2V 左右的合理對比度價值。然后我們有復(fù)位 (RS)、讀/寫 (RW) 和啟用 (E) 引腳。讀寫引腳接地,因為我們不會從 LCD 讀取任何內(nèi)容,我們只會執(zhí)行寫入操作。另外兩個控制引腳 Rs 和 E 分別連接到 PA1 和 PA2 引腳。

然后我們有數(shù)據(jù)引腳 DB0 到 DB7。16x2 LCD 可以在兩種模式下運行,一種是 8 位操作模式,我們必須使用 LCD 上的所有 8 個數(shù)據(jù)引腳(DB0-DB7),另一種是 4 位操作模式,我們只需要 4 個數(shù)據(jù)引腳(DB4-DB7) 。通常使用 4 位模式,因為它需要控制器的 GPIO 引腳較少,因此我們在本教程中也使用了 4 位模式,并且僅將引腳 DB4、DB5、DB6 和 DB7 連接到引腳 PD1、PD2、PD3 , 和 PD4 分別。

最后兩個引腳 BLA 和 BLK 用于為內(nèi)部背光 LED 供電,我們使用了一個 560 歐姆的電阻作為限流電阻。ST-Link 編程器的連接方式與我們之前的教程一樣。我在面包板上完成了完整的連接,我的設(shè)置如下圖所示。

poYBAGLzZtOAAHxqAASn1q_o38o584.png

STM8 LCD 庫——STM8S103F3P6 的頭文件

您可以下載完整的 repo 并獲取stm8s103_LCD_16x2.h文件,也可以簡單地從上面的鏈接中獲取代碼。在設(shè)置項目時,請確保在 inc 目錄中包含所有必需的頭文件以及此頭文件。

poYBAGLzZs-AU3XLAAGwLx1Mu5s361.png

如果您不確定如何添加頭文件和編譯程序,請按照本頁底部的視頻進行操作。如果您對頭文件中的代碼如何工作感到好奇,您可以查看帶有 LCD 教程的 PIC。這個項目中使用的頭文件與那里解釋的非常相似,所以我們不會詳細介紹。

STM8S微控制器的LCD程序

為了演示,我們將對 STM8S 控制器進行編程以顯示一個簡單的字符串,例如“Circuit Digest”,然后我們將在第二行中每隔一秒增加一個“Test”值。完整的程序可以在本頁底部找到。說明如下。

我們通過定義引腳并像往常一樣添加所需的頭文件來啟動我們的程序。在我們上面討論的電路圖中,我們已將LCD_RS連接到 PA1,因此我們將其定義為LCD_RS GPIOA、GPIO_PIN_1。 同樣,我們對其他引腳也做了同樣的事情。如果它們遵循不同的電路,請確保相應(yīng)地更改這些值。

#define LCD_RS GPIOA,GPIO_PIN_1

#define LCD_EN GPIOA, GPIO_PIN_2

#define LCD_DB4 GPIOD,GPIO_PIN_1

#define LCD_DB5 GPIOD,GPIO_PIN_2

#define LCD_DB6 GPIOD,GPIO_PIN_3

#define LCD_DB7 GPIOD,GPIO_PIN_4

#包括“STM8S.h”

#include “stm8s103_LCD_16x2.h”

接下來在我們的主程序中,我們聲明了此示例代碼所需的變量。我們有一個名為test_var 的測試變量,它被初始化為零,我們將增加變量并將其顯示在 LCD 上。d1 到 d4 字符代表測試變量的 4 位,因為我們的 LCD 不能直接顯示 int 值,我們必須將它們轉(zhuǎn)換為字符。

//變量聲明

int test_var = 0;

字符 d4,d3,d2,d1;

LCD_Begin () 函數(shù)用于初始化 LCD。該函數(shù)將初始化所有需要的 GPIO 引腳并將 LCD 設(shè)置為 16x2 LCD 模式。然后我們有LCD_Clear()函數(shù),用于清除 LCD 上的所有值,這將擦除 LCD 上的所有內(nèi)容,以便寫入新值是干凈的。然后我們有LCD_Set_Cursor(x,y)函數(shù),其中 x 和 y 是我們需要寫入新字符的位置。例如,(1,1) 表示第一行和第一列,同樣,(2,12) 表示第二行 12 列,同樣。請注意,如前所述,我們在這里有 2 行和 16 列。

液晶開始();

液晶清除();

Lcd_Set_Cursor(1,1);

現(xiàn)在,LCD 已設(shè)置、清除,并且光標在該位置。接下來是在屏幕上打印一些東西。我們可以使用LCD_Print_String(“Sample String”) 將字符串打印到 LCD 并使用 LCD_Print_Char(a)將字符值打印到 LCD。在我們的程序中,我們打印了“STM8S103F3P3 LCD”并使用以下代碼創(chuàng)建了 5 秒的延遲。

Lcd_Print_String(“STM8S103F3P3 LCD”);

延遲毫秒(5000);

5 秒延遲后,我們再次清除 LCD,第一行顯示“Circuit Digest”,第二行顯示“Test:”。

液晶清除();

Lcd_Set_Cursor(1,1);

Lcd_Print_String(“電路文摘”);

Lcd_Set_Cursor(2,1);

Lcd_Print_String(“測試:”);

在while循環(huán)中,我們將整數(shù)變量test_var上的值拆分為單個字符,以便可以使用簡單的除法和模數(shù)運算符將其顯示在 LCD 上。我們還添加了“0”來將 ASCII 值轉(zhuǎn)換為字符。

d4 = test_var%10 + ‘0’;

d3 = (test_var/10)%10 + ‘0’;

d2 = (test_var/100)%10 + ‘0’;

d1 = (test_var/1000) + ‘0’;

然后我們將光標設(shè)置為 (2,6),因為我們已經(jīng)在第二行寫了“Test:”,即 6 個字符。如果我們覆蓋,現(xiàn)有字符將被 LCD 上的新字符替換。我們還添加了 1 秒的延遲并增加了變量。

Lcd_Set_Cursor(2,6);

Lcd_Print_Char(d1);

Lcd_Print_Char(d2);

Lcd_Print_Char(d3);

Lcd_Print_Char(d4);

延遲毫秒(1000);

測試變量++;

帶 LCD 的 STM8 – 工作

要測試我們的程序,只需將代碼上傳到我們的控制器并使用微型 USB 端口為其供電。請注意,LCD 需要 5V 才能工作,因此必須從 USB 端口為電路板供電。我們之前直接從 ST-link 為其供電,因為我們不需要 5V 電源。

poYBAGLzZsiAKWOqAAXTiUKUSOY592.png

如您所見,LCD 按預(yù)期工作,測試變量值大約每秒遞增一次。另外,請注意,我們沒有使用計時器,只使用了延遲函數(shù)來創(chuàng)建此延遲,因此不要期望延遲持續(xù)時間是準確的,我們稍后將在另一個教程中使用計時器來實現(xiàn)此目的。



/*LCD --> STM8s
* LCD_RS --> PA1
* LCD_EN --> PA2
* LCD_DB4 --> PD1
* LCD_DB5 --> PD2
* LCD_DB6 --> PD3
* LCD_DB7 --> PD4
*/

#define LCD_RS GPIOA,GPIO_PIN_1
#define LCD_EN GPIOA, GPIO_PIN_2
#define LCD_DB4 GPIOD,GPIO_PIN_1
#define LCD_DB5 GPIOD,GPIO_PIN_2
#define LCD_DB6 GPIOD,GPIO_PIN_3
#define LCD_DB7 GPIOD,GPIO_PIN_4
#包括“STM8S.h”
#include “stm8s103_LCD_16x2.h”
主要的()

{

//變量聲明

int test_var = 0;
字符 d4,d3,d2,d1;
液晶開始();
液晶清除();
Lcd_Set_Cursor(1,1);
Lcd_Print_String("STM8S103F3P3 LCD");

延遲毫秒(5000);
液晶清除();
Lcd_Set_Cursor(1,1);
Lcd_Print_String("電路文摘");
Lcd_Set_Cursor(2,1);
Lcd_Print_String("測試:");

而 (1)
{
d4 = test_var%10 + '0';
d3 = (test_var/10)%10 + '0';
d2 = (test_var/100)%10 + '0';
d1 = (test_var/1000) + '0';

Lcd_Set_Cursor(2,6);
Lcd_Print_Char(d1);
Lcd_Print_Char(d2);
Lcd_Print_Char(d3);
Lcd_Print_Char(d4);
延遲毫秒(1000);
測試變量++;
}
}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7464

    瀏覽量

    150876
  • lcd
    lcd
    +關(guān)注

    關(guān)注

    34

    文章

    4407

    瀏覽量

    166948
  • STM8
    +關(guān)注

    關(guān)注

    18

    文章

    392

    瀏覽量

    56678
收藏 人收藏

    評論

    相關(guān)推薦

    伺服電機與PIC微控制器連接的教程

    在本教程中,我們將了解伺服電機以及如何伺服與 MSP430 連接。MSP-EXP430G2 是德州儀器提供的開發(fā)工具,又名 LaunchPad,用于學(xué)習(xí)和練習(xí)如何使用其微控制器。該板屬于 MSP430 超值系列類別,我們可以在
    的頭像 發(fā)表于 11-14 16:33 ?2713次閱讀
    <b class='flag-5'>將</b>伺服電機與PIC<b class='flag-5'>微控制器</b><b class='flag-5'>連接</b>的教程

    是否有任何軟件庫允許使用STM8微控制器構(gòu)建USB硬件而無需任何額外芯片?

    你好, 是否有任何軟件庫允許使用STM8微控制器構(gòu)建USB硬件而無需任何額外芯片? 我正在尋找它,但到目前為止我還沒有找到任何東西。這樣的庫大大提高STM8
    發(fā)表于 12-28 16:07

    STM8微控制器系列產(chǎn)品

    STM8系列微控制器,8微控制器平臺基于高性能8位內(nèi)核和先進外設(shè)集,在8位單片機行業(yè)中占據(jù)著舉
    發(fā)表于 07-10 07:00

    如何微控制器與FPGA連接?

    晚上好,如何微控制器與FPGA連接?如何使用微控制器配置FPGA?如何使用微控制器或軟件程序為FPGA創(chuàng)建.bit文件以使用
    發(fā)表于 03-25 09:22

    STM8微控制器有哪些類型?

    STM8微控制器有哪些類型
    發(fā)表于 11-11 08:02

    STM8S微控制器參考手冊

    導(dǎo)言本參考手冊為應(yīng)用開發(fā)人員提供了關(guān)于如何使用STM8S微控制器的存儲和外設(shè)的完整信息。STM8S是一個擁有不同存儲大小,封裝和外設(shè)的
    發(fā)表于 09-25 07:33

    基于單片機的STM8在線編程

    抽象的工業(yè)生產(chǎn)經(jīng)常會帶來問題在更新MCU(微控制器單元)的程序時過程參數(shù)不能根據(jù)需要實時更新time.in以便于STM8的在線更新微控制器,本文設(shè)計了u
    發(fā)表于 10-10 06:46

    用于STM8微控制器的A/D轉(zhuǎn)換精度改進技術(shù)

    STM8系列微控制器包括一個開關(guān)電容型模數(shù)轉(zhuǎn)換。這種ADC類型使用SAR(逐次逼近寄存)原理, 通過該方法在幾個步驟中執(zhí)行轉(zhuǎn)換。轉(zhuǎn)換步驟數(shù)為等于ADC轉(zhuǎn)換
    發(fā)表于 10-10 06:42

    內(nèi)置段式LCD控制器8微控制器

      富士通半導(dǎo)體(上海)有限公司近日宣布推出新系列內(nèi)置段式LCD控制器的高性能8微控制器(屬于其F2MC-New8FX家族)。這些產(chǎn)品包括
    發(fā)表于 12-02 08:57 ?1456次閱讀
    內(nèi)置段式<b class='flag-5'>LCD</b><b class='flag-5'>控制器</b>的<b class='flag-5'>8</b>位<b class='flag-5'>微控制器</b>

    愛特梅爾宣布帶有LCD控制器的AVR XMEGA微控制器系列

    微控制器及觸摸解決方案的領(lǐng)導(dǎo)廠商愛特梅爾公司(Atmel? Corporation)宣布LCD控制器加入廣受歡迎的AVR? XMEGA?微控制器
    發(fā)表于 11-02 08:59 ?1032次閱讀

    STM8和STM32混合信號微控制器選型手冊資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是STM8和STM32混合信號微控制器選型手冊資料免費下載。
    發(fā)表于 11-28 08:00 ?5次下載

    如何在STM8微控制器上使用GPIO

    ,STM8完全不同,因為所有STM8設(shè)備都使用通用布局而不是具有唯一配置。這意味著為一個STM8設(shè)計的代碼可以直接復(fù)制并粘貼到不同的控制器,它仍然可以工作(假設(shè)新設(shè)備具有所需的外設(shè))。
    的頭像 發(fā)表于 07-31 09:18 ?4543次閱讀
    如何在<b class='flag-5'>STM8</b><b class='flag-5'>微控制器</b>上使用GPIO

    基于stm8系列8位通用微控制器平臺的電容式觸摸傳感方案

    本文介紹了一種基于stm8系列8位通用微控制器平臺的電容式觸摸傳感方案,用于家用電器應(yīng)用,特別是電磁爐應(yīng)用。電容式觸摸傳感功能無需添加專用觸摸芯片,只需簡單的外圍電路即可實現(xiàn),方便進行二次開發(fā)。
    的頭像 發(fā)表于 04-01 16:05 ?2411次閱讀
    基于<b class='flag-5'>stm8</b>系列<b class='flag-5'>8</b>位通用<b class='flag-5'>微控制器</b>平臺的電容式觸摸傳感方案

    STM8微控制器A/D轉(zhuǎn)換的精密改進技術(shù)

    電子發(fā)燒友網(wǎng)站提供《STM8微控制器A/D轉(zhuǎn)換的精密改進技術(shù).pdf》資料免費下載
    發(fā)表于 10-07 15:27 ?0次下載
    <b class='flag-5'>STM8</b><b class='flag-5'>微控制器</b>A/D轉(zhuǎn)換<b class='flag-5'>器</b>的精密改進技術(shù)

    stm8和stm32的區(qū)別和特點

    STM8和STM32是STMicroelectronics(意法半導(dǎo)體)推出的兩個系列的微控制器產(chǎn)品。雖然它們都是由意法半導(dǎo)體生產(chǎn)的,但在架構(gòu)、功能和特點方面有一些顯著的區(qū)別。 架構(gòu): STM8系列
    的頭像 發(fā)表于 12-18 16:36 ?2731次閱讀