LCD12864(spi)使用u8g2库显示中文。免取模-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5730|回复: 5

LCD12864(spi)使用u8g2库显示中文。免取模

[复制链接]
发表于 2021-4-2 21:37 | 显示全部楼层 |阅读模式
本帖最后由 z01228 于 2021-4-2 22:03 编辑

重要的事强调: 大家按照下面的教程后,可能只是显示数字不显示中文的情况,这个时候就需要自己做字库了同时也可以降低单片机内存的使用率 ,网站不能上传大于1M的 我就不上传自己的字库了具体的字库教程见:https://www.arduino.cn/thread-94154-1-1.html

物理接线: * ST7920/LCD12864---arduino uno
* VCC-------------5V
* GND-------------GND
* PSB----------------GND
* E------------------2 SCK
* R/W----------------3 MOSI
* R/S----------------4 SS/CS

*下面的两组线,我的屏幕上面有跳线就没接,你们自己新买的就需要了
*bla----------5v
*blk---------gnd
*
* 程序效果: lcd屏幕显示 “我在人群中看见你" "我看见你在人群中”并且数字自加

1接线效果:

IMG_20210402_211430.jpg

IMG_20210402_211435.jpg
2程序运行效果:
IMG_20210402_205102.jpg

  1. /*接线
  2. * ST7920/LCD12864---arduino uno
  3. * VCC-------------5V
  4. * GND-------------GND
  5. * PSB----------------GND//低电平使用并口
  6. * E------------------2 SCK
  7. * R/W----------------3 MOSI
  8. * R/S----------------4 SS/CS
  9. *
  10. * 程序效果: lcd屏幕显示 “我在人群中看见你" "我看见你在人群中”并且闪烁
  11. */

  12. #include <Arduino.h>
  13. #include <U8g2lib.h>

  14. #ifdef U8X8_HAVE_HW_SPI//SPI通讯
  15. #include <SPI.h>
  16. #endif
  17. //#ifdef U8X8_HAVE_HW_I2C
  18. //#include <Wire.h>
  19. //#endif

  20. //初始化接口
  21. U8G2_ST7920_128X64_2_SW_SPI u8g2(U8G2_R0, /* clock=*/ 2 /* A4 */ , /* data=*/ 3 /* A2 */, /* CS=*/ 4 /* A3 */, /* reset=*/ U8X8_PIN_NONE);
  22. //注意PSB一定要接GND

  23. unsigned long sj;
  24. int jsq=0;

  25. void setup(void) {
  26.   u8g2.begin();//初始化
  27.   u8g2.enableUTF8Print(); // 使print支持UTF8字集
  28.   //u8g2.setFont(u8g2_font_wqy13_t_chinese5);// 字库可以在初始化里统一使用,也可以在显示函数(u8g2.firstPage();)前面定义即将显示的字体
  29.   //u8g2.setFont(u8g2_font_ncenB14_tr);
  30.   //u8g2.setFont(u8g2_font_unifont_t_chinese2);
  31.   //u8g2.setFont(u8g2_font_unifont_t_symbols);
  32.   //u8g2.setFont(u8g2_font_ncenB10_tr);
  33.   sj = millis();
  34. }

  35. void loop(void) {
  36.   u8g2.setFont(u8g2_font_unifont_t_chinese1);  //使用这个字库里面要包含"我在人群中看见你" "我看见你在人群中"要不然不能显示,建议自己写字库这样可以节约内存。
  37.   u8g2.setFontDirection(0);//旋转当前显示 参数:0123
  38.   u8g2.firstPage();
  39.   do {
  40.     u8g2.setCursor(0, 15);//在这个位置显示下面内容
  41.     u8g2.print("我在人群中看见你");//打印 "我在人群中看见你"
  42.     u8g2.setCursor(0, 30);
  43.     u8g2.print("我看见你在人群中");   
  44.     u8g2.setCursor(56, 48);
  45.     u8g2.print(jsq);   
  46.   } while ( u8g2.nextPage() );

  47.   if(millis()-sj>= 1000){
  48.     sj = millis();
  49.     jsq++;
  50.   }

  51. }
复制代码



3.附lcd12864引脚图及功能

 1VSS-模块的电源地

 2VDD-模块的电源正端

 3V0-LCD驱动电压输入端

 4RS(CS)H/L并行的指令/数据选择信号;串行的片选信号

 5R/W(SID)H/L并行的读写选择信号;串行的数据口

 6E(CLK)H/L并行的使能信号;串行的同步时钟

   7DB0H/L数据0

 8DB1H/L数据1

 9DB2H/L数据2

 10DB3H/L数据3

 11DB4H/L数据4

 12DB5H/L数据5

 13DB6H/L数据6

 14DB7H/L数据7

 15PSBH/L并/串行接口选择:H-并行;L-串行

 16NC空脚

 17/RETH/L复位低电平有效

 18NC空脚

 19LED_A(LED+5V)背光源正极

 20LED_K(LED-OV)背光源和负极







发表于 2021-4-8 19:58 | 显示全部楼层
非常赞的教程,顶顶楼主
发表于 2021-6-2 22:38 | 显示全部楼层
请教楼主,uno板接上的2,3,4脚是不是spi通讯指定的?我看也有接10,11,13的。

不过我的12864液晶屏,怎么接显示都不正常,烦恼。
 楼主| 发表于 2021-6-7 03:48 | 显示全部楼层
本帖最后由 z01228 于 2021-6-7 03:51 编辑
duanyz 发表于 2021-6-2 22:38
请教楼主,uno板接上的2,3,4脚是不是spi通讯指定的?我看也有接10,11,13的。

不过我的12864液晶屏,怎 ...

不是指定的  可以在构造函数(初始化接口)里修改的 ,也就是说可以自定义。
发表于 2021-10-28 22:21 | 显示全部楼层
这个U8g2的库去哪找呀
发表于 2021-10-29 05:08 | 显示全部楼层
西西特 发表于 2021-10-28 22:21
这个U8g2的库去哪找呀

ARDUINO IDE 里: 项目->加载库->管理库,直接搜 u8g2 安装就是.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:30 , Processed in 0.096766 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表