DEM-16217

DEM-16217

de > hardware > displayansteuerung

Ich nutze einen Atmel ATtiny2313 zur Ansteuerung und den 8-Bit Datenmodus des Displays, weil die Initialisierung im 8-Bit-Modus im Datenblatt am einfachsten aussah.

Displaysteuerung

Auf den Code bin ich nicht stolz, aber es ist ein Anfang und sehr nah am Datenblatt:

#include <avr/io.h>
#include <util/delay_basic.h>
 
typedef enum
{
  FUNCTION_SET    = 0b00111000,
  DISPLAY_CONTROL = 0b00001111,
  DISPLAY_CLEAR   = 0b00000001,
  DISPLAY_HOME    = 0b00000010,
  ENTRY_MODE_SET  = 0b00000110
} INSTRUCTIONS;
 
void execute()
{
  PORTD |= 0b01000000;
  _delay_loop_2(1024);
  PORTD &= 0b10111111;
}
 
int main()
{
  DDRB = 0xFF;
  DDRD = 0xFF;
 
  PORTB = FUNCTION_SET;
  execute();
  PORTB = DISPLAY_CONTROL;
  execute();
  PORTB = DISPLAY_CLEAR;
  execute();
  PORTB = ENTRY_MODE_SET;
  execute();
 
  char* c = "Max ";
  while(1)
  {
    int i;
    for(i=0; c[i]!='\0'; i++)
    {
      PORTB = c[i];
      execute();
    }
    _delay_loop_2(32768);
  }
  return 0;
}
top