Ken Webster says:
I just happened to have an example [of a keyboard to SX interface]. It is for a 4x4 keypad connected [...] on PORTB. It doesn't do the fast scan ... just a plain old one-row-at-a-time scan. I had PORTB (output latch) set to 0. Weak pullups were enabled.Pinout is kinda funky (to make PCB layout easier):
6---(1)-(2)-(3)-(A) | | | | 7---(4)-(5)-(6)-(B) | | | | 5---(7)-(8)-(9)-(C) | | | | 2---(*)-(0)-(#)-(D) | | | | 3 4 0 1 ;------------------------------------------------------------ ;Called by interrupt handler to scan the keypad ;Returns with W=ASCII if a key is pressed, W=0 otherwise ;Interrupt handler performs debounce SCAN1 mov W, #$40 ;Enable ROW0 output mov DDRB, W nop nop sb RB.3 retw #'1' sb RB.4 retw #'2' sb RB.0 retw #'3' sb RB.1 retw #'A' mov W, #$80 ;ROW1 mov DDRB, W nop nop sb RB.3 retw #'4' sb RB.4 retw #'5' sb RB.0 retw #'6' sb RB.1 retw #'B' mov W, #$20 ;ROW2 mov DDRB, W nop nop sb RB.3 retw #'7' sb RB.4 retw #'8' sb RB.0 retw #'9' sb RB.1 retw #'C' mov W, #$04 ;ROW3 mov DDRB, W nop nop sb RB.3 retw #'*' sb RB.4 retw #'0' sb RB.0 retw #'#' sb RB.1 retw #'D' retw #0
file: /Techref/scenix/lib/io/dev/keys/keymatrix_sx.htm, 1KB, , updated: 2003/5/16 12:51, local time: 2024/11/14 08:25,
18.217.255.175:LOG IN
|
©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? <A HREF="http://linistepper.com/Techref/scenix/lib/io/dev/keys/keymatrix_sx.htm"> SX Microcontroler based Keyboards</A> |
Did you find what you needed? |