DALLAS DS1820 READ.bas
Quelle: www.C-Control-Support.net
Weitere Infos im C-Control-Forum / C-Control I Info
Download Download
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'II       BASIC++ DEMO ZUM BASIC-COMPUTER UNIT M 1.2/2.0           II
'IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
'--------------------------------------------------------------------
' Beispiel zum BASIC-COMPUTER    mit dem Programmer/Application-Board
'--------------------------------------------------------------------
' ANWENDUNG:         IIC_BUS - DALLAS 1WIRE BUS CONVERTER (198294)
'                    TEMPERATUR DS1820 AM DALLAS 1WIRE-BUS ABFRAGEN
'
'--------------------------------------------------------------------
' Eine kleine DEMO um die TEMPERATUR eines DS1820 am DALLAS
' 1 WIRE BUS abrufragen.
' Das Programm frägt in diesem Beispiel einen DS1820 mit folgender
' Adresse ab: <LSB>16-103-103-158-0-8-0-127<MSB>
' Sie können das Programm auf Ihren DS1820 einstellen, wenn Sie die Zeile
' MATCHROM(16,103,103,158,0,8,0,127) auf die Adresse des jeweiligen
' Temperatursensors einstellen, der abgefragt werden soll

' Sie benötigen diese Adresse für jeden Teilnehmer am Bus. Ein kleines
' Tool, diese auszulesen, finden Sie bei den Beispielen.
'---------------------------------------------------------------------
' Beispielprogramm:
' Das Programm schleift und zeigt die Temperatur am LCD an. Der Abfragezyklus
' wird von der Wandlungszeit des DS1820 bestimmt und beträgt ca. 200ms
' Der DS1820 kann als wirklicher Zweidraht-Sensor im sog. PARASITE-POWER-MODE
' betrieben werden. Der Vdd Anschluss des Sensors liegt dann an GND und die
' Betriebsspannung wird auf der Datenleitung entnommen. In dieser Betriebsart
' muss die Routine 
'
' #WTC                      'WAIT CONVERTION IN NON-PARASITE POWER MODE
' DS2482WIRE_READBYTE()
' if ((DS2482GET_DATA) and 80h)=0 then goto WTC
'
' durch eine Pause 50 ersetzt werden
' Sie steht in der Function CONVERT() in DS1820_GENERIC.BAS

' Sie können die Demo benutzen und erweitern ohne die Details im Treiber
' näher zu kennen. Wer sich aber dafür interessiert findet den Treiber
' in der Library und eine Auflistung der Flags im STATUS/CONFIG Register 
' des DS2482
'----------------------------------------------------------------------
' Der 1WIRE-BUS <-> IIC-BUS CONVERTER IST IN DIESM FALL AUF ADRESSE 54,
' ALLE ADRESS-JUMPER SIND ABGEZOGEN.
'-----------------------------------------------------------------------
'
'

'
'------------------------------------------------------------------------


'--------------------------
'------ I/O PORTS ---------
'--------------------------
define LIGHT         port[16]
'--------------------------
'---- SYSTEM MEMORY -------
'--------------------------
define TEMP         as word
define TEMPHI       as byte
define TEMPLO       as byte

import "....\LIB\DS2482_GENERIC.BAS"
import "....\LIB\DS1820_GENERIC.BAS"

#INIT
LIGHT=off
'----------- EINSCHALT MELDUNG ------------------------
LCD.INIT
LCD.PRINT "READ DS1820 TEMP"
LCD.OFF
'-----------------------------------------------------
DS2482RESET()
DS2482WIRERESET()
'-------------------------------------------------------------
'-----            LOOP READING TEMPERATURE                 ---
'-------------------------------------------------------------
#LOOP
pause 5
DS2482SPUON() 
MATCHROM(16,103,103,158,0,8,0,127)
CONVERT()
MATCHROM(16,103,103,158,0,8,0,127)
TEMP=DS1820GET_TEMP()
LCD.INIT switchonly
LCD.POS 2,1
LCD.PRINT "TEMP: " & TEMP/2 & "." & (TEMP and 1)*5 & " C        "
LCD.OFF
goto LOOP

Powered by C-Control I Info