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)。

  • 相关阅读:
    C#基础知识——类的继承
    值传递与引用传递01
    今天接到任务了!
    傅立叶变换,时域,频域二
    傅立叶变换,时域,频域一
    常用运放选型一览表
    用三段140字符以内的代码生成一张1024×1024的图片
    [收藏夹整理]电子类链接
    [收藏夹整理]三维重构部分
    MSP430之自动增益程控放大main备份
  • 原文地址:https://www.cnblogs.com/qijunhui/p/8283959.html
Copyright © 2011-2022 走看看