📄 disp_task.lst
字号:
C51 COMPILER V7.50 DISP_TASK 02/16/2009 09:59:55 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DISP_TASK
OBJECT MODULE PLACED IN disp_task.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE modules\display\disp_task.c LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\disp_ta
-sk.lst) OBJECT(disp_task.obj)
line level source
1
2 #include "config.h" /* system configuration */
3 #include "lib_mcu\kbd\key_drv.h" /* Keyboard driver definition */
4 #include "modules\song\song_drv.h" /* song driver definition */
5 #include "modules\file\file.h" /* file definition */
6 #include "disp_task.h" /* display task definition */
7 #include "lib_mcu\lcd\lcd_drv.h" /* display definition */
8 #include <stdio.h>
9
10
11 extern Byte key_mode_last;
12 extern Byte key_mode;
13 extern Byte song_sound;
14
15 extern data Byte gl_cpt_tick; /* general tick counter */
16
17 static data Byte disp_state; /* task state */
18 static bdata bit disp_clock_on; /* set to TRUE to start clock */
19 static data Byte disp_sec_cpt; /* second counter */
20 static data Byte disp_min_cpt; /* minute counter */
21 static bdata bit disp_clock_on; /* set to TRUE to start clock */
22
23
24 static data char pdata * disp_buffer;
25
26
27
28 void print_repeat(bit a)
29 {
30 1 a=a;
31 1 }
32
33 void print_state_error()
34 {
35 1 }
36
37 void disp_name_stop()
38 {
39 1 }
40
41 void disp_end_of_play()
42 {
43 1 }
44
45 /////////////////////////////////////////////////////////////////////////////////////
46 void print_init (void)
47 {
48 1 lcd_ini(); /* lcd initialization */
49 1 }
50
51 ////////////////////////////////////////////////////////////////////////////////////
52 void print_state_play(void)
53 {
54 1 lcd_print_string(22,">>");
C51 COMPILER V7.50 DISP_TASK 02/16/2009 09:59:55 PAGE 2
55 1 }
56
57 ////////////////////////////////////////////////////////////////////////////////////
58 void print_state_pause()
59 {
60 1 lcd_print_string(22,"||");
61 1 }
62
63 /*
64 ////////////////////////////////////////////////////////////////////////////////////
65 bit print_name (char pdata *string)
66 {
67 #if CONF_DISPLAY == LCD
68 lcd_set_cur(POS_FILE);
69 lcd_putchar(*string++);
70 lcd_putchar(*string++);
71 lcd_putchar(*string++);
72 lcd_putchar(*string++);
73 lcd_putchar(*string++);
74 lcd_putchar(*string++);
75 lcd_putchar(*string++);
76 lcd_putchar(*string++);
77 lcd_putchar(*string++);
78 lcd_putchar(*string++);
79 lcd_putchar(*string++);
80 lcd_putchar(*string++);
81 lcd_putchar(*string++);
82 lcd_putchar(*string++);
83 return (*string == '\0');
84 #else
85 if (string);
86 return 1;
87 #endif
88 }
89 */
90
91
92 ////////////////////////////////////////////////////////////////////////////////////
93 void print_file_name()
94 {
95 1 #if CONF_DISPLAY == LCD
96 1 switch(File_type()) /* print file type icon */
97 1 {
98 2 case FILE_DIR:
99 2 lcd_print_string(18,"DIR"); /* select directory icon */
100 2 break;
101 2
102 2 case FILE_MP3:
103 2 lcd_print_string(18,"MP3"); /* select song icon */
104 2 break;
105 2
106 2 case FILE_WAV:
107 2 lcd_print_string(18,"WAV"); /* select voice icon */
108 2 break;
109 2
110 2 default:
111 2 lcd_print_string(16," "); /* select voice icon */
112 2 break;
113 2 }
114 1 #endif
115 1 //disp_name_start(); /* start name display */
116 1 disp_buffer = File_get_name();
C51 COMPILER V7.50 DISP_TASK 02/16/2009 09:59:55 PAGE 3
117 1 lcd_print_string(0x40, disp_buffer);
118 1 }
119
120
121 ////////////////////////////////////////////////////////////////////////////////////
122 void print_key_mode(void)
123 {
124 1 switch(key_mode)
125 1 {
126 2 case MP3_PLAY_MODE:
127 2 lcd_print_string(10,"PLAY");
128 2 break;
129 2
130 2 case MP3_VOL_MODE:
131 2 lcd_print_string(10,"VOLU");
132 2 break;
133 2
134 2 case MP3_BASS_MODE:
135 2 lcd_print_string(10,"BASS");
136 2 break;
137 2
138 2 case MP3_MED_MODE:
139 2 lcd_print_string(10,"MEDI");
140 2 break;
141 2
142 2 case MP3_TRE_MODE:
143 2 lcd_print_string(10,"TREB");
144 2 break;
145 2
146 2 case MP3_BOOST_MODE:
147 2 lcd_print_string(10,"BOOS");
148 2 break;
149 2
150 2 default:
151 2 break;
152 2 }
153 1
154 1 }
155
156
157 ///////////////////////////////////////////////////////////////////////////////
158 void print_sound_level()
159 {
160 1 INT8U pStr[9] = " ";
161 1
162 1 INT16U u16Value;
163 1
164 1 u16Value = song_get_level();
165 1
166 1 switch (song_sound)
167 1 {
168 2 case SND_VOLUME:
169 2 sprintf(pStr, "VOLU:%02d\0", u16Value);
170 2 lcd_print_string(0x51, pStr);
171 2 break;
172 2
173 2 case SND_BASS:
174 2 sprintf(pStr, "BASS:%02d\0", u16Value);
175 2 lcd_print_string(0x51, pStr);
176 2 break;
177 2
178 2 case SND_MEDIUM:
C51 COMPILER V7.50 DISP_TASK 02/16/2009 09:59:55 PAGE 4
179 2 sprintf(pStr, "MEDI:%02d\0", u16Value);
180 2 lcd_print_string(0x51, pStr);
181 2 break;
182 2
183 2 case SND_TREBLE:
184 2 sprintf(pStr, "TREB:%02d\0", u16Value);
185 2 lcd_print_string(0x51, pStr);
186 2 break;
187 2
188 2 case SND_BBOOST:
189 2 sprintf(pStr, "BBST:%02d\0", u16Value);
190 2 lcd_print_string(0x51, pStr);
191 2 break;
192 2
193 2 case SND_NONDIS:
194 2 sprintf(pStr, " ");
195 2 lcd_print_string(0x51, pStr);
196 2 break;
197 2 }
198 1 }
199
200
201 ///////////////////////////////////////////////////////////////////////////////
202 void print_min(INT8U u8Min)
203 {
204 1 INT8U pStr[4];
205 1 INT16U u16Min;
206 1 u16Min = u8Min;
207 1
208 1 sprintf(pStr, "%02d:\0", u16Min);
209 1 lcd_print_string(0x4a, pStr);
210 1 }
211
212 ///////////////////////////////////////////////////////////////////////////////
213 void print_sec(INT8U u8Sec)
214 {
215 1 INT8U pStr[3];
216 1 INT16U u16Sec;
217 1 u16Sec = u8Sec;
218 1
219 1 sprintf(pStr, "%02d\0", u16Sec);
220 1 lcd_print_string(0x4d, pStr);
221 1 }
222
223
224 ///////////////////////////////////////////////////////////////////////////////
225 void print_time(INT8U u8Min,INT8U u8Sec)
226 {
227 1 print_min(u8Min);
228 1 print_sec(u8Sec);
229 1 }
230
231
232 ///////////////////////////////////////////////////////////////////////////////
233 void disp_clock_reset (void)
234 {
235 1 disp_clock_on = FALSE;
236 1 disp_sec_cpt = 0;
237 1 disp_min_cpt = 0;
238 1 print_time(0, 0); /* display 0:00 */
239 1 }
240
C51 COMPILER V7.50 DISP_TASK 02/16/2009 09:59:55 PAGE 5
241
242 ///////////////////////////////////////////////////////////////////////////////
243 void disp_clock_start (void)
244 {
245 1 disp_clock_on = TRUE;
246 1 }
247
248
249 ///////////////////////////////////////////////////////////////////////////////
250 void disp_clock_stop (void)
251 {
252 1 disp_clock_on = FALSE;
253 1 }
254
255 ///////////////////////////////////////////////////////////////////////////////
256 void disp_cdrom_time(INT8U u8Track,INT8U u8Min,INT8U u8Sec)
257 {
258 1 INT8U pStr[20];
259 1
260 1 INT16U u16Track,u16Min,u16Sec;
261 1 u16Track = u8Track;
262 1 u16Min = u8Min;
263 1 u16Sec = u8Sec;
264 1 sprintf(pStr, "Track %02d %02d:%02d", u16Track,u16Min,u16Sec);
265 1 lcd_print_string(0x09, pStr);
266 1 }
267
268
269
270
271
272 ///////////////////////////////////////////////////////////////////////////////
273 void disp_task_init(void)
274 {
275 1 disp_clock_on = FALSE;
276 1 disp_state = DISP_INIT;
277 1 //print_init();
278 1 }
279
280 ///////////////////////////////////////////////////////////////////////////////
281 void disp_task (void)
282 {
283 1 switch (disp_state)
284 1 {
285 2 case DISP_IDLE:
286 2 {
287 3 break;
288 3 }
289 2
290 2 case DISP_INIT:
291 2 {
292 3 disp_state = DISP_TICK0;
293 3 gl_cpt_tick = 0;
294 3 break;
295 3 }
296 2
297 2 case DISP_TICK0:
298 2 {
299 3 disp_state = DISP_TICK1;
300 3 break;
301 3 }
302 2
C51 COMPILER V7.50 DISP_TASK 02/16/2009 09:59:55 PAGE 6
303 2 case DISP_TICK1:
304 2 {
305 3 if (gl_cpt_tick > DISP_TICK_SEC) /* 1/2 sec expiration */
306 3 {
307 4 gl_cpt_tick -= DISP_TICK_SEC;
308 4 if (disp_clock_on)
309 4 {
310 5 disp_state = DISP_SEC;
311 5 }
312 4 else
313 4 {
314 5 disp_state = DISP_TICK0;
315 5 }
316 4 }
317 3 break;
318 3 }
319 2
320 2 case DISP_SEC:
321 2 {
322 3 if (disp_sec_cpt == DISP_SEC_MIN) /* 1 min expiration */
323 3 {
324 4 disp_sec_cpt = 0;
325 4 print_sec(disp_sec_cpt);
326 4 disp_state = DISP_MIN;
327 4 }
328 3 else
329 3 {
330 4 disp_sec_cpt++;
331 4 print_sec(disp_sec_cpt);
332 4 disp_state = DISP_TICK0;
333 4 }
334 3 break;
335 3 }
336 2
337 2 case DISP_MIN:
338 2 {
339 3 disp_min_cpt++;
340 3 print_min(disp_min_cpt);
341 3 disp_state = DISP_TICK0;
342 3 break;
343 3 }
344 2 }
345 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 656 ----
CONSTANT SIZE = 159 ----
XDATA SIZE = ---- 43
PDATA SIZE = ---- ----
DATA SIZE = 4 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -