今天考完试了,可以不用上学喽!下周返校评三好发奖状,就正式放假啦!玩了个1602液晶屏显示汉字,是这样的:LCD1602是5*8点阵的,用8*8的点阵编码写汉字,前面空3个空格都是0,后面有黑点的就是1,空的是0。还做了一百多字的字库。软件做不出5*8的,只能自己动手做。还有:LCD1602一次最多只能显示8个汉字,再多了就乱,只有8个自定义字符空间哦!
程序:关键是创建新字符。
/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(){ }
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END