Files

184 lines
7.3 KiB
Plaintext
Raw Permalink Normal View History

C51 COMPILER V9.01 KEY 12/16/2025 16:53:48 PAGE 1
C51 COMPILER V9.01, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN .\Objects\key.obj
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE key.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\Listings\key.l
-st) OBJECT(.\Objects\key.obj)
line level source
1 #include "key.h"
2 #include "GPIO.h"
3 #include "timer.h"
4 #include "string.h"
5 #include "pwm_control.h"
6 KEY_t g_Key;
7
8 void Key_Init(void)
9 {
10 1 GPIO_InitTypeDef GPIO_InitStructure1; //<2F><EFBFBD><E1B9B9><EFBFBD><EFBFBD>
11 1 /***********************************1*******************************************/
12 1 GPIO_InitStructure1.Pin = GPIO_Pin_4; //ָ<><D6B8>Ҫ<EFBFBD><D2AA>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>IO 4
13 1 GPIO_InitStructure1.Mode = GPIO_PullUp; //ָ<><D6B8>IO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ,GPIO_PullUp
14 1 GPIO_Inilize(GPIO_P4,&GPIO_InitStructure1); //<2F><>ʼ<EFBFBD><CABC>
15 1 memset(&g_Key, 0, sizeof(g_Key));
16 1 }
17
18 void Key_ScanTask(void)
19 {
20 1 u8 i;
21 1 static u32 update_10ms = 0;
22 1
23 1 if (systick_1ms - update_10ms > 10)
24 1 {
25 2 update_10ms = systick_1ms;
26 2
27 2 for (i = 0; i < KEY_CHN_MAX; i++)
28 2 {
29 3 switch (g_Key.KEY_STA[i])
30 3 {
31 4 case KEY_STA_S0:
32 4 if ( P44 == KEY_PRESS )
33 4 {
34 5 if (g_Key.delayCnt[i] < KEY_DELAY_COUNT)
35 5 {
36 6 g_Key.delayCnt[i]++;
37 6 }
38 5 else
39 5 {
40 6 g_Key.KEY_STA[i] = KEY_STA_S1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
41 6 g_Key.key_time[i] = 0;
42 6 g_Key.delayCnt[i] = 0;
43 6 }
44 5 }
45 4 else
46 4 {
47 5 g_Key.delayCnt[i] = 0;
48 5 g_Key.KEY_STA[i] = KEY_STA_S0;
49 5 g_Key.key_val[i] = KEY_VAL_NOT;
50 5 }
51 4 break;
52 4 case KEY_STA_S1:
53 4 g_Key.key_time[i] ++;
54 4 if ( g_Key.key_time[i] < KEY_DELAY_COUNT_LONG )
C51 COMPILER V9.01 KEY 12/16/2025 16:53:48 PAGE 2
55 4 {
56 5 if ( P44 == KEY_LOOSEN ) //<2F>ɿ<EFBFBD>
57 5 {
58 6 g_Key.key_val[i] = KEY_VAL_SHORT_PRESS; //<2F>̰<EFBFBD><CCB0>ɿ<EFBFBD>
59 6 g_Key.key_time[i] = 0;
60 6 g_Key.KEY_STA[i] = KEY_STA_S0;
61 6 }
62 5 }
63 4 else
64 4 {
65 5 g_Key.KEY_STA[i] = KEY_STA_S2;
66 5 g_Key.key_time[i] = 0;
67 5 g_Key.key_longPress[i] = KEY_VAL_SINGLE_LONG_PRESS; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
68 5 g_Key.key_val[i] = KEY_VAL_CONT_LONG_PRESS; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
69 5 }
70 4 break;
71 4
72 4 case KEY_STA_S2:
73 4 g_Key.key_longPress[i] = KEY_VAL_NOT;
74 4 if ( P44 == KEY_LOOSEN )
75 4 {
76 5 g_Key.KEY_STA[i] = KEY_STA_S0;
77 5 g_Key.key_val[i] = KEY_VAL_LONG_PRESS_LOOSEN; //<2F><><EFBFBD><EFBFBD><EFBFBD>ɿ<EFBFBD>
78 5 }
79 4 break;
80 4 }
81 3 }
82 2 }
83 1 }
84
85
86 void KEY_TEST(void)
87 {
88 1 u8 flag;
89 1 if (g_Key.key_val[KEY_CH1] == KEY_VAL_SHORT_PRESS)
90 1 {
91 2 g_Key.key_val[KEY_CH1] = KEY_VAL_NOT;
92 2 s_pwm.key_value++;
93 2 switch (s_pwm.key_value)
94 2 {
95 3 case 1:
96 3 s_pwm.currpwm[0] = 2000ul; //90%<25><><EFBFBD><EFBFBD>
97 3 s_pwm.currvalue[0]=0x5A;
98 3 break;
99 3 case 2:
100 3 s_pwm.currpwm[1] = 2000ul;
101 3 s_pwm.currvalue[1]=0x5A;
102 3 break;
103 3 case 3:
104 3 s_pwm.currpwm[2] = 2000ul;
105 3 s_pwm.currvalue[2]=0x5A;
106 3 break;
107 3 case 4:
108 3 s_pwm.currpwm[3] = 2000ul;
109 3 s_pwm.currvalue[3]=0x5A;
110 3 break;
111 3 case 5:
112 3 s_pwm.currpwm[4] = 2000ul;
113 3 s_pwm.currvalue[4]=0x5A;
114 3 break;
115 3 case 6:
116 3 s_pwm.currpwm[5] = 2000ul;
C51 COMPILER V9.01 KEY 12/16/2025 16:53:48 PAGE 3
117 3 s_pwm.currvalue[5]=0x5A;
118 3 break;
119 3 case 7:
120 3 s_pwm.currpwm[6] = 2000ul;
121 3 s_pwm.currvalue[6]=0x5A;
122 3 break;
123 3 case 8:
124 3 s_pwm.currpwm[7] = 2000ul;
125 3 s_pwm.currvalue[7]=0x5A;
126 3 break;
127 3 case 9:
128 3 s_pwm.currpwm[8] = 2000ul;
129 3 s_pwm.currvalue[8]=0x5A;
130 3 break;
131 3 case 10:
132 3 s_pwm.currpwm[9] = 2000ul;
133 3 s_pwm.currvalue[9]=0x5A;
134 3 break;
135 3 case 11:
136 3 s_pwm.currpwm[10] = 2000ul;
137 3 s_pwm.currvalue[10]=0x5A;
138 3 break;
139 3 case 12:
140 3 s_pwm.currpwm[11] = 2000ul;
141 3 s_pwm.currvalue[11]=0x5A;
142 3 break;
143 3 case 13:
144 3 for(flag=0;flag<12;flag++)
145 3 {
146 4 s_pwm.currpwm[flag] = PWM_MAX_VALUE;
147 4 s_pwm.currvalue[flag]=0x00;
148 4 }
149 3 s_pwm.key_value = 0;
150 3 break;
151 3 default:
152 3 break;
153 3 }
154 2 }
155 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 553 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)