LCD1602指令集(11个)
 

 
1、清屏指令(clear display)   RS=0 ,R/w=0, 01H
功能:清除液晶显示器,即将DDRAM中的内容全部填入20H(空白字符)
          光标撤回显示屏左上方
          将地址计数器(AC)设为0,
          光标移动方向为从左向右,并且DDRAM的自增量为1(I/D=1).
 


2、光标归位指令(Return Home)RS=0 ,R/w=0, 0000_001X
功能:将地址计数器(AC)设为00H,
          DDRAM内容保持不变,光标移至左上脚


3、进入模式设置指令(Entry Mode Set)
功能: 设 定 每 次 定 入 1 位 数据 后 光 标 移 位 方 向 并且设 定 次 写 入 一 个 字符是 否移动 。
         I/D = 0  光标左移,DDRAM地址自增1     I/D = 1  光标右移,DDRAM地址自增1 (当从CGRAM中读取或写入数据时,CGRAM操作与DDRAM相同)
         SH = 0 且 DDRAM是读操作(CGRAM读或写),整个屏幕不移动
         SH = 1 且 DDRAM是写操作,整个屏幕移动,移动方向由I/D决定
 

 
 

4、显示开关控制(Display ON/OFF Control)
功能: D = 1 , 显示功能开   D = 0 , 显示功能关,但是DDRAM中的数据依然保留
           C = 1 , 有光标          C = 0 , 没有光标
           B = 1 , 光标闪烁       B = 0 , 光标不闪烁
 


5、设置显示屏或光标移动方向的指令
功能:整屏的移动或光标移动
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=1 ,数据总线是8位    DL=0 ,数据总线是4位
          N =0  ,显示一行             N=1  ,显示两行
          F  =0 , 5*8 点阵/字符                   F=1 ,5*11点阵/字符
 

 

7、设定 CGRAM地址指令
功能:设定下一个要存入数据的CGRAM地址
         DB5DB4DB3为字符号,即将显示该字符用到的字符地址
         DB2DB1DB0为行号
补充理解:在芯片中内置了192个常用字符的字模,存于CGROM(character generate ROM)中,还有8个允许用户自定义字符(也就是可以显示八个中文字)的RAM,也就是CGRAM。具体描述为下图:
 
当输入的地址是41H时,显示字符A.
由上图可知:
我想将自定义的一个汉子或图形放在第六个CGRAM中,所以可以确定字符码就为101(字符码000-->111),
所以   DB5DB4DB3 = 101
因此CGRAM的地址设置为01101X'X'X
这是要输入字符5的过程(原理如下图所示)
                                     01101000    0x07
                                      01101001    0x10
                                      .................
                                      01101111    0x00
 
 

 

8、设置DDRAM地址
 

DDRAM的地址与显示屏对照关系(N=LOW)


9、读取忙信号或AC地址指令
    如果BF=1 忙碌,无法接收数据或指令
           BF=0可以接收数据、指令
          读取地址计数器的内容
 
 


10、向DDRAM或CGRAM写入数据
写指令    输 入 : RS=L , RW=L , E= 下 降沿脉冲 , DB0 ~ DB7= 指令 码  
写数据    输 入 : RS=H , RW=L , E= 下 降沿脉冲 , DB0 ~ DB7= 数据
 
 


11、从DDRAM或者CGRAM读数据
读状态   输 入 : RS=L , RW=H , E=H 输出: DB0 ~ DB7= 状态字
读数据   输 入 : RS=H , RW=H , E=H 输出: DB0 ~ DB7= 数据

