首页 > 其他分享 >字符型液晶显示器LCD 1602的显示控制

字符型液晶显示器LCD 1602的显示控制

时间:2023-12-19 21:00:47浏览次数:36  
标签:液晶 cmd RS 1602 LCD lcd1602 LCD1602

LCD1602百度百科参考链接

https://baike.baidu.com/item/LCD1602/6014393?fr=ge_ala

Proteus

所需器件

元件名称 Proteus关键字
51单片机 AT89C51
复位按钮 BUTTON
电容 CAP
电解电容 CAP-ELEC
晶体振荡器 CRYSTAL
字符型LCD 1602显示器 LM016L
滑动变阻器 POT-HG
电阻 RES
排阻 RESPACK-8

 

 

 LCD1602的“16”表示液晶显示模块每行可显示16个字符,“02”表示显示2行。

LCD 1602的命令字

命令 RS R/~W D7 D6 D5 D4 D3 D2 D1 D0
清屏 0 0 0 0 0 0 0 0 0 0
光标返回 0 0 0 0 0 0 0 0 0 X
显示模式设置 0 0 0 0 0 0 0 1 I/D S
显示开/关及光标设置 0 0 0 0 0 0 1 D C B
光标或字符移位 0 0 0 0 0 1 S/C R/L X X
功能设置 0 0 0 0 1 DL N F X X
CGROM地址设置 0 0 0 1 字符库ROM地址
DDRAM地址设置 0 0 1 显示数据RAM地址
读忙标志或地址 0 1 BF 计数器地址
写数据 1 0 要写的数据
读数据 1 1 读出的数据

LCD 1602的读写操作规定如下

  单片机发给LCD 1602 的控制信号 LCD 1602 的输出
读状态 RS=0,R/~W=1,E=1 D0~D7=状态字
写命令 RS=0,R/~W=0,D0~D7=命令,E=正脉冲
读数据 RS=1,R/~W=1,E=1 D0~D7=数据
写数据 RS=1,R/~W=0,D0~D7=数据,E=正脉冲

 我这里取消了光标右移,是直接打印出来的.

第一行字符的地址为80H~8FH

第二行字符的地址为C0H~CFH

参考例子001

//例子01、LCD1602液晶显示任意字符串
#include <reg52.h>
typedef unsigned int u16;    //对系统默认数据类型进行重定义
typedef unsigned char u8;
typedef unsigned long u32;
u8 code Tab1[]="Welcome everyone";
u8 code Tab2[]="UAV2101--UAV2105";

//管脚定义
sbit LCD1602_RS=P2^6;//数据命令选择
sbit LCD1602_RW=P2^5;//读写选择
sbit LCD1602_E=P2^7; //使能信号

void delay_ms(u16 ms)
{
    u16 i,j;
    for(i=ms;i>0;i--)
        for(j=112;j>0;j--);
}
void lcd1602_write_cmd(u8 cmd)//LCD1602写命令
{
    LCD1602_RS=0;//选择命令
    LCD1602_RW=0;//选择写
    LCD1602_E=0;
    P0 = cmd;     //准备命令
    delay_ms(1);
    LCD1602_E=1;//使能脚E先上升沿写入
    delay_ms(1);
    LCD1602_E=0;//使能脚E后负跳变完成写入    
}

void lcd1602_write_data(u8 dat) //LCD1602写数据
{
    LCD1602_RS=1;//选择数据
    LCD1602_RW=0;//选择写
    LCD1602_E=0;
    P0 = dat;     //准备数据
    delay_ms(1);
    LCD1602_E=1;//使能脚E先上升沿写入
    delay_ms(1);
    LCD1602_E=0;//使能脚E后负跳变完成写入        
}
void lcd1602_init(void)   //LCD1602初始化函数
{
    lcd1602_write_cmd(0x38);//数据总线8位,显示2行,5*7点阵/字符
    lcd1602_write_cmd(0x0c);//显示功能开,无光标,光标闪烁
    lcd1602_write_cmd(0x06);//写入新数据后光标右移,显示屏不移动
    lcd1602_write_cmd(0x01);//LCD1602清屏    
}

void main()
{    
    u8 i;
    lcd1602_init();//LCD1602初始化
    while(1)
    {
        lcd1602_write_cmd(0x80);//第一行显示地址设置    
        for(i=0;i<16;i++)
        {
            lcd1602_write_data(Tab1[i]);
        }
        lcd1602_write_cmd(0x40+0x80);//第二行显示地址设置
        for(i=0;i<16;i++)
        {
            lcd1602_write_data(Tab2[i]);
        }
    }    
}

参考链接
Proteus-51单片机-LCD1602液晶显示DS1302实时时钟_51单片机lcd1602显示时间_爱上电路设计的博客-CSDN博客
https://blog.csdn.net/liht_1634/article/details/131524016
51单片机 使用Proteus掌握LCD1602显示屏的使用(仿真及代码)_51单片机1602显示汉字-CSDN博客
https://blog.csdn.net/m0_47235364/article/details/128294254
STC89C51基础及项目第10天:LCD显示字符(非标协议外设)-CSDN博客
https://blog.csdn.net/Jaci133/article/details/133429036
[89C51单片机]LCD1602静态显示-CSDN博客
https://blog.csdn.net/zitech/article/details/9200203
【精选】【常用传感器】LCD1602液晶工作原理详解及例程代码_lcd1602工作原理-CSDN博客
https://blog.csdn.net/as480133937/article/details/113148712

 

