查看: 395|回复: 1

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 | 显示全部楼层
非常赞的教程,顶顶楼主
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

arduino程序设计基础 blinker物联网解决方案

热门推荐

【教程】pico+hx711电子秤
【教程】pico+hx711电子秤
pico+hx711电子秤 【前言】 我做过多款电子秤,这次移植到pico上
ESP8266+Onenet平台远程数据传输和控制
ESP8266+Onenet平台远程数
这是我的第一个diy,主要功能实现了onenet云平台温湿度数据的传输和远程控制LED灯平台
【Arduino】108种传感器模块系列实验(48)---三轴ADXL345模块
【Arduino】108种传感器模
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
ps2遥控小车——uno实现
ps2遥控小车——uno实现
前几天在阁楼发现了好久以前3d打印,激光切割的底盘,于是决定做这个东西 正好手上又
震惊!OLED菜单竟只用10行代码就可以完成到完美!!!
震惊!OLED菜单竟只用10行
震惊!OLED菜单竟只用10行代码就可
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表