51单片机——LCD1602

目录

LCD1602简介

特征

工作参数

液晶屏的分类

按字符和行数命名

按行数和列数命名

引脚说明

LCD1602指令集

指令总览

设置输入模式

显示开关

光标或字符移动

功能设置

DDRAM地址设置

读忙标志

LCD1602时序

字符表与使用

程序实现


LCD1602简介

特征

  • 体积小、功耗低、操作简单

工作参数

  • 5V工作电压,对比度可调,内含复位电路
  • 显示容量16*2个字符
  • 工作电流2.0mA
  • 提供各种控制命令:清屏、字符闪烁等
  • 80字节显示数据存储器DDRAM(data display)
  • 内建 192个 5*7 点阵的字型的字符发生器 CGROM(Character Generation)
  • 8个可由用户自定义的 5*7 的字符发生器 CGRAM(Character Generation)

液晶屏的分类

按字符和行数命名

  • 例如:1602 意为 每行可显示16个字符 ,一共可以显示两行

按行数和列数命名

  • 例如:12864 意为 128列 64行

引脚说明

编号符号说明接法
1VSS电源负极接 GND
2VDD电源正极接 5V
3VL对比度调节接可调电阻,调节对比度
4RS数据H/命令LP11 高数据,低命令
5R/W读H/写LP12  高读,低写
6E使能P13 高脉冲写入数据
7~14D0~D7Data I/OP00 ~ P07
15BLA背光源正极接VCC (亮度调节)
16BLK背光源负极接GND

LCD1602指令集

指令总览

设置输入模式

  • ID =0 光标左移
  • ID =1 光标右移
  • S =1  ID =1 整屏左移
  • S =1  ID =0 整屏右移
  • S =0 整屏不移动

显示开关

  • D=1 开显示 D=0 关显示
  • C=1 显示光标 C=0 不显示光标
  • B=1 光标闪烁 B=0 光标不闪烁

光标或字符移动

S/CR/L设定情况
00光标左移一个格 AC=AC-1
01光标右移一个格 AC=AC+1
10显示器上字符全部左移一个格,AC=AC
11显示器上字符全部右移一个格, AC=AC

功能设置

  • DL=1 8位总线  DL=0 4位总线
  • N =1  2行显示  N=0   单行显示
  • F=1   5*10 点阵  F=0 5*7点阵

DDRAM地址设置

起始位置:0x80

DDRAM地址映射:

  • 控制器内部带有80B的RAM 缓冲区
  • 00~0F、40~4F地址中的任一处写入显示数据时,液晶都可以立即显示出来
  • 10~27、50~67地址中的任一处写入显示数据时,通过移屏指令将它们 移入可显示区域才可显示出来

读忙标志

  • BF=1 液晶显示器忙
  • BF=0 液晶显示器可接收数据  

LCD1602时序

 

 

  • RS确定写指令还是命令
  • RW确定读还是写
  • 将数据或命令送入数据线(准备好数据
  • 给E一个高脉冲完成写操作

注:LCD1602大多数延迟位 ns 级别 ,而单片机的最小工作单位为 ms 级的

        故可不做延迟

字符表与使用

 方法一:

通过查询字码表的方式,写入数据

方法二:

可直接写入字符型变量赋值,写入数据

程序实现

/*******读忙******/
void LCD1602_Busy() 
{
	uchar sta;
	DataPort = 0xff;
	RS=0;
	RW=1;
	
	do{
	E = 1;
	sta = DataPort;
	E=0;
	}while(sta&0x80);
}

/*******写数据******/
void LCD1602_Write_DAT(uchar dat)
{
	LCD1602_Busy();
	
	RS=1;
	RW=0;
	
	DataPort =dat;
	
	E=1;
	E=0;
}

/*******写命令******/
void LCD1602_Write_CMD(uchar cm)
{
	LCD1602_Busy();
	
	RS=0;
	RW=0;
	
	DataPort =cm;
	
	E=1;
	E=0;
}

/******LCD1602初始化*****/
void LCD1602_Init(void)
{
	LCD1602_Write_CMD(0X38);//功能设置
	LCD1602_Write_CMD(0X0C);//显示开关配置
	LCD1602_Write_CMD(0X01);//清屏
	LCD1602_Write_CMD(0X06);//设置移动方向
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小白变形计

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

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

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

打赏作者

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

抵扣说明:

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

余额充值