home *** CD-ROM | disk | FTP | other *** search
- ' *** LCD_Write_Bin_Word **************************
- 'sendet "i" als BinΣrzahl XXXXXXXX zum LC-Display *
- ' "i" und "value" werden gebraucht *
- ' ***************************************************
-
- DEFINE value WORD[1] ' "value" wird als "$XXXX zum LC-Display ausgegeben,
- ' "value" mu▀ immer "word[1]" sein!!!
- DEFINE output WORD[2] ' LCD-Puffer
- DEFINE i WORD[3] ' allgemeiner Index oder Puffer
-
- ' *** LCD-Daten ***
- define lcd_buf byte[7]
- define lcd_param byte[8]
-
- ' *** LCD-Ports ***
- define lcd_port byteport[2]
- define lcd_rs port[14]
- define lcd_rw port[13]
- define lcd_e port[15]
-
- ' definiert b16..b1 von "value"!!!
- define b16 bit[16]
- define b15 bit[15]
- define b14 bit[14]
- define b13 bit[13]
- define b12 bit[12]
- define b11 bit[11]
- define b10 bit[10]
- define b9 bit[9]
- define b8 bit[8]
- define b7 bit[7]
- define b6 bit[6]
- define b5 bit[5]
- define b4 bit[4]
- define b3 bit[3]
- define b2 bit[2]
- define b1 bit[1]
-
- '*** ASCII-Codes ***
- define c_Leer &H20
- define c_Minus &H2D
- define c_0 &H30
- define c_1 &H31
- define c_Dollar &H24
- define c_Prozent &H25
-
-
-
- '*********** TESTPROGRAMM *****************
- ' gibt Integer "i" als BinΣrzahl auf dem LC_Display aus
- for i=-20 to 20
- gosub LCD_init
- gosub LCD_Write_Bin_word
- pause 25
- next
-
-
-
- end
- '******************************************
-
- #LCD_Write_Bin_Word
- lcd_param = 1 : gosub LCD_GotoLine
- value = i : value = b8 : gosub LCD_Write_Bin
- value = i : value = b7 : gosub LCD_Write_Bin
- value = i : value = b6 : gosub LCD_Write_Bin
- value = i : value = b5 : gosub LCD_Write_Bin
-
- value = i : value = b4 : gosub LCD_Write_Bin
- value = i : value = b3 : gosub LCD_Write_Bin
- value = i : value = b2 : gosub LCD_Write_Bin
- value = i : value = b1 : gosub LCD_Write_Bin
-
- value = i : value = b16 : gosub LCD_Write_Bin
- value = i : value = b15 : gosub LCD_Write_Bin
- value = i : value = b14 : gosub LCD_Write_Bin
- value = i : value = b13 : gosub LCD_Write_Bin
-
- value = i : value = b12 : gosub LCD_Write_Bin
- value = i : value = b11 : gosub LCD_Write_Bin
- value = i : value = b10 : gosub LCD_Write_Bin
- value = i : value = b9 : gosub LCD_Write_Bin
- return
-
- #LCD_Write_Bin
- if value = -1 then lcd_param = c_1
- if value = 0 then lcd_param = c_0
- gosub LCD_WriteChar
- return
-
-
-
-
-
- '*** LCD_Interface ***
- '( muss in jedes Programm mit LCD-Ausgabe eingefuegt werden)
-
- #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
-