📄 key.lst
字号:
C51 COMPILER V7.09 KEY 11/19/2006 16:03:09 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "includes.h"
2 #include "key.h"
3 #include "eeprom.h"
4 #include "display.h"
5
6 sbit SET = P1^1;
7 sbit UP = P1^2;
8 sbit DOWN = P1^3;
9
10 uchar KeyOld1, KeyOld2;
11
12 /*键盘扫描子函数*/
13 void KeyScan(void)
14 {
15 1 uchar temp0, temp1;
16 1 uchar KeyNew;
17 1 if (SET == 0) {
18 2 KeyNew = 0x01;
19 2 }
20 1 else if (UP == 0) {
21 2 KeyNew = 0x03;
22 2 }
23 1 else if (DOWN == 0) {
24 2 KeyNew = 0x02;
25 2 }
26 1 else {
27 2 KeyNew = 0xff;
28 2 KeyOld1 = 0xff;
29 2 KeyOld2 = 0xff;
30 2 }
31 1 temp0 = KeyNew ^ KeyOld1;
32 1 temp1 = KeyNew ^ KeyOld2;
33 1 if (temp0 != 0) {
34 2 if (temp1 != 0) {
35 3 KeyOld2 = KeyNew;
36 3 }
37 2 else {
38 3 if (KeyNew <= 0x04) {
39 4 KeyManage(KeyNew);
40 4 Clear();
41 4 if (FlagSet == 0)
42 4 Flash = 1;
43 4 Display();
44 4 KeyOld1 = KeyNew;
45 4 }
46 3 }
47 2 }
48 1 }
49 void KeyManage(uchar key_value)
50 {
51 1 switch (MenuCoun) {
52 2 case 0:
53 2 KeySon1(key_value);
54 2 break;
55 2 case 1:
C51 COMPILER V7.09 KEY 11/19/2006 16:03:09 PAGE 2
56 2 KeySon2(key_value);
57 2 break;
58 2 case 2:
59 2 KeySon3(key_value);
60 2 break;
61 2 case 3:
62 2 KeySon4(key_value);
63 2 break;
64 2 case 4:
65 2 KeySon5(key_value);
66 2 break;
67 2 case 5:
68 2 KeySon6(key_value);
69 2 break;
70 2 case 6:
71 2 KeySon7(key_value);
72 2 break;
73 2 case 7:
74 2 KeySon8(key_value);
75 2 break;
76 2 case 8:
77 2 KeySon9(key_value);
78 2 break;
79 2 case 9:
80 2 KeySon10(key_value);
81 2 break;
82 2 case 10:
83 2 KeySon11(key_value);
84 2 break;
85 2 case 11:
86 2 KeySon12(key_value);
87 2 break;
88 2 default:
89 2 break;
90 2 }
91 1 }
92
93 void KeySon1(uchar value)
94 {
95 1 switch (value) {
96 2 case 1:
97 2 //FlagSet = !FlagSet;
98 2 break;
99 2 case 2:
100 2 MenuCoun += 1;
101 2 break;
102 2 case 3:
103 2 MenuCoun = 11;
104 2 break;
105 2 default:
106 2 break;
107 2 }
108 1 }
109
110 void KeySon2(uchar value)
111 {
112 1 switch (value) {
113 2 case 1:
114 2 //FlagSet = !FlagSet;
115 2 break;
116 2 case 2:
117 2 MenuCoun += 1;
C51 COMPILER V7.09 KEY 11/19/2006 16:03:09 PAGE 3
118 2 break;
119 2 case 3:
120 2 MenuCoun -= 1;
121 2 break;
122 2 default:
123 2 break;
124 2 }
125 1 }
126 void KeySon3(uchar value)
127 {
128 1 switch (value) {
129 2 case 1:
130 2 //FlagSet = !FlagSet;
131 2 break;
132 2 case 2:
133 2 MenuCoun += 1;
134 2 break;
135 2 case 3:
136 2 MenuCoun -= 1;
137 2 break;
138 2 default:
139 2 break;
140 2 }
141 1 }
142 void KeySon4(uchar value)
143 {
144 1 switch (value) {
145 2 case 1:
146 2 //FlagSet = !FlagSet;
147 2 break;
148 2 case 2:
149 2 MenuCoun += 1;
150 2 break;
151 2 case 3:
152 2 MenuCoun -= 1;
153 2 break;
154 2 default:
155 2 break;
156 2 }
157 1 }
158
159 void KeySon5(uchar value)
160 {
161 1 switch (value) {
162 2 case 1:
163 2 //FlagSet = !FlagSet;
164 2 break;
165 2 case 2:
166 2 MenuCoun += 1;
167 2 break;
168 2 case 3:
169 2 MenuCoun -= 1;
170 2 break;
171 2 default:
172 2 break;
173 2 }
174 1 }
175
176 void KeySon6(uchar value)
177 {
178 1 switch (value) {
179 2 case 1:
C51 COMPILER V7.09 KEY 11/19/2006 16:03:09 PAGE 4
180 2 FlagSet = !FlagSet;
181 2 if (FlagSet) {
182 3 Set[0] = read(0);
183 3 }
184 2 else {
185 3 write(0, Set[0]);
186 3 }
187 2 break;
188 2 case 2:
189 2 if (FlagSet) {
190 3 Set[0] += 1;
191 3 if (Set[0] > 2)
192 3 Set[0] = 0;
193 3
194 3 }
195 2 else {
196 3 MenuCoun += 1;
197 3 }
198 2 break;
199 2 case 3:
200 2 if (FlagSet) {
201 3 Set[0] -= 1;
202 3 if (Set[0] < 0)
203 3 Set[0] = 2;
204 3 }
205 2 else {
206 3 MenuCoun -= 1;
207 3 }
208 2 break;
209 2 default:
210 2 break;
211 2 }
212 1 }
213
214 void KeySon7(uchar value)
215 {
216 1 switch (value) {
217 2 case 1:
218 2 FlagSet = !FlagSet;
219 2 if (FlagSet) {
220 3 Set[1] = read(1);
221 3 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -