• 关于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)。

  • 相关阅读:
    动态链接库DLL
    异常处理
    内存
    线程同步
    线程基础、线程调度
    笔记摘录:进程、作业
    工具DebugView、PCHunter、Procexp、Procmon
    使用Windbg和VMware来搭建调试内核的环境
    C++智能指针
    AndroidEventBus
  • 原文地址:https://www.cnblogs.com/qijunhui/p/8283959.html
Copyright © 2020-2023  润新知