User manual
mikroPascal PRO for dsPIC30/33 and PIC24
MikroElektronika
371
Library Example
The following code can be used for testing the keypad. It is written for keypad_4x3 or _4x4. The code returned by the
keypad functions (1..16) is transformed into ASCII codes [0..9,A..F], and then sent via UART1.
Copy Code To Clipboard
program Keypad_Test;
var kp, oldstate : byte;
txt : array[6] of char;
// Keypad module connections
var keypadPort : word at PORTB;
var keypadPort_Direction : word at TRISB;
// End Keypad module connections
begin
ADPCFG := 0xFFFF;
oldstate := 0;
UART1_Init(9600);
Delay_ms(100);
Keypad_Init(); // Initialize Keypad
UART1_Write_Text(‘Press any key on your kaypad...’);
UART1_Write(10);
UART1_Write(13);
while TRUE do
begin
kp := 0; // Reset key code variable
// Wait for key to be pressed and released
while ( kp = 0 ) do
kp := Keypad_Key_Click(); // Store key code in kp variable
// Prepare value for output, transform key to it’s ASCII value
case kp of
//case 10: kp = 42; // ‘*’ // Uncomment this block for keypad4x3
//case 11: kp = 48; // ‘0’
//case 12: kp = 35; // ‘#’
//default: kp += 48;
1: kp := 49; // 1 // Uncomment this block for keypad4x4
2: kp := 50; // 2
3: kp := 51; // 3
4: kp := 65; // A
5: kp := 52; // 4
6: kp := 53; // 5
7: kp := 54; // 6
8: kp := 66; // B
9: kp := 55; // 7
10: kp := 56; // 8
11: kp := 57; // 9
12: kp := 67; // C
13: kp := 42; // *
14: kp := 48; // 0
15: kp := 35; // #
16: kp := 68; // D