Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DEFINE LIGHT PORT[16] 'Port der LCD-Hintergrundbeleuchtung
- DEFINE TEMP AS WORD 'Gelesene Temperatur
- DEFINE TEMPHI AS BYTE 'oberes Byte
- DEFINE TEMPLO AS BYTE 'unteres Byte
- DEFINE STATE AS BYTE 'Benutzer-/Anzeigemodus
- CONST sensInnen=158 'I2C-Adresse des Innentemperatursensors
- CONST sensAussen=156 'I2C-Adresse des Aussentemperatursensors
- IMPORT "SHOW_TIME.blib"
- IMPORT "GET_KEY.blib"
- IMPORT "DS1631_GENERIC.blib" 'Treiber fuer das Dallas I2C Thermometer
- '#INIT: Licht einschalten, LCD und die Sensoren initialisieren
- #INIT
- LIGHT=OFF 'die Ports sind Invertiert, so ist das Licht also an
- LCD.INIT
- LCD.OFF
- STATE = 1
- DS1631RESET(sensInnen)
- DS1631SET_STATUS(sensInnen,1)
- DS1631RESET(sensAussen)
- DS1631SET_STATUS(sensAussen,1)
- #LOOP
- 'Tastatureingabe fuer den Anzeigemodus (entweder Temperatur oder Uhrzeit)
- SELECT CASE GET_KEY()
- CASE 12
- LCD.INIT SWITCHONLY
- LCD.CLEAR
- LCD.OFF
- STATE = 1
- CASE 13
- LCD.INIT SWITCHONLY
- LCD.CLEAR
- LCD.OFF
- STATE = 2
- END SELECT
- if STATE = 1 THEN
- DS1631CONVERT(sensInnen)
- DS1631WAIT_READY(sensInnen)
- TEMP=DS1631GET_TEMP(sensInnen)
- LCD.INIT SWITCHONLY
- LCD.POS 1,1
- LCD.PRINT "Innen: "
- LCD.POS 2,1
- LCD.PRINT "Aussen: "
- LCD.POS 1,8
- TEMP=TEMP SHR 7
- IF (TEMP AND 0100h) = 0100h THEN TEMP=(TEMP OR FE00h)
- LCD.PRINT TEMP/2 & "." & (TEMP AND 1)*5 & " C "
- LCD.OFF
- DS1631CONVERT(sensAussen)
- DS1631WAIT_READY(sensAussen)
- TEMP=DS1631GET_TEMP(sensAussen)
- LCD.INIT SWITCHONLY
- LCD.POS 2,9
- TEMP=TEMP SHR 7
- IF (TEMP AND 0100h) = 0100h THEN TEMP=(TEMP OR FE00h)
- LCD.PRINT TEMP/2 & "." & (TEMP AND 1)*5 & " C "
- LCD.OFF
- END IF
- IF STATE = 2 THEN
- LCD.INIT SWITCHONLY
- LCD.POS 1,1
- SHOW_TIME()
- LCD.OFF
- PAUSE 10
- END IF
- GOTO LOOP
Add Comment
Please, Sign In to add comment