??? 04/30/08 07:32 Read: times |
#154196 - code for your keyboard. Responding to: ???'s previous message |
keyport equ P2 ;Keypad port connected here
col1 equ P2.0 ;Column 1 col2 equ P2.1 ;Column 2 col3 equ P2.2 ;Column 3 col4 equ P2.3 ;Column 4 keyval equ 30H ;To store key number pressed bit 0H ;Flag key_init: mov keyport,#0FH ;Make rows as o/p and col as i/p ret get_key: mov keyval,#0 ;reset the number mov keyport,#7FH ;make Row1 low acall read_col ;read columns jb pressed, done ;check if flag is set mov keyval,#4 ;if not then read next row mov keyport,#0BFH ;make Row2 low acall read_col ;read columns jb pressed, done ;check if flag is set mov keyval,#8 ;if not then read next row mov keyport,#0DFH ;make row3 low acall read_col ;read columns jb pressed, done ;check if flag is set mov keyval,#12 ;if not read row4 mov keyport,#0EFH ;make row4 low acall read_col ;read columns done: ret read_col: ;read columns routine clr pressed ;reset the flag jb col1, nextcol ;check if first key is pressed jnb col1,$ ;if yes then wait for key release setb pressed ;set the flag ret nextcol: ;read col2 jb col2, nextcol1 ;check if second key is pressed jnb col2,$ ;if yes then wait for key release inc keyval ;its key number 2 setb pressed ;set the flag ret nextcol1: ;read col3 jb col3, nextcol2 ;check if third key is pressed jnb col3,$ ;if yes then wait for key release inc keyval ;its key 3 inc keyval setb pressed ;set the flag ret nextcol2: ;read column 4 jb col4, exit ;check if fourth key pressed jnb col4,$ ;if yes then wait for key release inc keyval ;its key 4 inc keyval inc keyval setb pressed ;set the flag ret exit: ;if no key is pressed clr pressed ;clr the flag clr keyval ;reset the number ret end please read the code and understand and make changes in the code as per your hardware. Please let me know if u have any issues. |
Topic | Author | Date |
4x4 keypad | 01/01/70 00:00 | |
Which part are you stuck with? | 01/01/70 00:00 | |
4x4 keypad. | 01/01/70 00:00 | |
Do you understand how the matrix works? | 01/01/70 00:00 | |
use matrix keypad & timer interrupt | 01/01/70 00:00 | |
code for your keyboard. | 01/01/70 00:00 | |
C code for your keypad | 01/01/70 00:00 | |
C code for your keypad - do not use | 01/01/70 00:00 | |
Eric, you must have good eyesight | 01/01/70 00:00 | |
naah, I spotted the basic error immediately, ... | 01/01/70 00:00 | |
How to post source code![]() | 01/01/70 00:00 |