QDSP 2259 (Hewlett Packard)


Připojení k Arduinu

Pin QDSP 2259Název pinu QDSP 2259Pin Arduino
1CLS5V
2CLK–
3WRA1
4CE10
5RSTA0
6RD11
7––
8––
9––
10––
11D00
12D11
13D22
14D33
15NC–
16Vdd5V
17GND (SUPPLY)GND
18GND (LOGIC)GND
19D44
20D55
21D66
22D77
23––
24––
25––
26––
27FL5V
28A0A2
29A1A3
30A2A4
31A3A5
32A45V

Zdrojový kód pro Arduino

/*
  Original code www.josvandijken.nl
  Based on the code from: Matt Joyce < matt at nycresistor.com >
                        Mark Tabry
*/
int RST   = A0;
int WR    = A1;
int CE    = 10;
int RD    = 11;
int AD0   = A2;
int AD1   = A3;
int AD2   = A4;
int AD3   = A5;
int D0    = 0;
int D1    = 1;
int D2    = 2;
int D3    = 3;
int D4    = 4;
int D5    = 5;
int D6    = 6;
int D7    = 7;
int incomingByte = 0;

void setup()
{
  pinMode(RST    , OUTPUT);
  pinMode(WR     , OUTPUT);
  pinMode(CE     , OUTPUT);
  pinMode(RD     , OUTPUT);
  pinMode(AD0    , OUTPUT);
  pinMode(AD1    , OUTPUT);
  pinMode(AD2    , OUTPUT);
  pinMode(AD3    , OUTPUT);
  pinMode(D0     , OUTPUT);
  pinMode(D1     , OUTPUT);
  pinMode(D2     , OUTPUT);
  pinMode(D3     , OUTPUT);
  pinMode(D4     , OUTPUT);
  pinMode(D5     , OUTPUT);
  pinMode(D6     , OUTPUT);
  pinMode(D7     , OUTPUT);
  digitalWrite(CE, HIGH);
  digitalWrite(WR, HIGH);
  resetDisplay();
}

void resetDisplay()
{
  digitalWrite(RST, LOW);
  delayMicroseconds(1);
  digitalWrite(RST, HIGH);
  delayMicroseconds(200);
  digitalWrite(AD3, HIGH);
}

void writeDisplay(char *input)
{
  for (int i = 0; i < 8; i++)
  {
    digitalWrite(AD0, (1 & i) != 0 ? HIGH : LOW);
    digitalWrite(AD1, (2 & i) != 0 ? HIGH : LOW);
    digitalWrite(AD2, (4 & i) != 0 ? HIGH : LOW);
    PORTD = input[i];
    delay(0);
    digitalWrite(CE, LOW);
    delay(0);
    digitalWrite(WR, LOW);
    delay(0);
    digitalWrite(WR, HIGH);
    delay(0);
    digitalWrite(CE, HIGH);
    //delay(5);
  }
}

void scrollDisplay(char *words)
{
  char buffer[8];
  int i = 0;
  while (words[i] != 0)
  {
    boolean blank = false;
    for (int j = 0; j < 8; j++)
    {
      if ( !blank && words[i + j] == 0 )
      {
        blank = true;
      }
      if ( blank )
      {
        buffer[j] = ' ';
      }
      else
      {
        buffer[j] = words[i + j];
      }
    }
    buffer[8] = 0;

    writeDisplay(buffer);
    delay(300);
    i++;
  }
}

void loop()
{
  char intro[] = "      *** QDSP 2259 DEMO *** MORE DISPLAYS ON CTVRTKY.INFO/SBIRKA-DISPLEJU-LED  ";
  scrollDisplay(intro);
}


Demo video


Leave a Reply