ZDBMS/output/KeyScan.lst

166 lines
9.5 KiB
Plaintext
Raw Normal View History

2025-02-14 08:59:29 +00:00
C51 COMPILER V9.01 KEYSCAN 02/13/2025 10:07:28 PAGE 1
2025-02-06 07:35:32 +00:00
C51 COMPILER V9.01, COMPILATION OF MODULE KEYSCAN
OBJECT MODULE PLACED IN .\output\KeyScan.obj
COMPILER INVOKED BY: D:\Tool\Keil\C51\BIN\C51.EXE code_drv\KeyScan.c LARGE OPTIMIZE(7,SIZE) REGFILE(.\output\MCUCore_Loa
-d.ORC) BROWSE INTVECTOR(0X1000) INCDIR(.\header_app;.\header_drv;.\code_gasguage;.\code_classb\iec60730_lib\include;.\co
-de_classb\iec60730_proc\Include;.\code_classb\config) DEBUG OBJECTEXTEND PRINT(.\output\KeyScan.lst) OBJECT(.\output\Key
-Scan.obj)
line level source
1 /********************************************************************************
2 Copyright (C), Sinowealth Electronic. Ltd.
3 Author: Sino
4 Version: V0.0
5 Date: 2020/04/26
6 History:
7 V2.0 2020/04/26 Preliminary
8 ********************************************************************************/
9 #include "Main.h"
10
11
12 BOOL bKeyFlg;
13 U16 data uiKeyValidCnt;
14 U16 data uiKeyInvalidCnt;
15 U8 data ucKeyValue;
16 U8 data ucKeyOldValue;
17 U8 data ucKeyValueBK;
18
19 /*************************************************************************************************
20 * <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: ScanKey
21 * <20><> <20><>: <20><>
22 * <20><><EFBFBD><EFBFBD>ֵ: <20><>
23 * <20><> <20><>: 1. <20>̰<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB5AF><EFBFBD>󣬲<EFBFBD><F3A3ACB2><EFBFBD>ʶ<EFBFBD><CAB6>Ϊ<EFBFBD>̰<EFBFBD><CCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
24 2. <20><><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣬾<EFBFBD><F0A3ACBE><EFBFBD>ʶ<EFBFBD><CAB6>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򳤰<EFBFBD><F2B3A4B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
25 3. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µİ<C2B5><C4B0><EFBFBD><EFBFBD><EFBFBD>
26 4.ͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>󴥷<EFBFBD><F3B4A5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1B1BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
27 5. bKeyFlg<6C><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B5BD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ1
28 6. ucKeyValue<75><65><EFBFBD><EFBFBD>4bit<69><74>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD>̰<EFBFBD><CCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4bit<69><74>ʾ<EFBFBD><CABE>ֵ
29 7. ucKeyValueBK <20><><EFBFBD><EFBFBD><E6B0B4>״̬<D7B4><CCAC><EFBFBD>ް<EFBFBD><DEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD>1<EFBFBD><31><EFBFBD>а<EFBFBD><D0B0><EFBFBD>2
30 8. uiKeyValidCnt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
31 9. uiKeyInvalidCnt <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
32 *************************************************************************************************/
33 void KeyScan(void)
34 {
35 1 if(!bKeyFlg)
36 1 {
37 2 ucKeyValueBK = KEYVAL_NULL; //<2F><>Ĭ<EFBFBD><C4AC><EFBFBD>ް<EFBFBD><DEB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
38 2
39 2 #ifdef KEY_NUM1_DEF //1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(!KEY_1_IO_RD)
{
ucKeyValueBK = KEYVAL_1;
}
#endif
45 2 #ifdef KEY_NUM2_DEF //2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
46 2 if(!KEY_1_IO_RD)
47 2 {
48 3 ucKeyValueBK = KEYVAL_1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>º󣬻<C2BA>ȡ<EFBFBD>¼<EFBFBD>ֵ
49 3 }
50 2 else if(!KEY_2_IO_RD)
51 2 {
52 3 ucKeyValueBK = KEYVAL_2; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>º󣬻<C2BA>ȡ<EFBFBD>¼<EFBFBD>ֵ
2025-02-14 08:59:29 +00:00
C51 COMPILER V9.01 KEYSCAN 02/13/2025 10:07:28 PAGE 2
2025-02-06 07:35:32 +00:00
53 3 }
54 2 #endif
55 2 #ifdef KEY_NUM3_DEF //3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(!KEY_1_IO_RD)
{
ucKeyValueBK = KEYVAL_1;
}
else if(!KEY_2_IO_RD)
{
ucKeyValueBK = KEYVAL_2;
}
else if(!KEY_3_IO_RD)
{
ucKeyValueBK = KEYVAL_3;
}
#endif
69 2 if(ucKeyValueBK != ucKeyOldValue) //ucKeyValueBK<42>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µļ<C2B5>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>ֵ<EFBFBD><D6B5>
-<2D>ϼ<EFBFBD>ֵ<EFBFBD><D6B5>ͬ<EFBFBD><CDAC>
70 2 {
71 3 uiKeyInvalidCnt++; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ΰ<EFBFBD><CEB0><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>0<EFBFBD><30>
-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>һֱ<D2BB><D6B1><EFBFBD><EFBFBD>
72 3 if(uiKeyValidCnt >= KEY_S_TIME) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>º<EFBFBD>һֱ<D2BB><D6B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
73 3 { //<2F><><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>uiKeyValidCnt >
-= KEY_S_TIME<4D><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ̰<C7B6>
74 4 if(uiKeyInvalidCnt >= KEY_S_TIME) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD><CCB0><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>һ<EFBFBD><D2BB>
-<2D><><EFBFBD>º͵<C2BA><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>
75 4 {
76 5 if(uiKeyValidCnt >= KEY_L_TIME) //<2F>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƕ̰<C7B6><CCB0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
77 5 {
78 6 ucKeyValue = ucKeyOldValue | KEY_STATE_LE; //<2F><><EFBFBD>µ<EFBFBD>ʱ<EFBFBD><EFBFBD><E4B3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC>Ϊ<EFBFBD>dz<EFBFBD><C7B3><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˡ<EFBFBD><CBA1><EFBFBD>״̬Ŀ
-ǰδʹ<CEB4><CAB9>
79 6 }
80 5 else
81 5 {
82 6 ucKeyValue = ucKeyOldValue | KEY_STATE_S; //<2F><><EFBFBD>µ<EFBFBD>ʱ<EFBFBD><CAB1>û<EFBFBD>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4A3AC>Ϊ<EFBFBD><CEAA>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD>Ķ̰<C4B6><CCB0><EFBFBD><EFBFBD><EFBFBD>
83 6 }
84 5 bKeyFlg = 1; //<2F>̰<EFBFBD><CCB0><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬ȥ<E2A3AC><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
85 5 goto scanend;
86 5 }
87 4 // else
88 4 // {
89 4 // uiKeyValidCnt++; //<2F><><EFBFBD><EFBFBD>Ӧ<EFBFBD><D3A6>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>KEY_S_TIME<4D><45><EFBFBD><EFBFBD>KEY_L_TIME<4D><45>һ<EFBFBD>
-뼰<><EBBCB0><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>Ѷ̰<D1B6><CCB0><EFBFBD>ʶ<EFBFBD><CAB6>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
90 4 // }
91 4 }
92 3 else //ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>̰<EFBFBD><CCB0><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><E4B6BC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>
-<2D><><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC>
93 3 {
94 4 goto scanend;
95 4 }
96 3 }
97 2 else //ucKeyValueBK<42>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µļ<C2B5>ֵ<EFBFBD><D6B5><EFBFBD>¼<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ϼ<EFBFBD>
<><D6B5>ͬ<EFBFBD><CDAC>˵<EFBFBD><CBB5><EFBFBD><EFBFBD>ͬһ<CDAC><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
98 2 {
99 3 if(ucKeyValueBK != KEYVAL_NULL) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µİ<C2B5><C4B0><EFBFBD>
100 3 {
101 4 uiKeyInvalidCnt = 0; //<2F><EFBFBD><E5B5AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
102 4 uiKeyValidCnt++; //<2F>ۼӰ<DBBC><D3B0>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD>
103 4 if(uiKeyValidCnt == KEY_L_TIME) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFB5BD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>ʱ<EFBFBD><CAB1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϊ<EFBFBD>˰<EFBFBD><CBB0><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
104 4 {
105 5 ucKeyValue = ucKeyOldValue | KEY_STATE_L;
2025-02-14 08:59:29 +00:00
C51 COMPILER V9.01 KEYSCAN 02/13/2025 10:07:28 PAGE 3
2025-02-06 07:35:32 +00:00
106 5 bKeyFlg = 1;
107 5 }
108 4 else if(uiKeyValidCnt == KEY_LC_TIME) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD>ʱ<EFBFBD><CAB1>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>Ϊ<EFBFBD>˰<EFBFBD><CBB0><EFBFBD>Ϊ<EFBFBD><CEAA>
-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
109 4 {
110 5 uiKeyValidCnt = KEY_L_TIME;
111 5 ucKeyValue = ucKeyOldValue | KEY_STATE_LC;
112 5 bKeyFlg = 1;
113 5 }
114 4 }
115 3 else //<2F>¼<EFBFBD>ֵ<EFBFBD>ǿռ<C7BF>ֵ<EFBFBD><D6B5>˵<EFBFBD><CBB5>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD>
116 3 {
117 4 ucKeyValue = KEYVAL_NULL; //ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ˣ<EFBFBD><CBA3><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>³<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
118 4 scanend:
119 4 uiKeyValidCnt = 0;
120 4 uiKeyInvalidCnt = 0;
121 4 ucKeyOldValue = ucKeyValueBK;
122 4 }
123 3 }
124 2 }
125 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 162 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 7 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)