#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

byte vertical[8] = {
  0b00000,
  0b00100,
  0b00100,
  0b00100,
  0b00100,
  0b00100,
  0b00100,
  0b00000,
};

byte corner1[8] = {
	0b00000,
	0b00000,
	0b00000,
	0b00111,
	0b00100,
	0b00100,
	0b00100,
	0b00000
};

byte corner2[8] = {
	0b00000,
	0b00100,
	0b00100,
	0b00100,
	0b00111,
	0b00000,
	0b00000,
	0b00000
};

byte corner3[8] = {
	0b00000,
	0b00000,
	0b00000,
	0b11100,
	0b00100,
	0b00100,
	0b00100,
	0b00000
};

byte corner4[8] = {
	0b00000,
	0b00100,
	0b00100,
	0b00100,
	0b11100,
	0b00000,
	0b00000,
	0b00000
};

byte horizontal1[8] = {
	0b00000,
	0b00000,
	0b00000,
	0b11111,
	0b00000,
	0b00000,
	0b00000,
	0b00000
};

byte horizontal2[8] = {
	0b00000,
	0b00000,
	0b00000,
	0b00000,
	0b011110,
	0b00000,
	0b00000,
	0b00000
};



void setup() {
 lcd.begin(20, 4);

  lcd.createChar(0, vertical);
  lcd.createChar(1, corner1);
  lcd.createChar(2, corner2);
  lcd.createChar(3, corner3);
  lcd.createChar(4, corner4);
  lcd.createChar(5, horizontal1);
  lcd.createChar(6, horizontal2);

 
 //border
  int row = 0;
  for (int col = 1; col <=18; col++) {
  lcd.setCursor(col, row);
  lcd.write((byte)5);
  }

  int row2 = 4;
  for (int col2 = 1; col2 <=18; col2++) {
  lcd.setCursor(col2, row2);
  lcd.write((byte)6);
  }

  int col3 = 0;
  for (int row3 = 1; row3 <=2; row3++) {
  lcd.setCursor(col3, row3);
  lcd.write((byte)0);
  }

  int col4 = 19;
  for (int row4 = 1; row4 <=2; row4++) {
  lcd.setCursor(col4, row4);
  lcd.write((byte)0);
  }

  lcd.setCursor(0,0);
  lcd.write((byte)1);

  lcd.setCursor(0,4);
  lcd.write((byte)2);

  lcd.setCursor(19,4);
  lcd.write((byte)4);

  lcd.setCursor(19,0);
  lcd.write((byte)3);

//clock
lcd.setCursor(5,1);
 lcd.print("3/18/2022");

 lcd.setCursor(6,2);
 lcd.print(3);
 lcd.print(":");
 lcd.print(0);
 lcd.print(0);
 lcd.print(":");

}

void loop() {
  for (int sec = 01; sec<=60; sec++) {
    lcd.setCursor(11,2);
    lcd.print(sec);
    delay(1000);
  }
}