home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 April / CHIP4_98.ISO / software / ccconrad / programme.bas / utility / lcd_write_bin_word.bas < prev    next >
Encoding:
BASIC Source File  |  1997-11-16  |  3.4 KB  |  145 lines

  1. ' ***  LCD_Write_Bin_Word  **************************
  2. 'sendet "i" als BinΣrzahl XXXXXXXX zum LC-Display   *
  3. ' "i" und "value" werden gebraucht                  *
  4. ' ***************************************************
  5.  
  6. DEFINE value  WORD[1]  ' "value" wird als "$XXXX zum LC-Display ausgegeben,
  7.                        ' "value" mu▀ immer  "word[1]" sein!!!
  8. DEFINE output WORD[2]  ' LCD-Puffer
  9. DEFINE i      WORD[3]  ' allgemeiner Index oder Puffer
  10.  
  11. ' *** LCD-Daten ***
  12. define lcd_buf byte[7]
  13. define lcd_param byte[8]
  14.  
  15. ' *** LCD-Ports ***
  16. define lcd_port byteport[2]
  17. define lcd_rs port[14]
  18. define lcd_rw port[13]
  19. define lcd_e port[15]
  20.  
  21. ' definiert b16..b1 von "value"!!!
  22. define b16 bit[16]
  23. define b15 bit[15]
  24. define b14 bit[14]
  25. define b13 bit[13]
  26. define b12 bit[12]
  27. define b11 bit[11]
  28. define b10 bit[10]
  29. define b9  bit[9]
  30. define b8  bit[8]
  31. define b7  bit[7]
  32. define b6  bit[6]
  33. define b5  bit[5]
  34. define b4  bit[4]
  35. define b3  bit[3]
  36. define b2  bit[2]
  37. define b1  bit[1]
  38.  
  39. '*** ASCII-Codes ***
  40. define c_Leer      &H20
  41. define c_Minus     &H2D
  42. define c_0         &H30
  43. define c_1         &H31
  44. define c_Dollar    &H24
  45. define c_Prozent   &H25
  46.  
  47.  
  48.  
  49. '*********** TESTPROGRAMM *****************
  50. ' gibt Integer "i" als BinΣrzahl auf dem LC_Display aus
  51. for i=-20 to 20
  52.   gosub LCD_init
  53.   gosub LCD_Write_Bin_word
  54.   pause 25
  55. next
  56.  
  57.  
  58.  
  59. end
  60. '******************************************
  61.  
  62. #LCD_Write_Bin_Word
  63.   lcd_param = 1 : gosub LCD_GotoLine
  64.   value = i : value = b8  : gosub LCD_Write_Bin
  65.   value = i : value = b7  : gosub LCD_Write_Bin
  66.   value = i : value = b6  : gosub LCD_Write_Bin
  67.   value = i : value = b5  : gosub LCD_Write_Bin
  68.  
  69.   value = i : value = b4  : gosub LCD_Write_Bin
  70.   value = i : value = b3  : gosub LCD_Write_Bin
  71.   value = i : value = b2  : gosub LCD_Write_Bin
  72.   value = i : value = b1  : gosub LCD_Write_Bin
  73.  
  74.   value = i : value = b16 : gosub LCD_Write_Bin
  75.   value = i : value = b15 : gosub LCD_Write_Bin
  76.   value = i : value = b14 : gosub LCD_Write_Bin
  77.   value = i : value = b13 : gosub LCD_Write_Bin
  78.  
  79.   value = i : value = b12 : gosub LCD_Write_Bin
  80.   value = i : value = b11 : gosub LCD_Write_Bin
  81.   value = i : value = b10 : gosub LCD_Write_Bin
  82.   value = i : value = b9  : gosub LCD_Write_Bin
  83. return
  84.  
  85. #LCD_Write_Bin
  86.   if value = -1 then lcd_param = c_1
  87.   if value =  0 then lcd_param = c_0
  88.   gosub LCD_WriteChar
  89. return
  90.  
  91.  
  92.  
  93.  
  94.  
  95. '*** LCD_Interface ***
  96. '( muss in jedes Programm mit LCD-Ausgabe eingefuegt werden)
  97.  
  98. #LCD_INIT
  99.  
  100. ' alle ports 0
  101.   lcd_port = OFF
  102.  
  103. ' 8-Bit-Modus aktivieren
  104.   lcd_param=&H38 : gosub LCD_WRITECMD
  105.  
  106. ' mit 8-Bit-Command in 4-Bit-Modus umschalten
  107.   lcd_port=&B00000010
  108.   tog lcd_e
  109.   tog lcd_e
  110.  
  111. ' ab jetzt 4-Bit-Modus
  112.   lcd_param = &H28 : gosub LCD_WRITECMD
  113.   lcd_param = &H0C : gosub LCD_WRITECMD
  114.  
  115. ' Display loeschen
  116. #LCD_CLS
  117.   lcd_param = &H02 : gosub LCD_WRITECMD
  118.   lcd_param = &H01 : gosub LCD_WRITECMD
  119. return
  120.  
  121. ' Zeilenwechsel
  122. #LCD_GOTOLINE
  123.   if lcd_param = 1 then lcd_param = &H80
  124.   if lcd_param = 2 then lcd_param = &HC0
  125.   goto LCD_WRITECMD
  126.  
  127. ' LCD-Kommando
  128. #LCD_WRITECMD
  129.   lcd_buf = OFF
  130.   goto LCD_WRITE
  131.  
  132. ' Zeichenausgabe
  133. #LCD_WRITECHAR
  134.   lcd_buf = &B00100000
  135.  
  136. ' Kommando oder Zeichen an Display senden
  137. #LCD_WRITE
  138.   lcd_port = lcd_buf or (lcd_param shr 4) ' Hi-Nibble
  139.   tog lcd_e
  140.   tog lcd_e
  141.   lcd_port = lcd_buf or (lcd_param and &H0F)  ' Lo-Nibble
  142.   tog lcd_e
  143.   tog lcd_e
  144. return
  145.