Hoi,
Ik ben bezig met een project voor mijn beamer. Hierbij wil ik het volgende doen: ik heb 2 thermometer IC's (TCN75A). De temperatuur wil ik uitlezen met een 16F877A. Nu lijkt me het het gemakklijkste om dit te doen via I2C. Ik programmeer in picbasic, dus ik neem aan dat ik dit gewoon kan doen met het commando BUSIN. Het volgende aan code heb ik.
Device 16F877A
Config WDT_OFF, PWRTE_ON, LVP_OFF, HS_OSC ;INTRC_OSC_NOCLKOUT verwijderd
XTAL 20 ;Kristal van 20MHz
ALL_DIGITAL TRUE
Clear
PORTB_PULLUPS On
DelayMS 100
Declare LCD_LINES = 4
Declare LCD_ENPIN PORTD.3
Declare LCD_RSPIN PORTD.2
Declare LCD_DTPIN PORTD.4
Cls
Dim Temp As Byte
Temp = BusIn ; dit misschien hier nog achter?%1001001,0
Print At 1,1, Temp
End
Als ik op z'n mint al een waarde op het scherm (binair, hexadecimaal of wat dan ook) dan zou ik wel een manier kunnen vinden om dit om te plaatsen naar een normale decimale waarde. Echter op het LCD krijg ik enkel maar een blokje.
Weet iemand hoe ik dit op kan lossen?
Heb trouwens het volgende schema gebruikt om hem aan te sluiten.
In plaats van deze eeprom heb ik de IC genomen, die ook deze 2 lijnen heeft.
Roland van Leusden
It's the rule that you live by and die for It's the one thing you can't deny Even though you don't know what the price is. It is justified.
Bascom (AVR) voorbeeld, je zal in PIC Basic iets dergelijks moeten doen.
'Dim LM75_adress_w As Byte
Const Lm75_adress_w = &H90 'Write Adress: 1 0 0 1 A2 A1 A0 0
'Dim LM75_adress_r As Byte
Const Lm75_adress_r = &H91 'Read Adress: 1 0 0 1 A2 A1 A0 1
Sub I2c_lm75_read
' Read data from the I2C LM75
I2cstart 'Generate START condition
I2cwbyte Lm75_adress_w 'Transmit The "ADDRESS and WRITE" Byte
I2cwbyte &H00 'Transmit The Pointer Byte
I2cstop 'Generate a STOP condition
I2cstart 'Generate a START condition
I2cwbyte Lm75_adress_r 'Transmit ADDRESS with READ command
I2crbyte Tempbytehi , Ack 'Receive first DATA byte (MSB) and acknowledge
I2crbyte Tempbytelo , Nack 'Receive second DATA byte (LSB) and don't acknowledge
I2cstop 'Generate a STOP condition
End Sub