'****************************************************************
'*  Name    : V1_1.BAS                                          *
'*  Author  : Stynus                                            *
'*  Notice  : Copyright (c) 2007 [ElektronicaStynus.be]         *
'*          : All Rights Reserved                               *
'*  Date    : 8/08/2007                                         *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
Device          16F627A
Config          INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_Off, MCLRE_on
Include         "modedefs.bas"
ALL_DIGITAL     TRUE
TRISA = %00000000 
TRISB = %00000000 

Symbol Pen1     = PORTB.5
Symbol Pen2     = PORTA.1
Symbol digitA   = PORTA.0
Symbol digitB   = PORTA.7
Symbol digitC   = PORTA.2
Symbol digitD   = PORTA.4
Symbol digitE   = PORTB.3
Symbol digitF   = PORTA.6
Symbol digitG   = PORTB.2
Symbol peltier  = PORTA.3
Symbol SCLK     = PORTB.0
Symbol SDA      = PORTB.1

Dim digit           As Byte
digit = 0
Dim index           As Word
index = 0
Dim digitEen        As Byte
digitEen =0
Dim digitTwee       As Byte
digitTwee = 0
Dim werkTemp        As Byte
werkTemp = 0
Dim X               As Byte
X = 0

'************************************************************************    
'*  Initialiseren temperatuursensor                                     *
'************************************************************************ 
I2COUT SDA,SCLK,$90,[$00]
DelayMS 1000 

hier:
    '********************************************************************    
    '*  Temperatuursensor uitlezen                                      *
    '********************************************************************
     SerIn PORTA.1 , T9600 , [X]
     If X="M" Then 
        I2CIN SDA,SCLK,$91,[werkTemp]
     EndIf
    werkTemp = werkTemp / 10
    
    For index = 0 To 1 Step 1
    digitTwee = werkTemp - (digitEen * 10)
    If index = 0 Then
        High Pen1
        Low Pen2
        digit = digitEen
    Else
        High Pen2
        Low Pen1
        digit = digitTwee
    EndIf
        Select digit
            Case 1
                High digitB
                High digitC 
            Case 2
                High digitA
                High digitB
                High digitD
                High digitE 
                High digitG 
            Case 3
                High digitA
                High digitB
                High digitC 
                High digitD
                High digitG 
            Case 4
                High digitB
                High digitC 
                High digitF 
                High digitG
            Case 5
                High digitA
                High digitC 
                High digitD
                High digitF 
                High digitG 
            Case 6
                High digitA
                High digitC 
                High digitD
                High digitE 
                High digitF 
                High digitG
            Case 7
                High digitA
                High digitB
                High digitC 
            Case 8
                High digitA
                High digitB
                High digitC 
                High digitD
                High digitE 
                High digitF 
                High digitG
            Case 9
                High digitA
                High digitB
                High digitC 
                High digitD
                High digitF 
                High digitG 
            Case Else
                High digitA
                High digitB
                High digitC 
                High digitD
                High digitE 
                High digitF 
        EndSelect
        DelayMS 10
        Low digitA
        Low digitB
        Low digitC 
        Low digitD
        Low digitE 
        Low digitF 
        Low digitG
    Next  
GoTo hier

End