📄 main.lst
字号:
211 1
212 1 }
213
214
215
216 void Process_Delay_Event(void)
217 {
218 1
219 1 Update_LCD_Display();
220 1
221 1
222 1 if(System_Flag_Being_Scrolling)
223 1 {
224 2 if(Timer_for_Sytem_Display>SCROLL_TEXT_TIME_INTERVEL_X3mS)
225 2 {
226 3 Timer_for_Sytem_Display=0;
227 3 Scrolling_Chars();
228 3
229 3
230 3 }
231 2
232 2 }
233 1 if(System_Flag_RTC_Update==TRUE)
234 1 {
235 2 U8 RTC_String[8];
236 2 System_RTC_Second++;
237 2
238 2 if(System_RTC_Second==60)
239 2 {
240 3 System_RTC_Second=0;
241 3 System_RTC_Minute++;
C51 COMPILER V8.02 MAIN 10/16/2006 17:42:28 PAGE 5
242 3 if(System_RTC_Minute==60)
243 3 {
244 4 System_RTC_Minute=0;
245 4 System_RTC_Hour++;
246 4 if(System_RTC_Hour==24)
247 4 System_RTC_Hour=0;
248 4
249 4 }
250 3
251 3 }
252 2 System_Flag_RTC_Update=FALSE;
253 2
254 2 if(System_Flag_Temp_DisplaY==0
255 2 &&System_Flag_Being_Scrolling==0)
256 2 {
257 3 LCD_Display_String(0," ");
258 3 RTC_String[0]=System_RTC_Hour/10+'0';
259 3 RTC_String[1]=System_RTC_Hour%10+'0';
260 3 RTC_String[2]=System_RTC_Minute/10+'0';
261 3 RTC_String[3]=System_RTC_Minute%10+'0';
262 3 LCD_Icon_Display_Control(SEG_P5,ON);
263 3 LCD_Icon_Display_Control(SEG_P8,ON);
264 3 LCD_Icon_Display_Control(SEG_P3,ON);
265 3 RTC_String[4]=System_RTC_Second/10+'0';
266 3 RTC_String[5]=System_RTC_Second%10+'0';
267 3 RTC_String[6]='\0';
268 3 LCD_Display_String(1,RTC_String);
269 3 }
270 2 }
271 1
272 1 if(Timer_for_Refresh_LCD_Display>=50)//250)
273 1 {
274 2 System_Flag_RTC_Update=TRUE;
275 2
276 2 Timer_for_Refresh_LCD_Display=0;
277 2 System_Confirm_Refresh_LCD_Counter++;
278 2 System_Confirm_Refresh_LCD_Counter%=3;
279 2
280 2 switch(System_Confirm_Refresh_LCD_Counter)
281 2 {
282 3
283 3 case 0:
284 3 for(LCD_Refresh_Poniter=0;LCD_Refresh_Poniter<5;LCD_Refresh_Poniter++)
285 3 {
286 4
287 4 Refresh_LCD_One_Byte(LCD_Refresh_Poniter);
288 4
289 4 }
290 3
291 3 break;
292 3
293 3 case 1:
294 3
295 3 for(LCD_Refresh_Poniter=5;LCD_Refresh_Poniter<10;LCD_Refresh_Poniter++)
296 3 {
297 4
298 4 Refresh_LCD_One_Byte(LCD_Refresh_Poniter);
299 4
300 4 }
301 3
302 3 break;
303 3
C51 COMPILER V8.02 MAIN 10/16/2006 17:42:28 PAGE 6
304 3 case 2:
305 3 for(LCD_Refresh_Poniter=10;LCD_Refresh_Poniter<16;LCD_Refresh_Poniter++)
306 3 {
307 4
308 4 Refresh_LCD_One_Byte(LCD_Refresh_Poniter);
309 4
310 4 }
311 3
312 3 break;
313 3
314 3 }
315 2
316 2
317 2 }
318 1
319 1
320 1 if(System_Flag_DispEvent)
321 1 {
322 2
323 2 Display_Number(Monitor);
324 2 System_Flag_DispEvent=0;
325 2
326 2 }
327 1
328 1
329 1 if(System_Flag_Temp_DisplaY)
330 1 {
331 2
332 2
333 2 if(Timer_for_Sytem_Display>250)//TEMP_TEXT_DISPLAY_STILL_TIME_X3mS)
334 2 {
335 3 Timer_for_Sytem_Display=0;
336 3 Normal_Dispaly();
337 3 System_Flag_Temp_DisplaY=0;
338 3 }
339 2
340 2 }
341 1
342 1
343 1
344 1 }
345
346
347
348
349 void Init_51MCU(void)
350 {
351 1
352 1 IE=0;
353 1 //IE = 0x30; // 00110000 EA EC ET2 ES ET1 EX1 ET0 EX0
354 1
355 1 /***PORT DATA ****/
356 1
357 1
358 1 /***extern interrupt 0,1 setting****/
359 1 IT1=1; // 0/1 LOW LEVEL/FALLING edge triggle the external interrupt 1 (for RDS)
360 1 IE1=0; //clear the interrupt flag
361 1 IT0=1; // 0/1 LOW LEVEL/FALLING edge triggle the external interrupt 0 (for CLOCK)
362 1 IE0=0; //clear the interrupt flag
363 1
364 1
365 1 /*** Serial communucation port set ***/
C51 COMPILER V8.02 MAIN 10/16/2006 17:42:28 PAGE 7
366 1 SM0 = 0; // 8 bit UART variable baud
367 1 SM1 = 1;
368 1 SM2 = 0; // disable multi-processor communication
369 1 REN = 1; // receive enable
370 1 TB8 = 0; // clear transmit parity bit
371 1 RB8 = 0; // clear receive parity bit
372 1 TI = 0; // clear transmit interrupt flag
373 1 RI = 0; // clear receive interrupt flag
374 1
375 1 /***timers function set***/
376 1 /*** Timer0 for 16 timer***/
377 1 TMOD=0x21; //timer0(Timer MOD1 ): 0001 use as 16 timer for the 20ms interrupt
378 1 // timer1(Timer MOD2) : 0010 use as for baud rate and auto reload mode
379 1
380 1 #if ( SYSTEM_CRYSTAL ==USE_CRYSTAL_40M)
TH0=0x00; /*reload value 19.6ms for X=40M*/
TL0=0x00; /*reload value 19.6ms for X=40M*/
#elif(SYSTEM_CRYSTAL ==USE_CRYSTAL_27M)
384 1 //TH0=0xDC; /*reload value 4ms for X=27M*/
385 1 //TL0=0xCF; /*reload value 4ms for X=27M*/
386 1 TH0=0x50; /*re load value 20ms for X=27M*/
387 1 TL0=0x37; /*reload value 20ms for X=27M*/
388 1 #elif(SYSTEM_CRYSTAL ==USE_CRYSTAL_27MX2)
TH0=0x50;
TL0=0x37;
#elif( SYSTEM_CRYSTAL== USE_CRYSTAL_24M598_X2)
TH0=0xCC; /*reload value 3ms for 25.598*2**/
TL0=0xD5;
#elif( SYSTEM_CRYSTAL== USE_CRYSTAL_40M039_X2)
TH0=0x97; /*reload value 4ms for 40.039*2**/
TL0=0xBC;
#elif( SYSTEM_CRYSTAL== USE_CRYSTAL_12M_X2)
TH0=0xE0; /*reload value 4ms for 12M*2**/
TL0=0xB8;
#else
TH0=0xff; /*reload value 25ms for X=22.118M*/
TL0=0x4b; /*reload value 25ms for X=22.118M*/
#endif
409 1
410 1 /*** Timer1 for baud rate***/
411 1 PCON |= 0x80;
412 1 TL1 = 0; // clear timer 1 counter low
413 1
414 1 //TH1=0xFF-fs/B/32/12 +1 SMOD=0
415 1 //TH1=0xFF-fs/B/16/12 +1 SMOD=1
416 1 /* TH1 =0xff-0x0C+1; //2400bps for 11.0592 SMOD=0
417 1 TH1 =0xff-0x06+1; //4800bps for 11.0592 SMOD=0
418 1 TH1 =0xff-0x03+1; //9600bps for 11.0592 SMOD=0
419 1 TH1 =0xff-0x03+1; PCON|=0x80; //19200bps for 11.0592 SMOD=1
420 1
421 1 TH1 =0xff-0x18+1; //2400bps for 22.1184 SMOD=0
422 1 TH1 =0xff-0x0C+1; //4800bps for 22.1184 SMOD=0
423 1 TH1 =0xff-0x06+1; //9600bps for 22.1184 SMOD=0
424 1 TH1 =0xff-0x03+1; //19200bps for 22.1184 SMOD=0
425 1 TH1 =0xff-0x01+1; //38400bps for 22.1184 SMOD=0 */
426 1
427 1
C51 COMPILER V8.02 MAIN 10/16/2006 17:42:28 PAGE 8
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -