Hallo Speed,
hier die Routinen für die LCD-Ansteuerung. Auch "convert" ist dabei (Ausgabe bis 999):
Code:
' Keyboard- und LCD-Interface
define lcd_buf byte[12]
define lcd_param byte[13]
' Binär - Dezimal Umwandlung
define hunderter byte[14]
define zehner byte[15]
define einer byte[16]
define value byte[17]
' LCD-Port
define lcd_port byteport[2]
define lcd_rw port[13]
define lcd_rs port[14]
define lcd_e port[15]
'********************************************************************
' Initialisierung LCD-Display
gosub LCD_INIT
' Hier Hauptprogramm!!
'********************************************************************
' 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
if lcd_param = 2 then lcd_param = &HC0
goto LCD_WRITECMD
' LCD-Kommando
#LCD_WRITECMD
lcd_buf = off
goto LCD_WRITE
' Zeichenausgabe
#LCD_WRITECHAR
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
'********************************************************************
' Binär - Dezimal Umwandlung:
#convert
hunderter=value/100
if hunderter>0 then lcd_param=hunderter+&H30 else lcd_param=&H20
gosub LCD_WRITECHAR
'zehner abfragen
zehner=(value-(hunderter*100))/10
lcd_param=zehner+&H30
gosub LCD_WRITECHAR
'einer abfragen
einer=value-(hunderter*100)-(zehner*10)
lcd_param=einer+&H30
gosub LCD_WRITECHAR
return
'********************************************************************
Gruß Dirk
Lesezeichen