Du brauchst nur folgenden Code in die rp5plus.inc von hup mit einfügen:
Leider werden dadurch noch weitere, wertvolle Register verbraucht.Code:#define lcd_port 1 #define lcd_rw 12 #define lcd_rs 13 #define lcd_e 14 // ---- LCD Routinen --- char lcd_param; char lcd_buf; // Kommando oder Zeichen an Display senden void LCD_Write() { OutByte(lcd_port,lcd_buf|(lcd_param >> 4)); // Hi-Nibble Toggle(lcd_e); Toggle(lcd_e); OutByte(lcd_port,lcd_buf|(lcd_param & 0x0F)); // Lo-Nibble Toggle(lcd_e); Toggle(lcd_e); } // LCD-Kommando void LCD_WriteCMD() { lcd_buf=0x00; LCD_Write(); } // Zeichenausgabe void LCD_WriteChar() { lcd_buf=32; //&B00100000 LCD_Write(); } // Nummernausgabe void LCD_WriteNum() { lcd_param+=48; LCD_WriteChar(); } // Display loeschen void LCD_Clear() { lcd_param=0x02; LCD_WriteCMD(); lcd_param=0x01; LCD_WriteCMD(); } void LCD_Init() { // alle ports 0 OutByte(lcd_port,0x00); // 8-Bit-Modus aktivieren lcd_param=0x38; LCD_WriteCMD(); // mit 8-Bit-Command in 4-Bit-Modus umschalten OutByte(lcd_port,2); //&B00000010 Toggle(lcd_e); Toggle(lcd_e); // ab jetzt 4-Bit-Modus lcd_param=0x28; LCD_WriteCMD(); lcd_param=0x0C; LCD_WriteCMD(); LCD_Clear(); } // Zeilenwechsel void LCD_GotoLine() { if (lcd_param==1) lcd_param=0x80; if (lcd_param==2) lcd_param=0xC0; LCD_WriteCMD(); } // Ausgabe: Hallo! Mein Name ist RP5! // Unbedingt beachten, dass vor dem ersten Gebrauch der LCD Funktionen LCD_Init aufgerufen wird! void LCD_Demo1() { LCD_Clear(); lcd_param=1; LCD_GotoLine(); lcd_param='H'; LCD_WriteChar(); lcd_param='a'; LCD_WriteChar(); lcd_param='l'; LCD_WriteChar(); lcd_param='l'; LCD_WriteChar(); lcd_param='o'; LCD_WriteChar(); lcd_param='!'; LCD_WriteChar(); lcd_param=' '; LCD_WriteChar(); lcd_param='M'; LCD_WriteChar(); lcd_param='e'; LCD_WriteChar(); lcd_param='i'; LCD_WriteChar(); lcd_param='n'; LCD_WriteChar(); lcd_param=' '; LCD_WriteChar(); lcd_param=' '; LCD_WriteChar(); lcd_param=2; LCD_GotoLine(); lcd_param='N'; LCD_WriteChar(); lcd_param='a'; LCD_WriteChar(); lcd_param='m'; LCD_WriteChar(); lcd_param='e'; LCD_WriteChar(); lcd_param=' '; LCD_WriteChar(); lcd_param='i'; LCD_WriteChar(); lcd_param='s'; LCD_WriteChar(); lcd_param='t'; LCD_WriteChar(); lcd_param=' '; LCD_WriteChar(); lcd_param='R'; LCD_WriteChar(); lcd_param='P'; LCD_WriteChar(); lcd_param='5'; LCD_WriteChar(); lcd_param='!'; LCD_WriteChar(); }







Zitieren

Lesezeichen