ok..hier....das ganz lies noch einen temperatursensor aus..

Code:
$regfile = "m128def.dat" ' Bei Mega 128 "
$framesize = 60
$swstack = 60
$hwstack = 60

$crystal = 16000000                                         'Quarzfrequenz
$baud = 19200                                               'Baudrate für Funkmodul
$baud1 = 9600                                               'Baudrate für MAX

Dim A As Single
Dim B As Single
Dim Z As Byte
Dim Zahl As Single
Dim Licht As String * 7

'Aus- und Eingänge

Ddrb = &B11000000




'I2C Deklarationen

Config Scl = Portd.0
Config Sda = Portd.1


Declare Function I2cstart() As Byte
Declare Sub Ic2send(byval Databyte As Byte) As Byte
Declare Sub Funtion I2creceive(byref Databyte As Byte) As Byte
Declare Sub Sub I2cstop
'Deklaration abgeschlossen


Config Pine.2 = Output
Rdy_hostempfangsbereit Alias Porte.2                        'Auf Low setzen wenn Empfangsbereit für Daten vom Funkmodul

Config Pine.5 = Input
Bsy_funkmodulsendebereit Alias Porte.5                      'Ist Low wenn Funkmodul frei zum senden


Open "com2:" For Binary As #2                               'Ausgabe über zweite serielle Schnittstelle (MAX)


Sound Portg.2 , 2000 , 800                                  'gibt einen langen Kontrollton aus
Sound Portg.2 , 1000 , 600                                  'gibt einen kurzen Kontrollton aus



Config Serialin = Buffered , Size = 120
Config Serialout = Buffered , Size = 120

Config Serialout1 = Buffered , Size = 120
Enable Interrupts
' ---------------------------------------------------





Print "### Initalisierung erfolgreich abgeschlossen! ###"   'Kopfzeilen senden
Print "### Dieses Programm wurde im Rahmen einer Facharbeit von Stefan Rau geschrieben. ###"
Print ""

   Wait 1





Print "### Messung initalisieren... ###"
Wait 1



'i2cstart


Dim Device As Byte
Dim Deviceread As Byte
Dim Lowtemp As Byte
Dim Hightemp As Byte
Dim Value As Word                                           '!!!!!!!
I2cinit

Device = 144                                                'Wenn alle Adressleitungen des 1621 auf GND sind.
Deviceread = 145

'----------------------------------------------Hauptprogramm------------------------------------------------------------
B = 0
Do

I2cstart
I2cwbyte Device
I2cwbyte &HEE                                               'Temperaturmessung anstoßen
I2cstop

I2cstart
I2cwbyte Device
I2cwbyte &HAA                                               'Temperaturmessung Lesekommando
I2cstop

I2cstart
I2cwbyte Deviceread
I2crbyte Lowtemp , Ack                                      'LSB holen
I2crbyte Hightemp , Nack                                    'MSB holen

I2cstop

Value = Lowtemp * 10
If Hightemp = 128 Then
  Value = Value + 5
End If






   Print "Temp:" ; Value


B = B + 1
If B = 15 Then Sound Portg.2 , 20 , 800 : B = 0
Waitms 500                                                  'Pause bis zur nächsten Messung




'lichtmodus überprüfen

Rdy_hostempfangsbereit = 0                                  'empfangsbereitschaft am Funkmodul herstellen



Do
  Zahl = Zahl + 1
   Z = Inkey()
   If Z <> 0 Then Licht = Licht + Chr(z)
   If Len(licht) = 7 Or Zahl = 20 Then Exit Do
Loop



If Len(licht) = 7 Then
   Tempo = Mid(licht , 7 , 1)
   Modus = Val(tempo)
      Select Case Modus

      Case 0                                                'beide Modis aus
      Portb.6 = 0
      Portb.7 = 0

      Case 1                                                '2. Blinkmodus an
      Portb.6 = 1
      Portb.7 = 0

      Case 2                                                'Landelichter an
      Portb.6 = 0
      Portb.7 = 1

      Case 3                                                'beide Modis an
      Portb.6 = 1
      Portb.7 = 1

      End Select
End If

'lichtmodustest
'Portb.6 = 1
'Wait 5
'Portb.6 = 0
'Wait 5
'ende lichtmodustest


Loop
End