标签:液晶,cmd,RS,1602,LCD,lcd1602,LCD1602
From: https://www.cnblogs.com/yilangUAV/p/17914719.html

相关文章

  • 抗噪/防干扰 LCD液晶段码显示驱动芯片VK2C21A/AA SSOP28 适用于适用于单相电表,温控器L
    产品品牌:VINKA/永嘉微/永嘉微电产品型号:VK2C21A/B/C/D/VK2C21AA/VK2C21BA封装形式:SOP28/24/20、NSOP16、SSOP28、SSOP24(新增封装)产品年份:新年份原厂直销,样品免费,技术支持,价格优势。概述:VK2C21是一个点阵式存储映射的LCD驱动器,可支持最大80点(20SEGx4COM)或者最大128点(16SEGx8C......
  • 【GD32307E-START】06 ST7735 SPI-LCD显示模块移植
    软硬件平台GD32F307E-STARTBoard开发板GCCMakefile1.8寸TFTLCD分辨率128*160驱动ICST7735S接口定义序号引脚标号说明1GND接地2VCC5V/3.3V电源输入3SCKSPI总线时钟信号4SDASPI总线写数据信号5RESET液晶屏复位信号,低电平复位6DC......
  • 超低功耗/省电LCD液晶显示段码驱动芯片VKL128/VKL060/VKL144A/B适用于扫地机器人/燃气
    产品型号:VKL060产品品牌:永嘉微电/VINKA封装形式:SSOP24产品年份:新年份原厂直销,工程服务,技术支持,价格最具优势! VKL060概述: VKL060是一个点阵式存储映射的LCD驱动器,可支持最大60点(15SEGx4COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,可配置4种功耗模式,也可......
  • 分享一个LCD驱动框架
    首先需要说明的是本篇文章不是关于如何点亮一块LCD屏的教程,而是介绍一个LCD开发框架,更准确的说是介绍一个LCD的中间件(Middlwware),用来连接UI和不同类型的LCD屏。笔者本人的工作内容中很重要的一部分就是在不同的LCD屏上做UI开发,所以对如何最大程度复用LCD代码以及解耦屏驱有着一定......
  • 18_LCD1602
    LCD1602介绍引脚及应用电路原理图内部结构框图存储器结构时序结构LCD1602指令集LCD1602操作流程字符,字符串编写LCD1602代码LCD1602.c#include<REGX52.H>sbitLCD_RS=P2^6;//1数据0指令sbitLCD_RW=P2^5;//1读0写sbitLCD_E=P2^7;//1数据有效,下降......
  • 【LCD驱动】VK1C21系列是抗干扰LCD液晶显示驱动芯片,可驱动32*4/18*4/14*4点 ESD防护能
    产品型号:VK1C21A/B产品品牌:永嘉微电/VINKA封装形式:SSOP48/LQFP48可定制裸片:DICE(COB邦定片);COG(邦定玻璃用)产品年份:新年份原厂,工程服务,技术支持! 概述:VK1C21A/B是一个点阵式存储映射的LCD驱动器,可支持最大128点(32SEGx4COM)的LCD屏,也支持2COM和3COM的LCD屏。单片机可通过......
  • 0.91寸OLED液晶屏显示模块 IIC 12832液晶屏 兼容3.3v-5V
    【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)实验一百三十六:0.91寸OLED液晶屏显示模块IIC12832液晶屏兼容3.3v-5V项目二十三:黄色屏声音可视化器实验接线:max9814接A0oled模块ArdunioUnoGND---------GND接地线VCC---------5V接电源......
  • Arduino之TFT_eSPI驱动彩色LCD屏
    原文:https://blog.csdn.net/qq_45355603/article/details/132298259一、TFT_eSPI库简介1.1安装TFT_eSPI库在User_Setup.h中进行个人屏幕参数的配置: User_Setup.h TFT驱动板 备注TFT_MISO 无 TFT_MOSI SDA TFT_SCLK CLK TFT_CS CS 液晶屏片选信号,低电平使能TFT_DC RS ......
  • LCD/HDMI 调试经验
     一、以两例芯片介绍驱动目的驱动是啥?从硬件上看就是以一定的规则让芯片运作起来,从软件上看就是一个或几个.c文件。拿一些显示信号转换芯片(9211,9611,96111uxc等等)来说,首先需要了解这类芯片的作用。生活中有各种不同的显示器,手机屏幕、电脑显示器、电视机等等,虽然都能显示同一画......
  • 防干扰/抗噪LCD液晶段码显示驱动芯片VK2C21A/AA SSOP28 适用于适用于单相电表,工业电表
     I²C 接口LCD 控制及驱动IC型号:VK2C21A:RAM 映射 20*4,16*8封装(SOP-28)LCD液晶显示驱动VK2C21B:RAM 映射 16*4,12*8封装(SOP-24)LCD液晶显示驱动VK2C21C:RAM 映射 12*4,8*8封装(SOP-20) LCD液晶显示驱动VK2C21D:RAM 映射 8*4,4*8封装(NSOP-16) LCD液晶显......