
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hi Stefan, so habe ich die Programmierung des 4x16-Displays (das "grüne-gelbe"-Display von Conrad )gelöst (so ist es recht verständlich). Habe mir auch mal ein "blaues 2x16" kommen lassen (sieht schöner aus und braucht weniger STrom), allerdings werden dort die Zeilenanfänge anders addressiert. Kannst du aber ganz leicht ausprobieren, indem du einen Test-Text mit immer anderen Adressen ausprobierst. Irgendwann passt es schließlich. Gibt aber auch beim Conrad-Kundenservice (17 80 04) ein komplettes LCD-Datenblatt (jeweils für die grün-gelbe oder blaue Version). Da stehen alle Adressen und ASCII-Codes drin. Hoffe, das hilft dir weiter... Todi Beschaltung: Display-Pin 1 an Masse Display-Pin 2 an +5V Display-Pin 3 an 0 bis 5V (Kontrast) Port 9 an Display-Pin 11 Port 10 an Display-Pin 12 Port 11 an Display-Pin 13 Port 12 an Display-Pin 14 Port 13 an Display-Pin 5 Port 14 an Display-Pin 4 Port 15 an Display-Pin 6 'Programm: define lcd_buf byte define lcd_param byte define lcd_port byteport[2] define lcd_rs port[14] define lcd_rw port[13] define lcd_e port[15] '*** ASCII-Codes *** define GA_ &H41 define GB_ &H42 define GC_ &H43 define GD_ &H44 define GE_ &H45 define GF_ &H46 define GG_ &H47 define GH_ &H48 define GI_ &H49 define GJ_ &H4A define GK_ &H4B define GL_ &H4C define GM_ &H4D define GN_ &H4E define GO_ &H4F define GP_ &H50 define GQ_ &H51 define GR_ &H52 define GS_ &H53 define GT_ &H54 define GU_ &H55 define GV_ &H56 define GW_ &H57 define GX_ &H58 define GY_ &H59 define GZ_ &H5A define KA_ &H61 define KB_ &H62 define KC_ &H63 define KD_ &H64 define KE_ &H65 define KF_ &H66 define KG_ &H67 define KH_ &H68 define KI_ &H69 define KJ_ &H6A define KK_ &H6B define KL_ &H6C define KM_ &H6D define KN_ &H6E define KO_ &H6F define KP_ &H70 define KQ_ &H71 define KR_ &H72 define KS_ &H73 define KT_ &H74 define KU_ &H75 define KV_ &H76 define KW_ &H77 define KX_ &H78 define KY_ &H79 define KZ_ &H7A define NULL_ &H30 define EINS_ &H31 define ZWEI_ &H32 define DREI_ &H33 define VIER_ &H34 define FUENF_ &H35 define SECHS_ &H36 define SIEBEN_ &H37 define ACHT_ &H38 define NEUN_ &H39 define LEERZ_ &H20 define MINUS_ &H2D define GLEICH_ &H3D define DOPPELP_ &H3A define KOMMA_ &H2C define PROZENT_ &H25 define PLUS_ &H2B define BACK_ &H3C define Frage_ &H3F '*** Programmoperationen *** #init gosub lcd_init #display lcd_param = 1 : gosub LCD_GOTOLINE 'schreibe "Motor:" lcd_param = GM_ : gosub LCD_WRITECHAR lcd_param = KO_ : gosub LCD_WRITECHAR lcd_param = KT_ : gosub LCD_WRITECHAR lcd_param = KO_ : gosub LCD_WRITECHAR lcd_param = KR_ : gosub LCD_WRITECHAR lcd_param = DOPPELP_ : gosub LCD_WRITECHAR lcd_param = 2 : gosub LCD_GOTOLINE 'schreibe "Licht:" lcd_param = GL_ : gosub LCD_WRITECHAR lcd_param = KI_ : gosub LCD_WRITECHAR lcd_param = KC_ : gosub LCD_WRITECHAR lcd_param = KH_ : gosub LCD_WRITECHAR lcd_param = KT_ : gosub LCD_WRITECHAR lcd_param = DOPPELP_ : gosub LCD_WRITECHAR lcd_param = 3 : gosub LCD_GOTOLINE 'schreibe "Power:" lcd_param = GP_ : gosub LCD_WRITECHAR lcd_param = KO_ : gosub LCD_WRITECHAR lcd_param = KW_ : gosub LCD_WRITECHAR lcd_param = KE_ : gosub LCD_WRITECHAR lcd_param = KR_ : gosub LCD_WRITECHAR lcd_param = DOPPELP_ : gosub LCD_WRITECHAR lcd_param = 4 : gosub LCD_GOTOLINE lcd_param = GT_ : gosub LCD_WRITECHAR lcd_param = KE_ : gosub LCD_WRITECHAR lcd_param = KS_ : gosub LCD_WRITECHAR lcd_param = KT_ : gosub LCD_WRITECHAR lcd_param = _LEERZ_ : gosub LCD_WRITECHAR lcd_param = DOPPELP_ : gosub LCD_WRITECHAR end '*** LCD_Interface *** #LCD_INIT ' alle ports 0 lcd_port = OFF ' 8-Bit-Modus aktivieren lcd_param=&H38 : gosub LCD_WRITECMD ' mit 8-Bit-Command in 4-Bit-Modus umschalten lcd_port=&B00000010 tog lcd_e tog lcd_e ' ab jetzt 4-Bit-Modus lcd_param = &H28 : gosub LCD_WRITECMD lcd_param = &H0C : gosub LCD_WRITECMD ' Display loeschen #LCD_CLS lcd_param = &H02 : gosub LCD_WRITECMD lcd_param = &H01 : gosub LCD_WRITECMD return ' Zeilenwechsel #LCD_GOTOLINE if lcd_param = 1 then lcd_param = &H80 'Zeile 1 if lcd_param = 2 then lcd_param = &HC0 'Zeile 2 if lcd_param = 3 then lcd_param = &H94 'Zeile 3 if lcd_param = 4 then lcd_param = &HD4 'Zeile 4 goto LCD_WRITECMD ' LCD-Kommando #LCD_WRITECMD lcd_buf = OFF goto LCD_WRITE ' Zeichenausgabe #LCD_WRITECHAR if lcd_param = BACK_ then return lcd_buf = &B00100000 ' Kommando oder Zeichen an Display senden #LCD_WRITE lcd_port = lcd_buf or (lcd_param shr 4) ' Hi-Nibble tog lcd_e tog lcd_e lcd_port = lcd_buf or (lcd_param and &H0F) ' Lo-Nibble tog lcd_e tog lcd_e return |
| Antwort schreiben |