📄 key.lst
字号:
C51 COMPILER V7.50 KEY 08/12/2006 10:29:13 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN Key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Key.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "PublicDef.h"
2 #include "PublicFunction.h"
3 BYTE KeyData;
4 struct
5 {
6 WORD Delay;
7 BYTE WaitTime;
8 BYTE Stau;
9 BYTE ScanFlag;
10 BYTE ChekFlag;
11 BYTE OldKey;
12 } Keys;
13
14
15 BYTE Key_Func;
16 BYTE KeyUpContinue=0,KeyDownContinue=0,KeyLeftContinue=0,KeyRightContinue=0;
17
18 void ScanKey(void)
19 {
20 1 static BYTE scan_delay=0;
21 1 if (Pin_KEY_START)
22 1 {
23 2 scan_delay=0;
24 2 Keys.ScanFlag=SCAN_NO;
25 2 return;
26 2 }
27 1 if (scan_delay==0)
28 1 {
29 2 scan_delay=1;
30 2 Keys.ScanFlag=SCAN_DELAY;
31 2 return;
32 2 }
33 1 Keys.ScanFlag=SCAN_NO;
34 1 scan_delay=0;
35 1 Keys.ScanFlag=SCAN_YES;
36 1 KeyData=KEY_SCAN_START;
37 1 }
38
39 void GetKey(void)
40 {
41 1 if (Keys.ScanFlag==SCAN_NO)
42 1 {
43 2 Keys.Delay=0;
44 2 Keys.Stau=bKEY_RELEASE;
45 2 return ;
46 2 }
47 1 if (KeyData!=Keys.OldKey)
48 1 {
49 2 Keys.OldKey=KeyData;
50 2 Keys.Delay=800;
51 2 Keys.Stau=bKEY_PRESS;
52 2 Keys.ChekFlag=1;
53 2 }
54 1 else if (!Keys.Delay)
55 1 {
C51 COMPILER V7.50 KEY 08/12/2006 10:29:13 PAGE 2
56 2 if ((Keys.Stau==bKEY_PRESS)||(Keys.Stau==bKEY_REPEAT))
57 2 {
58 3 Keys.Delay=50;
59 3 Keys.Stau=bKEY_CONTINU;
60 3 }
61 2 else
62 2 {
63 3 if (Keys.Stau==bKEY_CONTINU)
64 3 Keys.Delay=50;
65 3 else
66 3 {
67 4 Keys.Delay=800;
68 4 Keys.Stau=bKEY_REPEAT;
69 4 }
70 3 }
71 2 Keys.ChekFlag=1;
72 2 }
73 1 Keys.ScanFlag=0;
74 1 }
75
76 void KeyScanToFunc(void)
77 {
78 1 if (Keys.Stau==bKEY_CONTINU)
79 1 Key_Func=KEY_NO_KEY;
80 1 else
81 1 {
82 2 switch (KeyData)
83 2 {
84 3 case KEY_SCAN_START:
85 3 Key_Func=KEY_START;
86 3 break;
87 3 default: Key_Func=KEY_NO_KEY;
88 3 break;
89 3 }
90 2 }
91 1 }
92
93 void Chek_key(void)
94 {
95 1 if (Keys.ChekFlag)
96 1 {
97 2 KeyScanToFunc();
98 2 Keys.ChekFlag=0;
99 2 }
100 1 }
101
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 221 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 14 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -