... für den PCF8574 hätte ich hier etwas:
Mußt Du dann für den Mega 16 entsprechend anpassen.
Code:
'I2C-Test.BAS: I2C-Beispiel: 7-segm.LED über PCF8574 schreiben
'Hardware: PCF8574
' A0-A2 auf GND 0.0.0 = &H40
'
'-------------------------------------------------------------------------------
$regfile = "m8def.dat" 'ATmega8-Deklarationen
$crystal = 3686400 'Quarz: 3,6864 MHz
$baud = 9600 'Baudrate zum PC: 9600 Baud
'
Dim I As Byte 'Für temporären Gebrauch Statusbyte
Dim Daten As Byte 'datenbyte für I2C
Config Sda = Portc.4 'ist für I2C erforderlich
Config Scl = Portc.5 'dito
'-------------------------------------------------------------------------------
Const Pcfled = &H40 'LED an PCF8574 ohne A an 0.0.0
'BITMUSTER 7-seg.-LED
'PCF P0 = Segm. A ..... usw. aufsteigend
Const Led_0 = &B11000000 'Bitmuster 0 ungedrehte Logik !!
Const Led_1 = &B11111001 'Bitmuster 1 LED an gemeinsamer
Const Led_2 = &B10100100 'Bitmuster 2 Anode.
Const Led_3 = &B10110000 'Bitmuster 3
Const Led_4 = &B10011001 'Bitmuster 4
Const Led_5 = &B10010010 'Bitmuster 5
Const Led_6 = &B10000010 'Bitmuster 6
'-------------------------------------------------------------------------------
I2cinit 'I2c initialisieren
I2cstart 'Bus starten
I2cwbyte Pcfled 'Addresse Chip senden
I2cwbyte Led_5 'Byte Bitmuster sendeN
I2cstop 'Bus wieder freigeben
End 'end program
Gib mal bei Bascom im Hilfeindex i2cwbyte ein, dann findest Du auch 'ne Menge zum Thema.
Gruß Gerhard
ps.: die Pullups für SDA und SCL habe ich extern in meiner Schaltung !!
Lesezeichen