Forum: Projekte & Code AVR-Tutorial - 4. LCD in fastavr-basic umgesetzt


von pebisoft (Gast)


Lesenswert?

AVR-Tutorial - 4. LCD asm habe ich mal in fastavr-basic umgesetzt.
es ist erstaunlich wie leicht/einfach es damit geht. und funktioniert
zu 100% und man kann die lcd-befehle beliebig erweitern und verfolgen
im ablauf.
mfg pebisoft

$Device= m16
$Stack = 32
$Clock = 8
$Baud  = 19200

Dim temp1 As Byte
Dim temp2 As Byte
Dim daten As Byte
Dim text_lang As Byte
Dim text_anfang As Byte
Dim text_lcd As String *16

Declare Sub lcd_char()
Declare Sub lcd_string()
Declare Sub lcd_command()
Declare Sub lcd_init()
Declare Sub lcd_clear()
Declare Sub lcd_enable()

DDRC=&b11111111

lcd_init()
lcd_clear()
text_lcd="es geht doch !"
lcd_string()

End

Sub lcd_string()
  text_lang=Len(text_lcd)
  For text_anfang=1 To text_lang
     daten=Asc(text_lcd, text_anfang)
     lcd_char()
  Next
End Sub

Sub lcd_char()
  temp1=daten
  temp2=daten
  Swap(temp1)
  temp1=temp1 And &b00001111
  temp1=temp1 Or &b00100000
  PORTC=temp1
  lcd_enable()

  temp2=temp2 And &b00001111
  temp2=temp2 Or &b00100000
  PORTC=temp2
  lcd_enable()
  WaitUs 5
End Sub

Sub lcd_command()
  temp1=daten
  temp2=daten
  Swap(temp1)
  temp1= temp1 And &b00001111
  PORTC=temp1
  lcd_enable()
  temp2=temp2 And &b00001111
  PORTC=temp2
  lcd_enable()
  WaitUs 5
End Sub

Sub lcd_init()
  WaitMs 250
  PORTC=&b00000011
  lcd_enable()
  WaitMs 5
  lcd_enable()
  WaitMs 5
  lcd_enable()
  WaitMs 5
  PORTC=&b00000010
  lcd_Enable()
  WaitMs 5
  daten=&b00011000
  lcd_command()
  daten=&b00001100
  lcd_command()
  daten=&b00000100
  lcd_command()
End Sub

Sub lcd_clear()
  daten=&b00000001
  lcd_command()
  WaitMs 5
End Sub

Sub lcd_enable()
  PORTC.4=1
  Nop 3
  PORTC.4=0
End Sub

von pebisoft (Gast)


Lesenswert?

enable=4 und rs=5 bei mir am display. kann man im programm immer wieder
ändern.
mfg pebisoft

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.