Universal 4x4 keypad

From ScienceZero
Jump to: navigation, search
Universal 4x4 keypad diagram

The universal 4x4 keypad uses a PIC16C84 or compatible running at 4 MHz to transmit keycodes from a standard matrix keypad over a selectable interface.

Keypads

3 predefined keypads, one user definable. Selectable decimal, ASCII or key number output.

Telephone   Calculator  User defined (default content)
1 2 3 A     7 8 9 +     7 8 9 /
4 5 6 B     4 5 6 -     4 5 6 *
7 8 9 C     1 2 3 *     1 2 3 -
* 0 # D     0 . E /     C 0 = +

Interfaces

  • RS-232
    • 16 to 43 478 Baud
    • Data out and inverted data out for generating standard RS-232 voltages with no external components by using one data output as a virtual ground.
  • SPI
    • 83.33 kHz clock with enable.
  • Parallel
    • 4 bit parallel output of key number with 64 µs enable.
  • MIDI

Misc

  • Selectable beep/LED

Configuration mode

Hold down any key when turning on to enter configuration mode. Press 1 to identify keyboard type or key number two for the user defined map.

  • 1 - Initialise EEPROM to default settings
  • 2 - Beep On/Off (1|0)
  • 3 - Baudrate (00016-43478)
  • 4 - Character map (RAW=1 | Telephone=2 | Calculator=3 | User defined=4)
  • 5 - Character type (Decimal=1, ASCII=2)
  • 6 - Interface (RS-232=1 | SPI=2 | Parallel=3 | MIDI=4 | I2C=5(Not done) | 1Wire=6(Not done) | PS2=7(Not done) | OFF=8)
  • 7 - Define keys for user defined key map (key then 000-255)

Any other key than 1-7 to exit configuration mode

Default settings

  • Interface - RS-232, 1200 Baud, 8N1
  • Keymap - Telephone
  • Type - ASCII
  • Beep - On

Pin assignment

  • RB0-3 = Keyboard row output/Parallel data output
  • RB4-7 = Keyboard column input
  • RA0 = DATA (RS-232, SPI, MIDI)
  • RA1 = CLOCK (SPI), /DATA (RS-232)
  • RA2 = ENABLE (SPI, Parallel)
  • RA3 = Beeper/LED
  • RA4 = Not connected

Connection diagram for keypad

If the keypad is 3 keys wide; leave RB7 disconnected.

RB0---X---X---X---X--
      |   |   |   |
RB1---X---X---X---X--
      |   |   |   |
RB2---X---X---X---X--
      |   |   |   |
RB3---X---X---X---X--
      |   |   |   |
     RB4 RB5 RB6 RB7

Source code and HEX file

  • Still testing... E-mail if interested.