网站首页 > 技术教程 正文
1602 LCD 显示屏爱好者众多也是最常用的显示屏。当您想向用户显示基本信息时,显示非常有用,并且还可以帮助测试或调试我们的代码。这种1602 LCD 模块已经流行了很长时间,并且很容易买到。
在前面我们已经介绍了如何在8051单片机上使用1602LCD,在本文中,我们将继续介绍如何在STM8上使用1602 LCD。
认识1602 LCD
1602 LCD 有 16 列和 2 行。所以总的来说,我们将能够在这个显示器上显示 32 个字符,这些字符可以是字母或数字,甚至是符号。我们在本文中使用的一个简单的1602 LCD 引脚如下所示:
如上图所示,在 LCD 的背面,你会发现两个黑点,里面是HD44780 LCD 驱动 IC。我们的微控制器与这个 IC 通信,进而控制 LCD 把我们的内容在上面显示出来。
如果您想知道1602 LCD是如何工作的,可以查看16x2 LCD 显示器的工作原理,这里不展开。
在本文中,我们将讨论使用简单的 LCD_print_char和LCD_print_string命令在 1602 LCD 显示器上显示字母字符(字母和数字),这里包含电路图和代码。
将 LCD 与 STM8 微控制器连接的电路图
完整的STM8—LCD 电路如下图所示。如您所见,STM8S103F3P6 控制器与 LCD的连接非常简单,我们将 LCD 显示器直接连接到我们的开发板,并且还连接了 ST-link 以对开发板进行编程。
注意LCD的工作电压为5V, STM8S103F3P6 微控制器工作电压为3.3V,所以必须为 LCD 提供 额外的5V 电源。
LCD Pin 3(VO/VEE)通过一个10k的可变电阻连接到电压(Vcc)以调节LCD的对比度。可变电阻的中间脚连接到 PIN 3,可变电阻其他两个引脚分别连接到Vcc和GND。
然后是RS、读/写 (RW) 和使能 (E) 引脚。
RW引脚接地,因为我们不会从 LCD 读取任何内容,我们只会执行写入操作。
另外两个控制引脚 RS 和 E 分别连接到 PA1 和 PA2 引脚。
数据引脚 DB0 到 DB7。1602 LCD 可以在两种模式下工作,一种是 8 位模式,我们必须使用 LCD 上的所有 8 个数据引脚(DB0-DB7),另一种是 4 位模式,我们只需要 4 个数据引脚(DB4-DB7) 。
因为它需要占用单片机的 GPIO ,由于一般单片机引脚较少,因此我们本次使用了 4 位模式,并且仅将引脚 DB4、DB5、DB6 和 DB7 分别连接到引脚 PD1、PD2、PD3 , 和 PD4。
最后两个引脚 BLA 和 BLK 用于为LCD内部背光灯供电,我们使用了一个 560 欧姆的电阻作为限流电阻。
STM8S微控制器的LCD程序
为了演示,我们将对 STM8S 控制器进行编程以显示一个简单的字符串,例如“Hello World”,然后我们将在第二行中每隔一秒增加一个“Test”值。
我们通过定义引脚并添加所需的头文件来启动我们的程序。在我们上面的电路图中,我们已将LCD_RS连接到 A1,因此我们将其定义为LCD_RS GPIOA、GPIO_PIN_1。 同样,我们对其他引脚也做了同样的事情。如果你使用了不同电路,相应地更改这些值。
程序:
#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
#include "STM8S.h"
#include "stm8s103_LCD_16x2.h"
void main()
{
int test_var = 0;
char d4,d3,d2,d1;
Lcd_Begin();
Lcd_Clear();
Lcd_Set_Cursor(1,1);
Lcd_Print_String("STM8S103F3P3 LCD");
delay_ms(5000);
Lcd_Clear();
Lcd_Set_Cursor(1,1);
Lcd_Print_String("Hello World!");
Lcd_Set_Cursor(2,1);
Lcd_Print_String("Test: ");
while (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);
delay_ms(1000);
test_var++;
}
}
猜你喜欢
- 2024-12-18 51驱动电子时钟1602显示 电子时钟51单片机
- 2024-12-18 浅析初次使用LCD1602时都不能一次点亮显示的问题
- 2024-12-18 FlexLua教程三行代码实现IIC PCF8574 串口 1602 单色 LCD 屏显示
- 2024-12-18 LCD1602液晶显示屏应用 液晶显示lcd1602程序
- 2024-12-18 51单片机学习笔记14 LCD1602显示屏使用
- 2024-12-18 Arduino 通过 I2C 驱动 LCD1602 液晶屏
- 2024-12-18 LCD1602屏幕简介(含代码讲解)【超级详细教程】
- 2024-12-18 1602LCD液晶显示屏的显示 1602液晶屏显示原理
- 2024-12-18 Ardrino实例(五)LCD 1602 lcd1602连接arduino接线
- 2024-12-18 我在高职教STM32——LCD液晶显示(一)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)