基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD1602显示汉字的功能

STC12C5A60S2系列1T 8051单片机管脚图

在这里插入图片描述在这里插入图片描述

STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置

在这里插入图片描述

STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍

在这里插入图片描述在这里插入图片描述

LCD1602字符型液晶显示器介绍

一、LCD1602字符型液晶显示器硬件组成

LCD1602字符型液晶显示器是一种专门用来显示字母、数字、符号等,并由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一种字符的字符型液晶显示模块。它在硬件上主要是由字符型液晶显示屏(LCD)、控制驱动主电路的芯片HD44780以及其扩展驱动电路的芯片HD44100,另外少量电阻、电容元件和结构件等装配在PCB板上而组成。不同厂家生产的LCD1602芯片可能有所不同,但使用方法都是一样的。

二、LCD1602字符型液晶显示器存储器

LCD1602字符型液晶显示器主要硬件是控制驱动主电路的芯片HD44780。它内部含有3个存储器,分别为:DDRAM存储器(即显示数据随机存储器)、CGRAM存储器(即字符生成随机存储器)、CGROM存储器(字符生成只读存储器)。各自的作用为:DDRAM存储器(即显示数据随机存储器)用来将字符显示到LCD1602字符型液晶显示器屏上,CGRAM存储器(即字符生成随机存储器)用来将用户自定义的字符显示到LCD1602字符型液晶显示器屏上,CGROM存储器(字符生成只读存储器)用来将存在它内部的字符显示到LCD1602字符型液晶显示器屏上。3者间的协调作用:CGRAM存储器和CGROM存储器中存储的字符字模相当于厨房中的食品,CGRAM存储器存储的字符是用户自行制作的菜肴,CGROM存储器存储的字符是厨房中现成的熟食,DDRAM存储器是厨房中的托盘,这些食品都需要通过托盘转移一下,才能送到餐桌上食用。这就类似于CGRAM存储器和CGROM存储器生成的字符都要先被读取到对应的DDRAM存储器中,经过上传后,LCD1602字符型液晶显示器屏的相应位置才能显示出相应字符。

三、LCD1602字符型液晶显示器存储器容量

LCD1602字符型液晶显示器的控制驱动主电路的芯片HD44780内部DDRAM存储器(即显示数据随机存储器)有80个字符寄存器地址(即LCD1602字符型液晶显示器屏第一行00H-27H有40个字符寄存器地址,LCD1602字符型液晶显示器屏第二行40H-67H也有40个字符寄存器地址,一共有80个字符寄存器地址。),每个字符寄存器地址可显示一个字符,总共可以显示80个字符,如下图所示。
在这里插入图片描述
CGRAM存储器(即字符生成随机存储器)有16个字符码(即0x00-0x0F),其中xxxx0000-xxxx0111与xxxx1000~xxxx1111是同样的字符码,那么CGRAM存储器(即字符生成随机存储器)实际可存储用户自定义8个字符,如下图所示。
在这里插入图片描述在这里插入图片描述
CGROM存储器(字符生成只读存储器)有192个字符码,其中字符码0x00~0x7F表示96个字符,属于ASCII码,如下图所示。在这里插入图片描述
另外字符码0xA0~0xFF也表示96个字符,属于日文字字符和希腊文字符,如下图所示。在这里插入图片描述
补充说明:其中字符码0x10~0x1F及字符码0x80~0x9F表示无定义字符,如下图所示。在这里插入图片描述

四、LCD1602字符型液晶显示器外形结构

在这里插入图片描述

五、LCD1602字符型液晶显示器技术参数

工作电压:3.0~5.0V
工作电流:2.0mA(5.0V)
工作温度:-20度~70度
储存温度:-30度~80度
占空比 :1/16
偏压比 :1/5

六、LCD1602字符型液晶显示器引脚图及引脚功能

