📄 main.c.lst
字号:
286 2 key_store[2][0]=tempp;
287 2 if(key_close)
288 2 {
289 3 tempp=key_store[0][0]&key_store[1][0]&key_store[2][0];
290 3 if(tempp==0x07)
291 3 key_close=0;
292 3 }
293 2 else
294 2 {
295 3 if(key_store[0][0]==key_store[0][1])
296 3 {
297 4 tempp=key_store[0][0];
298 4 tempp|=0xf8;
299 4 tempp=~tempp;
300 4 if(tempp!=0)
301 4 {
302 5 tempp=tige(tempp);
C51 COMPILER V7.06 MAIN_C 06/13/2003 10:55:13 PAGE 6
303 5 if(tempp<3)
304 5 {
305 6 key_code1=keynumber[tempp];
306 6 key_tag=1;
307 6 key_close=1;
308 6 }
309 5 }
310 4 }
311 3 if(key_store[1][0]==key_store[1][1])
312 3 {
313 4 tempp=key_store[1][0];
314 4 tempp|=0xf8;
315 4 tempp=~tempp;
316 4
317 4 if(tempp!=0)
318 4 {
319 5 tempp=tige(tempp);
320 5 if(tempp<3)
321 5 {
322 6 tempp=tempp+3;
323 6 key_code2=keynumber[tempp];
324 6 key_tag=1;
325 6 key_close=1;
326 6 }
327 5 }
328 4 }
329 3 if(key_store[2][0]==key_store[2][1])
330 3 {
331 4 tempp=key_store[2][0];
332 4 tempp|=0xf8;
333 4 tempp=~tempp;
334 4 if(tempp==6)
335 4 {
336 5 key_code3=FORUP;
337 5 key_tag=1;
338 5 key_close=1;
339 5 }
340 4 if(tempp!=0)
341 4 {
342 5 tempp=tige(tempp);
343 5 if(tempp<3)
344 5 {
345 6 tempp=tempp+6;
346 6 key_code3=keynumber[tempp];
347 6 key_tag=1;
348 6 key_close=1;
349 6 }
350 5 }
351 4 }
352 3 }
353 2 }
354 1 }
355 /*********************************
356 液晶清屏函数
357 **********************************/
358 void cleardisp(void)
359 {
360 1 uchar i=0,j;
361 1 for(j=0;j<8;j++)
362 1 {
363 2 LCM12864(i,j,0,128,0);
364 2 }
C51 COMPILER V7.06 MAIN_C 06/13/2003 10:55:13 PAGE 7
365 1 }
366 /*********************************
367 停止界面函数
368 ************************************/
369 void interfaceStop(void)
370 {
371 1 MuchPageDisp(stop,0, 10,67,4);
372 1 MuchPageDisp(plist0,4, 10,98,2);
373 1 MuchPageDisp(plist1,6, 10,90,2);
374 1 }
375
376 /*********************************
377 运行主界面函数
378 ***********************************/
379 void interfaceRun(void)
380 {
381 1 MuchPageDisp(run,0, 10,52,4);
382 1 MuchPageDisp(fwd,1, 75,37,2);
383 1 MuchPageDisp(plist0,4, 10,98,2);
384 1 MuchPageDisp(plist1,6, 10,90,2);
385 1 }
386 /********************************
387 字体合并一行显示
388 *********************************/
389 uchar idata fingersbuf[10];
390 void combinline(uchar finger1,uchar finger2,finger3,finger4,uchar finger5,uchar finger6,uchar finger7,ucha
-r finger8,uchar finger9,uchar finger10)
391 {
392 1 fingersbuf[0]=finger1;
393 1 fingersbuf[1]=finger2;
394 1 fingersbuf[2]=finger3;
395 1 fingersbuf[3]=finger4;
396 1 fingersbuf[4]=finger5;
397 1 fingersbuf[5]=finger6;
398 1 fingersbuf[6]=finger7;
399 1 fingersbuf[7]=finger8;
400 1 fingersbuf[8]=finger9;
401 1 fingersbuf[9]=finger10;
402 1 }
403
404 /************************************
405 数码管动态显示以及LCD刷新显示
406 *************************************/
407 uint time;
408 uint lcdrefreshtime;
409 uint lcdcount;
410 extern uchar dispnum[4];
411 uint back;
412 uchar page;
413 uchar state;
414 void intt0(void) interrupt 1
415 {
416 1 TH0=0x3C; //2.5ms
417 1 TL0=0xB0;
418 1 lcdrefreshtime++;
419 1 time++;
420 1 if(time>=50000)//for 0.05s
421 1 {
422 2 if((page==2)||(page==3)||(page==4))
423 2 {
424 3 back++;
425 3 if(back>30000)
C51 COMPILER V7.06 MAIN_C 06/13/2003 10:55:13 PAGE 8
426 3 { back=0;
427 4 if(state==0)//stop condition
428 4 {
429 5 cleardisp();
430 5 interfaceStop();
431 5 page=0;
432 5 state=0;
433 5
434 5 }
435 4 if(state==1)//run condition
436 4 {
437 5 cleardisp();
438 5 interfaceRun();
439 5 page=1;
440 5 state=1;
441 5
442 5 }
443 4 }
444 3 }
445 2 }
446 1
447 1 if(lcdrefreshtime>50000)//0.05s
448 1 { lcdrefreshtime=0;
449 2 lcdcount++;
450 2 if(lcdcount>=60000)
451 2 { lcdcount=0;
452 3 if((state==0)&&(page==0))
453 3 {
454 4 cleardisp();
455 4 interfaceStop();
456 4 }
457 3 if((state==1)&&(page==1))
458 3 {
459 4 cleardisp();
460 4 interfaceRun();
461 4 }
462 3 }
463 2
464 2 }
465 1 //if(time>1600)
466 1 //{
467 1 // time=0;
468 1 // ddbit=!ddbit;
469 1 //}
470 1 //if(ledchange==4)
471 1 //{
472 1 // ledchange=0;
473 1 //}
474 1 // CTCOM1=1;
475 1 // CTCOM2=1;
476 1 // CTCOM3=1;
477 1 // CTCOM4=1;
478 1 //if(ledchange==0)
479 1 //{
480 1 // P0=led[dispnum[ledchange]];
481 1 /* CTK=1;
482 1 CTK=0;
483 1 CTK=1;
484 1 CTCOM1=0;
485 1 }
486 1 else if(ledchange==1)
487 1 {
C51 COMPILER V7.06 MAIN_C 06/13/2003 10:55:13 PAGE 9
488 1 if(dotflag)
489 1 P0=led[dispnum[ledchange]];
490 1 else P0=led[dispnum[ledchange]]|led[10]; //加小数点
491 1
492 1 CTK=1;
493 1 CTK=0;
494 1 CTK=1;
495 1 CTCOM2=0;
496 1 }
497 1 else if(ledchange==2)
498 1 {
499 1 if(!dotflag)
500 1 P0=led[dispnum[ledchange]];
501 1 else P0=led[dispnum[ledchange]]|led[10]; //加小数点
502 1 P0=led[dispnum[ledchange]];
503 1 CTK=1;
504 1 CTK=0;
505 1 CTK=1;
506 1 CTCOM3=0;
507 1 }
508 1 else if(ledchange==3)
509 1 {
510 1 P0=led[dispnum[ledchange]];
511 1 CTK=1;
512 1 CTK=0;
513 1 CTK=1;
514 1 CTCOM4=0;
515 1 }
516 1 ledchange++;*/
517 1 }
518
519 /**********************************8
520 指示移位
521 ************************************/
522 void fingermove(uchar a,bit b,bit d)
523 {
524 1 uchar temb;
525 1 if(d)
526 1 {
527 2 if(b)//指针up
528 2 {
529 3 temb=a-2;
530 3 LCM12864(0,temb,0,16,0);
531 3 LCM12864(0,temb+1,0,16,0);
532 3 fingersbuf[0]=40;
533 3 DispPage2(fingersbuf,a,0,1,2);
534 3 }
535 2 else //down
536 2 {
537 3 temb=a+2;
538 3 LCM12864(0,temb,0,16,0);
539 3 LCM12864(0,temb+1,0,16,0);
540 3 fingersbuf[0]=40;
541 3 DispPage2(fingersbuf,a,0,1,2);
542 3 }
543 2 }
544 1 else
545 1 {
546 2 fingersbuf[0]=40;
547 2 temb=a;
548 2 DispPage2(fingersbuf,temb,0,1,2);
549 2 }
C51 COMPILER V7.06 MAIN_C 06/13/2003 10:55:13 PAGE 10
550 1 }
551 /****************************************
552 系统处理
553 **************************************/
554 uchar page;
555 uchar state;
556 bit port;//port=0 为鍵面操作,port=1为端口操作.
557 uchar idata Fcount;//F 项位置定位。
558 uchar idata Ecount;//E项位置 定位。
559 uchar idata Ccount;//C项位置 定位。
560 uchar idata Hcount;//H项位置 定位。
561 uchar idata Ucount;//P项位置定位。
562 uchar idata Pcount;
563 uchar idata Mcount;//菜单位置 定位。
564 bit stopfirst;
565 bit runfirst;
566 uchar idata movepin;
567 uchar idata IOcount;
568 uchar idata runcount;
569 uchar managemenu(void)
570 {
571 1 uchar subb;
572 1 if((state==0)&&(page==0)&&(stopfirst==0))
573 1 { cleardisp();
574 2 interfaceStop();
575 2 stopfirst=1;
576 2
577 2 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -