this program is based on the PS/2 keyboard library and the LCD library, the lcd display whatever input is coming from the PS/2 keyboard.
PS2Kbd.h@0:3774ff2f9a59, 2011-01-30 (annotated)
- Committer:
- edwinb
- Date:
- Sun Jan 30 15:05:39 2011 +0000
- Revision:
- 0:3774ff2f9a59
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
edwinb | 0:3774ff2f9a59 | 1 | #ifndef PS2KBD_H |
edwinb | 0:3774ff2f9a59 | 2 | #define PS2KBD_H |
edwinb | 0:3774ff2f9a59 | 3 | |
edwinb | 0:3774ff2f9a59 | 4 | #include "mbed.h" |
edwinb | 0:3774ff2f9a59 | 5 | |
edwinb | 0:3774ff2f9a59 | 6 | class PS2Kbd { |
edwinb | 0:3774ff2f9a59 | 7 | |
edwinb | 0:3774ff2f9a59 | 8 | public: |
edwinb | 0:3774ff2f9a59 | 9 | |
edwinb | 0:3774ff2f9a59 | 10 | PS2Kbd(PinName clk, PinName din); |
edwinb | 0:3774ff2f9a59 | 11 | unsigned char rd(void); |
edwinb | 0:3774ff2f9a59 | 12 | void wr(unsigned char); |
edwinb | 0:3774ff2f9a59 | 13 | |
edwinb | 0:3774ff2f9a59 | 14 | protected: |
edwinb | 0:3774ff2f9a59 | 15 | DigitalInOut _ps2clk; |
edwinb | 0:3774ff2f9a59 | 16 | DigitalInOut _ps2din; |
edwinb | 0:3774ff2f9a59 | 17 | |
edwinb | 0:3774ff2f9a59 | 18 | }; |
edwinb | 0:3774ff2f9a59 | 19 | |
edwinb | 0:3774ff2f9a59 | 20 | |
edwinb | 0:3774ff2f9a59 | 21 | static const unsigned char ps2KeyMap[] = { |
edwinb | 0:3774ff2f9a59 | 22 | // 0 1 2 3 4 5 6 7 8 9 A B C D E F |
edwinb | 0:3774ff2f9a59 | 23 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '`', ' ', // 00-0F |
edwinb | 0:3774ff2f9a59 | 24 | ' ', ' ', 0x12, ' ', ' ', 'q', '1', ' ', ' ', ' ', 'z', 's', 'a', 'w', '2', ' ', // 10-1F |
edwinb | 0:3774ff2f9a59 | 25 | ' ', 'c', 'x', 'd', 'e', '4', '3', ' ', ' ', ' ', 'v', 'f', 't', 'r', '5', ' ', // 20-2F |
edwinb | 0:3774ff2f9a59 | 26 | ' ', 'n', 'b', 'h', 'g', 'y', '6', ' ', ' ', ' ', 'm', 'j', 'u', '7', '8', ' ', // 30-3F |
edwinb | 0:3774ff2f9a59 | 27 | ' ', ',', 'k', 'i', 'o', '0', '9', ' ', ' ', '.', '/', 'l', ';', 'p', '-', ' ', // 40-4F |
edwinb | 0:3774ff2f9a59 | 28 | ' ', ' ','\'', ' ', '[', '=', ' ', ' ', 0x58, 0x59, 0x5A, ']', ' ','\\', ' ', ' ', // 50-5F |
edwinb | 0:3774ff2f9a59 | 29 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '1', ' ', '4', '7', ' ', ' ', '1', // 60-6F |
edwinb | 0:3774ff2f9a59 | 30 | '0', '.', '2', '5', '6', '8', 0x1B, 0x80, ' ', '+', '3', '-', '*', '9', ' ', ' ', // 70-7F |
edwinb | 0:3774ff2f9a59 | 31 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 80-8F |
edwinb | 0:3774ff2f9a59 | 32 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 90-9F |
edwinb | 0:3774ff2f9a59 | 33 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // A0-AF |
edwinb | 0:3774ff2f9a59 | 34 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // B0-BF |
edwinb | 0:3774ff2f9a59 | 35 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // C0-CF |
edwinb | 0:3774ff2f9a59 | 36 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // D0-DF |
edwinb | 0:3774ff2f9a59 | 37 | 0xE0, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // E0-EF |
edwinb | 0:3774ff2f9a59 | 38 | NULL, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // F0-FF |
edwinb | 0:3774ff2f9a59 | 39 | }; |
edwinb | 0:3774ff2f9a59 | 40 | |
edwinb | 0:3774ff2f9a59 | 41 | #endif |