📄 keyprocess.lst
字号:
129 1 return ucGetLetter(ucChar); //获取字母字符。
130 1 }
131
132
133 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
134 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<字符最终处理函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
135 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
136 void vCharProcess(unsigned ucKeyCode) //接收的是键码。
137 {
138 1 if(b_InputMode==0) //如果是数字输入,就直接输出。
139 1 vCharAdd(ucGetChar(ucKeyCode));
140 1 else
141 1 {
142 2 if(ucKeyCode!=42) //如果是字幕输入,则判断是不是标点。
143 2 {
144 3 if(uc_ClickCount==0)
145 3 {
146 4 vCharAdd(ucGetChar(ucKeyCode)); //如果是只连续按了1次就直接输出。
147 4 }
148 3 else
149 3 {
150 4 uc_CharPointer--; //否则光标前移,然后再输出。
151 4 vCharAdd(ucGetChar(ucKeyCode));
152 4 }
153 3 }
154 2 else
155 2 {
156 3 vShowOneChar('!'); //punc
157 3 uca_CharBox[uc_CharPointer++]='!'; //写入感叹号!
158 3 }
159 2 }
160 1 b_CleanClick=1;
161 1 uc_CleanCount=0;
162 1 }
163 //*************************************************************************************************
164 //* *
165 //* ******************************键码处理主程序************************** *
166 //* *
167 //*************************************************************************************************
168 void vKeyProcess(unsigned char ucKeyCode)
169 {
170 1 if(uc_KeyTemp==ucKeyCode) //判断按键与上一次所按的键是否相同。
171 1 {
172 2 if(uc_ClickCount<255) //同一个按连续按下的次数:1~255。
173 2 uc_ClickCount++;
174 2 }
175 1 else
176 1 {
177 2 uc_KeyTemp=ucKeyCode;
178 2 uc_ClickCount=0;
C51 COMPILER V8.05a KEYPROCESS 08/08/2007 11:03:52 PAGE 4
179 2 }
180 1
181 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
182 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<按键处理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
183 1 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
184 1 switch(ucKeyCode)
185 1 {
186 2 case 14: //********************显示介绍************************************************
187 2 b_Introduce=1;
188 2 vIntroduce();
189 2 break;
190 2
191 2 case 24: //********************输入空白************************************************
192 2 vCharAdd(' ');
193 2 break;
194 2
195 2 case 34: //**********************大小写切换*********************************************
196 2 if(b_InputMode==1)
197 2 {
198 3 b_CapStatus=~b_CapStatus;
199 3 if(b_CapStatus==0) //大写。
200 3 {
201 4 vWriteCMD(0x8E);
202 4 vShowOneChar('B');
203 4 vWriteCMD(0xC0+uc_CharPointer);
204 4 }
205 3 else
206 3 {
207 4 vWriteCMD(0x8E);
208 4 vShowOneChar('S');
209 4 vWriteCMD(0xC0+uc_CharPointer);
210 4 }
211 3 }
212 2 break;
213 2
214 2 case 41: //********************删除所有字符*********************************************
215 2 vCleanAll();
216 2 break;
217 2
218 2 case 43: //**********************删除1个字符********************************************
219 2 vCleanOne();
220 2 break;
221 2
222 2 case 44: //********************输入法切换***********************************************
223 2 b_InputMode=~b_InputMode;
224 2 if(b_InputMode)
225 2 {
226 3 if(b_CapStatus==0) //切换到字符输入法时在右上角显示“C”
227 3 {
228 4 vWriteCMD(0x8E);
229 4 vShowChar("BC"); //大写显示“BC”
230 4 vWriteCMD(0xC0+uc_CharPointer);
231 4 }
232 3 else
233 3 {
234 4 vWriteCMD(0x8E);
235 4 vShowChar("SC"); //小写显示“SC”
236 4 vWriteCMD(0xC0+uc_CharPointer);
237 4 }
238 3 }
239 2 else
240 2 {
C51 COMPILER V8.05a KEYPROCESS 08/08/2007 11:03:52 PAGE 5
241 3 vWriteCMD(0x8E); //切换到数字输入法时在右上角显示“N”
242 3 vShowChar(" N");
243 3 vWriteCMD(0xC0+uc_CharPointer);
244 3 }
245 2 break;
246 2
247 2 default: //*************************获得键码********************************************
248 2 vCharProcess(ucKeyCode);
249 2 }
250 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 383 ----
CONSTANT SIZE = 44 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 20 5
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -