单片机常用芯片总结(一)——LCD1602液晶屏

本文详细介绍了LCD1602液晶显示屏的工作原理、引脚定义、内部结构、操作流程以及如何进行字符、字符串、数字、有符号数、十六进制数和二进制数的显示。同时,提供了完整的C语言代码示例,包括初始化、显示功能和移屏操作。此外,还展示了如何通过指令进行屏幕移动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、芯片介绍

**LCD1602(Liquid Crystal Display)**液晶显示屏是一种字符型液晶显示模块,可以显示ASCII码的标准字符和其它的一些内置特殊字符,还可以有8个自定义字符
显示容量:16×2个字符(两行,每行16个字符),每个字符为5*7点阵
在这里插入图片描述

二、芯片引脚定义

LCD1602电路图如下:
在这里插入图片描述

引脚 功能
VSS
VDD 电源正极(4.5V~5.5V)
VO 对比度调节电压
RS 数据/指令选择,1为数据,0为指令
RW 读/写选择,1为读,0为写
E 使能,1为数据有效,下降沿执行命令
D0~D7 数据输入/输出
A 背光灯电源正极
K 背光灯电源负极

三、内部结构图

内部结构图如下:
在这里插入图片描述
DDRAM(数据显示区):
在这里插入图片描述
举例:
若要将光标设置在第一行第一列,则发送0x80(1000 0000)指令;其中最高位1代表设置光标位置,剩下的七个0代表实际地址;若要将光标设置在第一行第二列,则发送0x81(1000 0001)指令;若要将光标设置在第二行第一列,则发送0xC0(1100 0000)指令;

CGRAM+CGROM(字模库):【与ASCII码类似,但也存在不同,如0x5c】
在这里插入图片描述

四、时序图、指令读写和数据读写

写数据(DB0-DB7)/指令:
在这里插入图片描述
写指令步骤:
Step1:将RS置0;
Step2:将RW置0;
Step3:将指令写入LCD_DataPort
Step4:将EN置1;
Step5:延时1ms;
Step6:将EN置0;
Step7:延时1ms;

代码示例:

//LCD1602写指令,Command 要写入的指令(LCD_RS,LCD_EN,LCD_DataPort为相应接口)
void LCD_WriteCommand(unsigned char Command)
{
   
     LCD_RS=0;
//   LCD_RW=0;
     LCD_DataPort=Command;
     LCD_EN=1;
     LCD_Delay();
     LCD_EN=0;
     LCD_Delay();
}

//LCD1602延时函数,12MHz调用可延时1ms
void LCD_Delay()
{
   
        unsigned char i, j;

        i = 2;
        j = 239;
        do
        {
   
                while (--j);
        } while (--i);
}

写数据步骤:
Step1:将RS置0;
Step2:将RW置0;
Step3:将数据写入LCD_DataPort
Step4:将EN置1;
Step5:延时1ms;
Step6:将EN置0;
Step7:延时1ms;

//LCD_1602写数据,Command 要写入的数据(LCD_RS,LCD_EN,LCD_DataPort为相应接口)
void LCD_WriteData(unsigned char Data)
{
   
	LCD_RS=1;
	//LCD_RW=0;
	LCD_DataPort=Data;
	LCD_EN=1;
	LCD_Delay();
	LCD_EN=0;
	LCD_Delay();
}

指令集:
在这里插入图片描述

  • 清零:0x01;
  • 复位:0x02;
  • 数据加一:0x06;
  • 画面左移,实现移屏操作:0x18;

四、LCD1602操作流程

初始化:
• 发送指令0x38 //八位数据接口,两行显示,5*7点阵
• 发送指令0x0C //显示开,光标关,闪烁关
• 发送指令0x06 //数据读写操作后,光标自动加一,画面不动
• 发送指令0x01 //清屏

代码如下:

//LCD初始化函数
void LCD_Init(
单片机课程设计是电子信息类专业的重要课程之,通过本课程的学习,能够掌握单片机的基本原理和应用技能。LCD1602移动显示是单片机课程设计中的个常见内容,通过这个设计,能够加深对单片机工作原理的理解,并提升实际操作能力。 在这个课程设计中,我们首先需要了解LCD1602的基本原理和工作方式,包括液晶显示原理、接口方式以及驱动时序等。然后,我们需要设计个可以控制LCD1602显示内容的单片机程序,这个程序需要能够实现LCD1602上显示内容的移动和变化。 具体而言,我们可以通过单片机的IO口控制LCD1602的数据和指令输入,从而实现在LCD1602上显示移动的文字或图形。在设计过程中,我们还要考虑到些细节问题,比如数据的传输速度、显示内容的更新频率、以及显示效果的优化等。 除了基本的移动显示功能,我们还可以考虑加入些其他的特色功能,比如在LCD1602上显示动态图案、实时数据的监测和显示等。这样不仅可以提升课程设计的难度和趣味性,也能够更好地锻炼我们的设计和创新能力。 总的来说,LCD1602移动显示的单片机课程设计,是个很好的实践机会,通过这个设计,我们能够深入了解单片机的工作原理,提升实际操作能力,并且培养创新意识和问题解决能力。希望通过努力,能够圆满完成这个课程设计,为将来的学习和工作打下坚实的基础。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wendy_ya

您的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值