Guest User

Untitled

a guest
Nov 24th, 2017
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. DEFINE LIGHT PORT[16] 'Port der LCD-Hintergrundbeleuchtung
  3.  
  4. DEFINE TEMP AS WORD 'Gelesene Temperatur
  5. DEFINE TEMPHI AS BYTE 'oberes Byte
  6. DEFINE TEMPLO AS BYTE 'unteres Byte
  7. DEFINE STATE AS BYTE 'Benutzer-/Anzeigemodus
  8.  
  9. CONST sensInnen=158 'I2C-Adresse des Innentemperatursensors
  10. CONST sensAussen=156 'I2C-Adresse des Aussentemperatursensors
  11.  
  12. IMPORT "SHOW_TIME.blib"
  13. IMPORT "GET_KEY.blib"
  14. IMPORT "DS1631_GENERIC.blib" 'Treiber fuer das Dallas I2C Thermometer
  15.  
  16.  
  17. '#INIT: Licht einschalten, LCD und die Sensoren initialisieren
  18. #INIT
  19. LIGHT=OFF 'die Ports sind Invertiert, so ist das Licht also an
  20.  
  21. LCD.INIT
  22. LCD.OFF
  23. STATE = 1
  24. DS1631RESET(sensInnen)
  25. DS1631SET_STATUS(sensInnen,1)
  26. DS1631RESET(sensAussen)
  27. DS1631SET_STATUS(sensAussen,1)
  28.  
  29. #LOOP
  30. 'Tastatureingabe fuer den Anzeigemodus (entweder Temperatur oder Uhrzeit)
  31. SELECT CASE GET_KEY()
  32.        CASE 12
  33.             LCD.INIT SWITCHONLY
  34.             LCD.CLEAR
  35.             LCD.OFF
  36.             STATE = 1
  37.        CASE 13
  38.             LCD.INIT SWITCHONLY
  39.             LCD.CLEAR
  40.             LCD.OFF
  41.             STATE = 2
  42. END SELECT
  43.  
  44. if STATE = 1 THEN
  45. DS1631CONVERT(sensInnen)
  46. DS1631WAIT_READY(sensInnen)
  47. TEMP=DS1631GET_TEMP(sensInnen)
  48. LCD.INIT SWITCHONLY
  49. LCD.POS 1,1
  50. LCD.PRINT "Innen: "
  51. LCD.POS 2,1
  52. LCD.PRINT "Aussen: "
  53. LCD.POS 1,8
  54. TEMP=TEMP SHR 7
  55. IF (TEMP AND 0100h) = 0100h THEN TEMP=(TEMP OR FE00h)
  56. LCD.PRINT TEMP/2 & "." & (TEMP AND 1)*5 & " C "
  57. LCD.OFF
  58. DS1631CONVERT(sensAussen)
  59. DS1631WAIT_READY(sensAussen)
  60. TEMP=DS1631GET_TEMP(sensAussen)
  61. LCD.INIT SWITCHONLY
  62. LCD.POS 2,9
  63. TEMP=TEMP SHR 7
  64. IF (TEMP AND 0100h) = 0100h THEN TEMP=(TEMP OR FE00h)
  65. LCD.PRINT TEMP/2 & "." & (TEMP AND 1)*5 & " C "
  66. LCD.OFF
  67. END IF
  68.  
  69. IF STATE = 2 THEN
  70. LCD.INIT SWITCHONLY
  71. LCD.POS 1,1
  72. SHOW_TIME()
  73. LCD.OFF
  74. PAUSE 10
  75. END IF
  76.  
  77. GOTO LOOP
Add Comment
Please, Sign In to add comment