Ansteuerung eines ASCII-fähigen LED-Displays
|

Bild 0-0: Pinbelegungen am Display-Baustein.

Bild 0-1: Verbindungen zwischen Display und Mikrocontroller.
|

Bild 0-2: Zeit Charakteristik des Displays.
|

Bild 0-3: Versuchsaufbau
|

//Ansteuern der Anzeige Siemens SLO2016 //Zuordnung der Pins //ATmega32 Display Pin Nr.(Display) //PC0 D0 5 //PC1 D1 6 //PC2 D2 7 //PC3 D3 8 //PC4 D4 9 //PC5 D5 10 //PC6 D6 11 // //PA3 A0 Digit select 3 //PA4 A1 Digit select 2 //PA5 !write 1 (Zeichen schreiben, invertiert) //PA6 !BL 12 (Anzeige aus, invertiert) //PA7 !CLR 13 (löschen, invertiert) // +5V 4 // GND 14 #include <avr/io.h> #define TAKTFREQUENZ 9216000 #include "RS232.h" RS232 rs232; volatile unsigned long pause; void initDisplay() { //1. !CLR auf 1 PORTA |=0b10000000; //2. !write auf 1 PORTA |=0b00100000; //3. !Display blank auf 0 PORTA &=0b10111111; } void zeigeZeichen(char* zeichen) { //2. 0. Anzeigenelement wählen: PORTA &= 0b11100111; //3. ASCII-Code für aktuelles Zeichen einstellen PORTC = zeichen[3]; //4. Schreibvorgang durchführen //5. !write einige Zeit auf 0: PORTA &=0b11011111; PORTA |=0b00100000; //2. 1. Anzeigenelement wählen: PORTA &= 0b11100111; PORTA |= 0b00001000; //3. ASCII-Code für aktuelles Zeichen einstellen PORTC = zeichen[2]; //4. Schreibvorgang durchführen //5. !write einige Zeit auf 0: PORTA &=0b11011111; PORTA |=0b00100000; //2. 2. Anzeigenelement wählen: PORTA &= 0b11100111; PORTA |= 0b00010000; //3. ASCII-Code für aktuelles Zeichen einstellen PORTC = zeichen[1]; //4. Schreibvorgang durchführen //5. !write einige Zeit auf 0: PORTA &=0b11011111; PORTA |=0b00100000; //2. 3. Anzeigenelement wählen: PORTA |= 0b00011000; //3. ASCII-Code für aktuelles Zeichen einstellen PORTC = zeichen[0]; //4. Schreibvorgang durchführen //5. !write einige Zeit auf 0: PORTA &=0b11011111; PORTA |=0b00100000; //0. Anzeige einschalten mit BL=1 PORTA |= 0b01000000; } int main(void) { char* puffer_zeiger; rs232.start(true,true); //Konfiguration für Anzeige. DDRC = 0b11111111; DDRA = 0b11111111; initDisplay(); while(true) { rs232.sendeText("Geben Sie vier Zeichen ein, die im Display angezeigt werden sollen.\n\rBeenden Sie mit ENTER Ihre Eingabe:\n\r"); puffer_zeiger = rs232.holeText(); rs232.sendeText("\n\rSie haben folgende Zeichenfolge eingegeben:\n\r"); rs232.sendeText(puffer_zeiger); rs232.sendeText("\n\r"); zeigeZeichen(puffer_zeiger); } return 0; }
Code 0-1: Testprogramm für die Display-Ansteuerung.

Bild 0-4: Sicht auf das Hyperterminal bei Verwendung des Programms.