在这里插入图片描述
1、引脚1:VSS为地电源。
2、引脚2:VDD接5V正电源。
3、引脚3:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”现象,使用时可以通过一个10kQ的电位器调整其对比度。
4、引脚4:RS为指令/数据寄存器选择脚,低电平时选择指令寄存器,高电平时选择数据寄存器。
5、引脚5:R/W为读/写信号线,低电平时进行写操作,高电平时进行读操作。当RS和R/W共同为低电平时可以写入指令或显示地址;当RS为低电平,R/W为高电平时,可以读忙信号;当RS为高电平,R/W为低电平时,可以写入数据。
6、引脚6:EN端为使能端,当E端由高电平跳变为低电平时,液晶模块执行命令。
7、引脚714:D0D7为8位双向数据端口。
8、引脚15:背光源正极。
9、引脚16:背光源负极。

七、LCD1602字符型液晶显示器指令集图及指令功能

在这里插入图片描述

指令1:清屏。指令码0x01,表示清除LCD1602字符型液晶显示器屏上所有内容,并让光标复位到LCD1602字符型液晶显示器屏左上角。指令编码格式如下图所示。
在这里插入图片描述
指令2:光标复位。指令码0x02,表示不用清除LCD1602字符型液晶显示器屏上所有内容,只让光标复位到LCD1602字符型液晶显示器屏左上角。指令编码格式如下图所示。
在这里插入图片描述
指令3:输入模式设置。其中I/D表示光标的移动方向,低电平右移,高电平左移;S表示LCD1602字符型液晶显示器屏上所有字符是否移动,低电平表示不能移动,高电平表示可以移动。也就是I/D=0:光标(或字符)闪烁右移,地址指针自减1 ,I/D=1:光标(或字符)闪烁左移,地址指针自加1;S=0:整屏显示不允许移动,S=1:整屏显示允许移动。常用指令编码:0x04表示开光标(或字符)地址指针自减1,光标左移动,整屏显示不允许移动(比如第一个光标(或字符)写入地址指针0x8F,则下一个光标(或字符)会写入地址指针0x8E,光标左移动一个字符位,且整屏显示不允许移动。);0x05表示开光标(或字符)地址指针自减1,光标左移动一个字符位,整屏显示允许右移动,(比如第一个光标(或字符)写入地址指针0x8F,则下一个光标(或字符)会写入地址指针0x8E,光标左移动一个字符位,整屏显示允许右移动。);0x06表示开光标(或字符)地址指针自增1,光标右移动一个字符位,整屏显示不允许移动(比如第一个光标(或字符)写入地址指针0x80,则下一个光标(或字符)会写入地址指针0x81,光标右移动一个字符位,整屏显示不允许移动。);0x07表示开光标(或字符)地址指针自增1,光标右移动一个字符位,整屏显示允许左移动(比如第一个光标(或字符)写入地址指针0x80,则下一个光标(或字符)会写入地址指针0x81,光标右移动一个字符位,整屏显示允许左移。)。指令编码格式如下图所示。在这里插入图片描述
指令4:LCD1602字符型液晶显示器显示开关、光标(或字符)开关和光标(或字符)是否闪烁的控制。其中D用于控制LCD1602字符型液晶显示器显示的开与关,低电平表示关LCD1602字符型液晶显示器显示,高电平表示开LCD1602字符型液晶显示器显示;C用于控制光标的开与关,低电平表示关光标,高电平表示开光标;B用于控制光标(或字符)是否闪烁,低电平表示光标(或字符)不闪烁,高电平表示光标(或字符)闪烁。也就是D=0:关LCD1602字符型液晶显示器显示,D=1:开LCD1602字符型液晶显示器显示;C=0:关光标,C=1:开光标;D=0:关光标(或字符)闪烁,D=1:开光标(或字符)闪烁。常用指令编码:0x0F表示开LCD1602字符型液晶显示器显示、开光标、开光标(或字符)闪烁,0x0E表示开LCD1602字符型液晶显示器显示、开光标、不开光标(或字符)闪烁,0x0C表示开LCD1602字符型液晶显示器显示、不开光标、不开光标(或字符)闪烁。指令编码格式如下图所示。在这里插入图片描述
指令5:光标或字符移位控制。其中S/C表示在低电平时移动光标(只针对光标,标,不能指字符。),高电平时移动所有显示字符(只针对字符,不能指光标。),R/L表示在低电平时光标向左移,高电平时光标向右移。也就是S/C=0和R/L=0:光标向左移,地址指针自减1;S/C=0和R/L=1:光标向右移,地址自增1;S/C=1和R/L=0:所有显示字符左移,光标跟随移位;S/C=1和R/L=1:所有光标(或字符)右移,光标跟随移位。指令编码格式如下图所示。
在这里插入图片描述
指令6:功能设置命令。其中DL表示在低电平时为4位并口总线,高电平时为8位并口总线;N表示在低电平时为LCD1602字符型液晶显示器单行显示,高电平时为LCD1602字符型液晶显示器双行显示;F表示在低电平时显示5×8的点阵字符,高电平时显示5×11的点阵字符。也就是DL=0:4位并口, DL=1:8位并口;N=0:设置LCD1602字符型液晶显示器1行显示 ,N=1:设置LCD1602字符型液晶显示器2行显示;F=0:57或58点阵 ,F=1:510或511点阵。常用指令编码:0x20表示4位并口总线,LCD1602字符型液晶显示器单行显示,显示57或58的点阵字符;0x24表示4位并口总线,LCD1602字符型液晶显示器单行显示,显示510或511的点阵字符;0x28表示4位并口总线,LCD1602字符型液晶显示器双行显示,显示57或58的点阵

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1602汉字显示,如有需要可以下载 #include #define uchar unsigned char #define uint unsigned int sbit lcdrs=P1^0; sbit lcden=P1^2; sbit lcdwr=P1^1; uchar CGCODE[]={0x08,0x0F,0x12,0x0F,0x0A,0x1F,0x02,0x02,//"年"代码 0x00 0x0F,0x09,0x0F,0x09,0x0F,0x09,0x13,0x00,//"月"代码 0x01 0x0F,0x09,0x09,0x0F,0x09,0x09,0x0F,0x00,//"日"代码 0x02 0x07,0x04,0x07,0x04,0x07,0x00,0x04,0x07,//"星"左上半部分代码 0x03 0x1F,0x01,0x1F,0x01,0x1F,0x08,0x08,0x1F,//"星"右上半部分代码 0x04 0x08,0x17,0x00,0x1F,0x00,0x00,0x00,0x00,//"星"左下半部分代码 0x05 0x08,0x1F,0x08,0x1F,0x00,0x00,0x00,0x00//"星"右下半部分代码 0x06 }; uchar tab[]={'0','8',0x00,'0','3',0x01,'0','9',0x02};//显示"08年03月09日" void delay(uint t) { uint x,y; for(x=0;x<t;x++) for(y=0;y<110;y++); } void write_com(uchar com)//向1602写指令 { lcdrs=0; P2=com; delay(5); lcden=1; delay(5); lcden=0; } void write_date(uchar dat)//向1602写数据 { lcdrs=1; P2=dat; delay(5); lcden=1; delay(5); lcden=0; } void init()//程序初始化 { lcdwr=0; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); } void main()//主函数 { int i; init(); lcdrs=0; lcdwr=0; write_com(0x40);//将自定义字符写入CGRAM for(i=0;i<56;i++)//循环56次写入 { write_date(CGCODE[i]); } write_com(0x80);//写入初始地址 for(i=0;i<9;i++) { write_date(tab[i]); } write_com(0x80+9);//用09H和0AH显示"星"上部分 write_date(0x03); write_date(0x04); write_com(0x80+0x40+9);//用49H和4AH显示"星"上部分 write_date(0x05); write_date(0x06); while(1); }

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值