User manual
mikroBasic PRO for dsPIC30/33 and PIC24
MikroElektronika
429
Ps2_Cong
Ps2_Key_Read
Prototype
sub procedure Ps2_Cong()
Description Initializes the MCU for work with the PS/2 keyboard.
Parameters None.
Returns Nothing.
Requires Global variables:
- PS2_Data: Data signal line
- PS2_Clock: Clock signal line
- PS2_Data_Direction: Direction of the Data pin
- PS2_Clock_Direction: Direction of the Clock pin
must be dened before using this function.
Example
‘ PS2 pinout denition
dim PS2_Data as sbit at RB0_bit
dim PS2_Clock as sbit at RB1_bit
dim PS2_Data_Direction as sbit at TRISB0_bit
dim PS2_Clock_Direction as sbit at TRISB1_bit
‘ End of PS2 pinout denition
...
Ps2_Cong() ‘ Init PS/2 Keyboard
Notes None.
Prototype
sub function Ps2_Key_Read(dim byref value as byte, dim byref special as
byte, dim byref pressed as byte) as word
Description The function retrieves information on key pressed.
Parameters - value: holds the value of the key pressed. For characters, numerals, punctuation marks, and space
value will store the appropriate ASCII code. Routine “recognizes” the function of Shift and Caps Lock,
and behaves appropriately. For special function keys see Special Function Keys Table.
- special: is a ag for special function keys (F1, Enter, Esc, etc). If key pressed is one of these,
special will be set to 1, otherwise 0.
- pressed: is set to 1 if the key is pressed, and 0 if it is released.
Returns - 1 if reading of a key from the keyboard was successful
- 0 if no key was pressed
Requires PS/2 keyboard needs to be initialized. See Ps2_Cong routine.
Example
dim value, special, pressed as word
...
‘ Press Enter to continue:
do {
if (Ps2_Key_Read(value, special, pressed)) then
if ((value = 13) and (special = 1)) then
break
end if
end if
loop until (0=1)
Notes None.