zoukankan      html  css  js  c++  java
  • 关于LCD1602显示指定字符

    1  LCD1602显示自定义字符

    1.1  怎么显示?

    要想让LCD显示自定义字符,只需要把要显示的字符写入LCD的CGRAM寄存器中,再读取出来就行了。

    问题是,怎么将自定义字符写入CGRAM呢?

    根据数据手册可知,CGRAM起始地址为0x40,那么第一个字符的CGRAM地址为0x40~0x47(一个字节占用一个地址,一个自定义字符为8个字节),依次第二个字符地址为0x48~0x4F第三个为0x50~0x57···

    那么在我们将自定义的字符写入到CGRAM后,LCD1602内部的DDRAM(字符显示地址数据存贮器)会给你自定义的字符分配一个显示地址,第一个字符的显示地址为0x00,第二个字符的显示地址为0x01,第三个的显示地址为0x02···

    1.2  具体实现步骤

    1. 打开取模软件(附件:https://pan.baidu.com/s/1c366Zc8)
    2. 文件->新建->8*8
    3. 在右5*8点阵中写入想要显示的字符
    4. 设置

    5. 生成字模(八个十六进制的数)

    1.3  简短参考程序

    1 code uchar User[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};//自定义字符℃
    2 LCD_write_com(0x40); //设定 CGRAM 地址
    3 for(i=0;i<8;i++ )
    4 {
    5     LCD_write_data(User[i]); //写入自定义图形 ℃
    6 }
    7 LCD_write_com(0x8d); //设定屏幕上的显示位置
    8 LCD_write_data(0x00); //从 CGRAM 里取出自定义图形显示

    2  LCD12864显示汉字

    在真实的LCD12864中,是存在字符的。但是在proteus仿真中的12864是不支持显示汉字的!

    不支持显示汉字,并不是不能显示汉字!

    在这里仅介绍LCD12864在仿真中的汉字取模问题。

    1. 打开取模软件(附件:https://pan.baidu.com/s/1c366Zc8)
    2. 文件->新建->16*16(在中国汉字中,任何一个汉字都可以用16*16点阵表示!)
    3. 在16*16点阵中画出先要显示的汉字
    4. 设置

    5. 生成字模(十六个十六进制的数)

    【注】12864显示数字、字母等,也要设置取模字符串,但不再是16*16像素,而为16*8像素。但是相应的显示程序中,也不能在用显示汉字的for(16),而要改成for(8)。

  • 相关阅读:
    RocketMQ读书笔记3——消费者
    RocketMQ读书笔记1——简述
    02_dubbo实例_多版本号
    01_dubbo实例_服务分组
    分布式开放消息系统(RocketMQ)的原理与实践
    关于ajax的那些事
    关于html5之canvas的那些事
    关于js封装框架类库之属性操作
    关于js封装框架类库之样式操作
    关于js封装框架类库之事件模块
  • 原文地址:https://www.cnblogs.com/qijunhui/p/8283959.html
Copyright © 2011-2022 走看看