查看: 49681|回复: 74

LCD1602显示汉字 + 自制字库

  [复制链接]
  • TA的每日心情
    开心
    2019-5-27 11:32
  • 签到天数: 623 天

    [LV.9]以坛为家II

    发表于 2016-6-30 14:19 | 显示全部楼层 |阅读模式
    本帖最后由 vickywong 于 2016-10-8 19:36 编辑

    今天考完试了,可以不用上学喽!下周返校评三好发奖状,就正式放假啦!
    玩了个1602液晶屏显示汉字,是这样的:
    LCD16025*8点阵的,用8*8的点阵编码写汉字,前面空3个空格都是0,后面有黑点的就是1,空的是0
    还做了一百多字的字库。软件做不出5*8的,只能自己动手做。
    还有:LCD1602一次最多只能显示8个汉字,再多了就乱,只有8个自定义字符空间哦!

    程序:关键是创建新字符。

    kittenblock中小学创客名师推荐的图形化编程软件

    //LCD1602显示5*8点阵汉字程序,显示“上午下雨了”5个汉字
    #include <Wire.h>  //加载Wire通讯库
    #include <LiquidCrystal_I2C.h>  //加载液晶屏库
    LiquidCrystal_I2C lcd(0x27,16,2);  // 设 LCD的地址为0x27,16列2行
    
    //显示字符
    #if defined(ARDUINO) && ARDUINO >= 100
    #define printByte(args)  write(args);
    #else
    #define printByte(args)  print(args,BYTE);
    #endif
    
    //要显示的汉字编码,定义为一个数组
    uint8_t shang[8]= {0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x1F,};//上
    uint8_t wu[8]= {0x08,0x08,0x0E,0x14,0x04,0x1F,0x04,0x04,};//午
    uint8_t xia[8] = {0x1F,0x04,0x04,0x06,0x05,0x04,0x04,0x04,};//下
    uint8_t yu[8] = {0x1F,0x04,0x1F,0x15,0x1F,0x15,0x1F,0x15,};//雨
    uint8_t le[8] = {0x1F,0x01,0x02,0x04,0x04,0x04,0x04,0x0C,};//了 
    
    void setup(){
      lcd.init();     //初始化LCD
      lcd.backlight(); //打开背光
      
    //创建新字符,将每个数组映射为一个字符,分别命名为0,1,2,3,4
      lcd.createChar(0, shang);
      lcd.createChar(1, wu);
      lcd.createChar(2, xia);
      lcd.createChar(3, yu);
      lcd.createChar(4, le);
     //将字符显示到光标所在位 
      lcd.setCursor(0,0);
      lcd.printByte(0);
      lcd.printByte(1);
      lcd.printByte(2); 
      lcd.printByte(3); 
      lcd.printByte(4); 
      } 
    void loop(){ 
    }
    

    (下载的同学们帮顶一顶啊!)



    IMG_20160612_124751.jpg
    IMG_20160612_111427.jpg
    IMG_20160612_122230.jpg
    IMG_20160612_124316.jpg
    汉字点阵编码方法.jpg

    5×8点阵汉字库.pdf

    74.12 KB, 下载次数: 1301

    打赏作者鼓励一下!

    2人打赏

  • TA的每日心情
    开心
    2019-5-27 11:32
  • 签到天数: 623 天

    [LV.9]以坛为家II

     楼主| 发表于 2016-8-18 18:34 | 显示全部楼层
    附上了自己做的字库
    打赏作者鼓励一下!

    1人打赏

  • TA的每日心情
    开心
    2019-5-27 11:32
  • 签到天数: 623 天

    [LV.9]以坛为家II

     楼主| 发表于 2016-6-30 14:35 | 显示全部楼层
    太高兴了!谢谢版主老师给加了精华!
    打赏作者鼓励一下!
  • TA的每日心情
    开心
    2019-4-17 18:38
  • 签到天数: 404 天

    [LV.9]以坛为家II

    发表于 2016-6-30 14:40 | 显示全部楼层
    vickywong 发表于 2016-6-30 14:35
    太高兴了!谢谢版主老师给加了精华!

    社区有比赛马上就要开始了,暑假有空可以做点什么来参赛哟
    打赏,是超越赞的一种表达
  • TA的每日心情
    开心
    2019-5-27 11:32
  • 签到天数: 623 天

    [LV.9]以坛为家II

     楼主| 发表于 2016-6-30 14:45 | 显示全部楼层
    Or2 发表于 2016-6-30 14:40
    社区有比赛马上就要开始了,暑假有空可以做点什么来参赛哟

    看到了,有这个打算,现在开始计划
    打赏作者鼓励一下!

    该用户从未签到

    发表于 2016-6-30 15:10 | 显示全部楼层
    不错啊,加油!
    打赏作者鼓励一下!
  • TA的每日心情
    无聊
    2016-8-26 22:53
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2016-7-1 10:37 | 显示全部楼层
    这小玩意儿还能显示汉字?头一回见!
  • TA的每日心情
    无聊
    2016-8-26 22:53
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2016-7-2 13:11 | 显示全部楼层
    我用字模软件取模,显示出来的字怎么只有半边、还是躺着的?
  • TA的每日心情
    开心
    2019-5-27 11:32
  • 签到天数: 623 天

    [LV.9]以坛为家II

     楼主| 发表于 2016-7-3 13:33 | 显示全部楼层
    blacktea 发表于 2016-7-2 13:11
    我用字模软件取模,显示出来的字怎么只有半边、还是躺着的?

    我刚做的时候也这样,设一下取模方式就好了。
    打赏作者鼓励一下!
  • TA的每日心情
    擦汗
    2019-1-26 16:31
  • 签到天数: 446 天

    [LV.9]以坛为家II

    发表于 2016-7-4 15:17 | 显示全部楼层
    骚年前途无量~
    快来报名:http://www.arduino.cn/thread-21577-1-1.html
    PY让世界更美好~
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    动手用blinker做台灯
    动手用blinker做台灯
    分享一个使用blinker做的台灯,使用的是esp8266,可以使用天猫精灵进行控制(亮度、开
    户外穿戴定位手表制作
    户外穿戴定位手表制作
    户外穿戴定位手表制作 五一刚过;最近还是
    Arduino烧入失败显示avrdude: stk500_getsync() attempt 1 of 10: not in sy...
    Arduino烧入失败显示avrdu
    我的arduino烧录的时候烧录失败显示下面这些东西
    Arduino MEGA 与UNO 通过nRF24L模块通讯
    Arduino MEGA 与UNO 通过n
    之前在深水宝很“实惠”的店铺买了一些原件,随手砍了esp8266以及nRF24L*3 因为缺
    开贴讲讲NRF24L01P,让你彻底搞懂它的工作原理,持续更...
    开贴讲讲NRF24L01P,让你
    *****************************************
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表