Author Topic: Program snippet for writing to Newhaven Display 7.0" TFT  (Read 2428 times)

ssd1963

  • Newbie
  • *
  • Posts: 1
  • Karma: 0
    • View Profile
Program snippet for writing to Newhaven Display 7.0" TFT
« on: October 30, 2015, 02:27:21 AM »
Hello ,

I have your program but How i send data into LCD?..

which compiler you are using?...

How to Write main() function?,...



Please guide me...




Thank You!!

Michael_L

  • Administrator
  • Hero Member
  • *****
  • Posts: 356
  • Karma: 33
    • View Profile
Re: Program snippet for writing to Newhaven Display 7.0" TFT
« Reply #1 on: October 30, 2015, 12:24:44 PM »
Have you found the Arduino example code for this display on our website?
https://newhavendisplay.com/appnotes/excode/txt/Arduino/70_800480EF.txt
(also below):

Code: [Select]
//---------------------------------------------------------
/*
NHD_7_0_800480EF_mega.ino
Program for writing to Newhaven Display 7.0” TFT with NHD-5.0-800480TF-20 Controller Board (SSD1963, 8-bit)

(c)2013 Mike LaVine - Newhaven Display International, LLC.

        This program is free software; you can redistribute it and/or modify
        it under the terms of the GNU General Public License as published by
        the Free Software Foundation; either version 2 of the License, or
        (at your option) any later version.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        GNU General Public License for more details.
*/
//---------------------------------------------------------

// The 8 bit data bus is connected to PORTA of the Arduino Mega2560
// 5V voltage regulator on Arduino Mega has been replaced with a 3.3V regulator to provide 3.3V logic

int RS  = 30;    // RS signal connected to Arduino digital pin 30
int WR  = 31;    // /WR signal connected to Arduino digital pin 31
int RD  = 32;    // /RD signal connected to Arduino digital pin 32
int RES = 33;    // /RES signal connected to Arduino digital pin 33
int DIS = 34;    // DISP signal connected to Arduino digital pin 34

// /CS signal tied to GND

