16F84A och I2C Display

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Frippe
Inlägg: 248
Blev medlem: 5 augusti 2004, 11:17:52
Skype: Fred_nord
Ort: Landvetter
Kontakt:

16F84A och I2C Display

Inlägg av Frippe »

Hej på er.
Jag tänkte fixa ett kodlås med hjälp av en PIC16F84A och en MatrixOrbital display (LCD2041) och ett tangentbord.
Min tanke var att använda I2C för att skicka data till displayen, men hur skall man göra det.
Jag använder MicroCode Studio för att programera PicBasic.
Komandot som används är "I2CWRITE DataPin,ClockPin,Control,{Address,}[Value{,Value...}]{,Label}"
DataPin och ClockPin förstår jag men det övriga (Control, Address,Value)
"Value" bör väl vara datan som jag skall skicka till displayen och "Address" skall väl vara den I2C adress som displayen har, men vad används då "Controll" till?
Så här ser ett kodexempel ut från MicroCode:

Kod: Markera allt

addr VAR byte
cont CON %10100000 
addr = 17 ' Set address to 17
' Send the byte 6 to address 17
I2CWRITE PORTA.0,PORTA.1,cont,addr,[6]
PAUSE 10 ' Wait 10ms for write to complete
addr = 1 ' Set address to 1
' Send the byte in B2 to address 1
I2CWRITE PORTA.0,PORTA.1,cont,addr,[B2]
PAUSE 10 ' Wait 10ms for write to complete
Hoppas någon förstår vad jag menar. :wink:
// Fredrik
mullemeck
Inlägg: 1306
Blev medlem: 27 maj 2003, 23:52:06
Ort: Lund
Kontakt:

Inlägg av mullemeck »

Okej, som jag har fattat det från displayens datablad så kan du antingen köra med I2C eller så kör du seriellt.

Om du ska köra med i2C så får du ställa in slavadressen på jumprarna j1-j4, lättast är nog att lämna alla öppna, så du tar bort alla jumprarna.

Sen så måste man även ställa in en juper till för att säga att det ska va i2c.


sen blir det hela lite lulligt tycker jag, de beskriver ganska dåligt hur man ska göra om man vill använda i2c, den slavadressen som man ställde in innan ska ingå i Controlvariabeln så control borde då va %10000000 kanske, det står ganska dåligt om hur det ska va.

sen nästa problem är till vilken adress man ska skicka, det har jag inte hittat nått om.


jag tror det blir enklare om man skickar datan seriellt till den, då behöver man bara ställa in baudraten och sen skicka de olika kommandona.
Skriv svar