vrijdag 23 september 2011

experimenteren met de pcf8574

Voor het basisstation hebben we ook een toetsen nodig. Je kunt natuurlijk ze rechtstreeks aan de pic koppelen, maar het kan ook via een chip. In mijn geval met de pcf8574. Het mooie van dit ic is dat het een interrupt uitgang heeft. Het uitlezen is heel makkelijk, Zodra er een toets is ingedrukt springen we naar de uitleesroutine en zetten de waarde op het scherm. Het grootste probleem is het instellen van de interrupts daarvoor moet je echt de datasheet van de pic lezen.
In dit geval heb ik 'on interrupt' gebruikt maar je zou de afhandeling ook na het sleep commando kunnen doen (nap 7).  In het basisstation gaan we meerdere interrupts gebruiken. De toetsen op rb0, de ook ontvanger op rb1 en een timer interrupt voor het tonen van de tijd.

Device 18F4620
Xtal 20   
                  
ADCON1=7
   
LCD_DTPin PORTB.4
LCD_ENPin PORTB.3
LCD_RSPin PORTB.2

SCL_Pin    = PORTC.3   ' i2c
SDA_Pin    = PORTC.4 


'portB rb0 input
TRISB = 000001

INTCON.4 = 1
INTCON2.6 = 0
INTCON2.7 = 0  

Dim bus As Byte

Cls

DelayMS 100

On Interrupt GoTo keyin

' voor de zekerheid alle poorten hoog zetten.
BusOut $70,[255]  'adres voor pcf8574ap met a0,a1,a2 op 0


While 1=1
INTCON.1=0
nap 7
Wend

Disable
keyin:
BusIn $70,[bus]
DelayMS 50
Print At 1,1,Bin bus
Resume
Enable


End

Geen opmerkingen:

Een reactie posten