Is was a small adventure to get my NHD-3.12-25664UCx running in parallel 8080 mode.
Best,
Johan
Code:
// Interface: 8-bit 8080 Parallel
// NHD-3.12-25664UCx
// Oled 256 x 64 px character display
// PD0LEW test example 18-05-2026
#include <Arduino.h>
#include <U8g2lib.h>
#define DC 23
#define CS 15
#define RES 21
#define D0 40
#define D1 39
#define D2 38
#define D3 37
#define D4 36
#define D5 35
#define D6 34
#define D7 33
// pin 19 display (BS1) + 3.3V
// pin 20 display (BS0) + GND
int x = 5;
int y = 45;
int w = 245;
int h = 7;
U8G2_SSD1322_NHD_256X64_F_8080 lcd(
U8G2_R0,
D0, D1, D2, D3, D4, D5, D6, D7,
CS, DC, RES
);
void hardResetOLED()
{
pinMode(RES, OUTPUT);
digitalWrite(RES, LOW);
delay(50);
digitalWrite(RES, HIGH);
delay(200);
}
void setup()
{
pinMode(CS, OUTPUT);
pinMode(DC, OUTPUT);
digitalWrite(CS, HIGH);
hardResetOLED();
lcd.begin();
lcd.clearBuffer();
lcd.setFont(u8g2_font_ncenB14_tr);
lcd.drawStr(10, 30, "OLED OK");
lcd.sendBuffer();
lcd.clearBuffer();
lcd.setFont(u8g2_font_10x20_tr);
//lcd.setFont( u8g2_font_profont22_tr );
}
void loop()
{
lcd.clearBuffer();
lcd.setFont(u8g2_font_10x20_tr);
lcd.setCursor(10,30);
lcd.print("Johan Holstein");
int fill = random(0, w + 1);
lcd.drawFrame(x, y, w, h);
lcd.drawBox(x, y, fill, h);
lcd.sendBuffer();
delay(5);
}
Best,
Johan