涂鸦arduino中文社区活动
查看: 79903|回复: 87

LCD1602显示汉字 + 自制字库

  [复制链接]

该用户从未签到

发表于 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个自定义字符空间哦!

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

[mw_shl_code=applescript,true]//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(){
}
[/mw_shl_code]

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



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

5×8点阵汉字库.pdf

74.12 KB, 下载次数: 2020

该用户从未签到

 楼主| 发表于 2016-8-18 18:34 | 显示全部楼层
附上了自己做的字库

该用户从未签到

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

该用户从未签到

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

社区有比赛马上就要开始了,暑假有空可以做点什么来参赛哟

该用户从未签到

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

看到了,有这个打算,现在开始计划

该用户从未签到

发表于 2016-6-30 15:10 | 显示全部楼层
不错啊,加油!

该用户从未签到

发表于 2016-7-1 10:37 | 显示全部楼层
这小玩意儿还能显示汉字?头一回见!

该用户从未签到

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

该用户从未签到

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

我刚做的时候也这样,设一下取模方式就好了。

该用户从未签到

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

本版积分规则

热门推荐

字符串是否对比该使用哪个函数?
字符串是否对比该使用哪个
现有问题是, 串口接收到的数据是正常的,(通过print函数打印串口收
VSCode+PIO开发环境中添加Blinker.h的问题
VSCode+PIO开发环境中添加
我在main.c中添加就没问题,但是添加在.h文件中就会出现编译错误,在其他.c文件添加此
【干货分享】mega2560原理图PCB图纸altium designer18
【干货分享】mega2560原理
分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
这样写不对吗,为啥老是报错
这样写不对吗,为啥老是报
Python上位机控制WS2812B
Python上位机控制WS2812B
说在前面: 设计师对颜色有着天生的敏锐性,而工程师眼中这些都会幻化成数值。。
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表