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= 数据
     
  • 相关阅读:
    Linux 修改时区(debain)
    C#生成验证码
    httpPost 请求
    C# Array.FindAll
    C#删除字符串中所有的空字符
    C# 获取汉字区位码
    Qinq Vlan mapping 和DHCP 服务器
    Sql 分页存储过程
    request 之getParameterMap 方法
    如果我是面试官
  • 原文地址:https://www.cnblogs.com/aslmer/p/5801363.html
Copyright © 2011-2022 走看看