📄 keyproc.lst
字号:
C51 COMPILER V7.20 KEYPROC 07/16/2005 13:42:40 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE KEYPROC
OBJECT MODULE PLACED IN ..\output\keyproc.obj
COMPILER INVOKED BY: C:\Keil51\C51\BIN\C51.EXE ..\source\KERNEL\keyproc.c BROWSE DEBUG OBJECTEXTEND CODE PRINT(..\output
-\keyproc.lst) OBJECT(..\output\keyproc.obj)
line level source
1 #include "reg52.h"
2 #include "intrins.h"
3 #include "..\..\inc\globedef.h"
4 #include "..\..\inc\keyproc.h"
5 #include "..\..\inc\vfddef.h"
6 #include "..\..\inc\delay.h"
7 #include "..\..\inc\m61538.h"
8 #include "..\..\inc\keydef.h"
9 #include "..\..\inc\tuner.h"
10 #include "..\..\inc\i2c.h"
11 code BYTE IR_KEY_TBL[] =
12 {
13 NO_KEY, //0
14 KEY_1, //1
15 VOLUME_UP_KEY, //2
16 KEY_3, //3
17 KEY_4, //4
18 KEY_0, //5
19 KEY_5PLUS, //6
20 CHANNEL_STEPR_KEY, //7
21 CHANNEL_STEPF_KEY, //8
22 MEMORY_KEY, //9
23 CHANNEL_PREV_KEY, //10
24 CHANNEL_NEXT_KEY, //11
25 KEY_MINUS, //12
26 FUNCTION_KEY, //13
27 KEY_PLUS, //14
28 NO_KEY, //15
29 NO_KEY, //16
30 NO_KEY, //17
31 FMAM_KEY, //18
32 VOLUME_DOWN_KEY, //19
33 CHANNEL_FB_KEY, //20
34 CHANNEL_FF_KEY, //21
35 MUTE_KEY, //22
36 NO_KEY, //23
37 KEY_PLUS, //24
38 FUNCTION_KEY, //25
39 POWER_KEY, //26
40 MEMORY_KEY, //27
41 AUTO_SCAN_KEY, //28
42 NO_KEY, //29
43 KEY_2, //30
44 SOURCE_KEY, //31
45 NO_KEY //32
46 };
47
48 /*=======================================================
49 设置输入源选择
50 =======================================================*/
51 void Source_Set()
52 {
53 1 VFD_ICON_Display(0);
54 1 switch(Current_State)
C51 COMPILER V7.20 KEYPROC 07/16/2005 13:42:40 PAGE 2
55 1 {
56 2
57 2 case TUNER:
58 2 CD4053_SELECT = 0;
59 2 Pin_4052B = 1;
60 2 Pin_4052A = 1;
61 2 VFD_Display("TUNER", 5, 0, 0);
62 2 Change_Tuner_Mode();
63 2 break;
64 2 case AUX1:
65 2 CD4053_SELECT = 0;
66 2 Pin_4052B = 0;
67 2 Pin_4052A = 1;
68 2 VFD_Display("AUX 1 ", 5, 0, 0);
69 2
70 2 break;
71 2 case AUX2:
72 2 CD4053_SELECT = 0;
73 2 Pin_4052B = 0;
74 2 Pin_4052A = 0;
75 2 VFD_Display("AUX 2 ", 5, 0, 0);
76 2 break;
77 2 case CH5:
78 2 CD4053_SELECT = 1;
79 2 VFD_Display("6CH ", 5, 0, 0);
80 2
81 2 break;
82 2 }
83 1
84 1 }
85
86
87
88 /*=====================================================================
89 按键处理函数
90 POWER_KEY具有最高优先级别
91 在MUTE状态下,只有POWER_KEY和VOLUME_KEY有作用
92 有三种按键输入,VFD面板按键,遥控输入按键,飞梭滚轮输入按键
93 =====================================================================*/
94 void KEY_Proc()
95 {
96 1 static BYTE KEY_TEMP[3];
97 1
98 1 if((1 == Panel_KeyAct) || (1 == IR_KeyAct) || (1 == Jog_KeyAct))
99 1 {
100 2 //遥控按键有效
101 2 if(1 == IR_KeyAct)
102 2 {
103 3 if(Remote_value < 33)
104 3 Current_Key = IR_KEY_TBL[Remote_value];
105 3 else
106 3 Current_Key = NO_KEY;
107 3
108 3 IR_KeyAct = 0;
109 3
110 3 //恢复出厂默认值, 方便开机时频率设置成默认值
111 3 if(POWER_Status == 0)//power_off状态
112 3 {
113 4 KEY_TEMP[2] = KEY_TEMP[1];
114 4 KEY_TEMP[1] = KEY_TEMP[0];
115 4 KEY_TEMP[0] = Current_Key;
116 4 if((KEY_TEMP[2] == FUNCTION_KEY) && (KEY_TEMP[1] == KEY_0)
C51 COMPILER V7.20 KEYPROC 07/16/2005 13:42:40 PAGE 3
117 4 && (KEY_TEMP[0] == KEY_5PLUS))
118 4 {
119 5 I2C_PutByte(A24C02, Channel_Test, 0xFF);
120 5 }
121 4 }
122 3
123 3 }
124 2 //飞梭旋钮按键有效
125 2 else if(1 == Jog_KeyAct)
126 2 {
127 3 if(1 == Jog_Key)
128 3 Current_Key = VOLUME_UP_KEY;
129 3 else if(2 == Jog_Key)
130 3 Current_Key = VOLUME_DOWN_KEY;
131 3 Jog_KeyAct = 0;
132 3 Jog_Key = 0;
133 3 }
134 2 //面板按键有效
135 2 else if(1 == Panel_KeyAct)
136 2 {
137 3 if(8 == Panel_Key)
138 3 Current_Key = POWER_KEY;
139 3 else if(4 == Panel_Key)
140 3 Current_Key = SOURCE_KEY;
141 3 else
142 3 Current_Key = NO_KEY;
143 3 Panel_KeyAct = 0;
144 3 Panel_Key = 0;
145 3 }
146 2 if(Current_Key == POWER_KEY)
147 2 {
148 3 Power_Proc();
149 3 }
150 2 else if(POWER_Status == 1)
151 2 {
152 3 {
153 4 if( (Current_Key != MEMORY_KEY ) && (Current_Key != KEY_0)
154 4 &&(Current_Key != KEY_1 ) && (Current_Key != KEY_2)
155 4 &&(Current_Key != KEY_3 ) && (Current_Key != KEY_4)
156 4 &&(Current_Key != KEY_5PLUS))
157 4
158 4 Memory_Start = 0;//记忆标志清零
159 4
160 4 switch(Current_Key)
161 4 {
162 5
163 5 //FL-FR音量调节加函数,音量的调节使用M62429
164 5 case VOLUME_UP_KEY:
165 5 Proc_Volume_UP();
166 5 break;
167 5
168 5 case VOLUME_DOWN_KEY:
169 5 Proc_Volume_DOWN();
170 5 break;
171 5
172 5 case SOURCE_KEY:
173 5 Mute_Switch = 0;
174 5 AV_STANDBY = 0;
175 5 if(Current_State == CH5)
176 5 {
177 6 Current_State = TUNER;
178 6 }
C51 COMPILER V7.20 KEYPROC 07/16/2005 13:42:40 PAGE 4
179 5 else
180 5 Current_State++;
181 5 Source_Set();
182 5 TO_MAIN_DISPLAY = 40;
183 5 break;
184 5
185 5 case FUNCTION_KEY:
186 5 Proc_FUNCTION_Key();
187 5 break;
188 5
189 5 case KEY_MINUS:
190 5 case KEY_PLUS:
191 5 Proc_KEYPLUSorMinus();
192 5 break;
193 5
194 5 case CHANNEL_STEPR_KEY:
195 5 Tuner_Step(0);
196 5 break;
197 5
198 5 case CHANNEL_STEPF_KEY:
199 5 Tuner_Step(1);
200 5 break;
201 5
202 5 case CHANNEL_FF_KEY:
203 5 if(Current_State == TUNER)
204 5 Proc_Tuner_FF_KEY();
205 5 break;
206 5
207 5 case CHANNEL_FB_KEY:
208 5 if(Current_State == TUNER)
209 5 Proc_Tuner_FB_KEY();
210 5 break;
211 5
212 5 case AUTO_SCAN_KEY:
213 5 if(Current_State == TUNER)
214 5 Proc_Tuner_AUTOSCAN_KEY();
215 5 break;
216 5
217 5 case CHANNEL_NEXT_KEY:
218 5 if(Current_State == TUNER)
219 5 Proc_Tuner_NEXT_KEY();
220 5 break;
221 5
222 5 case CHANNEL_PREV_KEY:
223 5 if(Current_State == TUNER)
224 5 Proc_Tuner_PREV_KEY();
225 5 break;
226 5
227 5 case FMAM_KEY:
228 5 if(Current_State == TUNER)
229 5 {
230 6 AV_STANDBY = 1;
231 6 Proc_FMAM_Change();
232 6 AV_STANDBY = 0;
233 6 }
234 5 break;
235 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -