Solved

Interface a 4x4 keypad with a PIC

Posted on 2007-12-05
4
12,348 Views
Last Modified: 2013-12-13
I want to add a 4x4 keypad to a 16F877A, i've made the connections to the pins but I don't know how to decode/write the ASM code.
What I want to do is: when I press 3 on the keypad the PIC will scan the keypad and figure it out it was the '3' key and load it in a variable.


So far I wrote the code for:

;                   RB4             RB5             RB6             RB7
;                   COL1             COL2          COL3         COL4
; RB0 ROW1         1                2                 3                  A
;  
; RB1 ROW2        4                 5                  6                  B
;
; RB2 ROW3        7                 8                  9                   C
;
; RB3 ROW4        *                 0                  #                  D
Setting the pins to the wires.


How to intercept the key pressed ?!


I couldn't find anything on the net that will explain the logistic or how is done step by step.

Could anyone help with a source code explained or some good documentation?

Thanks for your time!
0
Comment
Question by:navaru
4 Comments
 
LVL 55

Accepted Solution

by:
Jaime Olivares earned 125 total points
ID: 20417849
Have a look to this project:
http://www.jtcotton.info/papers/PIC%20-%20Digital%20Alarm%20Clock.pdf

it has an lcd and a 4x4 keypad with 16f877 microcontroller, including schematics and assembler code. You can extract the portion of your interest.
0
 

Author Comment

by:navaru
ID: 20417873
OK, i'll take a look at that
0
 
LVL 6

Expert Comment

by:Talmash
ID: 20420951
try:
http://www.sunrom.com/s-16f877a-keypad.html
they have online support as well

0
 
LVL 2

Expert Comment

by:kouroshparsa
ID: 20579946
Easy.
First of all, I suggest you use c rather (if you don't know asm)

You have 2 options:
option1: read the "interrupts" section spec of the pic. Implement a signal change interrupt.

option2: it is easier to just have an infinit loop (no interrupt) that scans the keyboard.

Note: I know from my experience that the fastest click of a button will change the signal for at least 40ms. so this is quite safe.
still you need either a hardware or a software debouncer.
Do it in software. It's much easier.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you haven’t already, I encourage you to read the first article (http://www.experts-exchange.com/articles/18680/An-Introduction-to-R-Programming-and-R-Studio.html) in my series to gain a basic foundation of R and R Studio.  You will also find the …
This is an explanation of a simple data model to help parse a JSON feed
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.
With the power of JIRA, there's an unlimited number of ways you can customize it, use it and benefit from it. With that in mind, there's bound to be things that I wasn't able to cover in this course. With this summary we'll look at some places to go…

867 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now