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 Todi - 24.01.2006 18:49)
 Als Antwort auf 16x4 Zeichen Display con Conrad von Stefan Braun - 23.01.2006 17:27
Todi nutzt:  CC1-Unit V1.1, CC1-M-Unit V1.1
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: 16x4 Zeichen Display con Conrad (von Stefan Braun - 25.01.2006 12:08)
    Re: LCD Zeichen mit print (von ManfredW - 27.01.2006 21:17)