4x3 4x4 Matrix Keypad Interface with Atmel AVR Microcontrollers


Posted on Feb 6, 2014

Many application requires large number of keys connected to a computing system. Example includes a PC keyboard, Cell Phone keypad and Calculators. If we connect a single key to MCU, we just connect it directly to i/o line. But we cannot connect, say 10 or 100 keys directly MCUs i/o. Because :- We want to avoid all these troubles so we use some clever technique.


4x3 4x4 Matrix Keypad Interface with Atmel AVR Microcontrollers
Click here to download the full size of the above Circuit.

The technique is called multiplexed matrix keypad. In this technique keys are connected in a matrix (row/column) style as shown below. The rows R0 to R3 are connected to Input lines of Microcontroller. The i/o pins where they are connected are made Input. This is done by setting the proper DDR Register in AVR and TRIS Register in PIC. The column C0 to C3 are also connected to MCUs i/o line. These are kept at High Impedance State (AKA input), in high z state (z= impedance) state these pins are neither HIGH or LOW they are in TRISTATE. And in their PORT value we set them all as low, so as soon as we change their DDR bit to 1 they become output with value LOW. As you can see in the image above C0 is made LOW while all other Columns are in HIGH Z State. We can read the Value of R0 to R3 to get their pressed status. If they are high the button is NOT pressed. As we have enabled internal pullups on them, these pullups keep their value high when they are floating (that means NOT connected to anything). But when a key is pressed it is connected to LOW line from the column thus making it LOW. After that we make the C0 High Z again and make C1 LOW. And read R0 to R3 again. This gives us status of the second column of keys. Similarly we scan all columns. PORTA Port Driver - when any bit is set to 1 it appears as HIGH i. e. 5v. But this is the case only if that bit is OUTPUT. If it is input, setting any bit to 1 enables the internal...




Leave Comment

characters left:

Related Circuits

  • New Circuits

    .

     


    Popular Circuits

    Light Transmitter
    Hook Sensor Loop Circuit
    uc3845 sync pulse generator circuit
    ADUC814 1.3MIPS 8052 MCU + 8kB Flash + 6-Ch 12-Bit ADC + Dual 12-Bit DAC
    PC computer based frequency meter circuit diagram
    LED torch using NSI45090JDT4G constant current regulator
    ATMEGA32 8-bit AVR Microcontroller with 32K Bytes In-System Programmable Flash
    IC Magnitude Comparators
    Rear Light After Glow (For Bicycles)
    Automatic distress alarm kit control circuit
    TWH9104 holiday lights ASIC



    Top