📄 main.lst
字号:
C51 COMPILER V7.01 MAIN 12/01/2005 09:38:54 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN MAIN.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE MAIN.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*
2 //*************************************************************************
3 //
4 // M X I C(ShenZhen) P R O P R I E T A R Y
5 //
6 // COPYRIGHT (c) 2005 BY MXIC SHENZHEN.
7 // -- ALL RIGHTS RESERVED --
8 //
9 // File Name: Ti's 8050I Case.C
10 // Created: 19 Oct.05 by AndyHu
11 // Modified:
12 // Revision: 1.0
13 //
14 //*************************************************************************
15 //
16 //
17 //*************************************************************************
18 */
19 #include <stdio.h>
20 #include "mxREG52.h"
21 #include "i2cm.h"
22 #include "Mxic_IR.h"
23
24 /////
25 #define SLA_R 0xD8
26 #define SLA_W 0xD9
27 #define POWER 0x7E
28 #define VOLUMN_LEFT 0x7D
29 #define VOLUMN_RIGHT 0x7B
30 #define PROGRAM_LEFT 0x77
31 #define PROGRAM_RIGHT 0x6F
32 #define MENU 0x5F
33 #define SOURCE_IN 0x3F
34 #define ISP 0x79
35 #define ENABLE_I2C 0xC6
36
37 sbit data_ready = P0^7;
38 sbit Power_on_system = P1^5;
39 sbit Reset_TVP9000 = P1^4;
40 sbit LED = P1^3;
41 bit ISP_flag_1;
42 bit ISP_flag_2;
43 bit ISP_flag_3;
44 bit ISP_flag_4;
45
46 extern bit PWM_flag;
47
48 extern void Backlight_Control(void);
49 extern void start_ISP(void);
50 void EnableISP(void);
51 extern unsigned char power_down_status = 0x00;
52 extern unsigned char volumn_left_status = 0x00;
53 extern unsigned char volumn_right_status = 0x00;
54 extern unsigned char program_left_status = 0x00;
55 extern unsigned char program_right_status= 0x00;
C51 COMPILER V7.01 MAIN 12/01/2005 09:38:54 PAGE 2
56 extern unsigned char menu_status = 0x00;
57 extern unsigned char source_in_status = 0x00;
58 extern unsigned char PWM_status;
59
60 BYTE key;
61 unsigned char action_ready_to_handle;
62 unsigned char menu_key_press_speet_flag;
63
64 unsigned char Power_off;
65 unsigned char IR_receive_flag;
66 unsigned char MxicIrBitsb1IrOn;
67 unsigned char MxicIrBitsb1GetIrFlame;
68 unsigned char MxicIrBitsb1GetIrRepeatCode;
69 unsigned char MxicIrBitsb1GetIrCommand;
70
71 unsigned char Power_status;
72 extern unsigned char idata FReceive_Done;
73
74 void test_power_action(void);
75 void Initi_MCU_slaver(void);
76 //extern void InitialTimer1(void); //for IR sampling
77 void InitialTimer0(void);
78 extern bit EnableIr(void);
79 extern bit CheckIrFlame(void);
80 extern BYTE GetIrCodeData(void);
81 extern BYTE GetIrIDData(void);
82
83 BYTE WaitKey(void);
84 BYTE key;
85 void Ir_power_operation(void);
86 void key_function_operation(void);
87 void delay(int i);
88
89 void key_function_operation(void)
90 {
91 1 switch(key)
92 1 {
93 2 case POWER:
94 2 if(Power_status == 0x00)
95 2 {
96 3 ISP_flag_1 = 0;
97 3 ISP_flag_2 = 0;
98 3 ISP_flag_3 = 0;
99 3 ISP_flag_4 = 0;
100 3
101 3 LED = 0;
102 3 Power_on_system = 1;//power on the whole system
103 3 delay(150);
104 3 Reset_TVP9000 = 0;
105 3 delay(100);
106 3 Reset_TVP9000 = 1;//reset TVP9000
107 3 key = 0x00;
108 3 Power_status = 0x01;
109 3 }
110 2 else
111 2 {
112 3 ISP_flag_1 = 0;
113 3 ISP_flag_2 = 0;
114 3 ISP_flag_3 = 0;
115 3 ISP_flag_4 = 0;
116 3
117 3 power_down_status = 0x01;//POWER KEY's status flage
C51 COMPILER V7.01 MAIN 12/01/2005 09:38:54 PAGE 3
118 3 data_ready = 0;//tell TVP9000 to powerdown system,
119 3 delay(5);
120 3 data_ready = 1;
121 3 key = 0x00;
122 3 Power_status = 0x00;
123 3 }
124 2 break;
125 2
126 2 case VOLUMN_LEFT:
127 2 if(Power_status == 0x01)
128 2 {
129 3 ISP_flag_1 = 0;
130 3 ISP_flag_2 = 0;
131 3 ISP_flag_3 = 0;
132 3 ISP_flag_4 = 0;
133 3
134 3 if(menu_key_press_speet_flag == 0x01)
135 3 {
136 4 delay(120);
137 4 volumn_left_status = 0x01;
138 4 data_ready = 0;
139 4 delay(5);
140 4 data_ready = 1;
141 4 key = 0x00;
142 4 menu_key_press_speet_flag = 0x00;
143 4 }
144 3 else
145 3 {
146 4 delay(90);
147 4 volumn_left_status = 0x01;
148 4 data_ready = 0;
149 4 delay(5);
150 4 data_ready = 1;
151 4 key = 0x00;
152 4 }
153 3 }
154 2 break;
155 2
156 2 case VOLUMN_RIGHT:
157 2 if(Power_status == 0x01)
158 2 {
159 3 if(ISP_flag_1 == 1)
160 3 {
161 4 if(ISP_flag_2 == 1)
162 4 {
163 5 ISP_flag_3 = 1;
164 5 ISP_flag_4 = 0;
165 5 }
166 4 else
167 4 {
168 5 ISP_flag_1 = 0;
169 5 }
170 4 }
171 3 else
172 3 {
173 4 ISP_flag_1 = 0;
174 4 ISP_flag_2 = 0;
175 4 ISP_flag_3 = 0;
176 4 ISP_flag_4 = 0;
177 4 }
178 3
179 3 if(menu_key_press_speet_flag == 0x01)
C51 COMPILER V7.01 MAIN 12/01/2005 09:38:54 PAGE 4
180 3 {
181 4 delay(120);
182 4 volumn_right_status = 0x01;
183 4 data_ready = 0;
184 4 delay(5);
185 4 data_ready = 1;
186 4 key = 0x00;
187 4 menu_key_press_speet_flag = 0x00;
188 4 }
189 3 else
190 3 {
191 4 delay(90);
192 4 volumn_right_status = 0x01;
193 4 data_ready = 0;
194 4 delay(5);
195 4 data_ready = 1;
196 4 key = 0x00;
197 4 }
198 3 }
199 2 break;
200 2
201 2 case PROGRAM_LEFT:
202 2 if(Power_status == 0x01)
203 2 {
204 3 ISP_flag_1 = 0;
205 3 ISP_flag_2 = 0;
206 3 ISP_flag_3 = 0;
207 3 ISP_flag_4 = 0;
208 3
209 3 program_left_status = 0x01;
210 3 data_ready = 0;
211 3 delay(40);
212 3 data_ready = 1;
213 3 key = 0x00;
214 3 }
215 2 break;
216 2
217 2 case PROGRAM_RIGHT:
218 2 if(Power_status == 0x01)
219 2 {
220 3 if(ISP_flag_1 == 1)
221 3 {
222 4 ISP_flag_2 = 1;
223 4 }
224 3 else
225 3 {
226 4 ISP_flag_1 = 0;
227 4 ISP_flag_2 = 0;
228 4 ISP_flag_3 = 0;
229 4 ISP_flag_4 = 0;
230 4 }
231 3 program_right_status = 0x01;
232 3 data_ready = 0;
233 3 delay(40);
234 3 data_ready = 1;
235 3 key = 0x00;
236 3 }
237 2 break;
238 2
239 2 case MENU:
240 2 if(Power_status == 0x01)
241 2 {
C51 COMPILER V7.01 MAIN 12/01/2005 09:38:54 PAGE 5
242 3 ISP_flag_1 = 1;
243 3 if(ISP_flag_1 == 1)
244 3 {
245 4 if(ISP_flag_2 == 1)
246 4 {
247 5 if(ISP_flag_3 == 1)
248 5 {
249 6 if(ISP_flag_4 == 1)
250 6 {
251 7 ISP_flag_4 = 0;
252 7 EnableISP();
253 7 }
254 6 else
255 6 {
256 7 ISP_flag_1 = 0;
257 7 ISP_flag_2 = 0;
258 7 ISP_flag_3 = 0;
259 7 }
260 6 }
261 5 }
262 4 }
263 3
264 3 delay(100);
265 3 menu_key_press_speet_flag = 0x01;
266 3 menu_status = 0x01;
267 3 data_ready = 0;
268 3 delay(5);
269 3 data_ready = 1;
270 3 key = 0x00;
271 3 }
272 2 break;
273 2
274 2 case SOURCE_IN:
275 2 if(Power_status == 0x01)
276 2 {
277 3 if(ISP_flag_1 == 1)
278 3 {
279 4 if(ISP_flag_2 == 1)
280 4 {
281 5 if(ISP_flag_3 == 1)
282 5 {
283 6 ISP_flag_4 = 1;
284 6 }
285 5 else
286 5 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -