54 lines
1.1 KiB
Plaintext
54 lines
1.1 KiB
Plaintext
' ########### start ###########
|
|
' pic:PIC16F886
|
|
' ########### end ###########
|
|
|
|
'Keypad.gcb
|
|
'This program reads a keypad and sends the key pressed to the PICkit 2 UART Tool
|
|
'Rows are connected to PORTB pins D11-D8
|
|
'Columns are connected to PORTC pins D7-D4
|
|
'Column pins must be pulled up to 5v through 10k Resistors.
|
|
|
|
;Chip Settings
|
|
#chip 16F886,16
|
|
#include <chipino.h>
|
|
|
|
'Serial settings
|
|
#define SerInPort PORTB.6
|
|
#define SerOutPort PORTB.7
|
|
#define SendAHigh Set SerOutPort off
|
|
#define SendALow Set SerOutPort on
|
|
#define RecAHigh SerInPort off
|
|
#define RecALow SerInPort on
|
|
|
|
'Set pin directions
|
|
Dir SerOutPort Out
|
|
Dir SerInPort In
|
|
|
|
;Defines (Constants)
|
|
#define KEYPAD_ROW_1 D11
|
|
#define KEYPAD_ROW_2 D10
|
|
#define KEYPAD_ROW_3 D9
|
|
#define KEYPAD_ROW_4 D8
|
|
#define KEYPAD_COL_1 D7
|
|
#define KEYPAD_COL_2 D6
|
|
#define KEYPAD_COL_3 D5
|
|
#define KEYPAD_COL_4 D4
|
|
|
|
'Main loop
|
|
InitSer 1, r9600, 1+waitforstart, 8, 1, none, invert
|
|
Do
|
|
'Get key
|
|
Temp = KeypadData
|
|
|
|
'If a key is pressed, then display it
|
|
If Temp <> KEY_NONE Then
|
|
' CLS
|
|
' Print Temp
|
|
SerSend 1, Temp
|
|
Wait 100 ms
|
|
End If
|
|
Loop
|
|
|
|
|
|
|