home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 April / CHIP4_98.ISO / software / ccconrad / basic.exe / CHIP / Programme.Bas / App-Board / lcd3.bas < prev    next >
Encoding:
BASIC Source File  |  1997-06-16  |  2.7 KB  |  141 lines

  1. '********************************************************************
  2. '
  3. ' C-Control/BASIC       LCD3.BAS
  4. '
  5. ' Systemvoraussetzungen:
  6. '
  7. ' - Application Board mit angeschlossenem Display
  8. '
  9. ' Schwerpunkt:
  10. '
  11. ' - Ausgeben der Uhrzeit am Display
  12. '
  13. '********************************************************************
  14.  
  15. ' *** Daten-Definition ***
  16. define value word
  17. define output word
  18.  
  19. define lcd_buf byte
  20. define lcd_param byte
  21.  
  22. define lastsec byte
  23.  
  24. ' *** Definition LCD-Ports ***
  25. define lcd_port byteport[2]
  26. define lcd_rs port[14]
  27. define lcd_rw port[13]
  28. define lcd_e port[15]
  29.  
  30. '*** ASCII-Codes ***
  31. define A_ &H41
  32. define B_ &H42
  33. define C_ &H43
  34. define D_ &H44
  35. define E_ &H45
  36. define F_ &H46
  37. define G_ &H47
  38. define H_ &H48
  39. define I_ &H49
  40. define J_ &H4A
  41. define K_ &H4B
  42. define L_ &H4C
  43. define M_ &H4D
  44. define N_ &H4E
  45. define O_ &H4F
  46. define P_ &H50
  47. define Q_ &H51
  48. define R_ &H52
  49. define S_ &H53
  50. define T_ &H54
  51. define U_ &H55
  52. define V_ &H56
  53. define W_ &H57
  54. define X_ &H58
  55. define Y_ &H59
  56. define Z_ &H5A
  57.  
  58. define LEERZ &H20
  59. define MINUS &H2D
  60. define NULL &H30
  61. define GLEICH &H3D
  62. define DOPPELPUNKT &H3A
  63.  
  64. '*** Programmoperationen  ***
  65.  
  66.   gosub LCD_INIT
  67.  
  68. #LOOP
  69.  
  70.   wait second <> lastsec
  71.   lastsec = second
  72.   gosub WRITETIME
  73.  
  74. goto LOOP
  75.  
  76. #WRITETIME
  77.  
  78.  lcd_param = 1 : gosub LCD_GOTOLINE
  79.  lcd_param = NULL + hour / 10 : gosub LCD_WRITECHAR
  80.  lcd_param = NULL + hour mod 10 : gosub LCD_WRITECHAR
  81.  lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
  82.  lcd_param = NULL + minute / 10 : gosub LCD_WRITECHAR
  83.  lcd_param = NULL + minute mod 10 : gosub LCD_WRITECHAR
  84.  lcd_param = DOPPELPUNKT : gosub LCD_WRITECHAR
  85.  lcd_param = NULL + second / 10 : gosub LCD_WRITECHAR
  86.  lcd_param = NULL + second mod 10 : gosub LCD_WRITECHAR
  87.  
  88. return
  89.  
  90.  
  91. '*** LCD_Interface ***
  92. '( muss in jedes Programm mit LCD-Ausgabe eingefuegt werden)
  93.  
  94. #LCD_INIT
  95.  
  96. ' alle ports 0
  97.   lcd_port = OFF
  98.  
  99. ' 8-Bit-Modus aktivieren
  100.   lcd_param=&H38 : gosub LCD_WRITECMD
  101.  
  102. ' mit 8-Bit-Command in 4-Bit-Modus umschalten
  103.   lcd_port=&B00000010
  104.   tog lcd_e
  105.   tog lcd_e
  106.  
  107. ' ab jetzt 4-Bit-Modus
  108.   lcd_param = &H28 : gosub LCD_WRITECMD
  109.   lcd_param = &H0C : gosub LCD_WRITECMD
  110.  
  111. ' Display loeschen
  112. #LCD_CLS
  113.   lcd_param = &H02 : gosub LCD_WRITECMD
  114.   lcd_param = &H01 : gosub LCD_WRITECMD
  115. return
  116.  
  117. ' Zeilenwechsel
  118. #LCD_GOTOLINE
  119.   if lcd_param = 1 then lcd_param = &H80
  120.   if lcd_param = 2 then lcd_param = &HC0
  121.   goto LCD_WRITECMD
  122.  
  123. ' LCD-Kommando
  124. #LCD_WRITECMD
  125.   lcd_buf = OFF
  126.   goto LCD_WRITE
  127.  
  128. ' Zeichenausgabe
  129. #LCD_WRITECHAR
  130.   lcd_buf = &B00100000
  131.  
  132. ' Kommando oder Zeichen an Display senden
  133. #LCD_WRITE
  134.   lcd_port = lcd_buf or (lcd_param shr 4) ' Hi-Nibble
  135.   tog lcd_e
  136.   tog lcd_e
  137.   lcd_port = lcd_buf or (lcd_param and &H0F)  ' Lo-Nibble
  138.   tog lcd_e
  139.   tog lcd_e
  140. return
  141.