i2c to keyboard interface

background image

I2C to Keyboard interface

Here follows a short description on how to use my i2c_kbd library, with this you could use

any AVR circuit with a matrix keyboard with minimal extra hardware. The interface from the

i2c to keyboard consists of a PCF8574 8bit I/O module, so with only 2 pins you could

interface the keyboard (or 3 pins if you use interrupt).

What you need to add in the beginning of your program is the following:


$lib "Key_i2c.lib"
$external _key_scan
Const Pcf8574_lcd = &H42
Config Scl = Portd.6
Config Sda = Portd.7
Dim _key_scan As Byte
!rcall _Key_init
.
.
.
!rcall _Key_Scan
if _key_scan = ? then …


If using interrupts add the following (skip last section from above):

Enable Interrupts
Config Int0 = Falling
On Int0 _int0_label
Enable Int0
.
.
.
if _key_scan = ? then …
.
.
.
_int0_label:
!rcall _Key_Scan
Return

background image

The PCF8574 is connected as follows:

A0, A1 and A2 gives the address

of the chip

A0 A1 A2 Pcf8574_lcd

0

0

0 &H40

1

0

0 &H42

0

1

0 &H44

1

1

0 &H46

0

0

1 &H48

1

0

1 &H4A

0

1

1 &H4C

1

1

1 &H4E

To observe when using interrupts!

Disable int0 before doing anything time consuming (RS232, LCD etc.) otherwise you may get

problem with those routines, when you press a key the program will jump to _key_scan.

The variable _key_scan holds the value of the key pressed (0 if none)

C1 C2 C3 C4

R1 1

2

3

4

R2 5

6

7

8

R3 9

10 11 12

R4 13 14 15 16

C1 C2 C3 C4

R1

R2

R3

R4

VDD
SDA

SCL

INT

P7
P6

A1
A2
P0
P1
P2
P3
VSS

P4

P5

A0

PCF8574

Gnd

Gnd

+5V

+5V

Hex adress 42

AVR- INT0 (optional)

AVR- PortD.6

AVR- PortD.7


Wyszukiwarka

Podobne podstrony:
Co to jest interfejs sieciowy, Bezpieczeństwo narodowe - UAM Poznań, I rok (2012-2013), Technologia
A digital thermometer or talk I2C to your atmel microcontroller
Interfacing a 4x4 keyboard to an AT91 uC
Mikrokontrolery STM32 Użycie interfejsu I2C, USART, SPI
I2C Interface fuer Druckerschnittstelle
EBE 292 1 Interface to PS316 h1115g
Interferencja to nakładanie się dwóch lub większej liczby wiązek
interfejs i2c
An Igbt Inverter For Interfacing Small Scale Wind Generators To Single Phase Distributed Power Gener
I2C Interface am EPP
8bit IO Port ueber I2C Interface

więcej podobnych podstron