//;******************************************************************************
void TFT_Write_Command(unsigned char command)
{
  digitalWrite(RS, LOW);
  PORTA = command;
  digitalWrite(WR, LOW);
  digitalWrite(WR, HIGH);
}
//;******************************************************************************
void TFT_Write_Data(unsigned char data)
{
  //digitalWrite(RS, HIGH);
  PORTA = data;
  digitalWrite(WR, LOW);
  digitalWrite(WR, HIGH);
}
//====================================================
void TFT_Command_Write(unsigned char REG,unsigned char VALUE)
{
        TFT_Write_Command(REG);
        digitalWrite(RS, HIGH);
        TFT_Write_Data(VALUE);
}
//======================================================
void WindowSet(unsigned int s_x,unsigned int e_x,unsigned int s_y,unsigned int e_y)
{
TFT_Write_Command(0x2a); //SET column address
digitalWrite(RS, HIGH);
TFT_Write_Data((s_x)>>8); //SET start column address
TFT_Write_Data(s_x);
TFT_Write_Data((e_x)>>8); //SET end column address
TFT_Write_Data(e_x);

TFT_Write_Command(0x2b); //SET page address
digitalWrite(RS, HIGH);
TFT_Write_Data((s_y)>>8); //SET start page address
TFT_Write_Data(s_y);
TFT_Write_Data((e_y)>>8); //SET end page address
TFT_Write_Data(e_y);
}
void disp()
{
unsigned int i, j;
        WindowSet(0,799,0,479);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
for(i=0;i<480;i++)         //fill screen with blue pixels
{
    for(j=0;j<800;j++)
            {
              TFT_Write_Data(0xFF);
              TFT_Write_Data(0x00);
              TFT_Write_Data(0x00);
            }
}
        WindowSet(0,799,0,479);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
        for(i=0;i<480;i++)         //fill screen with green pixels
{
    for(j=0;j<800;j++)
            {
              TFT_Write_Data(0x00);
              TFT_Write_Data(0xFF);
              TFT_Write_Data(0x00);
            }
}
        WindowSet(0,799,0,479);               //set start/end column/page address (full screen)
TFT_Write_Command(0x2C);              //command to begin writing to frame memory
        digitalWrite(RS, HIGH);
        for(i=0;i<480;i++)         //fill screen with red pixels
{
    for(j=0;j<800;j++)
            {
              TFT_Write_Data(0x00);
              TFT_Write_Data(0x00);
              TFT_Write_Data(0xFF);
            }
}
}
//======================================================
void setup()
{
  DDRA = 0xFF;
  PORTA = 0x00;
  DDRC = 0xFF;
  PORTC = 0x00;
  digitalWrite(DIS, HIGH);
  digitalWrite(RD, HIGH);
  digitalWrite(WR, LOW);
  digitalWrite(RES, LOW);
  delay(120);
  digitalWrite(RES, HIGH);
  delay(120);
  TFT_Write_Command(0x01);         //Software reset
  delay(120);
  TFT_Write_Command(0xe2);         //set multiplier and divider of PLL
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x1d);
  TFT_Write_Data(0x02);
  TFT_Write_Data(0x04);
  TFT_Command_Write(0xe0,0x01);    //Enable PLL
  delay(1);
  TFT_Command_Write(0xe0,0x03);    //Lock PLL
  TFT_Write_Command(0x01);         //Software reset
  delay(120);
  TFT_Write_Command(0xb0); //SET LCD MODE  SET TFT 18Bits MODE
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x08); //SET TFT MODE & hsync+Vsync+DEN MODE
  TFT_Write_Data(0x80); //SET TFT MODE & hsync+Vsync+DEN MODE
  TFT_Write_Data(0x03); //SET horizontal size=800-1 HightByte
  TFT_Write_Data(0x1f);         //SET horizontal size=800-1 LowByte
  TFT_Write_Data(0x01); //SET vertical size=480-1 HightByte
  TFT_Write_Data(0xdf); //SET vertical size=480-1 LowByte
  TFT_Write_Data(0x00); //SET even/odd line RGB seq.=RGB
  TFT_Command_Write(0xf0,0x00);         //SET pixel data I/F format=8bit
  TFT_Command_Write(0x36,0x09);         //SET address mode=flip vertical 
  TFT_Write_Command(0xe6);    //SET PCLK freq
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x0f);
  TFT_Write_Data(0xff);
  TFT_Write_Data(0xff);
  TFT_Write_Command(0xb4); //SET HBP
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x04); //SET HSYNC Total=1056
  TFT_Write_Data(0x20);
  TFT_Write_Data(0x00); //SET HBP 88
  TFT_Write_Data(0x58);
  TFT_Write_Data(0x80);  //SET HSYNC Pulse Width=128=127pixels+1
  TFT_Write_Data(0x00); //SET Hsync pulse start position
  TFT_Write_Data(0x00);
  TFT_Write_Data(0x00); //SET Hsync pulse subpixel start position
  TFT_Write_Command(0xb6); //SET VBP
  digitalWrite(RS, HIGH);
  TFT_Write_Data(0x02); //SET Vsync total 525
  TFT_Write_Data(0x0d);
  TFT_Write_Data(0x00); //SET VBP=32
  TFT_Write_Data(0x20);
  TFT_Write_Data(0x01);  //SET VSYNC Pulse Width= 0=0lines+1
  TFT_Write_Data(0x00); //SET Vsync pulse start position
  TFT_Write_Data(0x00);
  TFT_Write_Command(0x13); //SET display on
  TFT_Write_Command(0x38); //SET display on
  TFT_Write_Command(0x29); //SET display on
  delay(10);
}

void loop()
{
  disp();
  delay(1000); 
}

 

Blank Display on NHD‐C0220BiZ‐FS(RGB)‐FBW‐3VM

Started by SteveCBoard Character LCDs

Replies: 3
Views: 4699
Last post May 13, 2014, 12:04:36 AM
by SteveC
NHD‐C12864A1Z‐FSW‐FBW‐HTT display clears after draw

Started by EdAverillBoard Graphic LCDs

Replies: 6
Views: 5912
Last post November 07, 2014, 08:25:20 AM
by Michael_L
NHD‐4.3‐480272EF‐ATXL#‐CTP | FAN5333 | BBB | Nothing on the Display

Started by Alias_AliasBoard TFTs

Replies: 1
Views: 3558
Last post September 25, 2015, 03:09:24 PM
by Paul_B
Optical bonding Display to cover glass (dry film bonding)

Started by fourtraxBoard TFTs

Replies: 1
Views: 1210
Last post September 29, 2016, 08:35:00 AM
by Saurabh_B
Display current of 128x64 yellow OLED (2.7-12864UMY3) really 175mA?

Started by flywheelBoard OLEDs

Replies: 1
Views: 3540
Last post June 30, 2014, 04:48:12 PM
by Michael_L