Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: 16x4 Zeichen Display con Conrad Kategorie: Programmierung Basic (von Stefan Braun - 25.01.2006 12:08)
 Als Antwort auf Re: 16x4 Zeichen Display con Conrad von Todi - 24.01.2006 18:49
Stefan Braun nutzt:  CC1-Unit V1.1
suuuuper - vielen Dank !!!




> 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

Bisherige Antworten:

Re: LCD Zeichen mit print (von ManfredW - 27.01.2006 21:17)