📄 keyprocess.lst
字号:
C51 COMPILER V8.05a KEYPROCESS 08/08/2007 11:03:52 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE KEYPROCESS
OBJECT MODULE PLACED IN KeyProcess.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\KeyProcess.c BROWSE INCDIR(.\include;.\include;.\include) DEBUG OBJ
-ECTEXTEND PRINT(.\KeyProcess.lst) OBJECT(KeyProcess.obj)
line level source
1 //*************************************************************************************************
2 //* *
3 //* ******************************键码处理程序************************** *
4 //* *
5 //*************************************************************************************************
6
7 //*************************************************************************************************
8 //* *
9 //* ******************************头文件及宏定义************************** *
10 //* *
11 //*************************************************************************************************
12 #include "InputNumber.h"
13 #include "InputChar.h"
14 #include "SMC1602.h"
15
16
17 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<输入法标志位>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
18 bit b_InputMode=1; //0表示是数字输入法,1表示是字母输入法。
19 //默认是字母输入法。
20
21 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<显示介绍>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
22 extern bit b_Introduce;
23
24 void vIntroduce();
25
26
27 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<连续按键计数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
28 unsigned char uc_KeyTemp=0; //按键键码暂存。
29
30 unsigned char uc_ClickCount=1; //同一个按连续按下的次数。
31
32 extern unsigned char uc_CleanCount; //清除按键计数时间计数。
33
34 bit b_CleanClick=0; //为1时启用清除。
35
36
37 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<大小写模式>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
38 extern bit b_CapStatus; //0--大写;1--小写。(默认为0:大写)
39
40
41 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<刷新字符显示>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
42 unsigned char uca_CharBox[17]={" "};
43 //存储刷新字符。
44
45 unsigned char uc_CharPointer=0; //刷新字符末位计数,指向字符光标位置。
46
47
48
49
50
51 //*************************************************************************************************
52 //* *
53 //* ******************************字符显示更新函数************************** *
54 //* *
C51 COMPILER V8.05a KEYPROCESS 08/08/2007 11:03:52 PAGE 2
55 //*************************************************************************************************
56 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
57 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<删除所有字符>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
58 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
59 void vCleanAll()
60 {
61 1 unsigned char ucCount;
62 1
63 1 for(ucCount=0;ucCount<uc_CharPointer;ucCount++)
64 1 uca_CharBox[ucCount]=' ';
65 1
66 1 uc_CharPointer=0;
67 1 vWriteCMD(0xC0);
68 1 vShowChar(" ");
69 1 vWriteCMD(0xC0);
70 1 }
71
72
73
74 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
75 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<删除一个字符>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
76 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
77 void vCleanOne()
78 {
79 1 if(uc_CharPointer>0)
80 1 {
81 2 uc_CharPointer--;
82 2 uca_CharBox[uc_CharPointer]=' ';
83 2 vWriteCMD(0xC0+uc_CharPointer);
84 2 vShowOneChar(' ');
85 2 vWriteCMD(0xC0+uc_CharPointer);
86 2 }
87 1 }
88
89
90 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
91 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<添加一个字符>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
92 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
93 void vCharAdd(unsigned char ucChar) //接收的是ASC字符。
94 {
95 1 unsigned char ucCount;
96 1 if(uc_CharPointer<16)
97 1 {
98 2
99 2 vWriteCMD(0xC0+uc_CharPointer);
100 2 vShowOneChar(ucChar);
101 2
102 2 uca_CharBox[uc_CharPointer]=ucChar; //将字符写入uca_CharBox。
103 2 uc_CharPointer++; //使ucCharPoint只想下一个位置。
104 2 }
105 1 else
106 1 { //如字符超出16个则全部清除,把光标移到最左边。
107 2 vWriteCMD(0xC1);
108 2 vShowChar(" ");
109 2 vWriteCMD(0xC0);
110 2 vShowOneChar(ucChar); //写入输入字符。
111 2
112 2 for(ucCount=1;ucCount<16;ucCount++)
113 2 uca_CharBox[ucCount]=' '; //同时清空uca_CharBox。
114 2 uca_CharBox[0]=ucChar;
115 2 uc_CharPointer=1;
116 2 }
C51 COMPILER V8.05a KEYPROCESS 08/08/2007 11:03:52 PAGE 3
117 1
118 1 b_CleanClick=1;
119 1 uc_CleanCount=0;
120 1 }
121 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
122 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<获取按键字符ASC值>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
123 //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
124 unsigned char ucGetChar(unsigned char ucChar)
125 {
126 1 if(b_InputMode==0)
127 1 return ucGetNum(ucChar); //获取数字字符。
128 1 else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -