📄 ps2kbd.lst
字号:
C51 COMPILER V7.50 PS2KBD 04/16/2007 15:23:02 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE PS2KBD
OBJECT MODULE PLACED IN .\Obj\Ps2KBd.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\Driver\PS2\PS2Kbd\Ps2KBd.c LARGE OPTIMIZE(2,SPEED) BROWSE MODP2 PRINT
-(.\Obj\Ps2KBd.lst) OBJECT(.\Obj\Ps2KBd.obj)
line level source
1 /*------------------------------------------------------------------
2 * CopyRight (C) 2005,江苏盛唐电子产品有限公司
3 * All Rights Reserved.
4 *
5 * 文件名称:PS2KBD.c
6 * 文件标识:
7 * 摘 要:从PS2接口操纵PS2键盘的头文件。
8 *
9 * 当前版本:1.0
10 * 作 者:熊刚
11 * 完成日期:2005年10月7日
12 *
13 * 取代版本:
14 * 原作者 :
15 * 完成日期:
16 --------------------------------------------------------------------*/
17
18 #include "..\..\inc\includes.h"
19
20 #define BUFF_SIZE 64
21
22 //unsigned char edge, bitcount;// 0 = neg. 1 = pos.
23 unsigned int kb_buffer[BUFF_SIZE];
24 unsigned int *inpt, *outpt;
25 unsigned char buffcnt;
26
27
28 unsigned char code UnShifted[][3] = {
29 0x1C, 'a', 4,
30 0x32, 'b', 5,
31 0x21, 'c', 6,
32 0x23, 'd', 7,
33 0x24, 'e', 8,
34 0x2B, 'f', 9,
35 0x34, 'g', 10,
36 0x33, 'h', 11,
37 0x43, 'i', 12,
38 0x3B, 'j', 13,
39 0x42, 'k', 14,
40 0x4B, 'l', 15,
41 0x3A, 'm', 16,
42 0x31, 'n', 17,
43 0x44, 'o', 18,
44 0x4D, 'p', 19,
45 0x15, 'q', 20,
46 0x2D, 'r', 21,
47 0x1B, 's', 22,
48 0x2C, 't', 23,
49 0x3C, 'u', 24,
50 0x2A, 'v', 25,
51 0x1D, 'w', 26,
52 0x22, 'x', 27,
53 0x35, 'y', 28,
54 0x1A, 'z', 29,
C51 COMPILER V7.50 PS2KBD 04/16/2007 15:23:02 PAGE 2
55 0x45, '0', 39,
56 0x16, '1', 30,
57 0x1E, '2', 31,
58 0x26, '3', 32,
59 0x25, '4', 33,
60 0x2E, '5', 34,
61 0x36, '6', 35,
62 0x3D, '7', 36,
63 0x3E, '8', 37,
64 0x46, '9', 38,
65 0x0E, '`', 53,
66 0x4E, '-', 45,
67 0x55, '=', 46,
68 0x5D, '\\',49,
69 0x29, ' ', 44,
70 0x54, '[', 47,
71 0x5B, ']', 48,
72 0x4C, ';', 51,
73 0x52, '\'',52,
74 0x41, ',', 54,
75 0x49, '.', 55,
76 0x4A, '/', 56,
77 0x5A,0x0D, 40, //Enter
78 0x66,0x08, 42, //BackSpace
79 0x76,0x1b, 41, //Esc
80 0,0,0
81 };
82
83 unsigned char code Shifted[][2] = {
84 0x1C, 'A',4,
85 0x32, 'B',5,
86 0x21, 'C',6,
87 0x23, 'D',7,
88 0x24, 'E',8,
89 0x2B, 'F',9,
90 0x34, 'G',10,
91 0x33, 'H',11,
92 0x43, 'I',12,
93 0x3B, 'J',13,
94 0x42, 'K',14,
95 0x4B, 'L',15,
96 0x3A, 'M',16,
97 0x31, 'N',17,
98 0x44, 'O',18,
99 0x4D, 'P',19,
100 0x15, 'Q',20,
101 0x2D, 'R',21,
102 0x1B, 'S',22,
103 0x2C, 'T',23,
104 0x3C, 'U',24,
105 0x2A, 'V',25,
106 0x1D, 'W',26,
107 0x22, 'X',27,
108 0x35, 'Y',28,
109 0x1A, 'Z',29,
110 0x45, ')',39,
111 0x16, '!',30,
112 0x1E, '@',31,
113 0x26, '#',32,
114 0x25, '$',33,
115 0x2E, '%',34,
116 0x36, '^',35,
C51 COMPILER V7.50 PS2KBD 04/16/2007 15:23:02 PAGE 3
117 0x3D, '&',36,
118 0x3E, '*',37,
119 0x46, '(',38,
120 0x0E, '~',53,
121 0x4E, '_',45,
122 0x55, '+',46,
123 0x5D, '|',49,
124 0x29, ' ',44,
125 0x54, '{',47,
126 0x5B, '}',48,
127 0x4C, ':',51,
128 0x52, '"',52,
129 0x41, '<',54,
130 0x49, '>',55,
131 0x4A, '?',56,
132 0x5A,0x0D, 40,
133 0x66,0x08, 42,
134 0x76,0x1b, 41,
135 0,0,0,
136 };
137
138
139 static void put_kbbuff(uint uic)
140 {
141 1
142 1 // ComShowString(COM_1,"Put Kbd ASCII Code To Buff;");
143 1 // ComSendText(COM_1,&c,1);
144 1
145 1 if (buffcnt<BUFF_SIZE)// If buffer not full
146 1 {
147 2 *inpt = uic;// Put character into buffer
148 2 inpt++; // Increment pointer
149 2 buffcnt++;
150 2 if (inpt >= kb_buffer + BUFF_SIZE)// Pointer wrapping
151 2 {
152 3 inpt = kb_buffer;
153 3 }
154 2 }
155 1 }
156
157
158
159
160 static void Decode(unsigned char sc)
161 {
162 1 static unsigned char is_up=0, shift = 0;
163 1 unsigned char i;
164 1 uint uiKeyCombCode; //usaged code + ASCII code
165 1
166 1 if (!is_up)// Last data received was the up-key identifier
167 1 {
168 2 // ComShowString(COM_1,"Decode Func Sc is :");
169 2 // ComSendText(COM_1,&sc,1);
170 2
171 2 switch (sc)
172 2 {
173 3 case 0xF0 :// The up-key identifier
174 3 is_up = 1;
175 3 break;
176 3 case 0x12 :// Left SHIFT
177 3 shift = 1;
178 3 break;
C51 COMPILER V7.50 PS2KBD 04/16/2007 15:23:02 PAGE 4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -