zoukankan      html  css  js  c++  java
  • LCD1602指令集解读

    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= 数据
     
  • 相关阅读:
    Session的使用与Session的生命周期
    Long-Polling, Websockets, SSE(Server-Sent Event), WebRTC 之间的区别与使用
    十九、详述 IntelliJ IDEA 之 添加 jar 包
    十八、IntelliJ IDEA 常用快捷键 之 Windows 版
    十七、IntelliJ IDEA 中的 Maven 项目初体验及搭建 Spring MVC 框架
    十六、详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法
    十五、详述 IntelliJ IDEA 插件的安装及使用方法
    十四、详述 IntelliJ IDEA 提交代码前的 Code Analysis 机制
    十三、IntelliJ IDEA 中的版本控制介绍(下)
    十二、IntelliJ IDEA 中的版本控制介绍(中)
  • 原文地址:https://www.cnblogs.com/aslmer/p/5801363.html
Copyright © 2011-2022 走看看