TC74 - temperature sensor
'****************************************************************
'* Name : Read_TC74.BAS *
'* Author : TDCBYTE *
'* Notice : Copyright (c) 2009 *
'* : All Rights Reserved *
'* Date : 7/01/2009 *
'* Version : 1.0 *
'* Notes : Leest temp van TC74 binnen en plaats het op *
'* : een lcd *
'****************************************************************
Config XT_OSC, WDT_OFF, PWRTE_ON, BODEN_OFF, CP_OFF, LVP_OFF, MCLRE_ON
Optimiser_Level = 3 ' Set for maximum optimiser level
Device 16F628
Xtal = 4 'LCD voor debugging
Declare LCD_DTPin = PORTB.4
Declare LCD_RSPin = PORTB.3
Declare LCD_ENPin = PORTB.0
Declare LCD_Interface = 4
Declare LCD_Lines = 2 ' ! 2 lijnig lcd
Declare LCD_Type = 0
'76543210
TRISA = %00000000 'alle PORTA's zijn uitgangen
'
CMCON = %00000111 'comparators uit
Dim T As Word
Dim dummy As Byte
Dim temp As Byte
Dim gra As Byte
Declare SDA_Pin = PORTA.3 'verbinden met TC74 zoals in datasheet
Declare SCL_Pin = PORTA.4 'Telkens 5K pull-up weerstanden bij op zetten
DelayMS 100
Print $FE,$40,$07,$05,$07,$00,$00,$00,$00,$00 ' in aders 0 in't lcd staat °
Cls 'clear display
BusOut %10011010,1 ,[%00000000] ;oneshot in t-sensor. (haal em uit standby)
;----------------------------- ' eerste 7 bit's zijn't unieke adres, laatste bit is schrijven of lezen.
'maar is weinig van belang omdat busout of busin deze parameter overschrijft
' 2de setting is het configuratieadres -> zie datasheet
'3de setting is de echte data
main:
'adres ,lezen,config lezen en in dummy zetten
BusIn %10011010,1,[dummy] ;lees config register van T-sensor
If dummy.6=1 Then ;1=conversion ready, 0=not ready
BusIn %10011011,0,[temp] ;lees T-sensor
End If
DelayMS 100
If temp.7 = 0 Then ;positieve temperatuur
gra = temp
Print At 1,1," "
Print At 1,2, Dec gra,$0, "C" ," " 'laatste spatie om als we eerst 3 karaters lang zijn geweest, de C te wissen
Else ;negatieve T
gra = temp
gra = 255 - gra 'alles toggelen en offset van 1°C, zie datasheet
gra = gra + 1
Print At 1,1,"-"
Print At 1,2, Dec gra ,$0, "C" ," "
End If
GoTo main
Here an older project where I read the temperature from a TC74. My code is for PROTON PICBASIC. I used a 16F628 PIC microcontroller.
Note that there are a few variants about BASIC compilers for micrcontrollers, so the syntax may not be compatible for each version of compiler.