📄 main.lst
字号:
304 1 EX0 = 1; //允许外部中断
305 1 ET0 =1; ET1 = 1;
306 1 EA = 1;
307 1 for (;;)
308 1 {
309 2 if ( flagINT ) //如果有键按下
310 2 {
311 3 //清除中断标志
312 3 flagINT = 0;
313 3 //读取键值、连击计数器值、功能键值
314 3 ZLG7290_ReadReg(ZLG7290_Key,&KeyValue);
315 3 ZLG7290_ReadReg(ZLG7290_RepeatCnt,&RepeatCnt);
316 3 ZLG7290_ReadReg(ZLG7290_FunctionKey,&FnKeyValue);
317 3 //显示键值、连击计数器值、功能键值
318 3 //DispValue(6,KeyValue);
319 3 switch (KeyValue)
320 3 {
321 4 case 1: //功能设定键
322 4 cNum_key1++;
323 4 if (cNum_key1 == 6)
324 4 {
325 5 cNum_key1 = 1;
326 5 }
327 4 if (cNum_key1 == 4)
328 4 {
329 5 iCounter_Inter3_temp = 0;
330 5 uStopwatch_DisBuffer[6]=0; uStopwatch_DisBuffer[7]=0;
331 5 uStopwatch_DisBuffer[3]=0; uStopwatch_DisBuffer[4]=0;
332 5 uStopwatch_DisBuffer[0]=0; uStopwatch_DisBuffer[1]=0;
333 5 }
334 4 break;
335 4 case 2: //闪显键
336 4 switch (cNum_key1)
337 4 {
338 5 case 1: //修改时间 00-00-00
339 5 //cNum_key2<<=1;
340 5 if ( cNum_key2 ==0x00 )
341 5 {
342 6 cNum_key2=0x01;
343 6 }
344 5
345 5 if(bChang_time == 1)
346 5 {
347 6 bChang_time = 0;
348 6 cNum_key2 = 0x80;
349 6 bRealkey2 = 1 ;
350 6 }
351 5 else
352 5 {
353 6 bChang_time = 1;
354 6 cNum_key2 = 0;
355 6 bRealkey2 = 0 ;
356 6 }
357 5 break;
358 5 case 2: //修改年月日
359 5 //cNum_key2<<=1;
360 5 if ( cNum_key2 ==0x00 )
361 5 {
362 6 cNum_key2=0x01;
363 6 }
364 5
365 5
C51 COMPILER V8.05a MAIN 01/11/2008 12:42:17 PAGE 7
366 5 if(bChang_year == 1)
367 5 {
368 6 bChang_year = 0;
369 6 cNum_key2 = 0x80;
370 6 bRealkey2 = 1 ;
371 6 }
372 5 else
373 5 {
374 6 bChang_year = 1;
375 6 cNum_key2 = 0;
376 6 bRealkey2 = 0 ;
377 6 }
378 5 break;
379 5 case 3: //修改星期 Thursday
380 5 if(bChang_week == 1)
381 5 {
382 6 bChang_week = 0;
383 6 cNum_key2 = 0x10;
384 6 bRealkey2 = 1 ;
385 6 }
386 5 else
387 5 {
388 6 bChang_week = 1;
389 6 cNum_key2 = 0;
390 6 bRealkey2 = 0 ;
391 6 }
392 5 break;
393 5 case 4: //秒表功能(确定按钮) 00-00-00
394 5 bRealkey2 = ~bRealkey2;
395 5 if(bRealkey2==0)
396 5 {
397 6 bClear_stopwatch = 1;
398 6 }else
399 5 {
400 6 bClear_stopwatch=0;
401 6 }
402 5 TH1 = 0XD8; TL1 = 0XF0; TR1 = 1; //每1MS进入一次定时器1中断
403 5 cNum_key2 = 0;
404 5 break;
405 5 case 5: //设定闹钟(确定按钮) 00-00-00
406 5
407 5 if(bChang_alarm == 1)
408 5 {
409 6 bChang_alarm = 0;
410 6 cNum_key2 = 0x80;
411 6 bRealkey2 = 1 ;
412 6 }
413 5 else
414 5 {
415 6 bRealkey2 = 0 ;
416 6 bChang_alarm = 1;
417 6 cNum_key2 = 0;
418 6 }
419 5 break;
420 5 }
421 4 break;
422 4 case 3: //移位键盘
423 4 if((bRealkey2==1)&&(cNum_key1!=4))
424 4 {
425 5 cNum_key2>>=1;
426 5 if ( cNum_key2 ==0x00 )
427 5 {
C51 COMPILER V8.05a MAIN 01/11/2008 12:42:17 PAGE 8
428 6 cNum_key2=0x80;
429 6 }
430 5 }
431 4 if ((cNum_key1==4)&&(bRealkey2==0))
432 4 {
433 5 bClear_stopwatch=0;
434 5 iCounter_Inter3_temp=0;
435 5 for (j=0;j<8 ;j++ )
436 5 {
437 6 uStopwatch_DisBuffer[j]=0;
438 6 }
439 5 uStopwatch_DisBuffer[2]=27;
440 5 uStopwatch_DisBuffer[5]=27;
441 5 }
442 4
443 4 break;
444 4 case 4: //在设置时钟时等为上移键(增大)
445 4 if (bRealkey2==1) //处于设置模式下
446 4 {
447 5 switch (cNum_key1)
448 5 {
449 6 case 1: //对时间进行处理
450 6 switch (cNum_key2)
451 6 {
452 7 case 0x01:
453 7 case 0x02:
454 7 uHour = uTime_DisBuffer[0]*10+uTime_DisBuffer[1];
455 7 if (uHour<23)
456 7 {
457 8 uHour++;
458 8 }else
459 7 {
460 8 uHour = 0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -