2018年4月20日星期五

LCD1602显示汉字


//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(){ 
}

没有评论:

发表评论