LCD1602指令集解读的更多相关文章

  1. 透彻理解液晶显示模组LCD1602指令集与驱动编程(1)

    LCD1602可以说是大多数单片机工程师了解液晶显示的入门级模组,其显示原理与其它很多显示模组也是相似的,今天我们就来详细讨论一下它的指令集.所谓模组的指令集,本质上是该模组使用的控制芯片的指令集,本 ...

  2. Intel的AVX2指令集解读

    原文链接:http://blog.csdn.net/vbskj/article/details/38408213 在Intel Sandy Bridge微架构中,Intel引入了256位SIMD扩展A ...

  3. [FPGA]浅谈LCD1602字符型液晶显示器(Verilog)

    目录 概述 LCD1602 LCD1602是什么? LCD1602的管脚 RS_数据/命令选择 E_使能 D0-D7 LCD1602有个DDRAM LCD1602还有个CGROM 指令集 清屏 进入模 ...

  4. 51驱动LCD1602

    1602 采用标准的 16 脚接口,其中: 第 1 脚:VSS 为地电源 第 2 脚:VDD 接 5V 正电源 第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地 电源时对比度最高 ...

  5. ARM_Instruction_Set_Encoding_hacking(ARM指令集编码格式解读)

    ARM指令集编码格式解读 说明: 1.本文参考的书籍<ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition>中的Cha ...

  6. SDWebImage源码解读_之SDWebImageDecoder

    第四篇 前言 首先,我们要弄明白一个问题? 为什么要对UIImage进行解码呢?难道不能直接使用吗? 其实不解码也是可以使用的,假如说我们通过imageNamed:来加载image,系统默认会在主线程 ...

  7. Arduino下LCD1602综合探究(上)——1602的两种驱动方式,如何使LCD的控制编程变得更简单

    一.前言: LCD ( Liquid Crystal Display 的简称)液晶显示器,已经逐渐替代CRT成为主流的显示设备之一,因此也成为了单片机发烧友绕不过的话题之一:而LCD1602更是很多单 ...

  8. 自制单片机之四……LCD1602的驱动

    LCD1602已很普遍了,具体介绍我就不多说了,市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶.字 ...

  9. 树莓派的演奏音符3 -- LCD1602显示文章

    LCD1602它是低-cost输出装置.它具有体积小.简单的操作.低功耗优势.因此,在一些DIY 用它来输出关于产品的一些信息. 昨日在使用,尽管平局网上资源,但仍存在一些问题,确处理. 一.LCD1 ...

随机推荐

  1. Mybatis resultMap灵活用法(使用子查询)

    ### 背景查询广州每个景点的总流量,和每个景点每日流量 #### 数据表 t_广州|唯一标识id|地点place|流量counts|日期date||:---:|:---:|:---:|:---:|| ...

  2. 如果有人问你CAP理论是什么,就把这篇文章发给他。

    绝对和你在网上看到的CAP定理介绍不一样. CAP 定理(CAP theorem)又被称作布鲁尔定理(Brewer's theorem),是加州大学伯克利分校的计算机科学家埃里克·布鲁尔(Eric B ...

  3. Kubernetes组件与架构

    转载请标明出处: 文章首发于>https://www.fangzhipeng.com/kubernetes/2018/09/30/k8s-basic1/ 本文出自方志朋的博客 Kubernete ...

  4. Oracle作业4-函数

    一.在数据库中的emp和dept表中做如下查询: 1.列出所有分析师(ANALYST)的姓名.编号和部门 SELECT ENAME,EMPNO,E.DEPTNO,DNAME FROM EMP E,DE ...

  5. 微信小程序中的app文件介绍

    [app] 一.app.json 1.对当前小程序的全局配置 2.页面路径.界面表现.网络超时时间.底部 tab 等 { "pages":[ "pages/index/i ...

  6. 『C++』Temp_2018_12_26_02

    #include <iostream> #include <string> #include <stdio.h> #include <stdlib.h> ...

  7. 单源最短路dijkstra算法&&优化史

    一下午都在学最短路dijkstra算法,总算是优化到了我能达到的水平的最快水准,然后列举一下我的优化历史,顺便总结总结 最朴素算法: 邻接矩阵存边+贪心||dp思想,几乎纯暴力,luoguTLE+ML ...

  8. 5 替换空格 JavaScript

    题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy.   原来一个空格字符,替换之后 ...

  9. Hive操作之向分区表中导入数据的语义错误

    1.建完分区表之后,向表中导入数据 命令为: load data local inpath '/home/admin/Desktop/2015082818' into table db_web_dat ...

  10. linux学习--字符设备驱动

    目录 1.字符设备驱动抽象结构 2.设备号及设备节点 2.1 设备号分配与管理 2.2 设备节点的生成 3.打开设备文件 linux驱动有基本的接口进行注册和卸载,这里不再做详细说明,本文主要关注li ...