LCD-Ansteuerung

Gast #270
Ich bräuchte auch eine Ansteuerung für eine LCD. Allerdings benütze ich 
einen Atmel 2051 µC. Und ein LCD mit den Controller HD44780 2x20 
Zeichen.
Bröchte dringend ein C programm für das, oder einen Link zu genaueren 
Infos
Gast #273
lcdcls:  mov  a,#1
  acall  befehl

lcdhome:  mov  a,#2
  sjmp  befehl
;------------------------SHIFT LEFT
lcdsl:
  mov  a,#24
  sjmp  befehl
;------------------------SHIFT RIGHT
lcdsr:
  mov  a,#28
  sjmp  befehl
;------------------------
lcdnext:
  mov  r0,#8
  acall  lcdsl
  djnz  r0,$-2
  ret
;------------------------
lcdback:
  mov  r0,#8
  acall  lcdsr
  djnz  r0,$-2
  ret
;------------------------
befehl:
  clr   lcdrs
  sjmp  dana1
;------------------------
dana:
  setb  lcdrs
dana1:  mov   lcddata,a
  acall  lcdwait
  setb  lcde
  acall  lcdwait
  clr  lcde
;------------------------
lcdwait:
  push  0    ; r0
  mov  r0,#0
  djnz  r0,$
  pop  0    ; r0
  ret
;------------------------
lcdinit:
  clr   lcde
  acall  lcdwait
  mov   r0,#6
  mov   dptr,#initt
initlo:  mov   a,#0
  movc  a,@a+dptr
  inc  dptr
  acall  befehl
  djnz  r0,initlo
  ret
initt:  db  6,12,16,56,128,2
;------------------------
print:  mov  a,#128
  acall  befehl
  pop  dph
  pop  dpl
printLoop:
  mov  a,#0
  movc  a,@a+dptr
  inc  dptr
  jnz  printdalej
  push  dpl
  push  dph
  ret
printdalej:
  cjne  a,#'|',printnormal
  acall  newline

  sjmp  printLoop
printnormal:
  acall  dana
  sjmp  printLoop
newline:
  mov  a,#192    ; kursor ins zweite linie
  ajmp  befehl

;-------------------------------------------------------------------
;und jetzt schreib das
  acall  lcdcls
  acall  print
  db  'hello world|das bin ich',0
; zeichen '|' ist wie enter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 25 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.