PS/2 Library

The mikroBasic PRO for FT90x provides a library for communication with the common PS/2 keyboard.

  Important :

External dependencies of PS/2 Library

The following variables must be defined in all projects using PS/2 Library: Description : Example :
dim PS2_Data_Input as sbit sfr external PS/2 Data Input line. dim PS2_Data_Input as sbit at GPIO_PIN43_bit
dim PS2_Clock_Input as sbit sfr external PS/2 Clock Input line. dim PS2_Clock_Input as sbit at GPIO_PIN26_bit
dim PS2_Clock_Output as sbit sfr external PS/2 Clock Output line. dim PS2_Clock_Output as sbit at GPIO_PIN26_bit

Library Routines

Ps2_Config

Prototype

sub procedure Ps2_Config()

Description

Initializes the MCU for work with the PS/2 keyboard.

Parameters

None.

Returns

Nothing.

Requires

External dependencies of the library from the top of the page must be defined before using this function.

Example
dim PS2_Data_Input            as sbit at GPIO_PIN43_bit
dim PS2_Clock_Input           as sbit at GPIO_PIN26_bit
dim PS2_Clock_Output          as sbit at GPIO_PIN26_bit
...
Ps2_Config()                                       ' Init PS/2 Keyboard
Notes

None.

Ps2_Key_Read

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 flag 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_Config 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.

Special Function Keys

Key Value returned
F1 1
F2 2
F3 3
F4 4
F5 5
F6 6
F7 7
F8 8
F9 9
F10 10
F11 11
F12 12
Enter 13
Page Up 14
Page Down 15
Backspace 16
Insert 17
Delete 18
Windows 19
Ctrl 20
Shift 21
Alt 22
Print Screen 23
Pause 24
Caps Lock 25
End 26
Home 27
Scroll Lock 28
Num Lock 29
Left Arrow 30
Right Arrow 31
Up Arrow 32
Down Arrow 33
Escape 34
Tab 35
Copyright (c) 2002-2015 mikroElektronika. All rights reserved.
What do you think about this topic ? Send us feedback!
Want more examples and libraries? 
Find them on LibStock - A place for the code