کدهای زیر ۲۵۶ کاراکتر قابل نمایش روی LCD 16×4 را در بلوکهایی با ۶۴ کاراکتر نمایش میدهند، زیرا مجموعه کاراکتر یک LCD میتواند با مجموعه کاراکتر استاندارد مرتبط با کنترلر HD44780 متفاوت باشد. شماره صفحه نمایش برای نمایش ۶۴ کاراکتر در مانیتور سریال وارد میشود، صفحه نمایش شماره ۱ متناظر با مقادیر کاراکتر ۰ تا ۶۳ است.
#include // include Wire library
#include // include LCD with I2C library
int I2Caddress = 0x3F; // I2C address of I2C bus
LiquidCrystal_I2C lcd(I2Caddress,16,4); // I2C address and LCD size
int screen = 1;
int j,start;
void setup()
{
lcd.init(); // initialise LCD
Serial.begin(9600); // define Serial output baud rate
Serial.print("Enter screen number 1 to 4");
} // print message to Serial Monitor
void loop()
{ // read screen from Serial buffer
while (Serial.available()>0) screen = Serial.parseInt();
for (j=(screen-1)*4; j1) lcd.setCursor(0-4,(j%4)); // reduce col by 4 for rows 3 and 4
start = j*16; // 16 characters per row
for (int i=0; i<16; i++) lcd.print(char(i+start));
}
} // display characters by row
4 باقیمانده تقسیم J بر ۴ است. یک کاراکتر با دستور lcd.print(char(N)) برروی LCD نمایش داده شده چنانکه N کد کاراکتر باینری، دسیمال یا هگزدسیمال میباشد. به عنوان مثال، کاراکتر T به ترتیب دارای کدهای باینری، دسیمال و هگزال دسیمال B01010100، 84 و 0x54 است. جداول مجموعه کاراکترها اغلب با ردیفها و ستونهایی حاوی ۴ بیت بالا یا پایین کد کاراکتر قالببندی میشوند (جدول زیر را مشاهده کنید). به عنوان مثال، چهار بیت بالا و پایین حرف T به ترتیب 0101 و 0100 میباشند. کدهای اسکی با بیتهای بالای 0001 برای کاراکترهای غیرچاپی بوده و در جدول زیر بیان نشدهاند.
دیگر کاراکترهای قابل نمایش روی ال سی دی
میتوان یک کاراکتر ۸تایی برای نمایش بر روی LCD ایجاد کرد. هر کاراکتر با یک آرایه 7×5 پیکسلی تعریف میشود. به ستونها مقادیر ۲۴، ۲۳، ۲۲، ۲۱ و ۲۰ از چپ به راست اختصاص داده میشود، مجموع کل هفت ردیف برابر با مجموع ۵ ستون است. شکل.۱ ایجاد کاراکترهای ساعت و تیک را نشان میدهد. مجموع ردیفها در یک آرایه ۸ بایتی با نام کاراکتر ایجادشده قرار میگیرند.
به عنوان مثال .clock[8] = {0, 14, 21, 23, 17, 14, 0} در تابع ()void setup، به کاراکتر ایجادشده یک عدد از 0 تا 7 اختصاص داده میشود، برای مثال کاراکتر ایجادشده با lcd.createChar(0, clock) توسط دستور lcd.write(number) نمایش داده میشود. کاراکترهای یک ساعت، یک تیک، و یک تقاطع در کد زیر ایجادشده و نمایش داده میشوند.
#include // include Wire library
#include // include LCD with I2C library
int I2Caddress = 0x3F; // I2C address of I2C bus
LiquidCrystal_I2C lcd(I2Caddress,16,4); // I2C address and LCD size
byte clock[8] = {0, 14, 21, 23, 17, 14, 0}; // clock pixel pattern
byte tick[8] = {0, 1, 3, 22, 28, 8, 0}; // tick pixel pattern
byte cross[8] = {0, 27, 14, 4, 14, 27, 0}; // cross pixel pattern
void setup()
{
lcd.init(); // initialise LCD
lcd.createChar(0, clock); // create character 0 named clock
lcd.createChar(1, tick); // create character 1 named tick
lcd.createChar(2, cross); // create character 2 named cross
lcd.setCursor(0,0); // position cursor
for (int i=0;i<3;i++) lcd.write(i); // display new characters
}
void loop() // nothing in void loop()
{}