#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C UILcd(0x27,20,4);
uint8_t state;
void setup() {
state=1;
Serial.begin(9600);
UILcd.init();
UILcd.backlight();
UILcd.setCursor(1,0);
UILcd.print("N3T Status - V.1.0");
pinMode(2, INPUT);
pinMode(3, INPUT);
attachInterrupt(digitalPinToInterrupt(2), changeStateUp, FALLING);
attachInterrupt(digitalPinToInterrupt(3), changeStateDown, FALLING);
sei();
}
void loop() {
clearArea();
if (state == 1) {
UILcd.setCursor(0,1);
UILcd.print("AF:");
UILcd.setCursor(0,2);
UILcd.print("BC:");
UILcd.setCursor(0,3);
UILcd.print("DE:");
UILcd.setCursor(10,1);
UILcd.print("HL:");
UILcd.setCursor(10,2);
UILcd.print("SP:");
UILcd.setCursor(10,3);
UILcd.print("PC:");
} else if (state == 2) {
UILcd.setCursor(0,1);
UILcd.print("A:");
UILcd.setCursor(0,2);
UILcd.print("B:");
UILcd.setCursor(0,3);
UILcd.print("C:");
UILcd.setCursor(5,1);
UILcd.print("D:");
UILcd.setCursor(5,2);
UILcd.print("E:");
UILcd.setCursor(5,3);
UILcd.print("F:");
UILcd.setCursor(11,1);
UILcd.print("H:");
UILcd.setCursor(11,2);
UILcd.print("L:");
UILcd.setCursor(11,3);
UILcd.print("SP:");
} else if (state == 3) {
UILcd.setCursor(0,1);
UILcd.print("PC:");
UILcd.setCursor(0,2);
UILcd.print("IX:");
UILcd.setCursor(0,3);
UILcd.print("IY:");
UILcd.setCursor(10,1);
UILcd.print("AF':");
UILcd.setCursor(10,2);
UILcd.print("BC':");
UILcd.setCursor(10,3);
UILcd.print("DE':");
}
delay(1000);
}
void changeStateUp() {
if (state < 3) {
state++;
}
Serial.print("state = ");
Serial.println(state);
}
void changeStateDown() {
if (state > 1) {
state--;
}
Serial.print("state = ");
Serial.println(state);
}
void clearArea() {
for (int r=1; r<=3; r++) {
for (int c=0; c<20; c++) {
UILcd.setCursor(c,r);
UILcd.print(" ");
}
}
}