查看: 80|回复: 0

[活动] 【赚周年币】技术贴 基于Arduino UNO的LCD5110屏中文显示

[复制链接]

73

主题

2

好友

1324

积分

进士

Rank: 5Rank: 5

  • TA的每日心情
    奋斗
    昨天 20:57
  • 签到天数: 300 天

    [LV.8]以坛为家I

    爱板会员勋章 活跃会员勋章

    发表于 2016-12-25 11:03:42 |显示全部楼层
    在常规的Arduino UNO驱动库中,对于LCD5110的驱动程序一般是缺少中文支持的,恰逢圣诞来临之际,就以“圣诞快乐”的界面制作来介绍一下实现中文显示的方法。
    1. 3310液晶显示屏绘制提取程序来提取汉字字模,其操作如图1所示。
    图片1.png

    1 提取中文字模

    2. 建立一个名为chinese.h的头文件,将字模存入该文件。
    1. const unsigned char chinese_character[][24]=
    2. {
    3. //圣
    4. {0x40,0x42,0x26,0x2A,0x12,0xD2,0x12,0x2A,0x26,0x42,0x40,0x00,0x08,0x08,0x09,0x09,0x09,0x0F,0x09,0x09,0x09,0x08,0x08,0x00},
    5. //诞
    6. {0x11,0xF2,0x00,0x72,0xCE,0x00,0xF2,0x02,0xFE,0x11,0x11,0x00,0x00,0x07,0x0A,0x04,0x0B,0x08,0x09,0x09,0x09,0x09,0x09,0x00},
    7. //快
    8. {0x78,0x00,0xFF,0x48,0x44,0x44,0xFF,0x44,0x44,0x7C,0x40,0x00,0x00,0x00,0x0F,0x08,0x04,0x03,0x00,0x03,0x04,0x08,0x08,0x00},
    9. //乐
    10. {0x00,0x3E,0xA2,0x22,0x22,0xFA,0x21,0x21,0xA1,0x20,0x00,0x00,0x04,0x02,0x01,0x08,0x08,0x0F,0x00,0x00,0x00,0x01,0x06,0x00},
    11. };
    12. }
    复制代码
    3. Arduino UNOLCD5110连接起来,其连接关系如下:
    VCC      --  3.3V
    GND     --  GND
    LCD_CS   --  4
    LCD_DIN  --  5
    LCD_CLK  --  6
    LCD_RST  --  7
    LCD_DC   --  8
    VO       -- 3.3V
    4. LCD5110驱动库中添加语句 #include "chinese.h",以引入自行构建的小字库。然后再添加如下的汉字显示函数。
    1. void LCD_write_hanzi(uint8_t X,uint8_t Y,uint8_t s)
    2. {
    3.     do
    4.     {
    5. char line;
    6. NOKIA5110_set_XY(X,Y);
    7.         for (line=0; line<12; line++)
    8. {
    9. NOKIA5110_write_byte(chinese_character[s][line], NOKIA5110_DATA);
    10.           }
    11. NOKIA5110_set_XY(X,Y+1);//LCD_set_XY(X,Y+1);
    12. for (line=12; line<24; line++)
    13. {
    14. NOKIA5110_write_byte(chinese_character[s][line], NOKIA5110_DATA);
    15.           }
    16.           }while(0);
    17. }
    复制代码
    此外,再添加如下的主处理函数。
    1. void Main_Deal ()
    2. {
    3.   NOKIA5110_init();
    4.   NOKIA5110_clear_screen();
    5.   LCD_write_hanzi(0,0,0);
    6.   LCD_write_hanzi(12,0,1);
    7.   LCD_write_hanzi(24,0,2);
    8.   LCD_write_hanzi(36,0,4);
    9.   NOKIA5110_display_8x6_text (0, 2, "merry christmas");
    10.   NOKIA5110_display_8x6_text (0, 4, "  2016.12.24");
    11.   while (1);
    12. }
    复制代码
    5. 经编译与下载,其显示效果如图2所示。
    图片2.png

    2 中文显示效果


    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /1 下一条

    手机版|爱板网 |网站地图  

    GMT+8, 2017-3-27 05:20 , Processed in 0.140758 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部